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

Chapter_Five Levels Testing

Chapter Five of the Software Testing and Quality Assurance course outlines the various levels of software testing, including unit testing, integration testing, system testing, and acceptance testing. Each level serves a specific purpose in ensuring software quality and functionality throughout the development lifecycle. The chapter also discusses the advantages and limitations of each testing level, as well as different approaches to integration testing.

Uploaded by

asimamawwolde89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Chapter_Five Levels Testing

Chapter Five of the Software Testing and Quality Assurance course outlines the various levels of software testing, including unit testing, integration testing, system testing, and acceptance testing. Each level serves a specific purpose in ensuring software quality and functionality throughout the development lifecycle. The chapter also discusses the advantages and limitations of each testing level, as well as different approaches to integration testing.

Uploaded by

asimamawwolde89
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

Mizan-Tepi UNIVERSITY

School of Computing and Informatics


Department of Software Engineering
Software Testing and Quality
Assurance(SEng4051)
Chapter Five
Levels of Software Testing
Objective
 After successful completion of this chapter, students
will be able to explain
 Software testing levels

1
Software Testing
Levels
⚫ In order to develop products of superior quality and

functionality, testers and developers use unique and different


levels of software testing.
⚫ These levels of testing include several testing methods that are

used while conducting software testing to gain intended


results and to fulfil the demands of the stakeholders.
⚫ Each of these levels of testing has a particular purpose that

provides extra value to the software development life cycle.


2
Cont

⚫ Levels of softwaretesting are process in which every component
or small unit of software is tested.
⚫ There are different levels of software testing; each has its
features, advantages, and disadvantages.
⚫ These different levels of software testing are designed to test
the
software performance and behaviors of the software at different stages.
⚫ There are different stages in the software development lifecycle

like requirements, design, coding, and execution. Levels of


software testing are used to find those missing areas between these
3 stages of the software development lifecycle.
Cont

⚫ There are four different levels of software testing, which are

as follows:
1. Unit testing
2. Integration testing
3. System testing
4. Acceptance testing

4
1. Unit
Testing
⚫ Unit testing is also known as the first level of testing.
⚫ A unit means a small component.
⚫ Unit testing is the process of testing small
components of software or product.
⚫ This testing is performed using the white box testing method.
⚫ One of the main advantages of unit testing is it allows each
small component of the software to be tested separately.
⚫ The developers perform this testing.
⚫ This testing aims to test each component of the software to
check that
 it is functioning well or not,
 does it works as it is intended,
5  does it fulfills the specified requirements.
Advantages of Unit
Testing
⚫ Unit testing improves the quality of the code.
⚫ As unit testing tests only components of the software, it is easy to debug

the software. If some error occurs, only the latest changes that are made
need to be tested.
⚫ In unit testing, the development process is faster because it requires fewer

efforts to find and fix bugs than another type of testing.


⚫ Bugs detected at earlier stage are easier to be fixed.
⚫ Unit testing actually saves tester’s time, effort and cost. The cost of
solving
defects is less as compared with others.
⚫ Unit testing gives confidence to the developing team.

6 Modules whose unit testing has been done successfully can be reused by

the developer.
Limitations of Unit Testing

⚫ Unit testing can't catch every error in a program. Unit testing

by its nature focuses on a unit of code. Hence, it


can't catch integration errors or broad system level errors.
⚫ It is not possible to evaluate all execution paths even in the

most trivial programs

7
Integration Testing
⚫ This is the second level of software testing, where each component

or unit is combined and tested as a whole.


⚫ The goal behind this testing is to ensure that software or product

is working properly when the unit of software is combined together


with other components.
⚫ As its name suggests, it is used to identify errors between

interacted components.
⚫ A typical software project consists of multiple software modules,

coded by different programmers.


⚫ Integration testing focuses on checking data communication
8 among these modules.
Why do Integration
 Although Testing?
