You are here

Use manual modular tests for testing automation development

public://pictures/areichertpropix.jpg
Amy Reichert, QA Engineer, RxMxUSA

Automated testing has been touted as the wave of the future for decades and it has had mixed success. The advantage is that testing automation can be executed repeatedly and frequently, which adds to the amount of testing coverage for an application. However, there are two problems: 1) maintaining tests when applications tend to change frequently; and 2) failure analysis, or determining test issues or code defects.

Let's discuss a manual testing technique that addresses both issues. I won't say this will solve all testing automation maintenance needs or analysis time-lags, but it will certainly help both of the above problems exponentially. The technique is called "modular regression."

Modular regression is a manual style of creating tests in a user workflow pattern. It accomplishes several objectives, including making the tests small and focused on distinct functions. Once the test cases are built to cover a workflow, they're combined and edited to create the workflow. The edited test case becomes part of the specific workflow while the "mother" test remains untouched and available for reuse.

[ Get up to speed on quality-driven development with TechBeacon's new guide. Plus: Download the World Quality Report 2019-20 for lessons from leading organizations. ]

We don't have time for that. Or, do it now and fix it later

It pains me how many times I've seen software development teams shoot themselves in the foot, over and over again. Application development teams often claim it takes too long to organize QA tests. The effort is massive, and there isn't enough time or people. Instead, they keep adding tests. It's like creating a huge snowball at the top of a hill while an unsuspecting customer stands in the peaceful valley below. Testers mash, smash, and keep piling on tests regardless of the sticks, rocks, or debris added during creation. The snowball becomes unstoppable as it rolls over everything in its path. Meanwhile, the development team plugs their ears and turns their backs. The customer ends up getting buried with defects that all those random tests failed to find.

[ Get up to speed with TechBeacon's Guide to Software Test Automation. Plus: Get the Buyer’s Guide for Selecting Software Test Automation Tools ]

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 as a human user interacts with the application. The diagram below offers a visual example of creating modular manual test cases for regression testing and testing automation development:

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

Modular regression sample

In this example, the manual modular test is written as an "ingredient." Each box is a test case that is executable itself or can be combined 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 the application by both functional area and end-user workflow. Your application's testing coverage improves, and QA testers spend less time rewriting and recreating the same tests, and more time focusing on finding defects.

Test coverage based on end-user workflows

Delivering higher quality applications means software development teams must test real-life end user workflows. One problem for QA teams is there's never enough time or resources to execute manual tests rapidly or frequently enough. Maintaining a solely manual testing effort becomes cumbersome and ineffective over time. Manual modular regression tests, when combined in a variety of ways, create end-user workflows based on role, user, or other objectives. Test modules can be written to test expected workflows, as well as combined to cover negative scenarios.

Automating 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 if the defect found is in the application or in the test itself. I can re-test 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 create connections between tests and link them together. The 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. Modular regression keeps testing manageable in a flexible, continuous rhythm. It provides maintainability while providing a larger amount of test coverage. The development team no longer has to look away when releasing code to a customer.

[ Learn how to apply DevOps principles to succeed with your SAP modernization in TechBeacon's new guide. Plus: Get the SAP HANA migration white paper. ]