There are two types of configuration audits: the Functional Configuration Audit (FCA) and the Physical Configuration Audit (PCA). Configuration audits are performed for all releases; however, audits of interim, internal releases may be less formal and rigorous, as defined by the project.
Per NASA/SP-2007-6105, Rev 1, NASA Systems Engineering Handbook, the FCA "examines the functional characteristics of the configured product and verifies that the product has met, via test results, the requirements specified in its functional baseline documentation approved at the Preliminary Design Review (PDR) and Critical Design Review (CDR). FCAs will be conducted on both hardware or software configured products and will precede the PCA of the configured product."
The PCA "(also known as a configuration inspection) examines the physical configuration of the configured product and verifies that the product corresponds to the build-to (or code-to) product baseline documentation previously approved at the CDR. PCAs will be conducted on both hardware and software configured
Audit plans, including goals, schedules, participants, contractor participation, and procedures are documented in the configuration management (CM) plan (see SWE-103).
When planning audits, it is important to remember that audits are samplings, not a look at every record. It is also important to remember that auditors should not have any direct responsibility for the software products they audit.
The basic steps in an audit are:
The Department of Defense Configuration Management Guidance Handbook includes tables of activities for audit planning, preparation, performance, and close-out (generating the audit report and addressing corrective actions). These tables address both the Government and contractor roles in these activities and can be tailored as applicable for a project.
The SMA (Safety and Mission Assurance) Technical Excellence Program (STEP) Level 2 Software Configuration Management and Data Management course taught by the Westfall Team suggests that the following be included in an FCA:
- "An audit of the formal test documentation against test data.
- "An audit of the Verification and Validation (V&V) reports.
- "A review of all approved changes.
- "A review of updates to previously delivered documents.
- "A sampling of design review outputs.
- "A comparison of code with documented requirements.
- "A review to ensure all testing was accomplished."
- Additional sample testing or rerunning of tests, as appropriate for the project.
The STEP 2 course suggests that the following be included in a PCA:
- "An audit of the system specification for completeness [and removal of all to-be-determineds (TBDs)].
- "An audit of the FCA report for discrepancies & actions taken.
- "A comparison of the architectural design with the detailed design components for consistency.
- "A review of the module listing for compliance with the approved coding standards.
- "An audit of the manuals for format completeness & conformance to system & functional descriptions."
Additional audit topics to consider include:
- As coded, software products reflect their design.
- User documentation complies with standards as specified.
- Activities have been conducted according to applicable requirements, plans, and contract.
NASA/SP-2007-6105, NASA Systems Engineering Handbook, includes the following table showing the data typically reviewed during each of these audits:
Consider the following options when deciding when to conduct audits:
- At the time a product is released.
- Prior to delivery to assure that all delivered products are complete, contain the proper versions and revisions, and that all discrepancies, open work, and deviations and waivers are properly documented and approved; can be FCA or PCA.
- At the end of a life cycle phase per Capability Maturity Model Integration (CMMI).
- Prior to the release of a new or revised baseline.
- As the project progresses to prevent finding major issues at the end when it's more costly to fix them and to identify systemic issues. such as meeting coding standards that could affect large segments of the project.
- Incrementally for very large, complex systems focusing on specific functional areas with a summary audit held to address status of all identified action items (FCA).
When reporting the results of an audit, it is important to remain unbiased and include positive observations as well as issues found. Findings are grouped as major or minor depending on the range and effect of the non-conformance.
Non-conformances result in corrective actions that address and correct the root cause of the non-conformances. Follow-up needs to be conducted to ensure the corrective actions were completed and are effective.
Consult Center Process Asset Libraries (PALs) for Center-specific guidance and resources related to configuration audits.
Additional guidance related to configuration audits may be found in the following related requirements in this Handbook: