Types Of Software Testing Techniques

There are two main categories of software testing techniques: 

  1. Static Testing Techniques are testing techniques which are used to find defects in Application under test without executing the code. Static Testing is done to avoid errors at an early stage of the development cycle and thus reducing the cost of fixing them. 
  1. Dynamic Testing Techniques are testing techniques that are used to test the dynamic behavior of the application under test, that is by the execution of the code base.  The main purpose of dynamic testing is to test the application with dynamic inputs- some of which may be allowed as per requirement (Positive testing) and some are not allowed (Negative Testing). 

Static Testing Techniques 

As explained earlier, Static Testing techniques are testing techniques that do not require the execution of a code base. Static Testing Techniques are divided into two major categories: 

  1. Reviews: They can range from purely informal peer reviews between two developers/testers on the artifacts (code/test cases/test data) to totally formal Inspections which are led by moderators who can be internal/external to the organization. 
  1. Peer Reviews: Informal reviews are generally conducted without any formal setup. It is between peers. For Example- Two developers/Testers review each other’s artifacts like code/test cases. 
  1. Walkthroughs: Walkthrough is a category where the author of work (code or test case or document under review) walks through what he/she has done and the logic behind it to the stakeholders to achieve a common understanding or for the intent of feedback. 
  1. Technical review: It is a review meeting that focuses solely on the technical aspects of the document under review to achieve a consensus. It has less or no focus on the identification of defects based on reference documentation. Technical experts like architects/chief designers are required for doing the review. It can vary from Informal to fully formal. 
  1. Inspection: Inspection is the most formal category of reviews. Before the inspection, The document under review is thoroughly prepared before going for an inspection. Defects that are identified in the Inspection meeting are logged in the defect management tool and followed up until closure.  The discussion on defects is avoided and a separate discussion phase is used for discussions, which makes Inspections a very effective form of reviews. 
  1. Static Analysis: Static Analysis is an examination of requirement/code or design with the aim of identifying defects that may or may not cause failures. For Example- Reviewing the code for the following standards. Not following a standard is a defect that may or may not cause a failure. There are many tools for Static Analysis that are mainly used by developers before or during Component or Integration Testing. Even Compiler is a Static Analysis tool as it points out incorrect usage of syntax, and it does not execute the code per se. There are several aspects to the code structure – Namely Data flow, Control flow, and Data Structure. 
  1. Data Flow: It means how the data trail is followed in a given program – How data gets accessed and modified as per the instructions in the program. By Data flow analysis, You can identify defects like a variable definition that never got used. 
  1. Control flow: It is the structure of how program instructions get executed i.e conditions, iterations, or loops.  Control flow analysis helps to identify defects such as Dead code i.e a code that never gets used under any condition. 
  1. Data Structure: It refers to the organization of data irrespective of code. The complexity of data structures adds to the complexity of code. Thus, it provides information on how to test the control flow and data flow in a given code. 

Dynamic Testing Techniques 

Dynamic techniques are subdivided into three categories: 

1. Structure-based Testing: 

These are also called White box techniques. Structure-based testing techniques are focused on how the code structure works and test accordingly. To understand Structure-based techniques, We first need to understand the concept of code coverage.  

Code Coverage is normally done in Component and Integration Testing. It establishes what code is covered by structural testing techniques out of the total code written. One drawback of code coverage is that- it does not talk about code that has not been written at all (Missed requirement), There are tools in the market that can help measure code coverage. 

Leave a comment

Your email address will not be published. Required fields are marked *