Lect 4 Software Testing Fundamentals
Lect 4 Software Testing Fundamentals
Myers 2004
General Testing Principles
The Seven Key Principles
Number of Cost of
• If you test too little, the Missed Bugs Testing
probability of software
failure increases Q
u
a Testing
Under Equilibrium
• If you try to test too n
t Testing Over
much, the development i Testing
t
cost becomes y
unaffordable
3.Early testing
• Testing activities should start as early
as possible in the development life
cycle
100
90
80
70
Relative
60
Multiples 50
Cost
40
30
20
10
0
Reqs Des Code Unit Accept Use
General Testing Principles
The Seven Key Principles
4. Defect Clustering
• Defects are not evenly distributed in a system
• They are ‘clustered’
• In other words, most defects found during testing are usually
confined to a small number of modules ( 80% of uncovered errors
focused in 20% modules of the whole application) “Pareto law”
and Test Cases (A set of input values, execution preconditions, expected results and execution
Post-conditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a
specific requirement).
• Tests should be designed using the test design techniques selected in the test planning
activity
Beizer 1983
Fundamental Test Process
3. Test Implementation and Execution
Myers - 2004
Ref: Myers, The Art of Software Testing, J Wiley and Sons, 1979
Fundamental Test Process
4. Evaluating Exit Criteria and Reporting
• Exit criteria ensures that the testing of the application is
completed and ready.
• Test execution is assessed against the objectives defined in
Test Planning
• This should be done for each Test Level (i.e. test stage)
A group of test activities that are organized and managed together.
Test Planning Test Analysis Test Implementation Evaluating Exit Criteria Test Closure
and Control and Design and Execution and Reporting Activities
• “Tests must be written for invalid and unexpected, as well as valid and
expected, input conditions”
Myers - 1979
Psychology of Testing
Traits of Good Testers
• A Tester needs: