Successful DevOps needs automated processes throughout the software delivery life cycle. It relies on a culture and environment where building, testing and releasing software can happen rapidly, frequently and reliably.
Businesses, Development, Operations and IT teams aim for faster delivery, greater stability and higher quality IT systems to gain a competitive edge.
That’s where DevOps comes in. Having Development, Test and Operations perfectly combine with one another whilst reducing restrictions, barriers between the teams and transitions can lead to high quality products being produced quickly.
DevOps is not about cutting corners, forgetting good practice or reducing quality assurance activities. It’s rather doing things with minimal touch points between separate teams and individuals, automating where both possible and beneficial to do so. It’s leveraging the value of continuous testing and creating build, deploy test scenarios that work.
To ensure high quality products, automated unit testing and Test Driven Development (TDD) (or similar) can be used to ensure that the code works as designed and can be checked in to the latest release. Continuous integration and continuous testing is used to ensure there is no breaking or regression of code. This means that code can be integrated on demand and tested dozens of times a day.
Automated build, deploy test scenarios means the automated regression packs are vital and need to have a good depth and breadth of tests. The selection of what to test and what not to test with what data is where many teams go wrong. A lack of experience with DevOps and trying to apply traditional automation approaches can leave Use Cases and objects untested, opening up quality risks for the product.
It must be recognised that the automated tests must be written in a robust and effective way to ensure quality. This is also where I see many teams failing as the effort required to maintain the tests and the test framework becomes a large overhead because they have not been architected correctly.
Automation is critical in DevOps, but it is important to realise that not everything can or should be automated. This is where experienced DevOps testers play a vital role. Often it is more efficient or more effective to test manually – either using a test script or via exploratory testing. This therefore minimalises cost and maximises efficiency.
The challenge of continuous testing with the right test scope, right test data and optimised amount of both automated and manual tests is a tough one. Getting this right by engaging with a professional testing consultancy, well versed in DevOps can generate a huge return on investment by practical yet helpful advice and coaching.
nFocus are a Microsoft DevOps Gold Partner. If you would like more information or to discuss how nFocus can help you – call us on 0370 242 6235 or visit our contact us page here.
Topics: Testing in DevOps