Task: Implement Test Scripts
Implement Test Scripts to validate a Build of the solution. Organize Test Scripts into suites, and collaborate to ensure appropriate depth and breadth of test feedback.
Disciplines: Test
Purpose

To implement step-by-step Test Scripts that demonstrate the solution satisfies the requirements.

Relationships
Steps
Select Test Cases to implement

Select a set of Test Cases to develop into detailed, executable Test Scripts. 

Work with Role: Project Manager and Role: Developer to determine which Test Cases need detailed Test Scripts during the current iteration. At a minimum, select Test Cases for requirements that are planned in the current or next iteration.

Perform each subsequent step in this task for each Test Script.

Design the Test Script

Sketch an outline of the Test Script as a logical sequence of steps. Review the data requirements of the Test Case, and determine if existing data sets are sufficient, or if you need to develop new test data for this Test Script. Examine Supporting Requirements that apply to this Test Script, and note where they affect the expected results of a step.

If available, review an Artifact: Build that implements the scenario, or demonstrates similar functionality.

Select an implementation technique for this design. At a minimum, determine if the Test Script will be manual or automated. If the Test Case is well understood, it's best to implement an automated Test Script without first writing a manual procedure. However, if the Test Case is new or novel, writing a manual Test Script can help validate the design of the test and aid collaboration with other team members. See Guideline: Programming Automated Tests for more details about this decision.
Implement the executable Test Script

Develop a detailed, procedural Test Script based on your design. Use a request-response style that declares an exact input, and expects an exact output.

Explain the pre-conditions that must be met before running this Test Script. Use temporary test data or put parameters in your script for data values. Ensure that each post-condition in the Test Case is evaluated by steps in the Test Script.

Define specific test data

Specify data values that are specific to the Test Script or reference existing test data. For example, instead of specifying "a prime number", indicate an actual value such as "3."

If the Test Script uses a dataset (such as a file or database), add the new test data to it and parameterize the Test Script to retrieve values from the dataset. Otherwise, add executable test data values to the steps of the Test Script. This applies to both manual and automated scripts.

Identify and minimize dependencies between test data used or modified by other Test Scripts. Note dependencies in the Test Script.

If necessary, create containers for your test data sets, and separate the production data from generated data.

Organize Test Scripts into suites

Collect tests into related groups. The grouping you use depends on your test environment. Since the system under test is undergoing its own evolution, create your test suites to facilitate regression testing, as well as system configuration identification.

For help with test suite organization, see Guideline: Test Suite.

Verify Test Script implementation

Run the Test Script to verify that it implements the Test Case correctly. For manual testing, conduct a walkthrough of the Test Script. For automated tests, verify that the Test Script executes correctly and produces the expected result.

Verify that the Test Script meets the criteria in Checklist: Test Script.

Add or update the Test Script(s) in configuration management.

Share and evaluate Test Scripts

Walk through the new or refined Test Scripts with the Role: Developer responsible for the related scenarios. Optionally, the Role: Stakeholder or Role: Analyst also participates.

Seek agreement that the Test Scripts correctly evaluate the expected results of the test, and that you understand the implementation of the requirements. If the scenario is already implemented (such as in a developer workspace), walk through a representative set of the Test Scripts using an implementation of the system.

More Information