Let’s Learn Test Design Together

Welcome to the new world of test design. Test design is one of the most important phase in the software testing lifecycle. Building a house or software is unthinkable without proper design. Poor test design often leads to poor software. Software testing techniques with appropriate design help you write better test cases and optimize testing processes.

In order to support the software testing community, we offer books and white papers for learning, we offer exercises to improve your knowledge, we offer effective test design tools for your daily work, we established the Test Design Manifesto. Accordingly, we suggest following our Learn-Exercise-Apply (LEA) methodology.

As a first step we, suggest to read the award winning book on traditional test design. Then, the book revolutionize your way of thinking regarding testing, everything you have known so far about test design. If you join to the community you can reach many exercises and our free tools for your daily work. At present, the number of registered test-designers is 2,776.

Efficient test design makes applications better and SDLC cost lower 

Bugfix cost after release will be much higher neglecting efficient test design. By applying efficient test design, the quality of code will also be higher.  

The following simple example shows the effective and efficient way of proper test design.

Example SafeMoney Bank app

  • R1 If the client age is greater than or equal to 12 and less than 18 then the client belongs to the junior segment;
  • R2 If the client age is greater than or equal to 18 and less than or equal to 30 and the deposit sum is under EUR 5000 then the client belongs to the student, otherwise to the affluent segment;
  • R3 If the client age is over 30 and the deposit sum is under EUR 10000 then the client belongs to the senior affluent, otherwise to the top affluent segment;
  • The age and deposit values are integers.

Is it possible to design test cases that reveal all of the potential equivalence partitioning or boundary related bugs? The answer is affirmative. We consider 2 cases.

Case 1. Suppose that the tester knows nothing about the programming language, nothing about the code design (see the related pseudocode in the Requirement window), so, the SUT is a black box.

Applying our free GPT
tool the test design results in16 tests.


Case 2. Suppose that before the test design the team was writing pseudocode (see the Requirement window) covering the designed rules to be implemented.

Applying our free GPT
tool the test design results in13 tests.


In both cases, the design time took a couple of minutes. We neither state that the generated test set is unique, nor that is minimal. However, it is reliable, i.e., it reveals all possible logic and BVA related bugs.

If you concentrate on the coverage in the example above (instead of the faults) and make the test design via classification trees together with risk analysis, you need hours for the design (even using tools) and the resulting tests will not be reliable. The message of the example is that choosing the right test design technique is crucial. Especially for safety-critical systems.