DEV Community

Andrew
Andrew

Posted on

Implementing a Continuous Testing strategy for DevOps

Continious Testing

So, before I jump into our Continuous Testing Strategy, I want to cover off why we want to enhance our testing capability.

At the heart of it, it is to reduce the risk of incidents that could cause loss to the business.

As you can see in the above image, the cost to the business increases exponentially the later a bug is found

The expected outcomes we are aiming for are:

1. To support rapid deployment & decision making
2. To manage and maintain an effective risk appetite
3. To define clear roles and accountability for testing


Testing Pyramid

We will use the Test Automation Pyramid as a strategy guide to planning our DevOps Testing Strategy.

Continuous Testing needs to be a key element in our DevOps testing strategy if we want to successfully implement a DevOps pipeline.

Continuous Testing, which is often called shift-left testing, is an approach to software and system testing in which testing is performed earlier in the software development lifecycle, with the goal of increasing quality, shortening long test cycles and reducing the possibility of software defects making their way into production code.

A best practice is to use test automation to eliminate much of the risk that comes with continuous integration and to get quick feedback on application quality. Pairing continuous integration with test automation enables teams to easily test every new code iteration and reduces the risk of errors occurring in Production.

And as you move further up that pyramid, toward manual tests things generally get slower & more expensive.

However, we have to be careful what we choose to automate & where, as this is not always the case, which is why we will be taking a risk based approach & automating where it is sensible to do so.


Test Strategy

And this leads me on to how do we get there ?

I see this as a four-step approach:

Step 1: Setting the Proper Foundations

We needed to understand how the business were currently ensuring the quality of systems and business processes. When and how are applications being tested and how are end-to-end business processes being validated when new technology is deployed?

Step 2: Start with a Project

We wanted to take steps to prove the new approach before making a large-scale investment, and the best way to do that was to identify a project with which to demonstrate the value of testing.

The identified project has a simplified version of the testing capability we want to create, this has been successful and will help pave the way and drive demand for more.

Step 3: Build a Testing Centre of Excellence Programme

We want to establish automated business process validation as a competency. To achieve business value and innovation, the TCOE must be managed the way any business asset is: as an integrated set of repeatable activities focused on producing a positive business outcome. Building a TCOE entails adopting an approach and a technology across the business, but it͛’s more than skill alone. It includes people, processes, technology & tooling – As shown in the image above.

Step 4: Adopt across the business

The single most important aspect to the success of a TCOE is strong executive sponsorship and an executive champion. To move the TCOE forward by effecting change and quantifying the value one project at a time and continue to demonstrate its successes and value through key projects, strong communications and measurable results.

To keep working on the improvements to generate better ROI and establish an environment of quality across the entirety of the business.

Hope this overview of how we plan to implement a Continuous Testing Strategy will help you in your journey as an Engineering Manager / Test Manager πŸ˜‡

Important 😸

I regularly post useful content related to Azure, DevOps and Engineering on Twitter. You should consider following me on Twitter

Discussion (0)