Improve Quality and Reduce Defects Through Automation
At OpenCredo we agree with W. Edwards Deming, that quality should be built in. However, we appreciate that for many organisations this is simply not practical, and a robust quality assurance (QA) process is vital for ensuring the continued delivery of value to customers, and at the same time minimising bugs.
We specialise in helping organisations to design and implement test automation solutions that help define and capture required functionality, maximise bug detection, and prevent unnoticed regressions in functionality.
Below is a list of techniques that we draw upon in a typical test automation engagement.
Behaviour Driven Development
One of the key enhancements to an agile test automation approach, BDD improves communication between business and technical personnel and lays the foundation for clear, readable test reporting and system documentation. With BDD we help our clients capture verifiable requirements during planning stages before integrating into automated tests using industry leading tools. Cucumber, Concordion, JBehave, RSpec, SpecFlow
Our consultants can help developers to create suitable low level unit tests using mocking frameworks and a variety of unit testing tools. Clear guidelines on how and when to create unit tests make code more easily understood by new team members as well as enabling safe refactoring. Combined with processes such as test driven development (TDD), unit tests also keep code limited to the known use cases. xUnit, Mockito, SQL, JDBC
Functional tests are executed to verify system behaviour through application UI’s and API’s. Our expertise enables us to create maintainable, robust automated test frameworks that take into account requirements around test data management, scaling and reporting. Frameworks consist of various tools combined together to cover the interaction and assertion needs of your specific system. Apache HTTPClient, Selenium WebDriver, Selenium Grid
Automated performance tests can be used to track the performance of the system over time and identify non performant areas under ideal conditions. With the right tools these tests can then be reused for stress testing and verifying performance at scale. Our consultants can implement performance tests in your development pipeline to ensure your application won’t fail on go-live. JMeter, Gatling
While rightly considered part of DevOps, continuous integration plays a key part in test automation. Our consultants are familiar with a range of industry leading CI software, which supports the creation of jobs to integrate with existing build and deployment pipelines. These jobs can be configured to run tests on regular schedules or on every deployment to generate reports and identify defects quickly and easily. Jenkins / Hudson, TeamCity
Having captured defects through your automated test process, proper defect management is a critical step. We offer guidance and support in implementing defect management processes which integrate into a more agile test structure. In addition to process, we are also able to assist in getting the most from your tooling through customisation and configuration. Jira, Bugzilla