01 Reporting And Analyzing Testing - skylerto/Software-Testing GitHub Wiki
Reporting and Analyzing Bugs
Failure, fault, error and incident
Failure
- Observable incorrect behavior of a program. Conceptually relate to the behavior of the program, rather than its code
- A failure occurs when a fault executes
Fault (bug)
- Related to the code. Necessary (not sufficient) condition for the occurrence of a failure
- A fault is the result of an error
- A fault won’t yield a failure without the conditions that trigger it.
- Example: if the program yields 2+2=5 on the 10th time you use it, you won’t see the error before or after the 10th use.
Error
- Cause of a fault. Usually a human error (conceptual, typo, etc.)
- “People make errors”
Incident
- The symptom associated with a failure that alerts the user to the occurrence of a failure
Types of Errors
It is common practise to report all the following types of problems, but remember to specify the type of error you are reporting on the bug report.
- Coding Error: program doesn't do what the programmer whats it to.
- Design Issue: Intended behaviour, but confusing.
- Requirements Issue: Intended behaviour, easy to understand, but fails to meet a specified requirement.
- Documentation/Code Mismatch: Report to programmer and writer.
- Specification/Code Mismatch: method specification doesn't match the code or vice versa.
Bug Reporting
To write a fully effective bug/feature report you must:
- Explain how to reproduce the problem.
- Analyze the problem so that it can be described with a minimum number of steps.
- Write a report that is complete, easy to understand, and non-antagonistic.
- Remember you're trying to sell the programmer on fixing your bug (motivate and overcome objections).
- Investigate, sometimes a failed test can mean many things.
- Write follow-up tests.
- Is the problem new to this release?
- Always report non-reproducible errors, the programmer may be able to figure out the underlying failure (race conditions, data loss, etc.)
Example Problem Report Form
A typical form includes many of the following fields
From QA
- Problem Report Number
- Reported By
- Date Reported
- Program (or component) name
- Release Number
- Version (build) identifier
- Configurations
- Report Type
- Can Reproduce
- Severity
- Priority
- Problem Summary
- Key words
- Problem description and how to reproduce it
- Suggested fix
- Status
From QA Manager
17. Resolution (Pending, Fixed, Cannot reproduce, Deferred, As designed, need info, duplicate, withdrawn)
18. Resolution version
19. Resolved by
20. Resolution tested by
21. Change history
22. Comments
Testing Oracles
- Consistent with History
- Consistent with our Image
- Consistent with Comparable Products
- Consistent with Claims
- Consistent with User's Expectations
- Consistent with Product
- Consistent with Purpose