0% found this document useful (0 votes)
73 views12 pages

Software Testing Levels

Functional and non-functional testing are the two major categories of software testing. Functional testing ensures core application functions work as intended, while non-functional testing evaluates attributes like performance and security. There are several levels within functional testing including unit testing of individual code, integration testing of code modules working together, and system testing of the full application. Regression testing is also used to ensure new bugs are not introduced when changes are made. Together, these testing levels help verify an application meets requirements before it is released to users.

Uploaded by

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

Software Testing Levels

Functional and non-functional testing are the two major categories of software testing. Functional testing ensures core application functions work as intended, while non-functional testing evaluates attributes like performance and security. There are several levels within functional testing including unit testing of individual code, integration testing of code modules working together, and system testing of the full application. Regression testing is also used to ensure new bugs are not introduced when changes are made. Together, these testing levels help verify an application meets requirements before it is released to users.

Uploaded by

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

Software Testing Levels

August 14, 2016

In Software development, testers and developers combine their expert


knowledge and efforts to create an application or product that can be
easily implemented and updated. Before the release, these products go
through various testing processes, which guarantees that the
application is working in the intended manner and is providing
expected results. Moreover, the team of testers use various levels of
testing to identify missing areas and to prevent overlapping and
repetition between the development life cycle phases. It is only after
going through all these stages and continuous checking and
rechecking, that the product is released for the use of the client or the
end user. Therefore, to get a better understanding of various levels of
testing, here is a detailed analysis of some of the most important
levels of software testing.

Different Levels of Software Testing:


In order to develop products of superior quality and functionality,
testers and developers all over the world use unique and different
levels of software testing. These levels of testing include several
testing methodologies 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. The software testing
levels are divided into two major categories, which further consist of
numerous testing methodologies within them. These two categories of
software testing are:

1. Functional Testing

2. Non-Functional Testing

1. Functional Testing:

Functional testing is a type of black box testing technique,


which focuses on the specifications of the software that are
required to be tested. The goal of functional testing is to verify
that the software application performs exponentially and
conforms to the intended functionality. During this type of
testing, the tester checks the core application functions, text
input, menu functions and installation, the setup on localized
machines, among other things. Moreover, functional testing is
conducted on a complete, integrated system to evaluate the
system's compliance with its specified requirements.

To ensure effective testing practise and high quality of the


product, the team of testers follow some important steps while
performing software testing. The steps that are involved while
testing the functionality of a software are:

o The intended functionality of the application is determined


by the tester.
o Test data is created based on the specifications of the
application.

o Output is provided based on the test data and the


specifications of the application.

o Fourth step involves, the writing of test scenarios and


execution of test cases.

o Finally, the actual and expected results are compared based


on the executed test cases.

Levels of Functional Testing:


To check the functionality of a software application, several
techniques of functional testing are used by testers and
developers during the process of software development. These,
though vary in their specifications, aim at testing all the elements
of a software as per their specifications and provide expected
outputs. Testers and developers use their expert knowledge to
test and develop the software and make it error free before its
release. The various techniques adopted by testers to validate the
functionality, quality and other properties of an application are:
vi. Unit Testing:

The first level of functional testing, Unit Testing, is the


most micro-level of testing performed on a software. The
purpose of this testing is to test individual units of source
code together with associated control data to determine if
they are fit for use. Unit testing is performed by the team of
developers before the setup is handed over to the testing
team to formally execute the test cases. It helps developers
verify internal design and logic of the written code. One of
the biggest benefit of this testing is that it can be
implemented every time a piece of code is modified,
allowing issues to be resolved as quickly as possible.

vii. Component Testing:

Also known as module and program testing,


component testing is the phase in which individual
software modules are tested to find defects and errors in
the module and to verify the functioning of software
module. Component testing can be performed in isolation
from the rest of the system, depending on the development
life cycle model chosen for that particular application.

viii. Integration Testing :

Integration Testing provides the opportunity to combine all


the units within a program and test them as a group. This
testing level is designed to find interface defects between
modules or functions, which becomes extremely beneficial
as it enables a tester to determine the efficiency of various
units running together. Integration testing is further
divided in two ways:

 Bottom-up Integration Testing:

Begins with unit testing, followed by tests of


progressively higher level combinations of units called
modules or builds.

 Top-down Integration Testing:

