Automated Testing of Oracle Code
A key Agile principe is automated unit testing and we apply this to Oracle code using Quest Code Tester for Oracle,
arguably the best tool available for the job. We believe that automated testing of Oracle code needs focus for numerous reasons, including cost reduction, improved software quality and productivity and also improved protection against hacking.
Back in the early years of the commercial product's life we had a close collaboration with the renowned PL/SQL guru Steven Feuerstein, working for Quest Software back then, now he works for Oracle, who is the architect behind and initially one of the key developers of
Quest Code Tester for Oracle.
Ellebæk Consulting provides the following services related to Agile development in general and automated testing of Oracle-based projects and products in particular:
- Training in Quest Code Tester for Oracle
- Test Management: Technical assistance and inspiration to the Test Manager, covering:
- Design of test policy and strategies for adopting automated testing of PL/SQL and other Oracle database code in your organization
- Design of best practices for Agile Oracle development
- Analysis and design of complete test plan, including test approach, test amount and test design, based on overall test policy and project-specific test strategy
- Coaching on best practices and specific challenges and issues
- Technical Testing
- Automated unit/integration testing of PL/SQL and Java stored procedures
- Automated unit/integration testing of Oracle views
- Automated integration testing of batch jobs
- Refactoring code for improved testability
- Test data setup
- Mocking (a technique used for breaking inter-dependencies in legacy code)
We also provide other aspects of testing Oracle code with Quest Code Tester for Oracle (QCTO), including:
- Training: Detailed and practical training with QCTO for PL/SQL developers -- a 2 day intensive training course.
- Assistance and inspiration to the Test Managers and Testers that analyze and design the following, where each step adds more details and builds on the previous step:
- Test policy: High-level approach towards testing.
- Test strategy: Rules for testing in more detail, identifying where the optimal Return On Investment can be obtained. Potentially project-specific.
- Test approach: Implementation details of the test policy and strategy for a particular project.
- Test amount: Establishment of code coverage requirements identified through product risk analysis.
- Test design: Low-level design of the test cases, driven by all of the above.
- Coaching on best practices and specific challenges and issues:
- On-site coaching.
- Off-site coaching via e-mail, Skype, Teams and remote desktop sharing (eg Teams, TeamViewer or WebEx).
- Technical Testing: Supplementing your available resources with automated technical testing of Oracle code, such as:
- PL/SQL stored procedures at various levels, eg unit and integration.
- Java stored procedures at various levels, eg unit and integration.
- Oracle views.
- Batch jobs internal/external to the Oracle database.
- Refactoring code for improved testability.
- Test data setup.
- Mocking (a technique used for breaking inter-dependencies in legacy code).
- Blogging: Shared a Toad World blog with Steven Feuerstein on Quest Code Tester for Oracle 2009-11: Real Automated Code Testing for Oracle.
At Ellebæk Consulting we offer the following services within the automated testing realm in the Java domain:
- JUnit for unit and integration testing
- Mocking where required for testability
- Continuous Integration, eg using tools like Jenkins
At Ellebæk Consulting we work closely with our clients helping them to automate testing of their codebase, which provides the following benefits across the Oracle and Java domains:
- Cost reduction: Defects are discovered as early in the project lifecycle as possible, which reduces cost.
- Risk reduction: The risk of deploying the software to production is reduced as the number of defects expected to be found is lower than it would have been without the automated testing.
- Software quality improvement: The code quality is improved through early defect discovery.
- Improved confidence, trust and teamwork: As the quality of the code is improved so will the confidence, trust and teamwork amongst all stakeholders in the project.
- Ease of refactoring and enhancements: You can safely refactor the existing code -- eg in preparation for future enhancements or for improved performance -- as the unit tests will expose any change in external behavior. The unit tests form an important safety net for new team members that are giving responsibilities of refactoring or enhancing existing Oracle/Java code.
- Improved system documentation: The unit tests form a type of documentation to team members and maintenance programmers as they express expected behavior under different circumstances.
- Decreased risk of hacker attacks: Automated unit tests will highlight if the Oracle code no longer behaves as expected when deploying an Oracle or Operating System patch, which enables you to safely deploy Oracle's quarterly security patches and any OS-related patches, safeguarding against hacker attacks.
We implement all of the above in close collaboration with each client, using the following technologies:
- Oracle PL/SQL and SQL