Archives of Directives

Archive

DOE G 200.1-1 Ch 8, Software Integration and Testing Stage

Functional areas: Information Technology, Software Engineering

This chapter addresses interfaces between and among components of the software product.
g2001-1c8.pdf61.26KB
Version history and related documents

Superseded by

A newer version replaces this document.

View full version history

Document text

Text extracted from the attached file. Refer to the original document for the authoritative version.

Section 1

Software Engineering Methodology Chapter 8.0 Software Integration and Testing Stage Table of Contents Chapter Page 8.0 Software Integration and Testing Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.0-1 8.1 Conduct Integration Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1-1 8.2 Conduct System Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2-1 8.3 Initiate Acceptance Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3-1 8.4 Conduct Acceptance Test Team Training . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4-1 8.5 Revise Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5-1 8.6 Conduct In-Stage Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6-1 8.7 Conduct Software Integration and Testing Stage Exit . . . . . . . . . . . . . . . . . . . . . . . 8.7-1 DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 Chapter 8.0 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.0-1 Stage: 8.0 Software Integration and Testing Stage Description: Software integration and testing activities focus on interfaces between and among components of the software product, such as functional correctness, system stability, overall system operability, system security, and system performance requirements (e.g., reliability, maintainability, and availability). Software integration and testing performed incrementally provides feedback on quality, errors, and design weaknesses early in the integration process. In this stage, software components are integrated and tested to determine whether the software product meets predetermined functionality, performance, quality, interface, and security requirements. Once the software product is fully integrated, system testing is conducted to validate that the software product will operate in its intended environment, satisfies all user requirements, and is supported with complete and accurate operating documentation. Input: The following items provide input to this stage. C Project File C Acceptance Test Plan (draft) C Acquisition Plan C Installation Plan (draft) C Software modules C Requirements Traceability Matrix (expanded) C Project Test File C Development baselines C Transition Plan C Operating Documentation (draft) - Users Manual - Programmers Reference Manual C Training Plan (draft) C Integration Test Plan C System Test Plan C Project Plan C Software Quality Assurance Plan High-Level Activities: The remainder of this chapter is divided into sections that describe specific high- level activities performed during this stage. These activities represent the minimum requirements for a large software engineering effort. Notes are provided, as applicable, to assist in customizing these lifecycle stage DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 Chapter 8.0 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.0-2 High-Level requirements to accommodate the different sizes of software engineering efforts. Activities, The high-level activities are presented in the sections listed below. continued: 8.1 Conduct Integration Testing 8.2 Conduct System Testing 8.3 Initiate Acceptance Process 8.4 Conduct Acceptance Test Team Training 8.5 Revise Project Plan 8.6 Conduct In-Stage Assessment 8.7 Conduct Software Integration and Testing Stage Exit

Section 2

