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

Software Testing

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Software Testing

Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

SOFTWARE TESTING

WHEN TO START
Its ok to test the software as early stage as possible.Each phase of
software making involves testing
When to Stop Testing?
It is difficult to determine when to stop testing, as testing is a
never-ending process and no one can claim that a software is
100% tested. The following aspects are to be considered for
stopping the testing process:
Testing Deadlines
Completion of test case execution
Completion of functional and code coverage to a certain point
Bug rate falls below a certain level and no high-priority bugs are
identified
Management decision
Testing is done in different forms at every phase of SDLC:
Software Testing – Overview Software Testing 2 During the
requirement gathering phase, the analysis and verification of
requirements are also considered as testing. Reviewing the design
in the design phase with the intent to improve the design is also
considered as testing. Testing performed by a developer on
completion of the code is also categorized as testing
• During the requirement gathering phase, the
analysis and verification of requirements are also considered
as testing.
• Reviewing the design in the design phase with the
intent to improve the design is also considered as testing.
• Testing performed by a developer on completion of
the code is also categorized as testing.
When to Stop Testing?
It is difficult to determine when to stop testing, as testing is a
never-ending process and no one can claim that a software is
100% tested. The following aspects are to be considered for
stopping the testing process −
• Testing Deadlines
• Completion of test case execution
• Completion of functional and code coverage to a
certain point
• Bug rate falls below a certain level and no high-
priority bugs are identified
• Management decision

Verification
Validation

.Done by developers
.Done by testers

Quality Assurance,and Quality Control testing


.
Quality Assurance
Quality Control
Testing
QA includes activities that ensure the implementation of
processes, procedures and standards in context to
verification of developed software and intended
.requirements
It includes activities that ensure the verification of a
developed software with respect to documented (or not in
.some cases) requirements
It includes activities that ensure the identification of
.bugs/error/defects in a software
Focuses on processes and procedures rather than
.conducting actual testing on the system
Focuses on actual testing by executing the software with an
aim to identify bug/defect through implementation of
.procedures and process
.Focuses on actual testing
.Process-oriented activities
.Product-oriented activities
.Product-oriented activities
.Preventive activities
.It is a corrective process
.It is a preventive process
.It is a subset of Software Test Life Cycle (STLC)
.QC can be considered as the subset of Quality Assurance
.Testing is the subset of Quality Control

Audit and Inspection


Audit − It is a systematic process to determine how the actual
testing process is conducted within an organization or a team.
Generally, it is an independent examination of processes
involved during the testing of a software. As per IEEE, it is a
review of documented processes that organizations implement
and follow. Types of audit include Legal Compliance Audit,
Internal Audit, and System Audit.

Software Testing - Types of Testing


Manual Testing
Manual testing includes testing a 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 a software
to ensure the completeness of testing. Manual testing also includes
exploratory testing, as testers explore the software to identify
errors in it.
https://www.tutorialspoint.com/software_testing/
software_testing_types.htm
Apart from regression testing, automation testing is also used to
test the application from load, performance, and stress point of
view. It increases the test coverage, improves accuracy, and saves
time and money in comparison to manual testing.
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 automation of a
manual process. Automation Testing is used to re-run the test
scenarios that were performed manually, quickly, and
repeatedly.
What to Automate?
It is not possible to automate everything in a software. The areas
at which a user can make transactions such as the login form or
registration forms, any area where large number of users can
access the software simultaneously should be automated.
Furthermore, all GUI items, connections with databases, field
validations, etc. can be efficiently tested by automating the manual
process.
When to Automate?
Test Automation should be used by considering the following
aspects of a software −
• Large and critical projects
• Projects that require testing the same areas
frequently
• Requirements not changing frequently
• Accessing the application for load and performance
with many virtual users
• Stable software with respect to manual testing
• Availability of time
How to Automate?
Automation is done by using a supportive computer language like
VB scripting and an automated software application. There are
many tools available that can be used to write automation scripts.
Before mentioning the tools, let us identify the process that can be
used to automate the testing process −
• Identifying areas within a software for automation
• Selection of appropriate tool for test automation
• Writing test scripts
• Development of test suits
• Execution of scripts
• Create result reports
• Identify any potential bug or performance issues
Software Testing Tools
The following tools can be used for automation testing −
• HP Quick Test Professional
• Selenium
• IBM Rational Functional Tester
• SilkTest
• TestComplete
• Testing Anywhere
• WinRunner
• LoadRunner
• Visual Studio Test Professional
• WATIR

Software Testing - Methods


A Comparison of Testing Methods
T
h
e
f
o
l
l
o
w
i
n
g
t
a
b
l
e
l
i
s
t
s
t
h
e
p
o
i
n
t
s
t
h
a
t
d
i
f
f
e
r
e
n
t
i
a
t
e
b
l
a
c
k
-
b
o
x
t
e
s
t
i
n
g
,
g
r
e
y
-
b
o
x
t
e
s
t
i
n
g
,
a
n
d
w
h
i
t
e
-
b
o
x
t
e
s
t
i
n
g
.
Black-Box Testing
Grey-Box Testing
White-Box Testing
.The internal workings of an application need not be known
The tester has limited knowledge of the internal workings of
.the application
Tester has full knowledge of the internal workings of the
.application
Also known as closed-box testing, data-driven testing, or
.functional testing
Also known as translucent testing, as the tester has limited
.knowledge of the insides of the application
Also known as clear-box testing, structural testing, or code-
.based testing
.Performed by end-users and also by testers and developers
.Performed by end-users and also by testers and developers
.Normally done by testers and developers
Testing is based on external expectations - Internal behavior
.of the application is unknown
Testing is done on the basis of high-level database
.diagrams and data flow diagrams
Internal workings are fully known and the tester can design
.test data accordingly
.It is exhaustive and the least time-consuming
.Partly time-consuming and exhaustive
.The most exhaustive and time-consuming type of testing
.Not suited for algorithm testing
.Not suited for algorithm testing
.Suited
for algorithm testing
.This can only be done by trial-and-error method
Data domains and internal boundaries can be tested, if
.known
.Data domains and internal boundaries can be better tested

