Answer To: Page 1 of 7 ITECH7409 Software Testing Assignment 1 Individual Research on Software Testing and...
Akriti answered on May 06 2021
Abhijit A. Sawant, Pranit H. Bari, P. M. Chawan / International Journal of Engineering Research and Applications
(IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.980-986
980 | P a g e
Software Testing Techniques and Strategies
Abhijit A. Sawant
1
, Pranit H. Bari
2
and P. M. Chawan
3
Department of Computer Technology, VJTI, University of Mumbai, INDIA
Abstract
This paper describes Software testing, need for software
testing, Software testing goals and principles. Further it
describe about different Software testing techniques and
different software testing strategies. Finally it describes
the difference between software testing and debugging.
Keywords— Debugging, Software Testing Goals,
Software Testing principles, Software Testing Techniques,
Software Testing strategies
I. INTRODUCTION
Software testing refers to process of evaluating the software
with intention to find out error in it. Software testing is a
technique aimed at evaluating an attribute or capability of a
program or product and determining that it meets its quality.
Software testing is also used to test the software for other
software quality factors like reliability, usability, integrity,
security, capability, efficiency, portability, maintainability,
compatibility etc.
For many years now we are still using the same testing
techniques .some of which is crafted method rather than good
engineering methods. Testing can be costly but not testing
software can be even more costly. Software testing aims at
achieving certain a goals and principles which are to be
followed.
1.1. Need for Software testing
Software development involves developing software against a
set of requirements. Software testing is needed to verify and
validate that the software that has been built has been built to
meet these specifications. If not we may probably loose our
client. So in order to make it sure, that we provide our client a
proper software solution, we go for testing [1]. Testing
ensures that what you get in the end is what you wanted to
build. We check out if there is any problem, any error in the
system, which can make software unusable by the client. This
helps in the prevention of errors in a system.
1.2. Goals for software testing
Goals are the output of the software process. Software testing
has following goals. [2]
1) Verification and validation
Testing can also be used for verifying that the product or the
software works as desired and validate whether the software
fulfills condition laid down
2) Priority Coverage
Testing should be performed in efficient and effective manner
within the budget and schedule limits.
3) Balanced
Testing process must balance the requirements, technical
limitation and user expectation.
4) Traceable
Documents should be prepared of both success and failures of
testing process. So no need to test same thing again.
5) Deterministic
We should know what we are doing, what we are targeting,
what will be the possible outcome.
1.3. Testing principles
Principle is the rule or method in action that has to be
followed. Different testing principles are as follows: [2]
1) Test a program to try to make it fail
Testing is the process of executing a program with the intent
of finding errors. We should expose failures to make testing
process more effective.
2) Start testing early
This helps in fixing enormous errors in early stages of
development, reduces the rework of finding the errors in the
initial stages.
3) Testing is context dependant
Testing should be appropriate and different for different
points of time.
4) Define Test Plan
Test Plan usually describes test scope, test objectives, test
strategy, test environment, deliverables of the test, risks and
mitigation, schedule, levels of testing to be applied, methods,
techniques and tools to be used. Test plan should efficiently
meet the needs of an organization and clients as well.
5) Design Effective Test cases
Abhijit A. Sawant, Pranit H. Bari, P. M. Chawan / International Journal of Engineering Research and Applications
(IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.980-986
981 | P a g e
Test case must be specified in a way that is measurable so
that testing results are unambiguous.
6) Test for valid as well as invalid Conditions
In addition to valid inputs, we should also test system for
invalid and unexpected inputs/conditions
7) Testing must be done by different persons at different
levels
Different purpose addressed at different level of testing so
different person should perform testing differently using
different testing techniques at different level.
8) End of Testing
Testing has to be stopped somewhere. The testing can be
stopped when risk is under some limit or if there is limitation.
II. SOFTWARE TESTING TECHNIQUES
In this Section the focus is mainly on the different software
testing Techniques.
Software Testing Techniques can be divided into two types:-
2.1. Manual testing (static testing)
It is a slow process and laborious where testing is done
statically .It is done in early phase of life cycle. It is also
called static testing. It is done by analyst, developer and
testing team.
Different Manual testing Techniques are as follows:-
A) walk through
B) Informal Review
C) Technical Review
D) Inspection
2.2. Automated Testing (Dynamic testing)
In this tester runs the script on the testing tool and testing is
done. Automated testing is also called dynamic testing.
Automated testing is further classified into four types
A) Correctness testing
B) Performance testing
C) Reliability testing
D) Security testing
Fig 1:-Further classification of Automated software Testing
2.2.1. Correctness Testing
Correctness is the minimum requirement of software.
Correctness testing will need some type of oracle, to tell the
right behaviour from the wrong one. The tester may or may
not know the inside details of the software module under test.
[3] Therefore either white box testing or black box testing can
be used.
Correctness testing has following three forms:-
1) White box testing
2) Black box testing
3) Grey box testing
Fig 2:- Different form of Correctness testing [3]
Abhijit A. Sawant, Pranit H. Bari, P. M. Chawan / International Journal of Engineering Research and Applications
(IJERA) ISSN: 2248-9622 www.ijera.com
Vol. 2, Issue 3, May-Jun 2012, pp.980-986
982 | P a g e
1) White box testing
White box testing is highly effective in detecting and
resolving problems, because bugs can often be found before
they cause trouble.[5] White box testing is the process of
giving the input to the system and checking how the system
processes that input to generate the required output.White box
testing is also called white box analysis, clear box testing or
clear box analysis.[5] White box testing is applicable at
integration, unit and system levels of the software testing
process.[3] White box testing is considered as a security
testing method that can be used to validate whether code
implementation follows intended design, to validate
implemented security functionality, and to uncover
exploitable vulnerabilities.
Some Different types of white box testing techniques are as
follows:-
1) Basis Path Testing
2) Loop Testing
3) Control Structure Testing
Advantages of white box testing:-
1) All independent paths in a module will be exercised at
least once.
2) All logical decisions will be exercised.
3) All loops at their boundaries will be executed.
4) Internal data structures will be exercised to maintain their
validity.
5) Errors in hidden codes are revealed.
6) Approximate the partitioning done by execution
equivalence.
7) Developer carefully gives reason about implementation.
Disadvantages of white box testing:-
1) Missed out the cases omitted in the code.
2) As knowledge of code and internal structure is a
prerequisite, a skilled tester is needed to carry out this
type of testing, which increases the cost.
3) And it is nearly impossible to look into every bit of code
to find out hidden errors, which may create problems,
resulting in failure of the application.
2) Black box testing
Black box testing is testing software based on output
requirements and without any knowledge of the internal
structure or coding in the program.[5]
Basically Black box testing is an integral part of „Correctness
testing‟ but its ideas are not limited to correctness testing
only. The goal is to test how well the component conforms to
the published requirement for the component. Black box
testing have little or no regard to the internal...