0% found this document useful (0 votes)
3 views

Software Testing

Software testing is the process of verifying that software is bug-free and meets both technical and user requirements. It is crucial for identifying errors early to ensure reliability, security, and customer satisfaction. Testing can be categorized into manual and automation testing, with various strategies and types including unit, integration, system, and acceptance testing.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Software Testing

Software testing is the process of verifying that software is bug-free and meets both technical and user requirements. It is crucial for identifying errors early to ensure reliability, security, and customer satisfaction. Testing can be categorized into manual and automation testing, with various strategies and types including unit, integration, system, and acceptance testing.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Gurudev 9887900801

What is Software Testing? Definition, Basics & Types


Software testing can be stated as the process of verifying and validating that software or application
is bug-free, meets the technical requirements as guided by its design and development, and meets
the user requirements effectively and efficiently with handling all the exceptional and boundary
cases.
The purpose of software testing is to identify errors, gaps or missing requirements in contrast to
actual requirements.

Why Software Testing is Important?


Software Testing is Important because if there are any bugs or errors in the software, it can be
identified early and can be solved before delivery of the software product. Properly tested software
product ensures reliability, security and high performance which further results in time saving, cost
effectiveness and customer satisfaction.

What is the need of Testing?


Testing is important because software bugs could be expensive or even dangerous. Software bugs can
potentially cause monetary and human loss, and history is full of such examples.

 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.

What are the steps of Software Testing?


Software testing can be divided into two steps:
1. Verification: it refers to the set of tasks that ensure that software correctly implements a specific
function.
2. Validation: it refers to a different set of tasks that ensure that the software that has been built is
traceable to customer requirements.
Verification: “Are we building the product right?”
Validation: “Are we building the right product ?”

Types of Software Testing


Here are the software testing types:

Software Testing can be broadly classified into two types:


1. Manual Testing: Manual testing includes testing software manually, i.e., without using any
automated tool or any script. In this type, the tester takes over the role of an end-user and tests the
software to identify any unexpected behavior or bug. There are different stages for manual testing
such as unit testing, integration testing, system testing, and user acceptance testing.
Testers use test plans, test cases, or test scenarios to test software to ensure the completeness of
testing. Manual testing also includes exploratory testing, as testers explore the software to identify
errors in it.
2. Automation Testing: Automation testing, which is also known as Test Automation, is when the
tester writes scripts and uses another software to test the product. This process involves the
automation of a manual process. Automation Testing is used to re-run the test scenarios that were
performed manually, quickly, and repeatedly.
Apart from regression testing, automation testing is also used to test the application from a load,
performance, and stress point of view. It increases the test coverage, improves accuracy, and saves
time and money in comparison to manual testing.
Typically Testing is classified into three categories.

 Functional Testing (Kind of Black Box Testing)


 Non-Functional Testing or Performance Testing (White Box Testing)
 Maintenance (Regression and Maintenance)

2|Page
Gurudev 9887900801

Types of Software Testing in Software Engineering


Testing Category Types of Testing
 Unit Testing
 Integration Testing
 Smoke
 UAT ( User Acceptance Testing)
Functional Testing  Localization
 Globalization
 Interoperability
 So on

 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.

What are the different techniques of Software Testing?


Software techniques can be majorly classified into two categories:
1. Black Box Testing: The technique of testing in which the tester doesn’t have access to the source
code of the software and is conducted at the software interface without concern with the internal
logical structure of the software is known as black-box testing.
2. White-Box Testing: The technique of testing in which the tester is aware of the internal workings
of the product, has access to its source code, and is conducted by making sure that all internal
operations are performed according to the specifications is known as white box testing.

Black Box Testing White Box Testing

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.

Note: Software testing is a very broad and vast topic and is


considered to be an integral and very important part of
software development and hence should be given its due
importance.

Summary of Software Testing Basics:

 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

Types of acceptance testing include:


1 Alpha & Beta Testing. 2 Contract Acceptance Testing.
3 Regulation Acceptance Testing. 4 Operational Acceptance testing.
4|Page
Gurudev 9887900801
Alpha Testing Vs Beta testing:
Alpha Testing Beta Testing
Alpha testing performed by Testers who
Beta testing is performed by Clients or End Users who are not
are usually internal employees of the
employees of the organization
organization
Beta testing is performed at a client location or end user of the
Alpha Testing performed at developer’s site
product
Reliability and Security Testing are not
Reliability, Security, Robustness are checked during Beta Testing
performed in-depth Alpha Testing
Alpha testing involves both the white box
Beta Testing typically uses Black Box Testing
and black box techniques
Beta testing doesn’t require any lab environment or testing
Alpha testing requires a lab environment or
environment. The software is made available to the public and is said
testing environment
to be real time environment
Long execution cycle may be required for
Only a few weeks of execution are required for Beta testing
Alpha testing
Critical issues or fixes can be addressed by Most of the issues or feedback is collected from Beta testing will be
developers immediately in Alpha testing implemented in future versions of the product
Beta testing also concentrates on the quality of the product, but
Alpha testing is to ensure the quality of the
gathers users input on the product and ensures that the product is
product before moving to Beta testing
ready for real time users.

Endurance Testing

 Endurance testing is is non-functional testing and it is a subset of load testing.


 This type of testing is performed at the last stage of the performance run cycle.
 This may include applying external loads such as Internet traffic or user actions.
 Endurance testing is a long process and sometimes last for even up to a year
 The endurance test is also used to check whether there is any performance degradation after a
long period of execution
 Permanent Data loss or corruption can occur by over-stressing the system.
 Checks are done to verify:
 Test memory leakage
 Test response time
 Test database connection, etc.

5|Page

You might also like