What is Module Testing?

Module testing is a process of testing the individual subprograms, subroutines, classes, or procedures in a program. Instead of testing whole software program at once, module testing recommend testing the smaller building blocks of the program.

Module testing is largely a white box oriented. The objective of doing Module, testing is not to demonstrate proper functioning of the module but to demonstrate the presence of an error in the module.

Module testing allows to implement parallelism into the testing process by giving the opportunity to test multiple modules simultaneously.

Why to do Module Testing

Module Testing is recommended because

  • Probability of identifying errors or bugs on smaller chunks of program becomes higher
  • Multiple modules can be tested simultaneously and hence supports parallel testing
  • Complexity of testing can be easily managed

Module Testing strategies

  • For Module Testing, designing a test case is an important segment. While designing test cases for a module test, a tester has to take two things into consideration.
    • Specification for the module
    • The module's source code
  • Analyze the module's logic by using one or more of the white box methods, and then supplement these test cases by applying black box methods to the modules specification
  • Once the test case is designed, the next step is to combine the module for testing. For this, the method used is either an Incremental or non-Incremental method.
  • Non-incremental method- all modules are tested independently. First, it combines all modules and then test the whole program
  • Incremental method- each module is tested first and then gradually incremented to the tested collection. It does a step wise retesting
  • Incremental Testing, there are two approaches – Top down and Bottom Up testing
  • To execute the module with the selected data, it requires a driver for supplying the test data, monitoring the execution and capturing the results

Tips for Module Testing

Here are few tips to consider before performing Module Testing.

  • Review test cases before using
  • Avoid confusion over source of discrepancies
  • Use Automated Test tools
  • Examine variables that should be unchanged
  • To avoid self-tests swap modules
  • Re-use the test cases

Unit Testing vs Module Testing

Module Testing
Unit Testing
  • Module tests are a collection of tests written by a tester after some code has been written by a developer
  • Unit tests are a collection of tests written by a developer during the software development process
  • Module testing might be involve combining the units test
  • Unit testing might be testing units in isolation

Challenges in Module Testing

  • Non-incremental testing requires more work
  • Misunderstanding test doubles
  • Debugging test often
  • Need to understand the code

Summary:

  • Module testing (unit testing) is a process of testing the individual subprograms, subroutines, classes, or procedures in a program
  • The advantage of Module testing is that the probability of identifying errors or bugs on smaller chunks of program becomes higher
  • For module testing method used is either an Incremental or non-Incremental method.