To keep up with the demands of a competitive market, QA and development teams must find more effective ways to assure and improve the quality of their product without losing speed. In this post, we’ll explore modular testing, one facet of the Continuous Testing Manifesto, and learn how modular testing contributes to a fast, reliable QA strategy.
Scalability and manageability are two critical concerns for high-performing QA teams. One effective way to create a scalable test suite is to adopt a modular testing system. Modular tests are tests designed to be reusable and editable, streamlining both test writing and test suite management.
How to Build Modular Test Flows
The most valuable tests are those which are broadly applicable across a variety of functions. If you find yourself copying and pasting test steps, you’re creating more work for yourself in the long run; every time you need to update one of those tests, you’ll have to go through the entire cloned set and update them manually. Instead, aim for a modular system that allows you to reuse tests in multiple flows, but manage them centrally.
Start by identifying the common user flows in your application. Most of the time, the common parts will be built upon to allow you to get into the right state for your application. This applies for both automated and manual test suites. If using automation, make sure to have a common library of states you can reuse to get into the correct state. If using manual testing, you will need to find a test case management system that supports composable tests.
Adding Value Strategically: QA Testing Utility Pyramid
Modularity isn’t just about how test cases are managed and executed, but also which tests are prioritized. If starting from scratch with a new process, start with small, manageable chunks with a focus on providing the most valuable feedback. Build your test suite in the following order for greatest effect:
Smoke tests cover the top three to five flows through your application. An example of an e-commerce site’s smoke test suite would be: login, sign up, checkout. Choose whatever might cause a headline in a newspaper (or an email to the CEO) if it broke.
Happy path tests are similar to smoke tests, but somewhat less important. Generally they are the most common paths through your application.
Regression tests check for bugs that people have already reported. These issues should not surface again in the future. Add a test to your suite — whether a unit test or not — to make sure it doesn’t.
Edge cases that don’t fit within the above categories and generally aren’t in the common user flow. They have less value, so you should leave them until last. Be advised that there is a nearly infinite number of edge cases and depth you drill into. Note that issues that get reported are bugs, and fall into the above category (regression tests), if accepted. Edge case testing looks for, and protects against, possible bugs.
The Benefits of Modular Testing
Taking a modular approach to QA makes the entire test suite more efficient and faster. Tests can be managed centrally, reducing the overall workload for the QA team when test cases must be written or updated.
Jitjatjo manages QA for their restaurant workforce application by using a modular testing scheme within Rainforest. Nearly every test case they create can be applied to multiple different user flows, browsers and devices, minimizing the QA time investment to achieve the level of coverage needed. When test cases needed to be updated, Jitatjojo’s QA engineer only has to update the master test case, and all other instances of the test case will be updated as well.
“Rainforest allows us to create a test that we can run over and over. Any time we want to test that flow, we gain the efficiencies back,” says Dominic Esposito, Jitjatjo’s Head of Product. “Any Rainforest test case that we write becomes extremely efficient. We’re saving 25-30% of our QA time by leveraging Rainforest.”