2.5.3 The project shall define and document or record the acceptance criteria and conditions for the software. NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement. Class A_SC A_NSC B_SC B_NSC C_SC C_NSC D_SC D_NSC E_SC E_NSC F G H Applicable? Key: A_SC = Class A Software, Safety-Critical | A_NSC = Class A Software, Not Safety-Critical | ... | - Applicable | - Not Applicable Software development teams can better organize their development tasks if they have well-defined plans for software activities. Customers and project personnel must include pre-determined criteria in these plans to evaluate the software work products. These criteria include clearly understanding what the customer wants the product to do and what constitutes an acceptable software product. The development team documents the agreed-to acceptance criteria and the planned activities in a software acceptance plan contained in the Software Development/Management Plan (see SWE-102) or a separate Verification and Validation (V&V) Plan, as a formal means of guiding these activities. "Acceptance criteria" are defined as (1) those criteria that a system or component must satisfy in order to be accepted by a user, customer, or other authorized entity (ISO/IEC/IEEE 24765:2010 Systems and software engineering – Vocabulary 230), and, (2) those criteria, including performance requirements and essential conditions, which must be met before project deliverables are accepted (A Guide to the Project Management Body of Knowledge 302). The purpose of this requirement is to cause the software development team to work with the customer up front to define the criteria to be used for software acceptance. The acceptance criteria and timing can help to do the following: The software acceptance criteria definition is a key element in the overall software planning process. The software acceptance criteria need to address both software and data. If the software work product is delivered in phases, each delivery may have its own acceptance criteria. Acceptance activities for software development begin with the planning and the development of acceptance criteria during the Formulation phase of the project. These activities and acceptance criteria can be documented in the Software Development/Management Plan (see SWE-102 ) or a separate Software V&V Plan. As understanding of the system grows, and the requirements are better understood, the acceptance criteria can be reviewed to assure they are up to date and consistent with the system being built. They typically conclude with the system acceptance review late in the Implementation phase of the project (see the entrance and exit criteria for the Systems Acceptance Review in Topic 7.9-Entrance and Exit Criteria ) For software acquired via the acquisition process (see Topic 7.3 - Acquisition Guidance ) the acceptance criteria development follows this guidance. The final criteria must be put into the contract statement of work. The paragraphs below deal with the acceptance criteria creation and documentation. Acceptance testing, which generates the information used to assess the satisfaction of the acceptance criteria, is also discussed. Establish Acceptance Criteria The software lead engineer works with the customer and the software development team to develop the appropriate acceptance plans and activities to ensure that functional requirements are properly translated into system acceptance criteria. A well-defined acceptance plan will help the software development team and the software assurance team to identify the resources required to properly support the effort. This in turn contributes to efficient and cost-effective development and V&V activities, where many of the acceptance activities occur. The team defines acceptance criteria during the Formulation phase of the software development life cycle (see SWE-019) to assure sufficient time to prepare for and perform the acceptance activities. The software development team and the customer work together to ensure that they do the following: The software lead engineer works with the software team (including the software assurance personnel) to develop appropriate product reviews, tests and any audits necessary. This work includes identifying: Acceptance criteria may include: Acceptance Testing Acceptance Testing is the formal testing conducted to determine whether a software system satisfies its acceptance criteria, which enables the customer to determine whether or not to accept the system. Acceptance testing is designed to determine whether the software work product is fit for use. Acceptance testing of the software work product typically forms a major portion of the acceptance plan. Once developed, the team runs the acceptance testing, commonly called a test suite, against the supplied input data and conditions. The team typically uses an acceptance test procedure to direct the software testing personnel. The software testing personnel are typically but not always independent of the project team. Software assurance personnel observe the tests. The team compares the obtained test results with the expected results. If the results match, or fall within a previously agreed-to band or tolerance, the test suite is said to pass, and the work product is acceptable. If not, the work product may either be rejected or accepted on conditions previously agreed to between the customer and the software development team. The planning for acceptance testing may consider: Acceptance testing activities include: Acceptance tests may also be used as regression tests prior to a production release. This means that new acceptance tests must be created for each iteration of the software build. Criteria for acceptance testing are often documented in the verification matrix of the software verification plans. (See SWE-028.) Verification results that are used in software acceptance reviews are typically documented in software verification reports. (See SWE-030.) Test results for software work products subjected to acceptance testing must be documented in a test report or an acceptance data package. (See SWE-118 and SWE-119 for related information.) After a software work product is designed, coded, and tested against its requirements, if any deviations from the requirements and acceptance criteria still exist, they will have to be negotiated with the customer to determine if they can be accepted, or if they must be fixed prior to the customer accepting the product. The customer must review and agree to the acceptance test plan. The entrance criteria and the exit (success) criteria are developed and documented during the acceptance planning activities (see Topic 7.9 ) for the System Acceptance Review. No additional guidance is available for small projects. The community of practice is encouraged to submit guidance candidates for this paragraph. Tools to aid in compliance with this SWE, if any, may be found in the Tools Library in the NASA Engineering Network (NEN). NASA users find this in the Tools Library in the Software Processes Across NASA (SPAN) site of the Software Engineering Community in NEN. The list is informational only and does not represent an “approved tool list”, nor does it represent an endorsement of any particular tool. The purpose is to provide examples of tools being used across the Agency and to help projects and centers decide what tools to consider. No lessons learned have currently been identified for this requirement.
See edit history of this section
Post feedback on this section
1. Requirements
1.1 Notes
1.2 Applicability Across Classes
X - Applicable with details, read above for more | P(C) - P(Center), follow center requirements or procedures2. Rationale
3. Guidance
4. Small Projects
5. Resources
5.1 Tools
6. Lessons Learned
SWE-034 - Acceptance Criteria
Web Resources
View this section on the websiteUnknown macro: {page-info}