04 - Software Testing Levels
04 - Software Testing Levels
1
Agenda
Unit Test
Integration Test
System Test
User Acceptance Test
2
Software Testing - Levels
Level Summary
A level of the software testing process where individual
Unit Testing units/components of a software/system are tested. The purpose is to
validate that each unit of the software performs as designed.
A level of the software testing process where individual units are
Integration Testing combined and tested as a group. The purpose of this level of testing
is to expose faults in the interaction between integrated units.
A level of the software testing process where a complete, integrated
System Testing system/software is tested. The purpose of this test is to evaluate the
system’s compliance with the specified requirements
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
Acceptance Testing
compliance with the business requirements and assess whether it is
acceptable for delivery
3
What is Unit Test?
4
What is Integration Test?
5
What is Integration Test?
Bottom-up Integration
In the bottom-up strategy, each module at lower levels is tested with higher modules
until all modules are tested.
Advantages:
Fault localization is easier.
No time is wasted waiting for all modules to be developed unlike Big-bang approach
Disadvantages:
Critical modules (at the top level of software architecture) which control the flow of
application are tested last and may be prone to defects.
An early prototype is not possible
6
What is Integration Test?
Top-down Integration
In Top to down approach, testing takes place from top to down following the control
flow of the software system.
Advantages:
Fault Localization is easier.
Possibility to obtain an early prototype.
Critical Modules are tested on priority; major design flaws could be found and fixed first.
Disadvantages:
Modules at a lower level are tested inadequately.
7
What is Integration Test?
Hybrid/ Sandwich Integration
8
What is System testing?
9
What is System Test?
What is Functional testing?
10
What is System Test?
What is Non-functional testing?
Smoke Test
Smoke testing is a type of software testing which ensures that the major functionalities of
the application are working fine. This testing is also known as ‘Build Verification testing’.
It is a non-exhaustive testing with very limited test cases to ensure that the important
features are working fine and we are good to proceed with the detailed testing.
Sanity Test
Sanity testing is usually performed when any minor bug is fixed or when there is a small
change in the functionality.
It is a kind of software testing which is done by the testers to ensure that the functionality is
working as expected.
11
What is System Test?
What is Non-functional testing?
Re-Test
Retesting is testing of a particular bug after it has been fixed. Usually tester raises the
bug when they find it while testing the product or its component.
Post fixing the bug is assigned to the tester for its verification. This testing is known as
retesting.
Regression Test
When any modification or changes are done to the application or even when any
small change is done to the code then it can bring unexpected issues.
Along with the new changes it becomes very important to test whether the existing
functionality is intact or not. This can be achieved by doing the regression testing.
12
What is System Test?
What is Non-functional testing?
Security Test
Security testing is basically a type of software testing that’s done to check whether
the application or the product is secured or not. It checks to see if the application is
vulnerable to attacks, if anyone hack the system or login to the application without
any authorization.
The security testing is performed to check whether there is any information leakage
in the sense by encrypting the application or using wide range of software’s and
hardware’s and firewall etc.
Recovery Test
Recovery testing is done in order to check how fast and better the application can
recover after it has gone through any type of crash or hardware failure etc.
Recovery testing is the forced failure of the software in a variety of ways to verify
that recovery is properly performed.
13
What is System Test?
What is Non-functional testing?
Usability Test
In usability testing basically the testers tests the ease with which the user interfaces can be
used. It tests that whether the application or the product built is user-friendly or not.
How easy it is to use the software.
How easy it is to learn the software.
How convenient is the software to end user.
Performance Test
Performance testing is testing that is performed, to determine how fast some aspect
of a system performs under a particular workload.
It can serve different purposes like it can demonstrate that the system meets
performance criteria.
14
What is System Test?
What is Non-functional testing?
Load Test
A load test is type of software testing which is conducted to understand the behavior
of the application under a specific expected load.
It helps to identify the maximum operating capacity of an application as well as any
bottlenecks and determine which element is causing degradation. E.g. If the number
of users are increased then how much CPU, memory will be consumed, what is the
network and bandwidth response time
Stress Test
15
What is User Acceptance Test?
After the system test has corrected all or most defects, the system will be delivered
to the user or customer for acceptance testing.
Acceptance testing is basically done by the user or customer although other
stakeholders may be involved as well.
The goal of acceptance testing is to establish confidence in the system.
Acceptance testing is most often focused on a validation type testing.
16
What is User Acceptance Test?
Alpha Testing
This test is the first stage of testing and will be performed amongst the teams
(developer and QA teams). Unit testing, integration testing and system testing when
combined together is known as alpha testing. During this phase, the following
aspects will be tested in the application:
Spelling Mistakes
Broken Links
Cloudy Directions
The Application will be tested on machines with the lowest specification to test loading
times and any latency problems.
17
What is User Acceptance Test?
Beta Testing
This test is performed after alpha testing has been successfully performed. In beta
testing, a sample of the intended audience tests the application. Beta testing is also
known as pre-release testing. Beta test versions of software are ideally distributed
to a wide audience on the Web, partly to give the program a "real-world" test and
partly to provide a preview of the next release. In this phase, the audience will be
testing the following:
Users will install, run the application and send their feedback to the project team.
Typographical errors, confusing application flow, and even crashes.
Getting the feedback, the project team can fix the problems before releasing the software
to the actual users.
The more issues you fix that solve real user problems, the higher the quality of your
application will be.
Having a higher-quality application when you release it to the general public will increase
customer satisfaction.
18
Reference Link
http://tryqa.com/what-are-software-testing-levels/
https://www.guru99.com/levels-of-testing.html
https://www.guru99.com/integration-testing.html
https://www.tutorialspoint.com/software_testing/software_testing_levels.htm
http://softwaretestingfundamentals.com/unit-testing/
http://softwaretestingfundamentals.com/integration-testing/
http://softwaretestingfundamentals.com/system-testing/
http://softwaretestingfundamentals.com/acceptance-testing/
19
THANK YOU!
20