Chapter 1: FUNDAMENTALS OF SOFTWARE TESTING
Introduction to
Software Testing:
We can see easily that in today’s era our every work can be
easily done by using SOFTWARES.
For example ticket booking, hotel reservation, mobile
recharge can be easily done by using software.
What is testing then?
For example when we go to buy a bulb, so we test it that it
can be ON or not. What if software
testing is not done then what happens?? Let’s take an example of a traffic signal,
a traffic signal operates automatically by using software.
If all signals will get green, then accident happens and
death occurs. That’s why software testing is very important.
Another example is of Flight and aviation related software,
hospital’s software.
SOFTWARE TESTING
DEFINITION
Software testing is an activity to check, whether the actual
results match the expected results or not.
Ensure that the software system is defect free.
Another example is of mobile recharge scenario:
If we don’t consider the scenario of wrong number input or
wrong number sending scenario then recharge will be gone to another number and
the user money will not be returned.
Bugs are sensitive and Dangerous.
Why software testing
is needed???
To ensure customer reliability and satisfaction.
To ensure quality of the product.
Quality product delivered to customers help in gaining their
confidence.
For example wrong VAT calculation on restaurant bill. Could
destroy restaurant image and customer trust.
Performance of software should be tested.
Eg. Printing a bill is taking much time.
Why software testing is important.
Bugs can be dangerous and expensive in future.
Real Example:
SOFTWARE TESTING MYTH???
The whole software is need to be developed first then we do
testing is wrong.
Reviewing requirements and developing test cases is an
independent activity and is not related to the developed code.
Testing and all scenarios is complete. (Wrong approach)
100% bug free. (Wrong thinking)
No software in the world is 100% bug free.
Example
One application can work fine in Pakistan but not in usa
If quality of app is not up to mark or the app has defects,
then testers are responsible (myth)
In case of testers we need to check whether requirements are
changing are not.
TESTING PRINCIPLES…
Why principles in software testing???
So that we can do testing with uniform, discipline and
output.
There are 7 Testing principles listed in the image below.
1)
Testing shows the presence of bugs
This means we need to design test cases in such
a manner which are able to find as many defects as possible.
2)
Exhaustive testing is impossible
It is not possible to test all possible
scenarios and test data so for this reason, risk and priorities are used to
concentrate on the most important aspects to test.
3)
Early testing
How can we test if the application is not developed?
So we can test as soon as the requirements start we can test the GUI, designs, and modules interaction.
4)
Defect Clustering
This principle states that 80% of the bugs
are from 20 % of the code and the software used by people is 20% out of the
full software 80%. This means the development team needs to focus on 20% of
the software which is most useful to the user.
5)
Pesticide Paradox
This principle states do not test over and
over again the same part of the software. Cover full software and rethink more
and more scenarios that will cover all the possible scenarios and parts of the
software.
6)
Testing is context dependent
This principle states that for different
kinds of applications we need to use different testing methodologies. For
example, health and airline software applications require more critical testing
as they are linked with human lives apart from other types of applications, etc.
7)
Absence of error fallacy
No comments:
Post a Comment