Test Plan and Scripts (40)
Description:
In this building block, the state and the technology vendor develop system functional test documents based on specifications documents, which include system requirement specifications, interface control documents, and the business requirements document (see System Design Documents building block). The test plan and scripts include the higher-level description (test plan) and the detailed test steps (scripts), which are developed after the test plan. Tests are performed in the following order:
- Unit tests. Single subsystem tests do not involve system interfaces, and they are typically carried out by the system developer.
- Integration test(s). The interface is tested between two separate systems, typically carried out by the developers of the two systems in coordination.
- System acceptance or end-to-end tests. The complete system is tested by developers and overseen by the state using testers or skilled individuals as end users.
- Small-scale operational trial or user acceptance tests. These tests check the user experience, potentially based on user-experience guidelines. These tests should use typical end users—i.e., members of the public who will use the system—to gauge their experience with the system.
Details:
System developers generally create unit test scripts, though the state may develop higher-level test plans and check the system developer’s test plans and scripts for compliance with the system requirement specifications. Developers of any two systems that interface should perform integration tests together, with oversight by the state. The state develops and oversees system acceptance testing—also called end-to-end testing—and small-scale operational trials. Test plans are high-level documents that state the goal of the test, the system elements to be tested, the general testing approach, the approach to data storage, and any pass/fail testing criteria. Test scripts are low-level documents that should explain exactly what to do in a step-by-step manner and describe what data to record during the test.
Primary Use:
Specify system testing procedures.
Best Practices/Lessons Learned:
- Testing should be done in the order listed above.
- Leave enough time for testing and for correcting issues discovered during testing.
- Correct all issues discovered during testing and retest the system.
- Small-scale operational trials should act like live system operations and may transition to live operations when ready.
- Refer to system specification documents for correct system behavior.
State Government Context and Assumptions:
This task should be completed by the state and technology vendors together. Unit testing begins as soon as software units are developed. Integration testing begins when both system interfaces are complete. End-to-end testing begins after unit testing and system integration testing are complete, and the small-scale operational trial begins after issues discovered in end-to-end testing have been corrected.