News

How to optimise test automation on Agile projects – Part 1

In the first part of this article, I will share some key things that we consider at Triad Group Plc, one of the UK’s leading digital solution consultancies, when creating a test automation strategy for our projects. These insights all share a focus on supporting CI/CD pipelines and delivering quick ROI from automation testing in Agile projects – something that’s increasingly important in most businesses today. My personal experience in this area has been gained working on client projects in both the public and private sectors for over nine years.

 

Common questions or challenges that arise include;

What levels of automation do we need to support Continuous Integration/Continuous Deployment (CI/CD) pipelines?

How can we get a return on investment (ROI) from our automation testing?

How do you implement automation testing in Agile projects?

Why are our automation tests flaky and why do they keep failing?

How should I choose an automation testing tool for my project?

 

Why use automation testing?

In Agile software development, small teams work on product increments and deploy to production as often as possible. This suits continuous deployment and as a result test automation becomes even more important, due to its ability to provide feedback quickly to the development team on the health of the application.

In order to get quick feedback, automated tests need to be executed as often as possible, ideally after every code change that is pushed to the repository. Tests need to be fast, delivering consistent and reliable results.

The major challenge for Quality Analysts (QAs) on any Agile project is the amount of regression testing that needs to be performed before each release; this can also be addressed using automated tests.

If you can co-ordinate robust Agile software development with automated testing, which is continuously deployed, your swift feedback loop will identify fundamental issues earlier, optimise development efficiency and get you to your final destination quicker.

It’s worth noting that while this approach to testing may be more expensive initially, the savings secured elsewhere by removing wasted development almost always make such a strategy more cost-effective.

 

Preparing a test automation strategy

The best test automation strategies are result-oriented and fit well with the team and organisation as a whole. There is no one-size-fits-all when it comes to this strategy, so you need to tailor it to each particular project/application, ensuring that it serves the intent and helps to attain the team’s objectives.

It’s a good idea to consider the team size and environments available for testing while preparing a test automation strategy.

 

Defining objectives

It’s important to define clear objectives for your test automation strategy. In addition to influencing the strategy, well-defined objectives help set-up parameters to measure progress and success against. The objectives could be varied, such as; get fast feedback for the developers, reduce testing efforts in later sprints, enhance confidence in the code through test coverage (Unit, Integration, UI, performance, etc.), faster time to market, cost-effective testing, reusable tests, supporting continuous integration and much more.

Agreeing these objectives can also be used as an opportunity to engage and secure buy-in from other technology teams and the wider business.

 

Selecting suitable automation tools

In addition to paid for tools, it’s worth considering the free open-source test automation tools available on the market. The most important factors in selecting the right tool, will be linked to what your testing objectives and team requirements are.

Here are some key parameters to consider when shortlisting a tool:

  • Compatibility of the tool with the project tech stack (e.g. support for containerisation)
  • Internal and external support for the tool
  • Users of the tool (QA, dev, PM, etc.)
  • Easy interface to create and maintain tests
  • Support for different testing techniques (BDD, TDD, etc.)
  • Support for different testing levels (Unit, Integration, UI)
  • Support for running tests in headless mode
  • Cost of licensing, maintenance and training

 

Venu Botla

Senior consultant, Triad Group Plc