You are on page 1of 5

Test Design Techniques

The purpose of test design techniques is to identify test conditions and test scenarios through which effective and efficient test cases can be written.Using test design techniques is a best approach rather the test cases picking out of the air. Test design techniques help in achieving high test coverage. In this post, we will discuss the following: 1. Black Box Test Design Techniques

Specification Based Experience Based

2. White-box or Structural Test design techniques

Black-box testing techniques

These includes specification-based and experienced-based techniques. These use external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. Tester needs not to have any knowledge of internal structure or code of software under test. Specification-based techniques:

Equivalence partitioning Boundary value analysis Use case testing Decision tables Cause-effect graph State transition testing Classification tree method Pair-wise testing

From ISTQB Syllabus: Common features of specification-based techniques:

Models, either formal or informal, are used for the specification of the problem to be solved, the software or its components. From these models test cases can be derived systematically.

Experienced-based techniques:

Error Guessing 1

Exploratory Testing

Read Unscripted testing Approaches for the above. From ISTQB Syllabus: Common features of experience-based techniques:

The knowledge and experience of people are used to derive the test cases. Knowledge of testers, developers, users and other stakeholders about the software, its usage and its environment. Knowledge about likely defects and their distribution.

White-box techniques
Also referred as structure-based techniques. These are based on the internal structure of the component. Tester must have knowledge of internal structure or code of software under test. Structural or structure-based techniques includes:

Statement testing Condition testing LCSAJ (loop testing) Path testing Decision testing/branch testing

From ISTQB Syllabus: Common features of structure-based techniques:

Information about how the software is constructed is used to derive the test cases, for example, code and design. The extent of coverage of the software can be measured for existing test cases, and further test cases can be derived systematically to increase coverage.


The main thing about specification-based techniques is that they derive test cases directly from the specification or from some other kind of model of what the system should do. The source of information on which to base testing is known as the test basis. If a test basis is well defined and adequately structured we can easily identify test conditions from which test cases can be derived. 2

The most important point about specification-based techniques is that specifications or models do not (and should not) define how a system should achieve the specified behaviour when it is built; it is a specification of the required (or at least desired) behaviour. One of the hard lessons that software engineers have learned from experience is that it is important to separate the definition of what a system should do (a specification) from the definition of how it should work (a design). This separation allows the two specialist groups (testers for specifications and designers for design) to work independently so that we can later check that they have arrived at the same place, i.e. they have together built a system and tested that it works according to its specification.

Black-box Test Design Techniques The test development process Test case specification, test design, test execution schedule, test procedure specification, test script, traceability. Categories of test design techniques Black-box test design technique, specification-based test design technique, white-box test design technique, structure-based test design technique, experience-based test design technique. Specification-based or black box techniques Boundary value analysis, decision table testing, equivalence partitioning, state transition testing, use case testing. Experience-based techniques Exploratory testing Test Design Techniques o Specification-based/Black-box techniques o Experience-based techniques I) Specification-based/Black-box techniques Equivalence partitioning Boundary value analysis Decision table testing State transition testing Use case testing 3

Equivalence partitioning o Inputs to the software or system are divided in to groups that are expected to exhibit similar behavior o Equivalence partitions or classes can be found for both valid data and invalid data o Partitions can also be identified for outputs, internal values, time related values and for interface values. o Equivalence partitioning is applicable all levels of testing Boundary value analysis o Behavior at the edge of each equivalence partition is more likely to be incorrect. The maximum and minimum values of a partition are its boundary values. o A boundary value for a valid partition is a valid boundary value; the boundary of an invalid partition is an invalid boundary value. o Boundary value analysis can be applied at all test levels o It is relatively easy to apply and its defect-finding capability is high o This technique is often considered as an extension of equivalence partitioning. Decision table testing o In Decision table testing test cases are designed to execute the combination of inputs o Decision tables are good way to capture system requirements that contain logical conditions. o The decision table contains triggering conditions, often combinations of true and false for all input conditions o It maybe applied to all situations when the action of the software depends on several logical decisions State transition testing o In state transition testing test cases are designed to execute valid and invalid state transitions o A system may exhibit a deferent response on current conditions or previous history. In this case, that aspect of the system can be shown as a state transition diagram. o State transition testing is much used in embedded software and technical automation. Use case testing

o In use case testing test cases are designed to execute user scenarios o A use case describes interactions between actors, including users and the system o Each use case has preconditions, which need to be met for a use case to work successfully. o A use case usually has a mainstream scenario and some times alternative branches. o Use cases, often referred to as scenarios, are very useful for designing acceptance tests with customer/user participation