Horseback archer

How modular regression helps QA teams hit moving targets

Using test automation with the right framework, you can execute your tests repeatedly and frequently, and that adds to your application's testing coverage. But test automation brings two challenges: How do you maintain tests when your applications tend to change frequently? And how do you determine test issues or code defects? 

The answer to both questions is to use modular regression, a manual testing technique that addresses both issues. 

With modular regression, you manually create tests in a user workflow pattern. The idea is to make the tests small and focused on distinct functions. Once you've built test cases to cover a workflow, you combine and edit them to create the workflow. The edited test case becomes part of a specific workflow, while the "mother" test remains untouched and available for reuse.

How mobile testing differs from traditional testing

"Do it now, fix it later" doesn't work

I can't count the number of times I've seen software development teams shoot themselves in the foot by claiming that it just takes too long to organize QA tests. The effort is massive, and there isn't enough time or staff to do it right. So they just keep adding tests. It's like creating a huge snowball at the top of a hill while your unsuspecting customer stands in the peaceful valley below.

Testers mash, smash, and keep building up that snowball of new tests, regardless of the sticks, rocks, and debris added during creation. Eventually, that snowball becomes unstoppable as it rolls over everything in its path, even as the development team plugs their ears and turn their backs on the issue. In the end, the customer is buried with defects that all of those random tests failed to find.

Creating workflow tests from "ingredients"

The best testing coverage comes from a combination of manual testing and effective automated tests. Using both allows test coverage for back-end functions, as well as GUI-based front-end testing with a human user interacting with the application. The diagram below offers a visual example of how to create modular manual test cases for regression testing and testing automation development:

How manual regression tests can be used to create automated test suites.

A modular regression example

In this example, the manual modular test is written as an "ingredient." Each box is a test case that is executable itself or that you can combine to create a workflow. Each modular test is saved and then copied to create a new test to handle a variation of the main test.

The test team builds out as many workflows with variations as needed to test both the functional areas and the end-user workflow of the application. Do this, and your application's testing coverage will improve, and your QA testers will spend less time rewriting and recreating the same tests and more time finding defects.

Test coverage based on end-user workflows

To deliver higher-quality applications, software development teams must test real-life end-user workflows. One problem for QA teams is that there's never enough time or resources to execute manual tests rapidly or frequently enough. The effort required to maintain a solely manual testing effort becomes cumbersome and ineffective over time.

Manual modular regression tests, when combined in different ways, create end-user workflows based on role, user, or other objectives. You can write test modules to test expected workflows and combine them to cover negative scenarios.

Automating the ingredients

Automated tests execute more reliably when they're written as small, specific tests with a limited number of verification points. Why? Because the more complex the test code, the more difficult it can be to maintain or troubleshoot.

I've personally spent days picking through automated test code trying to determine whether the defect found is in the application or in the test itself. I can retest manually, but sometimes performance- or load-related issues don't reproduce manually. Also, as a QA tester, I don't have the luxury of time to duplicate testing efforts.

Automating modular manual test cases ensures less maintenance and improved automation project success. Automating full workflows creates links between modular tests in the correct execution order. Now, instead of having to develop massive, complex code to handle a workflow, test developers can create connections between tests and link them together. This process makes workflow test cases simpler to code, simpler to maintain, and easier to debug.

The end result of not organizing test development into a manageable, maintainable effort is burying customers with defects. Defects create distrust, which soon translates into customers finding new application providers.

Get started with modular regression to keep testing manageable and flowing in a flexible, continuous rhythm. Module regression offers maintainability while enabling a larger amount of test coverage. Do this, and your development team won't be building testing snowballs, and no one will look away when releasing code to a customer.

How mobile testing differs from traditional testing
Topics: Quality