Role of automation in the culture of Continuous Quality

In a culture of Continuous Quality, automation is more than just a way to run your tests faster. It’s a pretty central idea, required for the whole concept to work. It enables us to test continually. In this context, Quality Engineers focus on early detection and prevention of bugs rather than treating testing as an afterthought and looking for bugs only after everything else is done.



Automation helps us to significantly shorten the feedback loops. When integrated into the pipeline, it gives near-instant feedback on every committed code change. This means that if our automation is well-designed and maintained, the time to detect regression bugs gets shortened from hours (or even days) to mere minutes.


Having automation act as a sort of quality gate that ensures that only “healthy” code gets released to production helps serve as a problem prevention mechanism that stops low-quality code from reaching the customers.


The scale of our testing can be seriously increased with the proper use of automation. We can literally run thousands of tests in reasonably small time frames. This means that our overall development velocity increases, without sacrificing stability. Today, more than ever, we are fairly easily able to run different types of automated tests across different environments, devices, operating systems, browsers, etc. 


There is much more to automation than just automating the actions over the UI. For a culture of continuous quality to take root, we need to do more than just UI automation. Static analysis tools can automatically check if the code adheres to the established formatting rules and identify security vulnerabilities even before the code is compiled. Automated unit and integration tests can help developers catch errors in business logic early on, and approaches like contract testing can enable testing of microservices even before all the required microservices in our architecture are ready to be integrated. 


Relatively newer automation trends don’t just try to put focus on the early parts of software development, but also try to cover the later stages, which is what happens with the code after it goes live. Things like canary releases allow us to automatically compare metrics between newly released code and the current version, so we can roll back the new code if it proves problematic. 


Chaos engineering uses automation to simulate attacks on our system to determine its resilience and recovery capabilities. Big companies like Netflix, Amazon, and many social media networks all use this a lot. Also, we can use AI bots to perform synthetic monitoring in production for us by mimicking a real user journey, such as logging in and completing the checkout process, for example.


To transition to a culture of Continuous Quality, we need to think about the following:


  • We need to develop an automation framework that will enable our team members to use it to add new tests,

  • Test data will need to be managed, meaning that we need to come up with realistic data for our tests and think about its creation and cleanup.

  • Dealing with the environments should be as convenient as possible; with approaches such as Infrastructure as Code, testers can easily spin up identical versions of the same environment for more consistent automation outcomes.

  • Lastly, the automation in a culture of Continuous Quality isn’t about replacing humans. It is about increasing the quality of the entire system so we can release new software faster with more confidence.


Hope you enjoyed the article and found it useful!



Comments

Popular posts from this blog

Implementing Change - MoT Bloggers Club August 2021

How to Pass AZ-900 Azure Fundamentals Certification Exam

Why I Almost Gave up on Software Testing as a Career