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 specified in the unit's requirements documentation. This standard defines 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 defines 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 re-verified. This standard also requires the preparation of two documents specified in ANSI/IEEE Std 829-1983 [2] 1. These documents are the Test Design Specification 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 firmware. However, this standard does not specify any class of software or firmware to which it must be applied, nor does it specify any class of software or firmware that must be unit tested. This standard applies to the testing of newly developed and modified units. This standard is applicable whether or not the unit tester is also the developer.