Task: Analyze Test Failure
This task focuses on locating, isolating, and diagnosing test results, and then documenting them effectively.
Purpose

The purpose of this task is to:

  • Investigate the Test Log details, and analyze the failures that occurred during test implementation and execution
  • Correct failures that result from errors in testing procedure
  • Record important findings appropriately
Relationships
InputsMandatory: Optional: External:
  • None
Steps
Examine the Test Logs

Start by gathering the Test Logs output during the implementation and execution of the tests. Relevant logs might come from many sources: they might be captured by the tools that you use (both test execution and diagnostic tools), generated by custom-written routines that your team has developed, output from the Target Test Items themselves, or recorded manually by the tester. Gather all of the available Test Log sources and examine their content. Verify that all of the scheduled testing executed to completion, and that all of the tests were scheduled that should have been.

Capture Nontrivial Incident Data

It is important to capture any anomalous occurrences: even if you can not reproduce or explain them now, subsequent incidents with similar symptoms will eventually provide enough information to help isolate what the fault is behind them.

Log as much detail as you can now, but indicate that the incident can not yet be resolved.

Identify Procedural Errors in the Test

it is pretty common that a number of failures will be as a result of errors introduced during the implementation of the test, or in the management of the test environment. Identify and correct these errors.

If the test has completed abnormally, preventing other tests from being executed, you might need to recover the test close to the point of failure, and continue execution of the remaining tests.

Locate and Isolate Failures

The more diagnosis of the failure that you perform, the more likelihood there will be that the fault will eventually be identified and understood.

Try to isolate the failure by eliminating Target Test Items that are unlikely to be involved in the failure, and look for trends and characteristics in the remaining items, system status, and so on.

If the failure cannot be investigated usefully without reproduction, conduct an analysis of the failure by reproducing it under controlled conditions. Use diagnostic and debugging tools where helpful.

Diagnose Failure Symptoms and Characteristics

Attempt to diagnose the underlying fault using your experience of similar incidents that have occurred.

If required and available, enlist assistance form developers, taking advantage of the developers' internal knowledge of the software to improve the failure analysis.

Identify Candidate Solutions

Based on your previous experience, try to identify candidate solutions. Work with the available developers to get a better understanding of the solution space.

Document Your Findings Appropriately

See Task: Determine Test Results for information on writing effective incident reports and Change Requests.

Evaluate and Verify Your Results

You should evaluate whether your work is of appropriate quality, and that it is complete enough to be useful to those team members who will make subsequent use of it as input to their work. Where possible, use checklists to verify that quality and completeness are good enough.

Have the people who perform the downstream tasks that rely on your work as input review your interim work. Do this while you still have time available to take action to address their concerns. You should also evaluate your work against the key input work products to make sure that you have represented them accurately and sufficiently. It may be useful to have the author of the input work product review your work on this basis.

Properties
Multiple Occurrences
Event Driven
Ongoing
Optional
Planned
Repeatable
More Information