AComparative Study of Dynamic Software Testing Techniques
AComparative Study of Dynamic Software Testing Techniques
net/publication/348172351
CITATIONS READS
14 9,240
2 authors:
All content following this page was uploaded by Mubarak Albarka Umar on 24 January 2021.
explanation of all or one of the three main software testing technique knowledge is very limited and is based on
techniques in chronological order. Their common impressions and perceptions. Jamil et al., [14] conducted a
limitations are identified, a comparison of the reviewed review on software testing techniques with the aims of
literature is summarized in Table 1below. discussing as well as improving the existing testing
Jovanovic [10] provides a short description of the two techniques for the better-quality assurance purposes. They
widely known testing techniques – white and black box briefly explain the three testing techniques, in addition to
techniques. Furthermore, the author explains broadly the software release life cycles. The authors also proposed the
various and frequently used forms of testing under each of use of a tool to enhance the existing testing processes.
the two testing techniques. Jovanovic’s work is among the Sneha and Malle[15] researchedsoftware testing
earliest works on software testing techniques and it techniques and software automation testing tools intending
provides the basis of many similar testing research that to explain different testing techniques and types together
follow it, similarly. Khan and Khan [11] performed a with explaining some of the most used automation tools.
study on the three most prevalent and commonly used Their research also highlighted the important role played
software testing techniques for detecting errors. The three by automation tools in comparison to the manual testing
testing techniques are white-box testing, black-box testing, approach in software testing. Syaikhuddin et al., [16]
and grey-box testing. The authors provide a clear conducted a study on conventional software testing with a
description of the techniques along with a brief specific focus on the white-box testing technique, they
explanation of some of the important testing types of each provide a simple explanation and case scenarios of some
testing technique. They also compared the three testing white box testing methods. The authors concluded that it
techniques. Nidhra and Dondeti[12] conduct a study on will be necessary to find an experienced tester to conduct
black-box and white-box testing techniques with the aim the testing process using White Box Testing method due to
of providing a clear explanation of the two different its complexity.Umar[17] presented a comprehensive study
testing techniques, their advantages, and their usefulness. of software testing. The study provides a clear explanation
In conducting their studies, the authors carefully retrieved and shows how the various testing categories, testing
qualitative data, which mainly focus on testing techniques, levels, the three testing techniques, and numerous types of
their types, advantages, and case scenarios, from 29 testing relate to each other. The study provided the
articles and used them in succinctly explaining the testing advantages and disadvantages of various testing methods
techniques as well as the various testing types under those and made some comparisons of different testing levels in
two testing techniques. Kaur and Singh [13] reviewed addition to comparing the three testing techniques. The
software testing techniques intending to analyze and author also highlighted the role played by verification and
compare many types of testing techniques to find out the validation in achieving software quality.
best testing typefor finding errors from a software
program. The authors concluded that the current testing
Table 1 - Literature Reviewed Summary
S/No. Work Testing White Black Grey Experienced-
Dynamic/Static Comparisons
‘Year Levels box box box based
1 [10] ‘09
2 [11] ‘12
3 [12] ‘12
4 [13] ‘14
5 [14] ‘16
6 [15] ‘17
7 [16] ‘18
8 [17] ‘19
9 This work
be prevented using static testing [9]. On the contrary, the current literature, dynamic testing is referred to as
dynamic testing involves the execution of the software or “testing” while “verification activities” is the term used for
its component with a given set of test cases [7]. It's static testing [2], [8]. Table 2 shows a comparison of the
performed when the software is run and it may begin testing approaches, and Figure 1 provides a graphical view
before the software is 100% complete such as testing a of the software testing paradigm.
particular section of code. Most of the commonly known
types of testing are under dynamic testing; and in most of
Table 2 - Static VS Dynamic Testing [7], [9]
Criteria Static Testing Dynamic Testing
Execution No execution required Required code execution
Test case No test case is used Performed using test cases
Nature Often implicit, like proofreading Very explicit
Test Stub/driver None is required May required either or both
Verification/validation Involves verification process Involves validation process
Active/passive A form of Passive testing Active testing
Manual/automated Usually performed manually Performed mostly using automation tools
Main goal Seeks to find defects in software Aimed at finding software failures
Cost Low cost of finding and fixing defects High cost of finding and fixing failures
Begin before completion of the software,
Execution time Can be performed before compilation usually on the smallest executable code
section of a software.
Can be performed on software source
code, design documents and models, Only performable on software source
Target component
functional and requirement specifications, code.
and any other documents.
testing are the four major testing techniques [9], [17]. Structured-Based Testing Types
Table 3 shows the advantages and disadvantages of the Some structured-based testing types include Control Flow,
dynamic testing approach. Data flow, Branch, Loop, Path Testing [19]. Some
commonly used structured-based testing types are
Table 3 - Pros and Cons of Dynamic Testing discussed below.
Advantages Disadvantages
Very time consuming
Can identify weak area in because of the need to
the runtime environment execute the software
program often
Supports application
analysis even if the tester Hard to find trained
does not have an actual dynamic test professionals
code
Hard to track down the
Can verify the correctness
vulnerabilities in the code,
of static testing as well as
and it takes longer to fix
find vulnerabilities that
the problem. Therefore, Figure 3 - Structured-Based Testing Types
are difficult to find with
fixing bugs becomes
static testing.
expensive 4.1.1. Control-Flow Testing
Control flow testing is a type of structured-based testing
4.1. Structured-Based Testing that essentially checks the flow of control and order of
This is a dynamic testing technique in which internal executionof software using a control flow graph (CFG). It
structure and implementation of software under test are selects paths, nodes, and conditions from the CFG, and
known to the tester. Structured-based testing required full test cases are designed for executing these paths,with each
knowledge of source code because test cases selection is path, node, or statements being traversed at least once
grounded on the implementation of software entity, during the testing process. Studying the control structure
specifically the internal view of the system and tester’s of the software is important in selecting and designing test
programming skills are used to design test cases [12]. cases [20]. Typically,a test case is anentire path from entry
Tester selects inputs to exercise program paths and to exit nodes of the CFG. The selected set of paths are
compare the output with the expected output, the test used to achieve a certain degree of testing thoroughness.
oracle. Structured-based testing, although usually done at Control-flow testing is most applicable at the unit level of
the unit level, is also performed at integration and system software [21].
levels of the software testing process. Structured-based
testing is also calledWhite Box, Transparent Box, Glass A typical CFG of a program comprises a set of nodes and
Box, Clear Box, Logic Driven, Open Box Testing. edges, with each node representing a set of statements.
There are five types of CFG nodes, viz.: unique entry and
exit nodes, decision node (containing a conditional
statement that can havea minimum of 2 control branches
(such as a switch or if statements)), then merge node
(which mostly represent a point where multiple control
branches merge), and statement node having a sequence of
statements. The control must flow from the first statement
and exit from the last statement, and the CFG may have an
Figure 2 - Structured-Based Testing additional edge between nodes for the reverse order flow
of control (i.e. from the last to the first statement) [22].
Table 4 – Pros and Cons of Structure-Based Testing There are several conventions for CFG models with subtle
Advantages Disadvantages differences (e.g., hierarchical CFGs, concurrent CFGs).
Specialized tools are Control-flow testing supports the following test coverage
Code optimization can criteria [22]:
required such as debugging
be performed
tools and code analyzers. Statement/Node Coverage:Executes each statement in
Easy to identify data the program at least once
and cover more test It’s often expensive and Edge Coverage: Executes each statement in the
cases due to tester’s difficult to maintain program at least once using all possible outcomes at
knowledge of the code. least once on every decision in the program.
Impossible to find and test Condition Coverage: Executes each statement in the
Errors in hidden codes all the hidden error and program at least once using all possible outcomes at
are revealed deal with them without least once on every condition in each decision.
going out of time
Int. J. Advanced Networking and Applications 4579
Volume: 12 Issue: 03 Pages: 4575-4584(2020) ISSN: 0975-0290
Path Coverage: Executes each complete path in the All-du-paths (ADUP) coverage: which covers all paths
program at least once. Except for loops, which usually has between definitions and uses for each def-use pair. It is
an infinite number of complete paths. thesuperset of all other data flow testing strategies and the
strongest data-flow testing strategy. Moreover, this
Table 5 – Pros and Cons of Control-Flow Testing strategy requires the greatest number of paths for testing.
Advantages Disadvantages
Cannot detect Table 6 – Pros and Cons of Data-Flow Testing
Catches 50% of all bugs specification errors as Advantage Disadvantage
caught during unit testing well as Interface Can define intermediary
Unscalable Data-Flow
[21] mismatches and Control flow analysis
Analysis algorithm for
mistakes criteria between all-nodes
large real-world programs
Very effective testing and all-paths testing
Cannot catch all
method for code that follows Test case design
initialization mistakes Handles variable definition
unstructured programming difficulties compared with
and usage
Enable experienced testers to Time-consuming and control flow testing.
bypass drawing CFG by required Infeasible test objectives
doing path selection on the programming It spans the gap between all which might lead to
source knowledge paths and branch testing wastage of time on testing
in vain [24].
4.1.2. Data-Flow Testing Can have an infinite
Identify multiple variable
Data-flow testing is a type ofstructured-based testing in number of paths due to
declarations
which Control flow graph (CFG) paths are used to detect loops
inappropriate definition or usage of data in predicates,
computations, and termination (killing). It examines
patterns in which a piece of data is used to identifies 4.2. Specification-Based Testing
potential bugs [20]. Data flow testing searches for This is a dynamic testing technique in which the internal
unreasonable things that can happen to data. Data flow structure and implementation of software under test are
anomalies are identified based on the associations between not known to the tester, and it can be functional (such as
variables and values (unused initialized variables or integration testing) or non-functional (such as performance
uninitialized used variables). Data flow testing focuses on testing), though usually functional. It is called
variables definition, use occurrence, and both predicate specification-based because test cases are built around
and computational use at different points within the requirement specifications and user stories. The
program. There are two main data flow testingforms:(1) specification-based testing emphasizes evaluating the
define/use testing which uses some simple rules and test fundamental aspects of software using thorough test cases,
coverage metrics, and (2) program slices that use segments and generally, on maintaining the integrity of external
of a program [23]. Data flow testing use the following test information [19]. For a given test case, the tester verifies
coverage criteria in creating test cases for the test [20]: proper acceptance of inputs and correct production of
All-defs (AD) coverage: which has a path from every outputs against its test oracle. Specification-based
definition to at least one use of that definition testingcan be applied at all levels of software testing
All-uses (AU) coverage: in which for every use of processes such as Unit, Integration, System and
variable, there is at least one path from the definition Acceptance Testing levels, although done mostly on
to its use. System testing and Integration testing.This testing is also
All-c-uses (ACU) coverage: in which for every called Opaque, Functional, Black-box, Close-box,
variable, there is a path from each of its definition to Behavioral, and Input-Output testing.
each of its c-use,any defined variable with no
subsequent c-use is dropped from contention.
All-c-uses/some-p-uses (ACU+P) coverage: in which
for every variable, there is a path from each of its
definition to each of its c-use. p-use is considered if
there is any defined variable with no c-use following
it.
All-p-uses (APU) coverage: in which for every
variable, there is a path from each of its definition to
each of its p-use, any defined variable with no
subsequent p-use is dropped from contention.
All-p-uses/some-c-uses (APU+C) coverage: in which Figure 4 - Specification-Based Testing
for every variable, there is a path from each of its
definition to each of its p-use. c-use is considered if
there is any defined variable with no p-use following
it.
Int. J. Advanced Networking and Applications 4580
Volume: 12 Issue: 03 Pages: 4575-4584(2020) ISSN: 0975-0290
Table 7 – Pros and Cons of Black-box Testing Table 8 – Pros and Cons of Equivalence Partitioning
Advantages Disadvantages Testing
Code knowledge is not Advantages Disadvantages
Limited coverage, few test
required, tester’s Provide a sense of complete Suitable only for range-
scenarios are
perception is very testing and eradicates the wise and discrete values
designed/performed.
simple need for exhaustive testing input data
User’s and developer’s Some parts of the backend are Enables large domain of
Assumes that the data in
view are separate not tested at all. inputs or outputs coverage
the same equivalence class
Access to code is Inefficient testing due to the with a smaller subset
is processed in the same
unrequired, quicker limited knowledge of code selected from an
way by the system
test case development possesses by a tester. equivalence class
Test cases are difficult to Can’t handle boundary
Efficient and suitable Avoid test redundancy by
design without clear value errors. Need to be
for large parts of code selecting a subset of test
specification supplemented by boundary
inputs from each class.
value analysis
Specification-Based Testing Types
Some specification-based testing types include 4.2.2. Boundary Value Analysis Testing (BVA)
equivalence Partitioning, Cause-Effect Graph, Fuzzing, This is a specification-based testing technique that aims at
Boundary Value Analysis, Decision Table, State finding software errors at the boundaries of equivalence
Transition, Orthogonal Array, and All Pair Testing [11]. classes. Unlike the Equivalence Partitioning technique that
Some common specification-based testing types are uses only the input domainin creating test cases, the BVA
discussed below. uses both input and output domains. The BVA
complements EPtesting such that while EP tests program
with test cases from within equivalence classes, the BVA
focuses on testingthe program using test cases at and near
the boundaries of equivalence classes [25]. Furthermore,
test cases derived using either of the two techniques may
overlap.
Table 9 – Pros and Cons of Boundary Value Analysis
Testing
Advantages Disadvantages
Complements Equivalence
Partitioning testing by Generate a high number
handling equivalence class of test cases
boundary errors.
Works well with variables Can’t be used for
that represent bounded Boolean and logical
physical quantities variables
Figure 5 - Specification-Based Testing Types Can be used at unit, Function nature and
integration, system and variable meaning are not
4.2.1. Equivalence Partitioning Testing (EP) acceptance test levels considered
This is a specification-based testing technique that Computationally less costly in Not that useful for
dividesthe input domain into different equivalence classes creating test cases strongly-typed languages
to reduce the number of test cases andselects one element
from each equivalence class (EC) as a test case. It is used 4.3. Translucent Testing
to avoid test redundancy and give a sense of complete Translucent testing also known asGrey Box testing, is
testingsince exhaustive testing is not possible. EC Testing another dynamic testing technique that takes the
can be either weak or strong. In Weak Equivalence Class straightforward technique approach of specification-based
Testing (WECT), some test cases are defined by choosing testing and combines it with the code-targeted oriented
one variable value from each equivalence class and then testing approach of structured-based testing. Some
taking the maximum value from the chosen variables, knowledge, usually of the part to be tested, of the internal
while test cases in Strong Equivalence Class Testing working of the software is required in designing test cases
(SECT) are defined based on the cartesian product of at a specification-based level. More understanding of the
partition class, i.e., testing all interactions of all internal implementation of software is required in grey-
equivalence classes [25]. box testing than in specification-based testing, but less
compared to structured-based testing [19]. Grey box
testing is much more effective in integration testing and is
the best approach for functional or domain testing, it is
also a perfect fit for testing web-based applications [26].
Int. J. Advanced Networking and Applications 4581
Volume: 12 Issue: 03 Pages: 4575-4584(2020) ISSN: 0975-0290
Experienced-Based Testing Types knowledge of the software and that of testing approaches
Generally, there are four types of testing techniques where determines the quality and effectiveness of the testing
the experience of a tester plays a major role. These are result. It provides work flexibility and freedom to the
Error Guessing, Checklist-based testing, Attack testing, tester. Exploratory testing is a progressive learning
and Exploratory testing. Some of these testing types are approach that helps in performing maximum testing with
discussed. minimal planning. It is ideal when there are inadequate
specifications or requirements and severely limited time
Figure 8 - Experienced-Based Testing Types
[31].
6. CONCLUSION https://doi.org/10.5281/zenodo.3924795
Delivering quality software is the main goal of any [7] D. Graham, E. Van Veenendaal, I. Evans, and R.
software project. Software Testing has been widely used Black, Foundations of Software Testing: ISTQB
and remains a truly effective means of assuring the quality Certification. 2008.
of software. In this paper, the most important and most [8] P. Ammann and J. Offutt, Introduction to Software
applied dynamic software testing techniques, their Testing. Cambridge University Press, 2008.
advantages and disadvantages are discussed, their [9] W. L. Oberkampf and C. J. Roy, Verification and
comparisons are also presented. Learning about and validation in scientific computing. Cambridge
effective usage of these dynamic software testing University Press, 2010.
techniques in software development will help testers to [10] I. Jovanovic, ‘Software Testing Methods and
carry out a successful software testing thereby improving Techniques’, IPSI BgD Trans. Internet Res., vol.
software quality. 5, no. 1, pp. 30–41, 2009.
[11] M. E. Khan and F. Khan, ‘A Comparative Study
REFERENCES of White Box , Black Box and Grey Box Testing
Techniques’, Int. J. Adv. Comput. Sci. Appl., vol.
[1] G. J. Myers, C. Sandler, and T. Badgett, The Art of
3, no. 6, pp. 12–15, 2012.
Software Testing 3rd Edition, 3rd Ed. Canada:
[12] S. Nidhra and J. Dondeti, ‘Black Box and White
John Wiley & Sons, Inc., 2012.
Box Testing Techniques’, Int. J. Embed. Syst.
[2] L. Luo, ‘A Report on Software Testing
Appl., vol. 2, no. 2, pp. 29–50, 2012.
Techniques’, Pittsburgh, USA, 2001.
[13] M. Kaur and R. Singh, ‘A Review of Software
[3] E. Miller, Software testing & validation
Testing Techniques’, Int. J. Electron. Electr. Eng.,
techniques. [Washington D.C.]: IEEE Computer
vol. 7, no. 5, pp. 463–474, 2014.
Society Press, 1981.
[14] M. A. Jamil, M. Arif, N. Sham, A. Abubakar, and
[4] D. R. Graham, ‘TESTING, VERIFICATION
A. Ahmad, ‘Software Testing Techniques : A
AND VALIDATION’, Int. J., vol. XVI, pp. 1069–
Literature Review’, in 2016 6th International
1101, 1979.
Conference on Information and Communication
[5] A. Dennis, B. H. Wixom, and R. M. Roth, Systems
Technology for The Muslim World Software, 2016,
Analysis and Design 5th Edition, 5th Editio. USA:
pp. 177–182.
John Wiley & Sons, Inc., 2012.
[15] K. Sneha and G. M. Malle, ‘Research on software
[6] M. A. Umar and C. Zhanfang, ‘A Study of
testing techniques and software automation testing
Automated Software Testing : Automation Tools
tools’, in 2017 International Conference on
and Frameworks’, Int. J. Comput. Sci. Eng., vol. 8,
Energy, Communication, Data Analytics and Soft
no. 06, pp. 217–225, 2019. DOI:
Computing, ICECDS 2017, 2017, pp. 77–81.
Int. J. Advanced Networking and Applications 4584
Volume: 12 Issue: 03 Pages: 4575-4584(2020) ISSN: 0975-0290
Authors Biographies
MUBARAK ALBARKA UMAR was ZHANFANG CHEN, Ph.D.,
born in Dutsinma, Katsina State, Associate Professor of School of
Nigeria. He received the BSc. (Honors) Computer Science and Technology in
Degree in Software Engineering from Changchun University of Science and
the University of East London in 2015, Technology, China. His research
and MEng. Degree in Computer interests include network engineering,
Applied Technology from the software engineering, computer
Changchun University of Science and architecture, data mining, soft
Technology, China in 2020. computing, and software engineering.
He is a staff of Katsina State Institute of Technology and He is currently a teacher of Changchun University of
Management (KSITM), Katsina, Nigeria. He previously Science and Technology and has worked for 15 years. He's
did a one-year national service at Usmanu Danfodiyo worked on over 20 projects and published 20 articles in
University, Sokoto (UDUS), Nigeria from 2015 to 2016. peer-review international journals.
He has published 7 articles in peer-review international
journals. His research interests include data mining, soft
computing, software engineering, network security and
fuzzy logic.