each software module is unit tested, defects still exist
for various reasons like
⚫ A module in general is designed by an individual software
developer whose understanding and programming logic may differ
from other programmers.
⚫ Integration testing becomes necessary to verify the software
modules work in unity
⚫ At the time of module development, there are wide chances of
change in requirements by the clients. These new requirements may
not be unit tested and hence system integration testing becomes
necessary.
⚫ Interfaces of the software modules with the database could
be erroneous
⚫ External hardware interfaces, if any, could be erroneous
⚫ Inadequate exception handling could cause issues.
9
Approaches of Integration
⚫ The Testing
software industry uses variety of strategies to
execute integration testing:

1. Big Bang Approach

2. Incremental Approach- which is further divided into


Top Down Approach,
Bottom Up Approach and
Sandwich Approach - Combination of top down and
bottom up approaches

10
Big Bang
Approach
⚫ Here all components are integrated together at once, and
then tested.
⚫ In this testing, the individual modules are not integrated until

all the modules are ready.


⚫ In this type of testing, some disadvantages might occur like,

defects can be found at the later stage.


⚫ It would be difficult to find out whether the defect arouse
in interface or in module.
11
Big
Bang…
Advantages:
 Convenient for small systems.
Disadvantages:
⚫ Fault localization is difficult.
⚫ Given the sheer (absolute) number of interfaces that need to be
tested in this approach, some interface links to be tested could
be missed easily.
⚫ Since the integration testing can commence only after "all"
the modules are designed, testing team will have less
time for execution in the testing phase.
⚫ Since all modules are tested at once, high risk critical modules
are not isolated and tested on priority. Peripheral modules
12 which deal with user interfaces are also not isolated and
Incremental
⚫ In this approach,Approach
testing is done by joining two or more modules
that are logically related. Then the other related modules are
added and tested for the proper functioning.
⚫ The process continues until all of the modules are joined and

tested successfully.
⚫ Incremental approach in turn is carried out by the following methods:

 Bottom up

 Top down

 Sandwich

13
Bottom up Integration
⚫ Inthe bottom up strategy, each module at lower levelsis
tested with higher modules until all modules are tested.

14
Bottom up…
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.
⚫ Early prototype is not possible

15
Top down Integration:

⚫ In top-to-down approach, testing takes place from top to

down following the control flow of the software system.

16
Top
down…
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.
⚫ Needs
Disadvantages:
⚫ many stubs.
⚫ Modules at lower level are tested inadequately.

17
Sandwich/Hybrid Integration
Approach
⚫ This approach is a combination of both top-down and bottom

up integration testing.
⚫ In this approach, the integration starts from middle layer

and testing is carried out in both directions - towards


higher level modules(upwards) and towards lower level
module (downwards).
⚫ This way includes benefits of both top-down and bottom up

approach and helps in faster testing of the module's


18 interfaces.
System Testing (End-to-End
Testing)
⚫ This is the first level of functional testing where the application
is tested as a whole.
⚫ The goal at this level is to evaluate systems compatibility with
the outlined requirements and to see that it meets the
anticipated quality standards.
⚫ To verify the functional and technical specifications of
the software, comprehensive testing is performed.
⚫ The application is tested in an environment that is similar to
the environment where the application will be deployed.
⚫ Enables the testers to test, verify, and validate the business
requirements as well as the application architecture.
⚫ Performed by a knowledgeable and specialized testing team.
19
Users Acceptance Testing
(UAT)
⚫ Acceptance testing or user acceptance testing, is conducted by
the Quality Assurance (QA) Team or customers to check whether
the application meets the intended specifications and satisfies
clients’ requirements.
⚫ Acceptance testing allows the tester to check for any undetected
bugs, which can crash the system in future.
⚫ Once acceptance testing is accomplished successfully, the
application becomes suitable for release.
⚫ The QA team must have a set of pre-written scenarios and test
cases that will be used to test the application.
20

