Standard for Software Unit Testing
|Publication Date:||1 January 1987|
Inside the Scope
Software unit testing is a process that includes the performance of test planning, the acquisition of a test set, and the measurement of a test unit against its requirements. Measuring entails the use of sample data to exercise the unit and the comparison of the unitÕs actual behavior with its required behavior as speciÞed in the unitÕs requirements documentation.
This standard deÞnes an integrated approach to systematic and documented unit testing. The approach uses unit design and unit implementation information, in addition to unit requirements, to determine the completeness of the testing.
This standard describes a testing process composed of a hierarchy of phases, activities, and tasks and deÞnes a minimum set of tasks for each activity. Additional tasks may be added to any activity.
This standard requires the performance of each activity. For each task within an activity, this standard requires either that the task be performed, or that previous results be available and be reveriÞed. This standard also requires the preparation of two documents speciÞed in ANSI/IEEE Std 829-1983  1 . These documents are the Test Design SpeciÞcation and the Test Summary Report.
General unit test planning should occur during overall test planning. This general unit test planning activity is covered by this standard, although the balance of the overall test planning process is outside the scope of this standard.
This standard may be applied to the unit testing of any digital computer software or Þrmware. However, this standard does not specify any class of software or Þrmware to which it must be applied, nor does it specify any class of software or Þrmware that must be unit tested. This standard applies to the testing of newly developed and modiÞed units.
This standard is applicable whether or not the unit tester is also the developer.
Outside the Scope
The results of some overall test planning tasks apply to all testing levels (for example, identify security and privacy constraints). Such tasks are not considered a part of the unit testing process, although they directly affect it.
While the standard identiÞes a need for failure analysis information and software fault correction, it does not specify a software debugging process.
This standard does not address other components of a comprehensive unit veriÞcation and validation process, such as reviews (for example, walkthroughs, inspections), static analysis (for example, consistency checks, data ßow analysis), or formal analysis (for example, proof of correctness, symbolic execution).
This standard does not require the use of speciÞc test facilities or tools. This standard does not imply any particular methodology for documentation control, conÞguration management, quality assurance, or management of the testing process.