Very often people tend to get confused between Unit Testing and Module Testing and as a result, use both terms interchangeably. The fact is that these two testing techniques are different as Unit Testing is conducted during the development phase while Module Testing is done once the particular function is fully developed. On these lines, this article tries to provide the reader an insight into Module Testing.
Defining Module Testing
Testing of modules, which are completely developed pieces of rational source code that can ideally be evaluated by driving a few function signatures, is known as Module Testing.
Requirement Of Module Testing
These days, the programs that are written while developing a software are huge and complex. It is practically not possible to test the various parts of a big software all at once. Therefore arises the need to break it down into self-contained units that can be tested as a fully developed function. This task is achieved through Module Testing.
Types Of Module Testing
When it comes to Module Testing, each module has to be combined or integrated with the next one. There are two main ways of achieving this integration. These are:
- Non-incremental Module Testing — Herein, all modules are tested independently of each other. Once the testing is complete, the various modules are combined and tested as a whole program. The main drawback of this type of testing is that when a flaw is detected in the complete program, it again needs to be broken down into modules to locate the culprit. This means a lot of rework.
- Incremental Module Testing — Starting with the first module, each subsequent module is added to the collection that has already been tested. This way any flaw can be detected at the source itself. Also, each module is tested many times this way which makes for a sound software.
Approaches To Combining Modules in Module Testing
There are two basic approaches that can be utilized while combining modules, these are:
- Top-down Approach — In top-down approach the main module is the starting point. To this focal point, the subordinate modules are added one at a time. In the case of such integration, stubs are required for the minor modules.
- Bottom-up Approach — In this approach, the starting points are the independent modules that require no others. The main modules, then add to it, one at a time. Here the main modules are those that are connected to others. In order to complete such integration or combination, drivers are required to complete testing.
From the above discussion it is quite clear that Module Testing is imperative to finding bugs that exist in each individual module. Also, it an effective way of removing each minuscule bug that interferes with smooth running of the program. Module Testing is the best way of testing large software so that the final launch product performs accurately and meets business requirements. But, clearly one should not confuse themselves with thinking that it is the same as Unit Testing. Both Module Testing and Unit Testing are two separate techniques that aim to find bugs in the system but are executed at a different time of the developmental lifecycle.
Originally published at www.professionalqa.com.