(back to Introduction article with links to all parts)
---------- Section 1 ------------
Fundamentals of Testing:
Error (mistaken thinking) cause -> Failure (accepting invalid input) cause -> Defect (problem in code)
Reasons for Errors - Time pressure, inexperienced staff, miscommunication, human fallibility, complexity, new technologies, complex interfaces
Defects root cause - Requirements ambiguity (mistaken thinking)
Types of Defects: functional and non-functional
Testing - show Failures caused by Defects
Bad testing results types: False-positive (we think that we found a defect) and False-negative (we did not find a defect)
Debugging - an activity to search, analyze and fix defects
Types of Test coverage: requirements coverage, structural (design element) coverage, implementation (code) coverage
7 testing principles:
1. testing shows the presence of defects, not the absence
2. exhaustive testing is impossible
3. early testing saves time and money
4. defect cluster together
5. beware of the Pesticide paradox
6. testing is context-dependent
7. absence of errors is a fallacy
Basic elements:
Test Condition - is an item or event of component or system that could be verified by Test Case
Test Cases - set of input values, preconditions, expected results and postconditions developed for Test Condition
Types of Test Cases: high level (no concrete data, only borders/groups) and low level (exact values)
Test Procedure - is Test Case written with Test Steps
Test Suite - a combination of Test Procedures
Test Process:
1. Test Planning (Test Management)
2. Test Monitoring and Test Control (Test Management) with Test Progress
3. Test Analysis - answers the question: what to test?
analyzing documentation:
- requirements
- design and implementation
- implementation of component/system
- risk analysis report
possible types of defects:
- ambiguities
- omissions
- inconsistencies
- inaccuracies
- contradictions
- superfluous statements
4. Test Design - answers the question: how to test (design, prioritized, test data, test environments)
5. Test Implementation - answers the question: do we now have everything in place to run tests
6. Test Execution
7. Test Completion - delivered what planned, documentation done, defects fixed, test summary report, delete cofidential data, lesson learned
Pairing process phases with elements:
Test Analysis -> define Test Conditions
Test Design -> define Test Cases
Test Implementation -> define Test Procedures
Test Work Products - test suites, tests execution schedule, test progress report, test summary report, documents with test conditions, defect reports
Test Basis - what to test (requirements, user stories, use cases)
Good Traceability important to establish between Test Basis and Test Work Products