Task: Execute Developer Tests
This task describes how to run and evaluate a set of tests designed to validate that the component is working properly before more formal testing is performed on the component.
Disciplines: Implementation
Purpose
  • To verify the specification of a unit.
  • To verify the internal structure of a unit.
Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
    • None
    Outputs
      Process Usage
      Steps
      Getting Started
      Purpose To prepare for implementing the test. 

      Implementation and modification of components takes place in the context of configuration management on the project. Implementers are provided with a private development workspace (see Task: Create Development Workspace) in which they do their work, as directed by Artifact: Work Orders. In this workspace, source elements are created and placed under configuration management, or they are modified through the usual check out, edit, build, unit test, and check in cycle (see Task: Make Changes). Following the completion of some set of components, as defined by one or more Work Orders and required for an upcoming build, the implementer will deliver (see Task: Deliver Changes) the associated new and modified components to the subsystem integration workspace, for integration with the work of other implementers. Finally, at a convenient point, the implementer can update, or re-baseline, the private development workspace so it's consistent with the subsystem integration workspace (see Task: Update Workspace).

      Unit means not only a class in an object-oriented language, but also free subprograms, such as functions in C++.

      For testing each unit (implemented class), perform the following steps:

      Execute Unit Test
      Purpose To execute the test procedures, or test scripts if testing is automated. 

      To execute unit test, the following steps should be followed:

      1. Set up the test environment to ensure that all the needed elements, such as hardware, software, tools, data, and so on, have been implemented and are in the test environment.
      2. Initialize the test environment to ensure all components are in the correct initial state for the start of testing.
      3. Execute the test procedures.

      Note: Executing the test procedures will vary depending on whether testing is automated or manual, and whether test components are needed as either drivers or stubs. 

      • Automated testing: The test scripts created during the Implement Test step are executed.
      • Manual execution: The structured test procedures developed during the Structure Test Procedure task are used to manually execute the test.
      Evaluate Execution of Test
      Purpose To determine whether the tests completed successfully and as desired.
      To determine if corrective action is required. 

      The execution of testing ends or terminates in one of two conditions:

      • Normal: all test procedures (or scripts) execute as intended.

      If testing terminates normally, then continue with the step Verify Test Results.

      • Abnormal or premature: the test procedures, or scripts, did not execute completely or as intended. When testing ends abnormally, the test results may be unreliable. The cause of termination must be identified, corrected, and the tests re-executed before additional test tasks are performed.

      If testing terminates abnormally, continue with the step Recover from Halted Tests.

      Verify Test Results
      Purpose To determine if the test results are reliable.
      To identify appropriate corrective action if the test results indicate flaws in the test effort or work products. 

      When testing is complete, review the test results to ensure the test results are reliable and reported failures, warnings, or unexpected results were not caused by external influences (to the target-of-test), such as improper setup or data.

      If the reported failures are due to errors identified in the test work products or due to problems with the test environment, take the appropriate corrective action to recover from halted tests and then execute the testing again.

      If the test results indicate the failures are genuinely due to the target-of-test, then this task is essentially complete and typically either the Task: Submit Change Request or the Task: Analyze Runtime Behavior should now be performed.

      Recover From Halted Tests
      Purpose To determine the appropriate corrective action to recover from a halted test.
      To correct the problem, recover, and execute the tests again. 

      There are two major types of halted tests:

      • Fatal errors-the system fails; for example, network failures, hardware crashes, and the like.
      • Test Script Command Failures-specific to automated testing, this is when a test script cannot execute a command or a line of code.

      Both types of abnormal termination to testing may exhibit the same symptoms:

      • Unexpected actions, windows, or events occur while the test script is executing.
      • Test environment appears unresponsive or in an undesirable state, such as hung or crashed.

      To recover from halted tests, perform these steps:

      1. Determine the actual cause of the problem.
      2. Correct the problem.
      3. Set up the test environment again.
      4. Initialize the test environment again.
      5. Execute the tests again.
      More Information