Output: Several work products are produced during this stage. The work products listed below are the minimum requirements for a large software project. Deviations in the content and delivery of these work products are determined by the size and complexity of the project. Explanations of the work products are provided under the applicable activities described in the remainder of this chapter. C Integration Test Reports C System Test Report C Operating Documents (final) - Users Manual - Programmers Reference Manual C Training Plan (final) C Installation Plan (final) C Acceptance Test Plan (final) C Preacceptance Checklist C Security Checklist C Error Reporting and Tracking System (optional) C Project Plan (revised) A matrix showing the work products associated with each high-level activity is provided in Exhibit 8.0-1, Software Integration and Testing Stage Activities and Work Products by Project Size. The matrix also shows which work products are deliverables and whether they are required or optional for small, medium, and large projects. Review Process: Structured walkthroughs are necessary during this stage to validate work products. The activities that are appropriate for structured walkthroughs are identified throughout the chapter. The time and resources needed to conduct the walkthroughs should be indicated in the project resources, schedule, and work breakdown structure. DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 Chapter 8.0 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.0-3 Reference: Appendix C, Conducting Structured Walkthroughs, provides a procedure and sample forms that can be used for structured walkthroughs. Bibliography: The following materials were used in the preparation of the Software Integration and Testing Stage chapter. 1. The Institute of Electrical and Electronics Engineers, Inc., IEEE Standard for Developing Software Life Cycle Processes, IEEE Std 1074-1991, New York, 1992. 2. U.S. Department of Commerce, National Institute of Standards and Technology, Guide to Software Acceptance, 500-180, Washington, D.C., 1990. 3. U.S. Department of Labor, Directorate of Information Resources Management, Systems Engineering Concepts and Procedures Manual, 1988. 4. U.S. Department of Labor, Directorate of Information Resources Management, Systems Engineering Standards Manual, 1988. Exhibit 8.0-1. Software Integration and Testing Stage Activities and Work Products by Project Size DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 Chapter 8.0 Size: L = Large Minimum Requirements: R = Required O = Optional work product M = Medium A = As Appropriate = Completed by reviewer1 S = Small N = Not Applicable Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.0-4 Work Activity Project Work Product Scheduled Size Deliverables L M S L M S 8.1 Conduct Integration Testing R R R Integration Test Materials R R R Integration Test Report R R R 8.2 Conduct System Testing R R R System Test Materials R R R System Test Report R R R Operating Documents (final) Training Plan (final) Installation Plan (final) R R R R R R R R A 8.3 Initiate Acceptance Process R R R R R R Acceptance Test Plan (final) Preacceptance Checklist Security Checklist Error Reporting and Tracking System (optional) R R R A A A O O O 8.4 Conduct Acceptance Test Team Training A A A 8.5 Revise Project Plan R R A R R A Project Plan (revised)

Section 3

8.6 Conduct In-Stage Assessment R R A ISA Report Form N N N1 8.7 Conduct Software Integration and Testing Stage Exit R R A Stage Exit Meeting Summary N N N DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 8.1 Conduct Integration Testing Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.1-1 Activity: 8.1 Conduct Integration Testing Responsibility: Project Team Programmers Description: During software integration, the software components developed by the programming staff, off-the-shelf software purchased from vendors, and reusable code or modules obtained from other sources are assembled into one software product. Each assembly is tested in a systematic manner in accordance with the Integration Test Plan. An incremental approach to integration enables verification that as each new component is integrated, it continues to function as designed and both the component and the integrated product satisfy their assigned requirements. Integration testing is a formal procedure that must be carefully planned and coordinated with the completion dates of the unit-tested modules. Integration testing begins with a software structure where called sub-elements are simulated by stubs. A stub is a simplified program or dummy module designed to provide the response (or one of the responses) that would be provided by the real sub-element. A stub allows testing of calling program control and interface correctness. Stubs are replaced by unit-tested modules or builds as integration testing proceeds. This process continues one element at a time until the entire system has been integrated and tested. Integration testing may be performed using "bottom up" or "top down" techniques. Most integration test plans make use of both bottom-up and top-down techniques. Scheduling constraints and the need for parallel testing will affect the test approach. The bottom-up approach incorporates one or more modules into a build; tests the build; and then integrates the build into the software structure. The build normally comprises a set of modules that perform a major function of the software system. Initially, the function may be represented by a stub that is replaced when the build is integrated. In the top-down approach, individual stubs are replaced so that the top-level control is tested first, followed by stub replacements that move downward in the software structure. Using top-down integration, all modules that comprise a major function are integrated, thereby allowing an operational function to be demonstrated prior to completion of the entire system. DOE G 200.1-1 Software Integration and Testing Stage 5-21-97 8.1 Conduct Integration Testing Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.1-2 Work Products: At the completion of each level of integration testing, a test report is written. The report documents test results and lists any discrepancies that must be resolved before the tested components can be used as the foundation for another integration level. Place a copy of all integration test materials in the Project Test File. A final test report is generated at the completion of integration testing indicating any unresolved difficulties that require management attention. Place a copy of the final Integration Test Report in the Project File. Optional Work Product: A formal reporting system by which detected errors and discrepancies are recorded

Section 4

