Errors, Defects, Failures & Root Causes: 7 Principles of Testing
Errors, Defects, Failures & Root Causes: 7 Principles of Testing
Errors, Defects, Failures & Root Causes: 7 Principles of Testing
7 principles of testing
1. Testing shows the presence of defects, not their absence
The point of testing is not to prove that the system works but rather that the ulterior errors exist
within a domain of acceptability. Testing is not a proof of correctness.
7. Absence-of-errors is a fallacy
No system will be 100% error proof.
Test Process
There are some good practices on the testing process, but there is no universal solution. These test
processes must have coverage criteria (which can work as key performance indicators) clearly defined
for them to be useful.
In the case of a mobile app, each platform the app will run on becomes a requirement of the test basis.
Each requirement another element of the test basis. Test Processes ISO Standard 29119-2
The test process can be broken down in the following “main” group of activities:
Test planning
Test monitoring and control
Test analysis
Test design
Test implementation
Test execution
Test completion
Even though these activities look sequential, they can be performed iteratively depending on the
development requirements (ex. Agile working on fast cycles).
Test Planning
Test planning is defining the objectives of the tests (imposed by context).
Test Analysis
Test analysis is the specification of “what to test”:
Requirement specifications (ex. business, functional, system, user stories, use cases)
Design and implementation information (ex. diagrams & implementation information,
specifications)
Risk analysis reports
Ambiguities
Omissions
Inconsistencies
Inaccuracies
Contradictions
Superfluous statements
Test Design
Test design is the specification of “how to test”
Test Implementation
Test implementation is the development of testware, as well a sequencing of test cases into procedures.
If test design looks into what to test, test implementation asks “do we have everything needed to run
the tests?”
Test Execution
Recording specifications of units being tested (ID, software, test tools and testware)
Executing tests
Logging results
Comparison between expectations and results
Analyze unexpected results
Report defects
Re-doing tests based on result analysis
Test Completion
Giving closure to the test cycle, in Test Completion we collect data from the completed test activities
and re-evaluate our tools and processes. Test completion occurs when the project reaches a milestone.
Psychology of Testing
A Tester must have the intrapersonal skills to communicate defects to the other teams, taking into
consideration human psychology phenomena such as confirmation bias.
1. Sequential
2. Iterative & incremental
The V-model implements the principle of early testing (I’m guessing triple-V model?)
Rational Unified Process: Long periods with groups of two-three related features
Scrum: Short periods with fast deliveries
Kanban: Flexible periods and deliverables
Spiral: Also known as prototyping, experimental increments that can be dropped if they do not
function as intended
Component Testing