Software Testing
Software Testing
In April 2015, Bloomberg terminal in London crashed due to software glitch affected more than
300,000 traders on financial markets. It forced the government to postpone a 3bn pound debt
sale.
Nissan cars recalled over 1 million cars from the market due to software failure in the airbag
sensory detectors. There has been reported two accident due to this software failure.
Starbucks was forced to close about 60 percent of stores in the U.S and Canada due to software
failure in its POS system. At one point, the store served coffee for free as they were unable to
process the transaction.
Some of Amazon’s third-party retailers saw their product price is reduced to 1p due to a
software glitch. They were left with heavy losses.
Vulnerability in Windows 10. This bug enables users to escape from security sandboxes through
a flaw in the win32k system.
In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets
correctly.
China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264
innocents live
In 1985, Canada’s Therac-25 radiation therapy machine malfunctioned due to software bug and
delivered lethal radiation doses to patients, leaving 3 people dead and critically injuring 3
others.
In April of 1999, a software bug caused the failure of a $1.2 billion military satellite launch, the
costliest accident in history
In May of 1996, a software bug caused the bank accounts of 823 customers of a major U.S.
bank to be credited with 920 million US dollars.
1|Page
Gurudev 9887900801
What are the benefits of Software Testing?
Here are the benefits of using software testing:
Cost-Effective: It is one of the important advantages of software testing. Testing any IT project
on time helps you to save your money for the long term. In case if the bugs caught in the earlier
stage of software testing, it costs less to fix.
Security: It is the most vulnerable and sensitive benefit of software testing. People are looking
for trusted products. It helps in removing risks and problems earlier.
Product quality: It is an essential requirement of any software product. Testing ensures a
quality product is delivered to customers.
Customer Satisfaction: The main aim of any product is to give satisfaction to their customers.
UI/UX Testing ensures the best user experience.
2|Page
Gurudev 9887900801
Performance
Endurance
Load
Volume
Non-Functional Testing
Scalability
Usability
So on
Maintenance Regression
Maintenance
This is not the complete list as there are more than 150 types of testing types and
still adding. Also, note that not all testing types are applicable to all projects but
depend on the nature & scope of the project.
Internal workings of an application are not required. Knowledge of the internal workings is a must.
Also known as closed box/data-driven testing. Also known as clear box/structural testing.
End users, testers, and developers. Normally done by testers and developers.
This can only be done by a trial and error method. Data domains and internal boundaries can be better tested.
3|Page
Gurudev 9887900801
What are different levels/ strategies of software testing?
Software level testing can be majorly classified into 4 levels:
1. Unit Testing: A level of the software testing process where
individual units/components of a software/system are tested.
The purpose is to validate that each unit of the software
performs as designed.
2. Integration Testing: A level of the software testing process
where individual units are combined and tested as a group.
The purpose of this level of testing is to expose faults in the
interaction between integrated units.
3. System Testing: A level of the software testing process
where a complete, integrated system/software is tested. The
purpose of this test is to evaluate the system’s compliance
with the specified requirements.
4. Acceptance Testing: A level of the software testing process
where a system is tested for acceptability. The purpose of this
test is to evaluate the system’s compliance with the business
requirements and assess whether it is acceptable for delivery.
Define Software Testing: Software testing is defined as an activity to check whether the actual
results match the expected results and to ensure that the software system is Defect free.
Testing is important because software bugs could be expensive or even dangerous.
The important reasons for using software testing are: cost-effective, security, product quality,
and customer satisfaction.
Typically Testing is classified into three categories functional testing, non-functional testing or
performance testing, and maintenance.
The important strategies in software engineering are: unit testing, integration testing, system
testing, and acceptance/ validation testing.
Smoke Testing is a software testing process that determines whether the deployed software
build is stable or not.
Regression testing is re-running functional and non-functional tests to ensure that previously
developed and tested software still performs after a change.
User Acceptance Testing (UAT) also known end-user testing is the final stage of any software
development life cycle. This is when actual users test the software to see if it is able to carry out
the required tasks it was designed to. It is defined as testing the software by the user or client to
determine whether it can be accepted or not. This is the final testing performed once the
functional, system and regression testing are completed
Endurance Testing
5|Page