and fully described is recommended. These reports will help to confirm that all known errors are fixed before delivery of the completed software product. Error reports also help to trace multiple instances of the same error or anomalous behavior, so that error correction and prevention assignments can be implemented. The Quality Assurance representative assigned to the project can provide assistance in developing and using an error reporting/tracking system. Software Integration and Testing StageDOE G 200.1-1 8.2 Conduct System Testing5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.2-1 Activity: 8.2 Conduct System Testing Responsibility: Project Team or Independent Test Team Description: During system testing, the completely integrated software product is tested to validate that the product meets all requirements. System response timing, memory, performance, security, and the functional accuracy of logic and numerical calculations are verified under both normal and high-load conditions. Query and report capabilities are exercised and validated. All operating documents are verified for completeness and accuracy. System testing is conducted on the system testbed using the methodology and test cases described in the System Test Plan. The system testbed should be as close as possible to the actual production system. Either the project team or an independent test team conducts system testing to assure that the system performs as expected and that each function executes without error. The results of each test are recorded and upon completion included as part of the project test documentation. When errors are discovered, they should be reviewed by the test team leader to determine the severity and necessary subsequent action. If appropriate, minor problems can be corrected and regression tested by the project team programmers within the time frame allotted for the system test. Any corrections or changes to the software product must be controlled under configuration management. Major problems may be cause to suspend or terminate the system test, which should then be rescheduled to begin after all of the problems are resolved. Encourage users to participate in the system tests to gain their confidence in the software product and to receive an early indication of any problems from the user's perspective. Inform users that errors and discrepancies may occur during testing and explain the error correction, configuration management, and retest processes. At the successful conclusion of system testing, the software product is ready for installation and acceptance testing. Work Products: Review the draft versions of the operating documents, Training Plan, and Installation Plan. Update the documents as needed. Deliver the final versions of the operating documents, Training Plan, and Installation Plan to the system Software Integration and Testing StageDOE G 200.1-1 8.2 Conduct System Testing5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.2-2 Work Products, continued: owner and user for review and approval. Place a copy of the approved documents in the Project File. Place a copy of all system test materials (e.g., inputs, outputs, results, and error logs) in the Project Test File. Generate a test report at the conclusion of the system test process. The report documents the system test results and lists any discrepancies that must be resolved before the software product is installed and prepared for acceptance testing. Place a copy of the report in the Project File.

Section 5

Software Integration and Testing StageDOE G 200.1-1 8.3 Initiate Acceptance Process5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.3-1 Activity: 8.3 Initiate Acceptance Process Responsibility: Project Manager Description: The acceptance process is used to officially accept new or modified software products that satisfy the project requirements and are fully operational. The initiation of the acceptance process begins after the successful completion of system testing. Prior to the initiation of the acceptance process, review the draft Acceptance Test Plan. Make any additions or changes needed to assure that the test plan reflects the current version of the software requirements. The acceptance process is initiated with the completion of a Preacceptance Checklist. This list helps to ensure that all necessary preacceptance activities have been completed and that the required operating documents were developed and approved. The Preacceptance Checklist includes a section on software security issues. Procedure: Use the following procedure to initiate the acceptance process. C The project manager notifies the Quality Assurance Team assigned to the project that the project is ready to start the acceptance process. C The Quality Assurance Team sends the Preacceptance Checklist to the project manager. C The project manager completes the checklist, obtains the concurrence signature of the system owner (if required), and returns the completed checklist to the Quality Assurance Team. C The Quality Assurance Team schedules an initial acceptance process meeting. More than one meeting may be necessary to accommodate users at different locations or with varying requirements. Work Product: Review the draft version of the Acceptance Test Plan, and update as needed. Deliver the final version of the Acceptance Test Plan to the system owner, user, and other project stakeholders for review and approval prior to conducting any acceptance tests. Place a copy of the approved Acceptance Test Plan in the Project File. The Preacceptance Checklist is completed and submitted to the Quality Assurance Team supporting the project. A sample Preacceptance Checklist is provided on the following pages. Sample Preacceptance Checklist [Software Product Name] Instructions: The project manager must indicate completion of each item with a checkmark and obtain concurrence on the last page. Send a copy of the completed checklist to the Quality Assurance Team assigned to the project. Any deviations from the checklist must be documented and a copy attached to the checklist. 1. Acceptance Test Plan Provided to Quality Assurance and approved. 2. System Documents (e.g., User's Manual and Programmer's Reference Manual) Appropriate system documents have been prepared in accordance with the applicable documentation standards. The system documents have been reviewed and approved by the system owner and other designated approvers. Issues identified during the Stage Exits have been resolved. 3. System Review Inventory System (SRIS) The SRIS form has been updated to reflect the latest version of the software product and was submitted to the site software inventory/repository administrator and the Headquarters SRIS Coordinator. 4. Quality Assurance Support Preparation The Quality Assurance Team has been given access to all portions of the software product required for testing.

