DevOps is designed to enable a culture where development and operations come together to build, test and deploy applications in order to reduce overall deployment time. As the DevOps movement gathers pace, some may conclude that it makes Quality Assurance obsolete.
What does DevOps do with QA?
While waterfall development was a natural home for QA, where it fits into DevOps and agile is not as clear. Most people lump it into themes like continuous development, continuous integration, and continuous delivery, but there’s another way to look at it.
Enter test automation. In a world of nightly or weekend regression runs, the volume of testing has increased substantially. And with this increased volume of testing comes the need for test automation. DevOps can simply not succeed if it still requires a large number of test cases to be run manually.
The shared courtyard of testing automation
With DevOps, quality becomes everybody’s concern. In theory, that’s great news. However, there’s a great Chinese proverb which translates to “The shared courtyard never gets swept”. If something is everybody’s problem, then it’s really no one’s problem. And therein lies the danger.
Test automation is not something that magically happens on its own, as any experienced agile developer or tester will tell you. A lot of the hard work in test automation comes at the beginning, in building out the test cases. Of course, you can work with outside experts to manage and complete setup. But still, whose responsibility is it internally?
From QA testers to test automation engineers
Test automation is a tough skill to acquire. It’s technically complex and the main pitfall for the majority of DevOps projects. A test automation engineer needs to have a good understanding of not only application functionality but the underlying technical landscape, test automation tools, and how scripts can be created in parallel with development. They also need to know how scripts can be executed with the help of CI/CD tools and collaborate well with both development and operations.
Assuming you don’t already have qualified test automation engineers on staff, there are three simple options:
- Find experts from consulting companies. You can get started quickly and get access to the right talent, but this brings higher cost and dependencies on external vendors.
- Hire the team. Since resources are scarce, be prepared to be patient in finding the right people for the role.
- Retrain your existing testers into test automation engineers. This may take some time, but if you have it, you can develop your team to acquire the right skills.
In true DevOps style, development and test automation engineers need to work together to help the automation tester to develop test scripts and maximize the test coverage. These scripts and code, supported by CI/CD tools, are used to generate builds automatically, deploy them and test them.
A more strategic role for test automation is possible too where people have the technical and management experience. This role means defining the quality strategy in line with the DevOps culture which include assisting in fine-tuning requirements, defining strategies where 100% automation coverage is not possible, defining quality metrics and subsequently measuring and analyzing those metrics. In this role, it is more a case of not just finding the bugs but becoming responsible for preventing bugs.
All of this may sound challenging, but it’s worth it. DevOps is a worthy path to bring the whole business into making better software quicker, and one of the keys to success is test automation. Getting test automation right is one of the strongest indicators that you are a mature DevOps or agile operation and that you will be successful, despite the challenges. As Aristotle wrote, a couple of thousand years before DevOps arrived, “Quality is not an act, it is a habit.”
A test management tool like QMetry Test Manager for JIRA is great for instilling quality as a habit across projects and new generation tools like QMetry Wisdom for JIRA is mandatory to churn through piles of data that you collect from automated test scripts. Learn more about these add-ons in the Atlassian Marketplace.