Software Testing - Levels


The main levels of software testing are −
• Functional Testing
• Non-functional Testing
Functional Testing
This is a type of black-box testing that is based on the
specifications of the software that is to be tested. The application
is tested by providing input and then the results are examined that
need to conform to the functionality it was intended for.
Functional testing of a software is conducted on a complete,
integrated system to evaluate the system's compliance with its
specified requirements.
There are five steps that are involved while testing an application
for functionality.
Steps
Description
I
The determination of the functionality that the intended
.application is meant to perform
II
The creation of test data based on the specifications of the
.application
III
The output based on the test data and the specifications of the
.application
IV
.The writing of test scenarios and the execution of test cases
V
The comparison of actual and expected results based on the
.executed test cases

An effective testing practice will see the above steps applied to the
testing policies of every organization and hence it will make sure
that the organization maintains the strictest of standards when it
comes to software quality.
Unit Testing
This type of testing is performed by developers before the setup is
handed over to the testing team to formally execute the test cases.
Unit testing is performed by the respective developers on the
individual units of source code assigned areas. The developers use
test data that is different from the test data of the quality assurance
team.
The goal of unit testing is to isolate each part of the program and
show that individual parts are correct in terms of requirements and
functionality.
Limitations of Unit Testing
Testing cannot catch each and every bug in an application. It is
impossible to evaluate every execution path in every software
application. The same is the case with unit testing.
There is a limit to the number of scenarios and test data that a
developer can use to verify a source code. After having exhausted
all the options, there is no choice but to stop unit testing and
merge the code segment with other units.
Integration Testing
Integration testing is defined as the testing of combined parts
of an application to determine if they function correctly.
Integration testing can be done in two ways: Bottom-up
integration testing and Top-down integration testing.
.Sr.No
Integration Testing Method
1
Bottom-up integration
This testing begins with unit testing, followed by tests of
progressively higher-level combinations of units called modules or
.builds
2
Top-down integration
In this testing, the highest-level modules are tested first and
.progressively, lower-level modules are tested thereafter

In a comprehensive software development environment, bottom-


up testing is usually done first, followed by top-down testing. The
process concludes with multiple tests of the complete application,
preferably in scenarios designed to mimic actual situations.
System Testing -SIT
System testing tests the system as a whole. Once all the
components are integrated, the application as a whole is tested
rigorously to see that it meets the specified Quality Standards.
Regression Testing
Whenever a change in a software application is made, it is quite
possible that other areas within the application have been affected
by this change. Regression testing is performed to verify that a
fixed bug hasn't resulted in another functionality or business rule
violation.
Acceptance Testing
This is arguably the most important type of testing, as it is
conducted by the Quality Assurance Team who will gauge whether
the application meets the intended specifications and satisfies the
client’s requirement.
NON-FUNCTIONAL TESTING
Performance testing can be either qualitative or quantitative and
can be divided into different sub-types such as Load
testing and Stress testing.
Load Testing
It is a process of testing the behavior of a software by applying
maximum load in terms of software accessing and manipulating
large input data. It can be done at both normal and peak load
conditions. This type of testing identifies the maximum capacity
of software and its behavior at peak time.
Most of the time, load testing is performed with the help of
automated tools such as Load Runner, AppLoader, IBM Rational
Performance Tester, Apache JMeter, Silk Performer, Visual Studio
Load Test, etc.
Virtual users (VUsers) are defined in the automated testing tool
and the script is executed to verify the load testing for the
software. The number of users can be increased or decreased
concurrently or incrementally based upon the requirements.
Stress Testing
Stress testing includes testing the behavior of a software under
abnormal conditions. For example, it may include taking away
some resources or applying a load beyond the actual load limit.
The aim of stress testing is to test the software by applying the
load to the system and taking over the resources used by the
software to identify the breaking point. This testing can be
performed by testing different scenarios such as −
• Shutdown or restart of network ports randomly
• Turning the database on or off
• Running different processes that consume resources
such as CPU, memory, server, etc.
Software Testing - Documentation
This section describes some of the commonly used documented
artifacts related to software testing such as −
• Test Plan
• Test Scenario
• Test Case
• Traceability Matrix
Test Plan
A test plan outlines the strategy that will be used to test an
application, the resources that will be used, the test environment in
which testing will be performed, and the limitations of the testing
and the schedule of testing activities. Typically the Quality
Assurance Team Lead will be responsible for writing a Test Plan.
Test Scenario
It is a one line statement that notifies what area in the application
will be tested.
Test Case
Test cases involve a set of steps, conditions, and inputs that can be
used while performing testing tasks.
Traceability Matrix
• Make sure the software is developed as per the
mentioned requirements.
• Helps in finding the root cause of any bug.
• Helps in tracing the developed documents during
different phases of SDLC.

You might also like