Software Testing Methods

We have discussed black box and white box testing techniques in section 3. Here we take a look at some more testing methodologies:

  • Grey Box Testing
  • Incremental Testing
  • Thread Testing

Grey Box Testing

When black box testing(3.1) methodologies and white box testing methodologies(3.2) are used in a combination for software testing then it is called gray or grey box testing. This form of testing will look into logical as well as functional aspects of the software. In this form of testing the tester has little and not in-depth knowledge about what the code is supposed to do. Ideally, the tester should know about the internal data structures and algorithms.

Grey box testing is carried out when there is a need to test both sides of the software(functional and internal in one go). The tester should be able to write test cases that can test the software thoroughly with the help of data that can check all possible internal logic as well.

Grey box testing is a very intelligent form of testing where the tester is expected to know the functionality, architecture of the software, how data would flow and how exceptions would be handled. For big size projects it is always better to incorporate automation testing to check functionality and the user interface of the application as this would save a lot of time and the tester will not feel too stressed.

Incremental Testing

Incremental testing comes into picture once the tester has completed unit testing. This form of testing is used in integration of testing where there is need to check how various independent modules interact amongst themselves. In this form of testing the developers are asked to integrate the modules systematically using stubs or drivers. This form of integration testing methodology is referred to as incremental testing. Incremental testing can be classified into three types:

  1. Top down integration: In this case the integration of the modules is done from top to bottom. All those modules that are unavailable are replaced by stubs.
  2. Bottom up integration: In this case the integration of the modules is done from bottom to up. All the modules that are not available are replace by drivers.
  3. Functional incremental: this form of testing takes place as per the functional specification documents. The integration of the modules and their testing takes place as per the defined functional specification.
The main advantage of incremental testing is that it can help in uncovering defects very early in time. The disadvantage is that development of stubs and drivers can take time.

Thread Testing

Thread testing methodology is used in testing applications based on client server architecture. A thread is the smallest unit of work that can be carried out by the system. During the initial stages of integration of a system it is very important to know if the system will be able to carry out the required functional tasks as per the requirement. It is very important to check if the software will be able to carry out all transactions as per the requirement. The ideal way of carrying out thread testing is to integrate threads incrementally first at subsystem level and then at the system level and then tested.




Your Software Testing Training
Table of Contents