The Different Testing Techniques Used in Software Testing

Software Testing

Software testing techniques help you to design better cases. Moreover, testing techniques help reduce the number of test cases to be executed while increasing test coverage. This article will help you to know different testing techniques used in software testing.

10 Different Testing Techniques Used in Software Testing

Boundary Value Analysis

This analysis is based on testing at the boundaries between partitions. It includes maximum, minimum, inside or outside boundaries, typical values or error values. Moreover, this testing method complements equivalence partitioning. The idea is that if a system works correctly for these special values then it will work correctly for all values in between.

Choose test cases at the boundary of these sets: 00000, 09999, 10000, 99999, 10001.

Equivalence Partitioning

This technique allows you to divide a set of test condition into a partition which should be considered the same. Moreover, this testing method divides the input domain of a program into classes of data from which test cases should be designed. The key goal is to complete the test coverage and to lessen duplication.

Partition system inputs and outputs into ‘equivalence sets’. If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are < 10,000, 10,000 – 99, 999 and > 10, 000.

Decision Table Based Testing

Test cases are designed with a combination of inputs that have logical conditions. The decision table is also called a Cause-Effect table. There are four areas, namely, the condition stub, the condition entry, the action stub, and the action entry.

Moreover, each column of the table is a rule that specifies the conditions under which the actions named in the action stub will take place. Steps to create a decision table are,

  • Enlist the inputs in rows
  • Enter all the rules in the column
  • Fill the table with different combination of inputs and
  • In the last row, note down the output against the input combination.

State Transition

In this technique, changes in input conditions change the state of the Application Under Test (AUT). Moreover, tester tests the behaviour of an AUT. Furthermore, in this technique, the testing team provides both positive and negative input test values for evaluating the system behaviour.

Error Guessing

This testing is based on guessing the error which can prevail in the code. Moreover, it is an experience-based technique where the test analyst uses his experience to guess the problematic part of the testing application. Important points to remember under Error Guessing are,

  • The test uses the previous experience of testing similar applications.
  • Understanding of system under test
  • Knowledge about implementation errors
  • Remembering previously troubled areas and
  • Evaluate historical data and test results.

Use Case Testing

This testing helps the tester to determine which test scripts are executed on the entire system from the beginning to the end of each transaction. Therefore the steps for execution are,

  • Identify all scenarios from Use Case
  • Then for each scenario define at least one test case and the condition set for that test case to be executed
  • Finally, for each scenario, determine the test data for the test.   Use Case Testing

Ad Hoc Testing

Under this category, testing is done based on skills, intuition, and experience. An example of ad-hoc testing is exploratory testing where tests are dynamically designed, executed, and modified.   

Black Box Testing

This technique of testing is done without having any knowledge of the interior workings of the application. The tester is unaware of the system architecture. Moreover, he does not have access to the source code.

Furthermore, in a black box test, the tester will interact with the system’s user interface by providing inputs and examining outputs. While doing so he won’t know how and where the inputs are worked upon.

Advantages of Black Box Testing

  • It is well suited and efficient for large code segments.
  • You don’t require code access
  • Through visibly defined roles the user’s and developer’s perspectives are clearly differentiated.
  • Moderately skilled testers will be able to test the application without prior knowledge of implementation, programming language, or operating systems.

White Box Testing

In white box testing, a detailed investigation of internal logic and structure of the code is done. It is otherwise also called glass testing or open-box testing. Here a tester needs to have knowledge about the internal workings of the code.

Software Testing

Moreover, a tester looks inside of the source code to find out which unit/chunk of the code is behaving inappropriately.

Advantages of White Box Testing

  • Based on the tester’s knowledge of the source code, it becomes easier to find out which type of data will help in testing the application effectively.
  • It is easier to optimize the code.
  • Extra lines of code can be removed which can bring in hidden defects.
  • As the tester will have knowledge about the code, maximum coverage is achieved during test scenario writing.

Gray Box Testing

This technique of testing the application is done having limited knowledge of the internal workings of an application. Moreover, in gray box testing, the tester has access to design documents and the database. With this knowledge, the tester can prepare better test scenarios while making a test plan.

Advantages of Gray Box Testing

  • You get the combined benefits of white box and black box testing wherever possible.
  • Instead of relying on the source code grey box testers rely on interface definition and functional specifications.
  • With limited information, a grey box tester can design excellent test scenarios especially around communication protocols and data type handling.
  • This test is done from the viewpoint of the user and not the designer.


Test design techniques help every software development project to improve its overall quality and effectiveness. User Acceptance Test (UAT) also falls under this category, being the most defining test design technique.

Software testing is very significant from the viewpoint of user-satisfaction. The above 10 different software testing techniques can be employed for efficient performance testing.