Test design in STLC is the third step of the software testing life cycle. Knowing the requirements, scope, and test objectives is necessary for creating a method for how the testing will progress. The test design should have a list of testing priorities and dependencies, high-level manual test cases, and automated scripts when completed.

Why do we need this step?
Test design in Software Testing Life Cycle (STLC) is an essential step that serves multiple purposes. First, it allows the consideration of new testing scenarios. From these scenarios, the types of test cases to include can be considered as you plan options for test execution. Although test execution is just one step in the STLC and happens toward the end, test design sets the stage by devising manual test cases and automated scripts.
Another test design purpose is to present opportunities to save time by considering and resolving dependencies before they can become blockers. Testers are often expected to jump straight into testing without much thought or preparation. However, experienced testers know this approach does not save time. Instead, the team will spend more time deciphering requirements, clarifying acceptance criteria, and determining what to test. Ultimately, test design is important in STLC because when this step is ignored or excluded, the tester spends more time than necessary on discovery with no test cases to execute.
Requirement Analysis vs Test Design
A common saying is that if requirement analysis explains ‘what to test,’ then test design defines ‘how to test.’ Although test design in STLC involves writing test cases, there is more to this step. Test design uses the previous analysis and planning steps to map out or design how the testing objectives will be accomplished. So, requirement analysis allows the tester to understand the project’s needs better, while test design enables the tester to prepare for test execution.
Steps for Test Design in STLC
Step 1 – Create Test Cases
In the previous STLC phase, Test Planning, areas to test were defined according to the project’s objectives, scope, risk, and approach. This information feeds into high-level test case creation. Write test cases as non-specific so they can be reused in future test runs with different inputs. This is also the time to create automated test scripts, which should also be reusable. Select the tests that will save time when automated against performing them manually.
Step 2 – Prioritize Test Cases
Now you have created test cases, you will want to prioritize them. Priorities can be based on the overall testing approach. For example, if the project follows a risk-based approach, you could prioritize high-impact and failure risk tests. Likewise, a process-compliant test case will prioritize industry-specific testing.
Time restrictions can also raise the need for priority setting. As testers, we are often not given adequate time to test properly but are still expected to deliver comprehensive results. When time restrictions are demanding, prioritizing test cases according to project objectives will be beneficial. Defer testing less vital areas of code to save time when under deadline pressure.
Step 3 – Identify Dependencies
The third step is to identify any dependencies required ahead of testing. These may include a test environment, test data, tools, or database access. One way to do this is to consider testing scenarios when test designing in STLC. For instance, are different roles needed to test the system? Do you have admin rights to create roles, or must someone do it for you? Do you need access to third-party programs or API information?

In the scenario, what will pass and fail conditions look like? Is test data available, and can it be manipulated if needed?
Step 4 – Provide Traceability
The fourth step is creating bidirectional traceability between test cases and conditions. This step is essential for two main reasons. First, tracing test conditions to test cases confirms the testing of stakeholder requirements. If issues arise after testing, which can be weeks or months later, it is difficult to recall specifics. Bidirectional traceability can provide a tester with answers to questions that may otherwise be challenging.
The other reason this step is essential is that it makes reporting testing metrics simpler. You will recall that the test team commits to how metrics will be collected and reported during test planning. Bidirectional traceability makes this much easier when using almost any test case management program.
Step 5 – Choose a Technique
Test techniques are usually divided into three categories: white box, black box, and experience based. During test design in STLC, we select one or more test techniques to apply during test execution.
- Equivalence Partitioning and Boundary Value Analysis – This black box test technique involves separating inputs into valid and invalid data types to test for pass/fail situations.
- Decision Table Testing – Decision table testing is another black box test technique. It is a way to visualize complex business rules by creating a table showing different conditions and their outcomes based on input.
- State Transition Testing – This black box test technique is similar to decision table testing because here, too, a table is created to show outcomes. However, instead of using business rules, it outlines different steps within a process.
- Experience Based – This technique can be performed as white or black box testing, depending on the tester’s experience within a system. It utilizes error guessing, exploratory testing, and checklist-based testing to ensure broader test coverage.
Tips for Success in STLC Test Design
- Remember priorities – If you are unsure about a test case’s priority, refer back to the overall priorities of the project. If you are still unsure, use the information you gathered in the requirement analysis to discuss with the relevant contact.
- Remember expectations – After test planning, an expectation of what the test team will deliver is set. Schedules are created, and metrics are defined. If expectations cannot be met, it’s essential to communicate this as soon as possible.
- Stay focused – When performing test design in STLC, it’s easy to get distracted or feel overwhelmed by everything that needs to be done, especially when depending on someone else to complete a task before you can proceed. Instead, stay focused by referring back to your test plan and the project requirements.
Conclusion
Test design is an essential step in the STLC that defines ‘how to test.’ It involves creating test cases and identifying any dependencies for test execution. Test design is a preparation step that will save time for the test team during test execution. While it may feel overwhelming, reviewing previous stages of requirement analysis and test planning can resolve most questions the tester may have.
About the writer
Faith Quinn
Faith Quinn is a Lead QA Engineer with more than a decade of QA experience, including PCI and SOX.
All Faith Quinn's articles
