Professional Documents
Culture Documents
ABSTRACT
INTRODUCTION
UNIT TESTING
INTEGRATION TESTING
USER ACCEPTANCE TESTING(UTA)
ABSTRACT
The development of large software systems is a
complex and error prone process. Faults might occur
at any development stage and they must be identified
and removed as early as possible to stop their
propagation and reduce verification costs. Quality
engineers must be involved in the development
process since the very early phases to identify
required qualities and estimate their impact on the
development process. Their tasks span over the
whole development cycle and go beyond the product
deployment through maintenance and post mortem
analysis. Developing and enacting an effective quality
process is not a simple task, but it requires that we
integrate many quality-related activities with product
characteristics, process organization, available
resources and skills, and budget constraints. so level
of testing are four types , we’ll see it further.
INTRODUCTION
Tests are grouped together based on where they
are added in SDLC or the by the level of detailing
they contain. In general, there are four levels of
testing: unit testing, integration testing, system
testing, and acceptance testing. The purpose of
Levels of testing is to make software testing
systematic and easily identify all possible test
cases at a particular level.
There are many different testing levels which
help to check behavior and performance for
software testing. These testing levels are
designed to recognize missing areas and
reconciliation between the development
lifecycle states. In SDLC models there are
characterized phases such as requirement
gathering, analysis, design, coding or execution,
testing, and deployment. All these phases go
through the process of software testing levels.
Levels of Testing
There are mainly four Levels of Testing in software
testing :
1. Unit Testing : checks if software components are
fulfilling functionalities or not.
2. Integration Testing : checks the data flow from
one module to other modules.
3. System Testing : evaluates both functional and
non-functional needs for the testing.
4. Acceptance Testing : checks the requirements of a
specification or contract are met as per its
delivery.
UNIT TESTING
UNIT TESTING is a type of software testing where
individual units or components of a software are
tested. The purpose is to validate that each unit of the
software code performs as expected. Unit Testing is
done during the development (coding phase) of an
application by the developers. Unit Tests isolate a
section of code and verify its correctness. A unit may
be an individual function, method, procedure,
module, or object.
In SDLC, STLC, V Model, Unit testing is first level of
testing done before integration testing. Unit testing is
a WhiteBox testing technique that is usually
performed by the developer. Though, in a practical
world due to time crunch or reluctance of developers
to tests, QA engineers also do unit testing.
Unit Testing is important because software
developers sometimes try saving time doing minimal
unit testing and this is myth because inappropriate
unit testing leads to high cost Defect fixing
during System Testing, Integration Testing and even
Beta Testing after application is built. If proper unit
testing is done in early development, then it saves
time and money in the end.
DIAGRAM
How to do Unit Testing
In order to do Unit Testing, developers write a section
of code to test a specific function in software
application. Developers can also isolate this function
to test more rigorously which reveals unnecessary
dependencies between function being tested and
other units so the dependencies can be eliminated.
Developers generally use UnitTest framework to
develop automated test cases for unit testing.
Unit Testing is of two types
Manual
Automated
Unit testing is commonly automated but may still be
performed manually. Software Engineering does not
favor one over the other but automation is preferred.
A manual approach to unit testing may employ a step-
by-step instructional document.
Under the automated approach-
A developer writes a section of code in the
application just to test the function. They would
later comment out and finally remove the test
code when the application is deployed.
A developer could also isolate the function to test
it more rigorously. This is a more thorough unit
testing practice that involves copy and paste of
code to its own testing environment than its
natural environment. Isolating the code helps in
revealing unnecessary dependencies between the
code being tested and other units or data
spaces in the product. These dependencies can
then be eliminated.
A coder generally uses a UnitTest Framework to
develop automated test cases. Using an
automation framework, the developer codes
criteria into the test to verify the correctness of
the code. During execution of the test cases, the
framework logs failing test cases. Many
frameworks will also automatically flag and
report, in summary, these failed test cases.
Depending on the severity of a failure, the
framework may halt subsequent testing.
The workflow of Unit Testing is 1) Create Test
Cases 2) Review/Rework 3) Baseline 4) Execute
Test Cases.
DIAGRAM
Advantages of System Testing
Verifies the system against the business,
functional and technical requirements of the end
users.
It helps in getting maximum bugs before
acceptance testing.
System testing increases the confidence level of
the team in the product before the product goes
for acceptance testing.
It is the first testing level in which the whole
system is under test from end to end. So, it helps
in finding important defects which, unit and
integration testing could not detect.
This testing phase uses the test environment
which is similar to the real business environment
or production environment. Consequently, it
helps in boosting the confidence of users into the
product.
It is a black box testing hence testers do not need
programming knowledge to perform it.
ACCEPTANCE TESTING
Acceptance Testing is a type of testing performed by
the end user or the client to verify/accept the
software system before moving the software
application to the production environment. UAT is
done in the final phase of testing after functional,
integration and system testing is done.
Purpose of UAT
The main Purpose of UAT is to validate end to end
business flow. It does not focus on cosmetic errors,
spelling mistakes or system testing. User Acceptance
Testing is carried out in a separate testing
environment with production-like data setup. It is
kind of black box testing where two or more end-
users will be involved.