No matter what agile development approach an organisation embraces, continuous testing has become crucial throughout the product development life cycle to enable the rapid release of quality software that delivers on expectations and supports the business’s strategy.
However, there are several challenges and roadblocks to be overcome with continuous testing in an agile environment, says Greg Harrowsmith, Pre-Sales at CASA Software.
In an agile environment, there is a complete shift in how software is developed, tested and consumed. Contrary to waterfall approaches agile testing shifts left and commences early in the process; adopting a fail first approach ensures that by the time the minimum viable product is released, it aligns with organisational requirements, and functions as expected.
However, if you are starting from scratch, you may not have the necessary data, test data and many endpoints or services may not be available or have yet to be developed.”
Testing itself can be considered a roadblock in agile environments, he says. In time constrained environments, it is a balance between numbers and time, so exhaustive testing becomes problematic. Moreover, as the application matures the number of test cases increases, and test pack creep becomes the biggest headache.
This is often compounded by a Testing Centre of Excellence that is operating in a waterfall and manual manner. This, of course, slows things down.
A data management and data security policy, or test data management policy, is crucial for compliance and risk mitigation, as well as accelerating testing and development. TDM enables testers to quickly locate, secure, design, create and provision fit for purpose test data and generate synthetic test data to deliver fast accurate testing of the application. An effective TDM Policy means you can have the right data at the right time and in the right quantity.
Another crucial enabler in continuous testing is Agile Requirements Designer, ARD a model-based tool that supports visual requirement and test set design with built-in intelligence to assist teams to define what to test and how much testing is required.
Agile Requirements Designer clarifies requirements, removes ambiguity, and overcomes the problem of teams interpreting application requirements differently by making use of diagrams that represent requirements as mathematically precise visual flows—and add accuracy to requirements engineering.
Business analysts, developers and testers can use ARD to model workflows, user inputs and requirements within a single model that provides all members of the agile team with a single pane of truth to work from and feed into.
It helps testing teams to define test coverage and create test cases – ensuring the minimum number are used to provide maximum coverage of the application’s features and processes while guaranteeing quality at every point. Therefore, test case creep is minimised enabling all stakeholders to be clear on what can and cannot be tested.
Furthermore, TCoEs relying on model based intelligent test case architectures can accelerate testing and give an overview of what is, has, or can be tested ensuring the quality of the application meets the necessary standards,” he says.
He notes that ARD could drive a cultural shift. It changes the way people work because it is a lot more collaborative. If not implemented or used correctly, organisations might not be able to leverage the full benefits from it.
Another enabler for continuous testing is Service Virtualisation, SV which allows agile teams to capture and simulate the behaviour of constrained or unavailable systems for faster parallel testing. SV removes roadblocks, eliminating the issue of unavailable endpoints or extensions that are costly or constrained. This yields many benefits including creating the ability for many different levels of development and testing to be conducted at the same time accelerating development.