Section 6

Software product information has been provided to the Quality Assurance Team. 5. Security The security checklist has been completed by the system owner and forwarded to the site's Computer Protection Program Manager. A sample security checklist is provided at the end of the Preacceptance Checklist. Criteria for determination of mission essentiality have been reviewed and a determination made for the software product. The software is mission essential. 9 Yes 9 No If mission essential, a Continuity of Operations Plan is in place. The plan has been reviewed and approved by the appropriate organizations and personnel. 6. General Requirements Installation of the required hardware and software for all users is fully documented in an Installation Plan. User training is fully documented in an approved Training Plan. Maintenance programmer staff training is fully documented in an approved Training Plan. Configuration management is occurring according to the Software Configuration Management Plan. Data retention criteria have been established according to appropriate recordkeeping requirements. User identification has been assigned. A task assignment has been generated to cover enhancement and maintenance services after acceptance. Sample Preacceptance Checklist (continued) [Software Product Name] 7. Software Requirements All debugging and monitoring facilities have been removed from the production source and load (executable) modules. Appropriate operational area points-of-contact have been consulted and agree that all operational readiness issues have been satisfied. 8. System Testing System testing has been performed on all programs and modules to verify that the following conditions have been met. User-required features have been satisfied (e.g., reports, data entry, data validation, queries). All error conditions specified in the Integration and System Test Plans have been tested and respond to corrective action. All backup, recovery, checkpoint, purge, and restart facilities required to ensure system integrity are operational. Response times have been demonstrated and are in line with the requirements. A production data base has been established. System Owner Concurrence (if required) I concur that all of the above items have been completed, and the system is ready for the acceptance process. Any deviations from the checklist have been documented and approved. ___________________________ System Owner Sample Preacceptance Checklist Security Issues [Software Product Name] 1. Sensitivity and Essentiality The software is: 9 non-sensitive 9 sensitive 9 classified 9 mission essential 2. General Security (all software products) Yes No a. 9 9 Security objectives were established by the system owner. b. 9 9 Security requirements were specified by the project team to support the security objectives. c. 9 9 System design features enforce the security requirements. d. 9 9 Testing was conducted to verify the security design features incorporated into the software product and the results were recorded. e. 9 9 Security tests were conducted satisfactorily or a statement of acceptance of risk was issued by the system owner. f. 9 9 Appropriate data set/file protection rules, authorities, and user identification codes were established by the system owner or as mandated by higher authority. g. 9 9 Access control protection was incorporated into the software product.

Section 7

