Test Design Techniques

Categories of Test Design Techniques


Test Design Techniques; Static Technique; Dynamic Technique;Reviews; Static Analysis;

Whitebox test design technique; Blackbox test design technique, Experience-based testing technique;                                                                                                                                                                                                                                                                                                      
What is a Test Design Technique?

Test Design Technique is a procedure used to derive and identify minimum number of test cases with maximum coverage while testing software.

What are the 4 steps of Test Development Process?

    1. Analyse Basis
    2. Generate Test Conditions
    3. Design Test Cases
    4. Produce Test Procedures

What are the benefits of using Different Techniques?

   1. Different Failures gets found by different people.

   2. More effective and efficient testing is achieved.

How to choose Test Design Techniques?

          Techniques should be chosen based on:

             a. External factors
                    -  Risks
                    -  Customer contracts
                    -  Regulatory requirements
                    -  Time constraints
                    -  Budget constraints

             b. Internal factors
                    -  Models used
                    -  Type of system
                    -  Experience of staff
                    -  Life-cycle model used

Classification of Test Design Techniques?

          Test Design Techniques are broadly classified into:

     a. Static Technique
                    – Testing of system without execution of software.

     b. Dynamic Technique
        – Testing of system with execution of software.

Static Technique is sub-divided into:
    i. Reviews
      Types of Reviews:
        a. Informal Review - No procedures for documenting is needed. It can be effective.    
        b. Walkthroughs - Objective is to gain understanding.                                              
        c. Technical Review - Objective is to gain consensus.   
        d. Inspection - is the most formal review process where all the plans and tasks are well documented 

            i.e., involves Entry/Exit criteria. Its main objective is to find defects.                                                                                                                      
    ii. Static Analysis
      Static Analysis by tools mainly aims for finding:                                                                                                     
               a. rule violations of the coded lines in software program.                                                                                                    
               b. data flow analysis defects.                                                                                                         
               c. control flow analysis defects.                                                                                                   
Dynamic Technique is sub-divided into:
    1. Blackbox test design techniques / Specification based / Behavioral
    2. Whitebox test design techniques / Structure based / Structural
    3. Experience based test design techniques

Blackbox Technique:

  1. Boundary Value Analysis
    – Test cases are designed based on boundary values of each partition.




    Case Study 1
    (Range: 2 - 64)
    2, 3
    63, 64
    Case Study 2 
    (Range: 1 - 99)
    1, 2
    98, 99
    In the above table, we have 2 Range in case study 1 and 2 to understand how Boundary Value Analysis works. Let us observe Case Study 1, the range of valid data is 2 to 64, where the condition can be tested against all the boundary values as displayed in columns: Invalid and Valid. This technique is conducted because bugs tend to lurk near boundaries.                                                                                                                                                                                                                                                                                                                                
  2. Equivalence Partitioning
    – Test cases are designed to cover each partition at-least once.




    Case Study 1
    (Range: 2 - 64)
    (Any number less than 2)
    (Any number greater than 64)
    Case Study 2
    (Range: 1 - 99)
    (less than 1)
    (greater than 99)
    In the above table, we test with an assumption that if something of the same range works for one value, it must work for all. This approach is designed to overcome exhaustive testing (exhaustive testing is impossible), thus introduces an effective process in limited test cases.                                                                                                                                                                                                                                                                                                                            
  3. Decision Tables
    – Test cases are designed based on a table displaying all combinations of inputs with their respective outputs.

    Conditions (Inputs) Rule 1 Rule 2 Rule 3 Rule 4
    New Customer? (15%) No No Yes Yes
    Coupon Applied? (20%) No Yes No Yes
    Actions/Expected Results (Outputs):
    Discount (%) 0 20 15 35
    Decision Table is an excellent tool for recording complex business rules and serves as an wonderful way to create test cases and cover all flows in the requirement.                                                                                                                                                                                                                                                                                                                          
  4. State Transition
    – Test cases are designed to execute valid and invalid state transitions. State Transition Diagram represents a specific entity at a time. Its describes the states of an entity, the events that affect the entity, the transitions of the entity from one state to another, and actions that are initiated by the entity. 
  5. Use Cases
    – Test cases are designed to execute user scenarios. Its purpose is to find defects by using the product just like the way it is expected to be used in the real world. Use Case is a scenario where system is tested and used by actors, to accomplish specific goals.
  6. Cause Effect Graphing

Whitebox Technique:

  1. Statement Testing
          Statement Coverage = Number of statements executed * 100%
                                                   Total number of statements

  1. Decision Testing
          Decision Coverage = Number of decision outcomes executed * 100%
                                                Total number of decision outcomes

  1. Condition Coverage Testing
    Basic Coverage = Number of coverage items executed * 100%
                                      Total number of coverage items
Experience based Technique:

1. Error Guessing
- Aim is to enumerate a list of possible errors.
- Test cases are designed to attack these errors, based on experience.

2. Fault Attacks
- Also known as Attack testing.
- Test cases are designed to identify the potentially vulnerable areas of the software that may cause failures.

3. Exploratory Testing
- It is not adhoc. It is a planned technique.
- It is a concurrent test design, test execution, test logging and learning technique based on a test charter containing test objectives and time-limit/pressure.

About Author of this post

Suparna Khamaru

I am a Software Test Engineer, who is quite passionate about testing and finding bugs. I am from Bangalore, India.

Feel free to support me or reach me out on suggestions and improvements at My Linkedin Profile