This document discusses fundamentals of software testing. It explains that testing is necessary due to human errors that can lead to defects, and defects can cause failures in software systems impacting users. The key aspects covered are: why testing is needed, what testing entails, testing principles like early testing and defect clustering, the fundamental test process of planning, designing, executing and reporting tests, how much testing is sufficient depending on risk, and skills needed in testers like curiosity and attention to detail.
2. Fundamentals of Testing
Why is testing necessary?
What is testing?
Testing Principles.
Fundamental Test Process.
How much testing is enough?
Why Testers?
3. Why is testing necessary ?
Software Systems Context
Causes of Software Defects.
Why we Test?
Cost of Software Quality
4. Why is testing necessary ?
Software system context
Software can be found in many areas of life.
When a system go wrong, it can result many effects start
from user inconvenience ,including loss of money, time
or business reputation, and could even cause loss a life.
5. .
Health equipment.
Transportations.
Banking
Insurance
Education
Scientific Research
7. Why is testing necessary ?
Causes of Software Defects
Humans do mistakes.
Mistakes may lead to defects in source code or system
specifications.
Defects are detected only when they leads to failures
(code is executed), not all defects do so.
Failures are considered problems when they occurred in
live systems.
An observed failure is an incident.
8. Defect
Injection
Detection
Prevention
- A defect injected at the
time the causing error is
made.
- A defect is detected at
The time when failure
occurs.
- Finding defects in
requirements docs or static
code can prevent detecting
them in running systems.
9. Why is testing necessary?
Why we Test (Testing Goals)
Find defects.
Measure quality.
Provide confidence.
10. Why is testing necessary?
Costs of Software defects
Msnbc published the news of 2010 bug hits millions of
German bank cards.
Guardin.co.uk said they paid about (€300m).
Apple Maps gives us directions to nowhere (2012).
13. What is testing?
The process consisting of all life cycle activities, both
static and dynamic concerned with planning ,
preparation and evaluation of software products and
related work products to determine that they satisfy
specified requirements , to demonstrate that they are
fit for purpose and to detect defects.
14. What is Testing?
Executing SW is only part of testing ,other activities
exist before and after execution.
Testing activities include: planning and control
,choosing test conditions , designing test cases and
checking results , evaluating exit criteria , reporting
and closure.
15. Suppose You are given “Pen” with instructions to test it .
What will you do ?
18. Testing Principles
Testing Shows Presence of defects.
Exhaustive testing is impossible.
Early Testing.
Defect Clustering.
Pesticide Paradox .
Testing is context dependent.
Absence of errors fallacy.
19. Testing Principles
Testing Shows the presence of defects
Testing can show that defects are present, but cannot
prove that there are no defects.
Testing reduces the probability of undiscovered defects
remaining in the software.
Discovering no more defects is not a proof of
correctness.
20. Testing principles
Exhaustive testing is impossible
Testing everything (all combinations of inputs and
preconditions) is not feasible except for trivial cases.
Instead of exhaustive testing, risk analysis and priorities
should be used to focus testing efforts.
Example: a simple screen with five input fields and 10
distinct values for each field has 10^5 different
combination.
21. Testing Principles
Early Testing
The earlier defects are detected , the lower the cost of
correction.
To find defects early, testing activities shall be started as
early as possible in the software or system development
life cycle, and shall be focused on defined objectives.
22. Testing Principles
Defect Clustering
System modules vary in size, complexity and frequency
of change.
System modules do not experience the same defect
density or failure rate.
Thus, pareto principle (80-20 rule) is applicable:
A small number of modules contains most of the defects discovered
during prerelease testing , or show the most optional failures
23. Testing Principles
Defect Clustering Cont’d
When a defect is found in one area , changes are there
that more defects can be found and more time can be
invested there.
Testers should not ignore any area as defects can be
scattered around
24. Testing Principles
Pesticide Paradox
If the same tests are repeated over and over again,
eventually the same set of test cases will no longer find
any new defects.
To overcome this, test cases need to be regularly
reviewed and revised
New and different tests need to be written to exercise
different parts of the software or system to find
potentially more defects.
25. Testing Principles
Testing is context dependent
Testing is done differently in different contexts.
For example, safety-critical software is tested differently
from an e-commerce site.
26. Testing Principles
Absence of Error Fallacy
Finding and fixing defects does not help if the system
built is unusable and does not fulfill the users’ needs
and expectations.
27. Fundamentals of Testing
Why is testing necessary?
What is testing?
Testing Principles
Fundamental Test Process
30. Fundamental Test Process
Planning and Control
Ongoing comparison of actual progress against plan.
Reporting status.
Takes into account feedback of monitoring and control.
31. Fundamental Test Process
Analysis and Design
Reviewing the test basis.
Evaluating testability of test basis and test objects.
Identifying and prioritizing test conditions
Designing and prioritizing test cases.
Identifying necessary test data.
Designing the test environment set-up and identifying
any required infrastructure and tools.
32. Fundamental Test Process
Implementation and execution
Creating test cases , writing test procedures.
Creating test suits.
Prepare test execution plans.
33. Fundamental Test Process
Evaluating Exit Criteria and Reporting
Checking test logs against the exit criteria specified in
the planning.
Assessing if more tests are needed.
Writing a test summary report for stake holders.
34. Fundamental Test Process
Test Closure
Checking that deliverables have been delivered as
planned.
Archiving the test environment and the test
infrastructure for later reuse.
Analyzing lessons learned for future releases and
projects .
35. Fundamentals of Testing
Why is testing necessary?
What is testing?
Testing Principles
Fundamental Test Process
How much testing is enough?
37. How much testing is enough?
The amount of testing needed is proportionate with:
Risk.
Defect Cost.
Information needed.
Project constraints.
Test infrastructure.
38. Fundamentals of Testing
Why is testing necessary?
What is testing?
Testing Principles
Fundamental Test Process
How much testing is enough
Why Testers?
39.
40. Why Testers?
Characteristic of a tester
Curiosity.
Clear thinking skills.
Top flight reading speed and comprehension.
Attention to details.
Quick learner (outside of testing).
41. Fundamentals of Testing
Why is testing necessary?
What is testing?
Testing Principles
Fundamental Test Process
How much testing is enough
Why Testers?