Tests the higher level modules progressively first and


then focuses on the lower level modules.

ix. System 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. Performed by a knowledgeable and
specialized testing team, system testing plays an essential
role in software development life cycle.

 Here the software is tested as a whole for the first


time.

 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 production environment, where the
application will be deployed.

 Enables the testers to test, verify, and validate the


business requirements as well as the application
architecture.

x. Regression Testing:

Performed whenever a change is made in a software


application, regression testinghelps in verifying that a
fixed bug or error has not resulted in another functionality
error or business rule violation. It makes sure that no new
bugs or defects are uncovered due to minor or major
modifications in the application. Other features of
regression testing are:
 Minimizes the gapes in testing when an application
with new changes is tested.

 Tests are executed to make sure no new bugs are


detected with the changes made in the application.

 Test coverage is increased without compromising


timelines.

 The process of marketing the product is increased by


regression testing.

 Acceptance Testing:

The most important type of


testing, Acceptance testing or User
Acceptance Testing, is conducted by Quality
Assurance Team 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.

 Alpha Testing:
Alpha testing is carried out to ensure that the
product is of good quality and also to prepare
the system for Beta testing. Here, testers look
into the quality as well as the engineering aspect
of the developed application. Alpha testing is
performed towards the end of the software
development cycle, where the system is tested as
a whole. Furthermore, this test is stimulated by
potential user or an independent test team at the
developer’s site.

 Beta Testing:

Field testing or Beta testing is executed once


the Alpha testing is successfully performed. In
beta testing, the test is carried out in “real world”
scenario, wherein the application is tested by
people/users who will actually use the product.
As beta testing is implemented before the release
of the product, it is also known pre-release
testing. Other important features of beta testing
are:

 Users can install, run the application and


send their feedback to the project team.
 Correction of typographical errors,
confusing application flow, and even
crashes is done here.

 Feedback is provided, which allows the


project team to fix the problems before
releasing the software to the actual users.

2. Non-Functional Testing:

In non-functional testing, the attributes that may not be related


to a specific function or user action of the software are
tested. Non-functional testing involves testing of a software
from the requirements which are non-functional in nature but
important, such as performance, security user interface and
more. Some of the significant non-functional testing techniques
are:

. Performance Testing:

This is one of the most important and mandatory non-


functional testing technique, which is generally executed to
determine how a system or sub-system performs in terms
of responsiveness and stability under a particular work
load. Performance testing is mostly used to identify
bottlenecks or performance issues rather than finding bugs
in the software. Moreover, it can also serve to measure,
validate or verify other quality attributes of the system,
such as scalability, reliability, and resource usage.
Performance testing can either be qualitative or
quantitative, and can be divided into two categories:

 Load Testing:

Here the behaviour of the system is tested by applying


maximum load in terms of software accessing and
manipulating large input data. Load testing can be
done at both normal and peak load conditions. This
type of testing identifies the maximum capacity of
software and its behaviour at peak time.

 Stress Testing:

Is the testing done beyond normal operational


capacity, often to the breaking point, in order to
observe the results. It is a form of software testing that
is used to determine the stability of a given system.

i. Usability Testing:

Usability Testing is a black box testing technique, which is


used to identify errors and defects as well as the
improvements in the software by observing the users
through their usage and operation. This type of testing
assists the tester in finding any undetected defects before
the release of an application.
ii. Security Testing:

Security Testing is an integral part of software development


process. Through this type of testing the tester verifies
system security, whether it can protect data and maintain
functionality as intended. The aim of security testing is to
check for flaws and errors in the software as well as the
system in which it will be implemented, from security and
vulnerability point of view. Some of the most important
concepts covered by Security testing are:

 Confidentiality.

 Integrity.

 Authentication.

 Availability.

 Authorization.

 Non-repudiation.

Conclusion
Software development life cycle is a time consuming process that
involves various methodologies and techniques. Testers and
developers use their experience and knowledge to create
products that are of exceptional quality and are designed as per
the requirement of the clients. However, the most integral part of
the software development process is testing, which is executed in
the software through several levels. In these levels, the individual
units are tested, integrated and checked for interfaces
established between them. After this, the entire software is tested
to ensure that the output produced is according to user
requirements. It is only after successfully accomplishing these
levels that a software application is termed suitable for release.

You might also like