Others will need to be linked with small driver or stub procedures that simulate the behavior and interfaces of related application modules. If your modules were prototyped, as discussed in the previous section, the prototype environment can easily be used as a unit test Unit tests will greatly improve the quality of your program. They also accelerate the development of your program, since unit testing allows individual modules to be tested before the entire program is complete. Unit tests are especially valuable when several programmers are independently developing modules for a program. If each programmer can develop unit tests for their own modules, integrating the programmers' work later is greatly simplified.
Unit tests are also valuable after the integration takes place.
At that phase in the development, adding buggy code will probably negatively affect several programmers. Thoroughly testing new features and bug fixes to modules helps to maintain the quality of the overall application program. In the X world, unit testing is very useful for testing interoperability and portability. Individual modules can be tested on different platforms or against a variety of X servers and window managers. While unit testing can never replace system level testing, it always helps.