UAT
⚫ More ideas will be shared about the application and more tests
can be performed on it to device its accuracy and the
reasons why the project was initiated.
⚫ Acceptance tests are not only intended to point out
simple spelling mistakes, cosmetic errors, or interface gaps,
but also to point out any bugs in the application that will
result in system crashes or major errors in the
application.
⚫ By performing acceptance tests on an application, the testing
team will reduce how the application will perform in
production.
⚫ There are also legal and contractual requirements for
acceptance of the system.
⚫ UAT includes:
21 a)Alpha
c) GammaTesting
A) Alpha
Testing
⚫ Alpha testing is a type of acceptance testing performed to identify
all possible issues/bugs before releasing the product to everyday
users or public.
⚫ It is performed within the software company or lab environment
by highly qualified specialists usually not by developers of the
product. The testers are internal employees of the organization.
⚫ It can be referred to as a form of internal acceptance testing. Also in
this
stage, new functionality can be implemented in the software.
⚫ The focus of this testing is to simulate real users by using black-box
and white-box techniques.
⚫ The aim is to carry out the tasks that a typical user might perform.
⚫ This kind of testing is called alpha only because it is done early on,
22 near the end of the development of the software, and before Beta
Alpha …
⚫ During this phase, the following aspects will be tested:

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

23
Alpha

Advantages:
⚫ Provides better view about the reliability of the software at an early stage

⚫ Helps simulate real time user behavior and environment.

⚫ Detect many showstopper or serious errors

⚫ Ability to provide early detection of errors with respect to design


and
functionality
Disadvantages:
⚫ In-depth
functionality
cannot be
tested as
24 software is
still under
Beta
⚫ Beta
Testing
testing is done outside the software developing
organization, not by its personnel.
⚫ Prerelease builds of the program are distributed to the end
users who validate their functionality, reliability,
usability and compatibility. It is known as a form
of external acceptance testing.
⚫ Beta testing lowers the risk of the product’s failure and
provides improved quality of the application by
means of customer feedback.
⚫ Direct feedback is a significant benefit of beta testing. This
phase follows alpha testing.
⚫ Beta testers often find a lot of defects of programs.

25
Beta
…In this phase of software production, the development team

bears no responsibility for the damage caused to the


products when they are tried out by the clients or
outsiders.
⚫ No testing or lab environment is needed for beta tests.

⚫ Beta testing companies engage a limited quantity of end users

in the testing process to check the product in real


world environment and decide if it is ready to be
shipped to the customers.
⚫ It
26 aids partly
provide to give
a preview program a "real-world" test and partly
of the next
to
release.
Beta

⚫ In this phase, the audience tests the following:
 Users install, run the applicationand 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 applicationwhen you release it to
the general public will increase customer satisfaction.
27
Beta

Advantages
⚫ Reduces product failure risk via customer validation.
⚫ It allows a company to test post-launch infrastructure.
⚫ Improves product quality via customer feedback
⚫ Cost effective compared to similar data gathering methods
⚫ Creates goodwill with customers and increases customer satisfaction
Disadvantages
⚫ Test management is an issue. As compared to other testing types
which are usually executed inside a company in a controlled
testing is executed
environment, beta out in the real world where youseldo have
⚫ Finding m
control.the right beta users and maintaining their participation could be
a
challenge
28
Types of Beta
Testing
⚫ There are different types of beta tests:

1. Traditional beta testing - Product is distributed to the


target market, and related data is gathered in all aspects. This
data can be used for product improvement.

2. Public beta testing - Product is publicly released to the


outside world via online channels and data can be gathered
from anyone. Based on feedback, product improvements can
be done. For example, Microsoft conducted the largest
of all Beta Tests for its OS -- Windows 8 before officially
29
releasing it.
Types of
Beta …
3.Technical beta testing - Product is released to the
internal group of an organization and gather feedback/data
from the employees of the organization.

4.Focused beta testing- Product is released to the market


for gathering feedback on specific features of the program. For
example, important functionality of the software.

5.Post release beta testing - Product is released to the


market and data is gathered to make improvements for the future
release of the product.
30
Gamma
Testing
⚫ Gamma testing is a final stage of software testing before
an appropriate public release, it is conducted primarily for safety
purposes.
⚫ It is intended to identify and fix minor defects that were found

during beta testing.


⚫ As a rule, this process is carried out with the involvement of as
many
end users as possible.
⚫ In this final phase of software development, there is no need for

going through all the in-house testing activities.


⚫ Gamma tests can be run only when the applicationis ready
58

You might also like