2. #
What is software testing?
Software testing is a process of verifying and
validating that a software application or
program
1. Meets the business and technical
requirements that guided its design and
development, and
2. Works as expected.
3. #
Principles of software testing
1. Testing shows presence of defects.
2. Exhaustive testing is impossible
3. Early testing
4.Defect clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence-of-errors fallacy
4. #
Principles of software testing(contd..)
Exhaustive testing is impossible :
If we want to test all possible combinations of
input , execution time and cost will increase
So, exhaustive testing is not possible.
5. #
Principles of software testing(contd..)
Defect clustering
A Small number of modules contain most of the
defects detected
By experience we can identify those risky
modules.
6. #
Principles of software testing(contd..)
Pesticide paradox
If the same tests are repeated again and again,
the same test cases will no longer find new
bugs.
To overcome this, test cases need to be
regularly revised, need to add new test cases
to find more defects
7. #
Principles of software testing(contd..)
Testing shows the presence of defects
Testing reduces the probability of undiscovered
defects in the software.
Even if no defects are found, it is not a proof of
correctness.
8. #
Principles of software testing(contd..)
Absence of error is a fallacy
A Small number of modules contain most of the
defects detected
By experience we can identify those risky
modules.
9. #
Principles of software testing(contd..)
Early testing
Testing should start as early as possible in the
software development life cycle
10. #
Principles of software testing(contd..)
Testing is context dependent
The way we test one application is different
from the way we test another kind of
application
Ex: testing a web application is different from
testing a OS software.
12. #
Psychology of software testing
independent testing
makes the tester more effective in finding
defects and failures.
Levels of independence
Tests designed by person who wrote the software
under test
Tests designed by another person
Tests designed by a person from a different
organization or company
13. #
Psychology of software testing
To identify failures in a system requires
curiosity, critical eye, attention to detail,
good communication skills
Start with collaboration other than
battles, only goal is to have a good
quality system.
Communicate defects in a fact focused
way with out criticizing person who have
created it.