Chapter 5. Module (Unit) Testing

Up to this point we have largely ignored the mechanics of testing and the size of the program being tested. However, large programs (say, programs of 500 statements or more) require special testing treatment. In this chapter we consider an initial step in structuring the testing of a large program: module testing. Chapter 6 discusses the remaining steps.

Module testing (or unit testing) is a process of testing the individual subprograms, subroutines, or procedures in a program. That is, rather than initially testing the program as a whole, testing is first focused on the smaller building blocks of the program. The motivations for doing this are threefold. First, module testing is a way of managing the combined elements of testing, since attention is focused initially on smaller units of the program. Second, module testing eases the task of debugging (the process of pinpointing and correcting a discovered error), since, when an error is found, it is known to exist in a particular module. Finally, module testing introduces parallelism into the program testing process by presenting us with the opportunity to test multiple modules simultaneously.

The purpose of module testing is to compare the function of a module to some functional or interface specification defining the module. To reemphasize the goal of all testing processes, the goal here is not to show that the module meets its specification, but to show that the module contradicts the specification. ...

Get The Art of Software Testing, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.