Document: NRC Regulatory Guide
Document ID: 87c94eb7-1d88-4510-b85b-196ad319d0ae
Document Type: regulatory_guide
Title: Software Unit Testing for Digital Computer Software Used in Safety Systems of Nuclear Power Plants + HISTORY - HISTORY 08/2012 – DG-1208 , Proposed Revision 1 08/1996 – DG-1057 , Proposed Revision 0 (Rev. 1)
Source: NRC Regulatory Guide Division 1
Source URL: https://www.nrc.gov/docs/ML1031/ML103120751.pdf
Revision Date: 2023-06
Chapter: 
Section ID: RG-1.171
CFR Part: 
CFR Title: 

Content:
documentation, of safety system software. The endorsed consensus standard, ANSI/IEEE Std. 1008-1987, defines a method for planning, preparing, conducting, and evaluating software unit testing that is consistent with the previously cited regulatory requirements as they apply to safety system software. Related Guidance Current practice for the development of software for safety-related applications includes the use of a software life-cycle process that incorporates software testing activities (e.g., IEEE Std. 1074-2006, “IEEE Standard for Developing a Software Life Cycle Process” (Ref. 9), as endorsed by Regulatory Guide 1.173, “Developing Software Life Cycle Processes for Digital Computer Software Used in Safety Systems of Nuclear Power Plants” (Ref. 10)). Software testing, including software unit testing, is a key element in software verification and validation (V&V) activities, as indicated by IEEE Std. 1012-2004, “IEEE Standard for Software Verification and Validation” (Ref. 11), and IEEE Std. 7-4.3.2-2003, “IEEE Standard Criteria for Digital Computers in Safety Systems of Nuclear Power Generating Stations” (Ref. 12). Software testing consists of several levels. NUREG/CR-6101, “Software Reliability and Safety in Nuclear Reactor Protection Systems,” issued November 1993 (Ref. 13), and NUREG/CR-6263, “High Integrity Software for Nuclear Power Plants: Candidate Guidelines, Technical Basis, and Research Needs,” issued June 1995 (Ref. 14), provide a common approach to software testing. This approach includes a three-level test program to help ensure quality in a complex software product or a complex set of cooperating software products (i.e., unit-level testing, integration-level testing and system-level testing such as system validation tests or acceptance tests). ANSI/IEEE Std. 1008-1987 delineates an approach to the unit testing of software that assumes a larger context established by V&V planning and general planning for the application of