Software Testing - Day 3
Software Testing - Day 3
1
Syllabus
Day 1 Day 2 Day 3 Day 4
• Introduction to testing • Testing as a career • Types of applications • QA vs QC
• Why software testing • Qualities of a tester • Verification vs Validation • SDLC
• Importance of software testing • Principles of testing • Advantages & disadvantages of SDLC
2
Agenda | Day 3
• What is application
• Types of application
• Types of application (In detail)
• Types of mobile application
• Verification vs Validation
• Principles of testing
• Principles of testing (in detail)
3
What is Application?
Applications are pieces of software that enable a user to perform certain tasks on a computer or
mobile device. All computers and mobile devices contain preloaded or built-in applications, such as a
web browser, calculator, media player etc.
These applications operate using your device’s operating system (OS), with the support of
background programs called system software. These communicate with other applications or
hardware, such as memory and storage, using its application programming interface (API), which is a
tool that allows two applications to communicate with each other.
4
Types of Application
There are three types of applications used by people worldwide. Let’s go through these different
types of application one by one.
Application
No Yes No Yes
8
Principles of Testing
9
Principles of Testing (In detail)
Principle 1: Testing shows presence of defects
• Testing can show that defects are present but cannot prove that there are no defects. Even after
testing the application or product thoroughly we cannot say that the product is 100% defect free.
• Testing always reduces the number of undiscovered defects remaining in the software but even if
no defects are found, it is not a proof of correctness.
10
Principles of Testing (In detail)
Principle 3: Early Testing
• The sooner we start the testing activities the better we can utilize the available time. As soon as
the initial products, such the requirement or design documents are available, we can start
testing.
• It is common for the testing phase to get squeezed at the end of the development life-cycle, i.e.
when development has finished, so by starting testing early, we can prepare testing for each level
of the development life-cycle
• Another important point about early testing is that when defects are found earlier in the life-
cycle, they are much easier and cheaper to fix.
Principle 4: Defect Clustering
• During testing, it can be observed that most of the reported defects are related to small number
of modules within a system. i.e. small number of modules contain most of the defects in the
system.
• A small number of modules contains most of the defects discovered during pre-release testing or
shows the most operational failures.
• By identifying and focusing on these clusters, testers can efficiently test the sensitive areas while
concurrently testing the remaining “non-sensitive” areas.
11
Principles of Testing (In detail)
Principle 5: Pesticide Paradox
• The same kind of tests are repeated again and again, eventually the same set of test cases will no
longer be able to find any new bugs. This is called “Pesticide Paradox”.
• To overcome this “Pesticide Paradox”, it is really very important to review the test cases regularly
and new and different tests need to be written to exercise different parts of the software or
system to potentially find more defects.
• Anytime a fault is fixed, or a new functionality added, we need to do regression testing to make
sure the new changed software has not broken any other part of the software.
• However, those regression test cases also need to change to reflect the changes made in the
software to be applicable and hopefully fine new defects.
Principle 6: Testing is context dependent
• Testing is basically context dependent. Different kinds of sites are tested differently.
• For example, a software application in a medical device needs more testing than a games
software. More importantly a medical device software requires risk-based testing, be compliant
with medical industry regulators and possibly specific test design techniques.
• The same tests should not be applied across the board because different software products have
varying requirements, functions and purposes 12
Principles of Testing (In detail)
Principle 7: Absence of errors – fallacy
• A test that finds no errors is different than
concluding that the software is error-free.
It should be assumed that all software
contains some faults, even if said faults
are hidden.
13
Thank You!
14