What is test design?
One of the most important goals of testing is a clear advise on quality and risk in such a way that all the parties involved gain confidence in the product. To be able to do this, a tester has to gather information on system behavior. One of the main tools in gathering information is the executing test cases. The results of those cases give information on the system behavior. The main questions are: Which testcases? How many? And how do we get those cases? In answering those questions test design is indispensible.
Designing the right set of test cases is the essential link between the test strategy and the implementation of the test strategy - the tests that are executed. See the picture below for the link between the relevant terms in test design:
The terms and conditions of the assignment determine the time and the effort available for testing. In the Product Risk Analysis (PRA) is determined which parts of the system are most important to test and should be tested more thouroughly. In the test strategy an overview is made of the whole test and how the testing effort is divided between different test varieties to cover all the risks most efficiently. The parts of the test object that are under test and the thouroughness that is used when testing those parts determine the coverage over the test.
The test strategy has to be translated to test cases to implement the test strategy. In many cases, the implementation of the test strategy has to be demonstrated.
How can we design the testcase? This depends on a couple of factors:
- The coverage needed
- The test basis - information on system behavior on which the test cases are based.
- The way the software development process is organized (for instance waterfall vs. Agile)
- The knowledge and experience of the people involved
- The time and budget available to execute the tests
Designing your tests with the TMap Suite has some other advantages:
- When using coverage types when designing your tests you design the test cases with a specific coverage - aimed at finding specific kinds of defects. This enables to test more efficiently.This way we find as many defects with as little test cases as possible.
- You can make the tests more reproducable because they are designed with a standard method
- A standardized way of working makes the tests more independant from the person who is designing and executing those tests.
- When using coverage types, large parts of test design and test execution can be automated - for instance with Model based testing.
Generally, we call someone who designs a test case a tester. Everyone can design a test case - you don't have to be a professional tester. Even a machine can design a test case.
To design test case we need information about system behavior. We call this the test basis and it can consist of, for example, the system requirements, the functional design, the user manual and/or the administrative procedures.
The end product of the test design are the test cases. These can be found in many kinds of documents, but most traditional is the test script.
For the test design to be succesfull you need to implement the test strategy in the most efficient way possible.
For this, the following things help: