Testing Technique and Strategies
Testing Technique and Strategies
Testing Technique and Strategies
Abstract
This paper describes Software testing, need for software Testing can also be used for verifying that the product or the
testing, Software testing goals and principles. Further it software works as desired and validate whether the software
describe about different Software testing techniques and fulfills condition laid down
different software testing strategies. Finally it describes
the difference between software testing and debugging. 2) Priority Coverage
Testing should be performed in efficient and effective manner
within the budget and schedule limits.
Keywords— Debugging, Software Testing Goals,
Software Testing principles, Software Testing Techniques, 3) Balanced
Software Testing strategies Testing process must balance the requirements, technical
limitation and user expectation.
I. INTRODUCTION
Software testing refers to process of evaluating the software 4) Traceable
with intention to find out error in it. Software testing is a Documents should be prepared of both success and failures of
technique aimed at evaluating an attribute or capability of a testing process. So no need to test same thing again.
program or product and determining that it meets its quality.
Software testing is also used to test the software for other 5) Deterministic
software quality factors like reliability, usability, integrity, We should know what we are doing, what we are targeting,
security, capability, efficiency, portability, maintainability, what will be the possible outcome.
compatibility etc.
For many years now we are still using the same testing 1.3. Testing principles
techniques .some of which is crafted method rather than good Principle is the rule or method in action that has to be
engineering methods. Testing can be costly but not testing followed. Different testing principles are as follows: [2]
software can be even more costly. Software testing aims at
achieving certain a goals and principles which are to be 1) Test a program to try to make it fail
followed. Testing is the process of executing a program with the intent
of finding errors. We should expose failures to make testing
1.1. Need for Software testing process more effective.
Software development involves developing software against a
set of requirements. Software testing is needed to verify and 2) Start testing early
validate that the software that has been built has been built to This helps in fixing enormous errors in early stages of
meet these specifications. If not we may probably loose our development, reduces the rework of finding the errors in the
client. So in order to make it sure, that we provide our client a initial stages.
proper software solution, we go for testing [1]. Testing
ensures that what you get in the end is what you wanted to 3) Testing is context dependant
build. We check out if there is any problem, any error in the Testing should be appropriate and different for different
system, which can make software unusable by the client. This points of time.
helps in the prevention of errors in a system.
4) Define Test Plan
1.2. Goals for software testing Test Plan usually describes test scope, test objectives, test
Goals are the output of the software process. Software testing strategy, test environment, deliverables of the test, risks and
has following goals. [2] mitigation, schedule, levels of testing to be applied, methods,
techniques and tools to be used. Test plan should efficiently
1) Verification and validation meet the needs of an organization and clients as well.
980 | P a g e
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
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.
981 | P a g e
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
1) White box testing Some Different types of Black box testing techniques are as
White box testing is highly effective in detecting and follows:-
resolving problems, because bugs can often be found before 1) Equivalent Partitioning
they cause trouble.[5] White box testing is the process of 2) Boundary value Analysis
giving the input to the system and checking how the system 3) Cause-Effect Graphing Techniques
processes that input to generate the required output.White box 4) Comparison Testing
testing is also called white box analysis, clear box testing or 5) Fuzz Testing
clear box analysis.[5] White box testing is applicable at 6) Model-based testing
integration, unit and system levels of the software testing
process.[3] White box testing is considered as a security Advantages of Black box testing:-
testing method that can be used to validate whether code 1) The number of test cases are reduced to achieve
implementation follows intended design, to validate reasonable testing
implemented security functionality, and to uncover 2) The test cases can show presence or absence of classes of
exploitable vulnerabilities. errors.
3) Black box tester has no “bond” with the code.
Some Different types of white box testing techniques are as 4) Programmer and tester both are independent of each
follows:- other.
1) Basis Path Testing 5) More effective on larger units of code than clear box
2) Loop Testing testing.
3) Control Structure Testing
Disadvantages of Black box testing:-
Advantages of white box testing:- 1) Test cases are hard to design without clear specifications.
1) All independent paths in a module will be exercised at 2) Only small numbers of possible input can actually be
least once. tested.
2) All logical decisions will be exercised. 3) Some parts of the back end are not tested at all.
3) All loops at their boundaries will be executed. 4) Chances of having unidentified paths during this testing
4) Internal data structures will be exercised to maintain their 5) Chances of having repetition of tests that are already
validity. done by programmer
5) Errors in hidden codes are revealed.
6) Approximate the partitioning done by execution 3) Grey box testing
equivalence. The Graybox Testing Methodology is a software testing
7) Developer carefully gives reason about implementation. method used to test software applications. The methodology
is platform and language independent. The current
Disadvantages of white box testing:- implementation of the Graybox methodology is heavily
1) Missed out the cases omitted in the code. dependent on the use of a host platform debugger to execute
2) As knowledge of code and internal structure is a and validate the software under test. Recent studies have
prerequisite, a skilled tester is needed to carry out this confirmed that the Graybox method can be applied in real
type of testing, which increases the cost. time using software executing on the target platform.
3) And it is nearly impossible to look into every bit of code Grey box testing techniques combined the testing
to find out hidden errors, which may create problems, methodology of white box and black box. Grey box testing
resulting in failure of the application. technique is used for testing a piece of software against its
specifications but using some knowledge of its internal
2) Black box testing working as well. The understanding of internals of the
Black box testing is testing software based on output program in grey box testing is more than black box testing,
requirements and without any knowledge of the internal but less than clear box testing. [3]
structure or coding in the program.[5] The Graybox methodology is a ten step process for testing
Basically Black box testing is an integral part of „Correctness computer software.
testing‟ but its ideas are not limited to correctness testing Ten Step Graybox Methodology
only. The goal is to test how well the component conforms to 1) Identify Inputs
the published requirement for the component. Black box 2) Identify Outputs
testing have little or no regard to the internal logical structure 3) Identify Major Paths
of the system, it only examines the fundamental aspect of the 4) Identify Subfunction (SF)X
system. It makes sure that input is properly accepted and 5) Develop Inputs for SF X
output is correctly produced. [3] 6) Develop Outputs for SF X
982 | P a g e
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
983 | P a g e
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
particular, it tends to reveal bugs which are otherwise 2. Depending on the integration approach selected
insidious and are often catastrophic like the strange subordinate stubs are replaced one at a time with actual
system crashes that occur in the field when something components.
unusual happens. 3. Tests are conducted as each component is integrated.
3) Be able to test parts of a project without waiting for the 4. On completion of each set of tests, another stub is replaced
other parts to be available, with the real component.
4) Achieve parallelism in testing by being able to test and 5. Regression testing may be conducted to ensure that new
fix problems simultaneously by many engineers, errors have not been introduced.
5) Be able to detect and remove defects at a much less cost
compared to other later stages of testing, It is not as relatively simple as it looks. In this logistic
6) Be able to take advantage of a number of formal testing problem can arise. Problem arises when testing low level
techniques available for unit testing, module which requires testing upper level. Stub replace low
7) Simplify debugging by limiting to a small unit the level module at the beginning of top down testing. So no data
possible code areas in which to search for bugs, can flow in upward direction.
8) Be able to test internal conditions that are not easily
reached by external inputs in the larger integrated Bottom up Integration
systems Bottom-up integration testing, as its name implies, begins
9) Be able to achieve a high level of structural coverage of construction and testing with atomic modules. Because
the code, components are integrated from the bottom up, processing
10) Avoid lengthy compile-build-debug cycles when required for components subordinate to a given level is
debugging difficult problems. always available and the need for stubs is eliminated. [4]
A bottom-up integration strategy may be implemented with
Unit testing techniques the following steps:
A number of effective testing techniques are usable in unit 1. Low-level components are combined into clusters that
testing stage. The testing techniques may be broadly divided perform a specific software subfunction.
into three types: 2. A driver is written to coordinate test case input and output.
3. The cluster is tested.
1. Functional Testing 4. Drivers are removed and clusters are combined moving
2. Structural Testing upward in the program structure.
3. Heuristic or Intuitive Testing
3.3. Acceptance testing
3.2. Integration testing Acceptance testing (also known as user acceptance testing) is
Integration testing is a systematic technique for constructing a type of testing carried out in order to verify if the product is
the program structure while at the same time conducting tests developed as per the standards and specified criteria and
to uncover errors associated with interfacing. The objective is meets all the requirements specified by customer. [4] This
to take unit tested components and build a program structure type of testing is generally carried out by a user/customer
that has been dictated by design. where the product is developed externally by another party.
Acceptance testing falls under black box testing methodology
Different Integration testing Strategies are discussed below:- where the user is not very much interested in internal
working/coding of the system, but evaluates the overall
1) Top down Integration testing functioning of the system and compares it with the
2) Bottom up Integration testing requirements specified by them. User acceptance testing is
considered to be one of the most important testing by user
Top down Integration before the system is finally delivered or handed over to the
Top-down integration testing is an incremental approach to end user.
construct program structure. Modules are integrated by Acceptance testing is also known as validation testing, final
moving downward through the structure, beginning with the testing, QA testing, factory acceptance testing and application
main control module. Modules subordinate to the main testing etc. And in software engineering, acceptance testing
control module are incorporated into the structure in either a may be carried out at two different levels; one at the system
depth-first or breadth-first manner. [4] provider level and another at the end user level.
984 | P a g e
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
985 | P a g e
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
V. CONCLUSIONS
This paper on Software testing describes in detail about
software testing, need of software testing, Software testing
goals and principles. . Software testing is often less formal
and rigorous than it should, and a main reason for that is
because we have struggled to define best practices,
methodologies, principles, standards for optimal software
testing. To perform testing effectively and efficiently,
everyone involved with testing should be familiar with basic
software testing goals, principles, limitations and concepts.
We further explains different Software testing techniques
such as Correctness testing, Performance testing, Reliability
testing, Security testing. Further we have discussed the basic
principles of black box testing, white box testing and gray
box testing. We have surveyed some of the strategies
supporting these paradigms, and have discussed their pros
and cons. We also describes about different software testing
strategies such as unit testing, Integration testing, acceptance
testing and system testing.
Finally there is comparison between debugging and
testing. Testing is more than just debugging .Testing is not
only used to locate defects and correct them it is also used in
validation, verification process and measurement.
REFERENCES
[1] Sahil Batra and Dr. Rahul Rishi,”IMPROVING
QUALITY USING TESTING STRATEGIES,”
Journal of Gobal Research in Computer Science,
Volume 2,No.6,June 2011.
[2] S.M.K Quadri and Sheikh Umar Farooq,”Software
Testing-Goals,Principles and Limitations,”
International Journal of Computer Applications,
Volume 6-No.9,September 2010.
[3] Mohd. Ehmer Khan,”Different Forms of Software
Testing Techniques for Finding Errors,”IJCSI
International Journal of Computer Science
Issues,Vol. 7, Issue 3, No 1, May 2010.
[4] Ajay Jangra, Gurbaj Singh, Jasbir Singh and Rajesh
Verma,”EXPLORING TESTING
STRATEGIES,”International Journal of
Information Technology and Knowledge
Management, Volume 4, NO.1,January-June 2011.
[5] Jovanovic and Irena,”Software Testing Methods
and Techniques,” May 26,2008.
[6] ger S. Pressman, “Software engineering: A
practitioner‟s Approach,” fifth edition, 2001.
986 | P a g e