Why Test Automation is Essential to Successful DevOps

For DevOps the idea of automated processes come into play from its very core.  Whether it’s developing, testing or deploying software, DevOps seeks the most efficient mode of delivering an application continuously through the pipeline, and several aspects are inherently automated as a result.

While a central goal of DevOps is to have improved deployment frequency, it’s key to think about how QA plays a role in helping or hindering that ability.  In some organizations, continuous manual or automated testing is often a slower moving cog. Organizational structure often finds ways to inhibit QA’s ability to effectively keep pace with the remainder of the software delivery processes.  It’s been proven that QA leads to a lower failure rate and ultimately better software[1], but when deadlines approach and time constraints become an unwelcome reality, QA professionals yearn for a way to lessen the pressure and keep the process flowing.  The natural progression for a DevOps process that is already highly automated is to transition more of the QA process to fall in line, either through test driven development (TDD) or automated scripts running continuously during testing of newly developed features.

Furthermore, when it comes time for an official release into a UAT or production environment, after a final sign-off by the QA team, at least two opportunities for test automation present themselves.  Firstly, a smoke-test or sanity check makes sure the new environment reacts properly to the build and no unforeseen issues are introduced.  It’s becoming more evident that as releases are increasing in frequency, test automation can play an integral role by finding issues with build deployments and environmental data that doesn’t exist in the QA environment.  Secondly, if key business processes are required to be smoke tested for each release, maintaining a suite of automated regression scripts may be a viable investment for a DevOps process to trigger without the need for an extra manual testing.  Test automation frameworks and tools can present the results of automated tests in a way to analyze risk and reassure stakeholders that testing has been successfully completed.  If newly created automated test scripts are created during the sprints leading up to a release, they can be re-used and transferred to the DevOps platform for continued integration into future release cycles.

It could be said that DevOps without automated smoke tests just results in quicker deployment of bugs into the production environment. And that definitely is not the end-game. DevOps is actually DevTestOps with automated tests creating the bridge between Development and Operations for quality software.

[1]
Software Quality Assurance: Integrating Testing, Security, and Audit
By Abu Sayed Mahfuz 2016
Pg. 151