I’ve spent the past six months preparing myself for the AZ-400 Azure exam. The prep has been intensive, but it’s helped me get some new perspectives on testing and the benefits a strong grounding in DevOps can bring to the QA space.
I’d like to share some of the key benefits upskilling in this area has brought to my ways of working and the teams I work with.
Having a view of the infrastructure where you’re hosting your service or application deepens your understanding of that service or app.
If you have a view of the resources, whether those be physical or in the cloud, that your application needs to run then you also have a much clearer view of the possible points of failure – this means that any risk mitigation you’re aiming to do as a part of your test strategy is more comprehensive.
I consider observability to be a key quality metric so having the best possible understanding of all your dependencies and infrastructure helps you and the development team make the right choices when it comes to monitoring and alerting. Without that additional insight, you run the risk of having gaps in your coverage.
Another huge benefit to application quality that is unlocked by having a deeper understanding of DevOps is being able to implement IAC.
IAC stands for Infrastructure As Code – it is an approach used, particularly in cloud computing, which empowers a development team to source control their infrastructure. There are different ways to approach this depending on your needs and the cloud provider you’re working with so I won’t go too deeply into the specifics, however, I will outline the main pros I’ve found with working in this way.
The key benefit of having your infrastructure set up in code and source controlled is that deployments of infrastructure are as repeatable and automatable as a code deployment. You’re improving the quality and reliability of your releases by ensuring that changes to the infrastructure must go through the same review process as code, and you’re able to track changes more easily for audit purposes.
Another benefit is that you’re able to work more quickly as you can script something once (i.e. the creation of a resource) but use it multiple times – so if you need to spin up an additional environment – the overheads are reduced. This means that QA engineers and developers can focus their time and energy on other innovations or on additional business feature development.
Another thing you’re empowered to do as a QA engineer with a good grounding in DevOps is getting involved with setting up build and release pipelines.
Pipelines also have the potential to be source controlled, depending on the tools you’re working with and the benefits of doing so are much like the benefits you get when you source control your infrastructure – e.g. increased audit trail, better change management options, etc. Having a clear understanding of how your application or service is deployed, whether you get that insight from building the deployment pipeline or observing it, helps you as a QA engineer to understand the most opportune time to run various subsets of your automated testing.
You’re able to configure different quality gates into your pipeline which will help you to run the right suite of tests at the right juncture. You want to run your automated tests for regression checking whenever there are new changes to the code base without making it onerous or time-consuming for the team or release cadence and understanding how to configure a pipeline means all of the options of the CI tool you’re using are clear and available to you.
There are many more concepts and approaches that I’ve learned whilst upskilling in DevOps and platform engineering that have made me a stronger QA professional, unfortunately, I don’t have the time to delve into all of them. The TLDR is DevOps facilitates speed, accuracy, and innovation.
In software development, increased speed can be synonymous with reduced quality – taking continuous testing and IAC approach prevents that from being the case and improves the quality of your deliverables, and lowers the risk of delivery. So, it makes sense that it’s an area more and more Quality Engineers are getting involved with and I encourage you to do some research and exploration of this topic!
Article written by Lindsay Strydom, Lead QA at ASOS.com