not depend on the extraordinary (near magical) skill of the person creating the test but is based on well understood principles. ISO/IEC/IEEE 29119-4:2015, Part 4 details the standard definitions of test design techniques. The site of test designers offers the LEA (Learn-Exercise-Apply) methodology to support effective learning, exercising and applying the techniques. Automatic test design Entire test suites or test cases exposing real bugs can be automatically generated by software using model checking or symbolic execution. Model checking can ensure all the paths of a simple program are exercised, while symbolic execution can detect bugs and generate a test case that will expose the bug when the software is run using this test case. However, as good as automatic test design can be, it is not appropriate for all circumstances. If the complexity becomes too high, then human test design must come into play as it is far more flexible and it can concentrate on generating higher level test suites. References Software testing