h. 9 9 All manufacturer generic, test team, temporary, and superfluous passwords were deleted from the software product. i. 9 9 All privacy, freedom of information, sensitivity, and classification considerations were identified, resolved, and established. 3. Classified Software Products Yes No a. 9 9 An approved Security Plan was developed. b. 9 9 For applications running on a classified system, the system owner has provided the required information to the Computer System Security Officer (CSSO) for the Computer Center for inclusion in the security plan. c. 9 9 The security test plan was approved. d. 9 9 The security test was successfully completed. e. 9 9 The software product was certified by the owning organization's CSSO. Software Integration and Testing StageDOE G 200.1-1 8.4 Conduct Acceptance Test Team Training5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.4-1 Activity: 8.4 Conduct Acceptance Test Team Training Responsibility: Project Team Description: If the project team is not conducting the Acceptance Test, training may be required for the personnel performing the testing. The acceptance test participants and their experience with the software product and the operating environment should have been identified in the Acceptance Test Plan. The level of training will depend on the testers' familiarity with the software product and the platform on which the software will run. The advantage of having users acceptance test the software product is that they are the experts most familiar with the business information flow and how the software product must fit into the workplace. It is recommended that the operating documents and other test materials be distributed to the test team prior to the actual start of the acceptance test training. This will give the test team time to become familiar with the software product and the test process and procedures. Software Integration and Testing StageDOE G 200.1-1 8.5 Revise Project Plan5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.5-1 Activity: 8.5 Revise Project Plan Responsibility: Project Manager Description: Once the integration and system tests are completed, determine if the project estimates for resources, cost, and schedule need to be revised. Work Product: Review the Project Plan for accuracy and completeness of all Software Integration and Testing Stage activities and make any changes needed to update the information. Expand the information for the Installation and Acceptance Stage to reflect accurate estimates of resources, costs, and hours. Place a copy of the revised Project Plan in the Project File. Note: A Project Plan is an effective management tool that is recommended for all projects regardless of size. The plan can be consolidated for small projects. Review Process: Conduct a structured walkthrough to ensure that the Project Plan reflects the project's current status and adequately estimates the resources, costs, and schedule for the Installation and Acceptance Stage. The Project Plan is formally reviewed during the In-Stage Assessment and Stage Exit processes. Software Integration and Testing StageDOE G 200.1-1 8.6 Conduct In-Stage Assessment5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.6-1 Activity: 8.6 Conduct In-Stage Assessment Responsibility: Project Manager and Independent Reviewer

Section 8

Description: An In-Stage Assessment (ISA) is an independent review of the work products and deliverables developed or revised during each stage of the project lifecycle. The independent reviewer is typically a member of the Quality Assurance Team who is assigned to the software project and conducts all of the ISAs for the project. An ISA does not require meetings with, or extra work by, the project team. All of the work products and deliverables needed for the review should be readily available in the Project File. Schedule at least one ISA prior to the Software Integration and Testing Stage Exit process. Additional ISAs can be performed during the stage, as needed. Periodic reviews of the integration and system test results and logs are recommended. Provide the reviewer with copies of all work products developed or revised during the Software Integration and Testing Stage including the Project Plan. The reviewer assesses the work products and deliverables to verify the following: C The project is complying with the site's software engineering standards/best practices. C Sound project management practices are being used. C Project risks are identified and mitigated. A description of the ISA process and the ISA report form are provided in the In- Stage Assessment Process Guide. A copy of the guide is provided in Appendix D. Note: An ISA is an effective project management tool that is recommended for all projects regardless of size. Work Product: An ISA report form is prepared by the independent reviewer and is used to identify open issues that need to be resolved in this stage. The report is delivered to the project manager and a copy should be placed in the Project File. Software Integration and Testing StageDOE G 200.1-1 8.7 Conduct Software Integration and Testing Stage Exit5-21-97 Date: March 1996 Software Integration and Testing Stage Page Rev Date: 8.7-1 Activity: 8.7 Conduct Software Integration and Testing Stage Exit Responsibility: Project Manager Description: The Stage Exit is a process for ensuring that projects are on target, within budget, on schedule, and meet the DOE and project standards identified in the Project Plan. The goal of a Stage Exit is to secure the approval of designated key individuals to continue with the project and to move forward into the next lifecycle stage. Schedule the Stage Exit as the last activity of the Software Integration and Testing Stage. It is the responsibility of the project manager to notify the appropriate participants when a project is ready for the Stage Exit process and to schedule the Stage Exit meeting. All functional areas and the Quality Assurance representative involved with the project should receive copies of the work products and deliverables produced in this stage. During the Stage Exit meeting, participants discuss open issues that will impact the Project Plan. The project manager should ensure that an acceptable action plan is developed for handling all open issues. At the conclusion of the meeting, concurrence is needed from the designated approvers to begin the next stage. A description of the Stage Exit process is provided in the Stage Exit Process Guide. A copy of the guide is provided in Appendix E. Note: A Stage Exit is an effective project management tool that is recommended for all software projects regardless of size. For small software projects, stages can be combined and addressed during one Stage Exit. Work Product: A summary of the Stage Exit meeting is prepared by the project manager or a designee and distributed to the meeting attendees. The summary identifies any issues and action items needed to obtain concurrence prior to proceeding to the Installation and Acceptance.

Something wrong with this record? Tell us