With more companies of all sizes embracing the Agile and DevOps methodologies, the speed of the software development lifecycle continues to increase. This reflects a competitive business world which operates all over the globe on a 24-7 basis. The days of the biannual release cycle appear to be obsolete.
Continuous deployment and other offshoots of Agile strive to make software enhancements a quick and painless process, so it stands to reason this “need for speed” would influence quality assurance. Enter continuous testing. We’ve mentioned this concept in a previous post, but this time out we’ll take a closer look at this emerging QA trend.
Preventing QA from becoming a Bottleneck
Companies embracing continuous delivery leverage automation to make various aspects of the SDLC faster. This includes automating builds, migrations, and other related tasks. While a need for manual software testing still exists, especially when it comes to validating usability and interfaces, companies are taking advantage of automated tests as part of a continuous testing model.
Continuous testing requires extra effort to be spent on developing these automated tests. This concept applies when it comes to determining whether or not to deploy the software into production after the test run is complete. Business stakeholders need to work closely with QA engineers to determine the criteria for a go/no go decision; factoring in performance, reliability, and security issues.
Additionally, many continuous testing programs involve QA personnel at the beginning of the lifecycle, with the hopes of validating design work before development takes place — the extra cost of handling bugs later in the SDLC still matters in this scenario. The scope of testing includes automated API tests, unit tests, as well as system and integration tests. Security and performance testing is also performed when relevant.
Managing the Continuous Testing Process
Relying on automation to execute a whole range of tests as part of a larger build and deployment process doesn’t mean the role of the QA engineer is going away. We mentioned earlier about the importance in properly developing automated tests able to determine whether or not to deploy a release. It is also vital to involve QA personnel in the management of the entire automated testing process, including performance monitoring and defect analysis.
Many QA tools and applications now include support for continuous testing that goes beyond simply automation. These typically provide a robust mechanism for authoring tests in addition to the real-time defect reporting and performance features needed to truly take advantage of CT.
Resources for Learning more about Continuous Testing
A wide range of eBooks and other material covering continuous testing are available if you are interested in learning more about this topic. SOASTA, known for their performance analytics software, offers an eBook on Continuous Testing in an Agile World. IT managers interested in the subject need to check out Parasoft’s book aimed at technology leaders.
In short, continuous testing needs to be considered by any organization hoping to truly take advantage of Agile or DevOps.
Keep tuned to the Betica Blog for further dispatches from the wide world of QA and software development.