Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Phyllis G. Frankl

dblp:f/PGFrankl · DBLP profile ↗
← Back
33ranked-venue papers
12as first author
1since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 28 · 12 first-author · 1 since 2021Systems, architecture and hardware · 2Security and privacy · 1Databases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
14 papers
Software testing · 94% Program analysis · 6%
Databases, data mining, and information retrieval
2 papers
Transaction processing and concurrency control · 60% Database system architecture and tuning · 40%
Theoretical computer science
1 paper
Distributed computing theory · 100%

Topics — the 18 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing › database testing
database application testing
0.132005
Testing database transactions with AGENDA · ICSE 2005
Testing Database Transaction Concurrency · ASE 2003
A framework for testing database applications · ISSTA 2000
Software testing › test adequacy
test adequacy criteria
0.161998
Evaluating Testing Methods by Delivered Reliability · IEEE Trans. Software Eng. 1998
Provable Improvements on Branch Testing · IEEE Trans. Software Eng. 1993
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing · IEEE Trans. Software Eng. 1993
Software testing › structural testing
data flow testing
0.141998
Further Empirical Studies of Test Effectiveness · SIGSOFT FSE 1998
The Path-Wise Approach to Data Flow Testing with Pointer Variables · ISSTA 1996
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing · IEEE Trans. Software Eng. 1993
Software testing
test input generation
0.112005
Testing database transactions with AGENDA · ICSE 2005
Software testing
structural testing
0.022000
Further Empirical Studies of Test Effectiveness · SIGSOFT FSE 1998
Comparison of delivered reliability of branch, data flow and operational testing: A case study · ISSTA 2000
Database system architecture and tuning
database engine testing
0.012000
A framework for testing database applications · ISSTA 2000
Software testing › system testing
operational testing
0.021998
Choosing a Testing Method to Deliver Reliability · ICSE 1997
Evaluating Testing Methods by Delivered Reliability · IEEE Trans. Software Eng. 1998
Software testing › test adequacy
coverage criteria
0.011998
Further Empirical Studies of Test Effectiveness · SIGSOFT FSE 1998
Software testing › structural testing
path testing
0.011996
The Path-Wise Approach to Data Flow Testing with Pointer Variables · ISSTA 1996
Program analysis › static analysis
pointer analysis
0.011996
The Path-Wise Approach to Data Flow Testing with Pointer Variables · ISSTA 1996
Distributed computing theory
event ordering
0.011996
Globally Consistent Event Ordering in One-Directional Distributed Environments · IEEE Trans. Parallel Distributed Syst. 1996
Program analysis
data flow analysis
0.022003
Testing Database Transaction Concurrency · ASE 2003
An Applicable Family of Data Flow Testing Criteria · IEEE Trans. Software Eng. 1988
Software testing
object-oriented testing
0.011994
The ASTOOT Approach to Testing Object-Oriented Programs · ACM Trans. Softw. Eng. Methodol. 1994
Software testing
test generation
0.011994
The ASTOOT Approach to Testing Object-Oriented Programs · ACM Trans. Softw. Eng. Methodol. 1994
Software testing
unit testing
0.011994
The ASTOOT Approach to Testing Object-Oriented Programs · ACM Trans. Softw. Eng. Methodol. 1994
Software testing › test coverage › code coverage
branch coverage
0.021993
Provable Improvements on Branch Testing · IEEE Trans. Software Eng. 1993
An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing · IEEE Trans. Software Eng. 1993
Software testing
software reliability
0.011997
Choosing a Testing Method to Deliver Reliability · ICSE 1997
Software testing › test adequacy › test adequacy criteria
data flow testing criteria
0.011988
An Applicable Family of Data Flow Testing Criteria · IEEE Trans. Software Eng. 1988

Methods — techniques the papers use, named apart from their topics

probabilistic analysis · 0.1test data generation · 0.1constraint satisfaction · 0.1data flow analysis · 0.0dataflow analysis · 0.0empirical comparison · 0.0reliability modeling · 0.0empirical evaluation · 0.0regular expression grouping · 0.0partial order theory · 0.0crown-free detection · 0.0alias analysis · 0.0algebraic specification · 0.0
YearPublicationVenuePosition
2022 Needles in a Haystack: Using PORT to Catch Bad Behaviors within Application Recordings
Preston Moore, Thomas Wies, Marc Waldman, Phyllis G. Frankl, Justin Cappos
ICSOFT4
2019 Charting a Course Through Uncertain Environments: SEA Uses Past Problems to Avoid Future Failures
abstract
A common problem for developers is applications exhibiting new bugs after deployment. Many of these bugs can be traced to unexpected network, operating system, and file system differences that cause program executions that were successful in a development environment to fail once deployed. Preventing these bugs is difficult because it is impractical to test an application in every environment. Enter Simulating Environmental Anomalies (SEA), a technique that utilizes evidence of one application's failure in a given environment to generate tests that can be applied to other applications, to see whether they suffer from analogous faults. In SEA, models of unusual properties extracted from interactions between an application, A, and its environment guide simulations of another application, B, running in the anomalous environment. This reveals faults B may experience in this environment without the expense of deployment. By accumulating these anomalies, applications can be tested against an increasing set of problematic conditions. We implemented a tool called CrashSimulator, which uses SEA, and evaluated it against Linux applications selected from coreutils and the Debian popularity contest. Our tests found a total of 63 bugs in 31 applications with effects including hangs, crashes, data loss, and remote denial of service conditions.
Preston Moore, Justin Cappos, Phyllis G. Frankl, Thomas Wies
ISSRE3
2018 Prevalence of confusing code in software projects: atoms of confusion in the wild
abstract
Prior work has shown that extremely small code patterns, such as the conditional operator and implicit type conversion, can cause considerable misunderstanding in programmers. Until now, the real world impact of these patterns - known as 'atoms of confusion' - was only speculative. This work uses a corpus of 14 of the most popular and influential open source C and C++ projects to measure the prevalence and significance of these small confusing patterns. Our results show that the 15 known types of confusing micro patterns occur millions of times in programs like the Linux kernel and GCC, appearing on average once every 23 lines. We show there is a strong correlation between these confusing patterns and bug-fix commits as well as a tendency for confusing patterns to be commented. We also explore patterns at the project level showing the rate of security vulnerabilities is higher in projects with more atoms. Finally, we examine real code examples containing these atoms, including ones that were used to find and fix bugs in our corpus. In total this work demonstrates that beyond simple misunderstanding in the lab setting, atoms of confusion are both prevalent - occurring often in real projects, and meaningful - being removed by bug-fix commits at an elevated rate.
Daniel Gopstein, Hongwei Henry Zhou, Phyllis G. Frankl, Justin Cappos
MSR3
2012 Empirical Studies on Test Effectiveness for Database Applications
abstract
This paper presents empirical studies of test effectiveness for Java database applications. We primarily address two research questions: (1) What is the relationship between test set size, coverage criteria, and test effectiveness for Java/JDBC programs? (2) Which adequacy criterion is more suitable for testing Java database applications, statement coverage, branch coverage, or command form coverage? We collected data sets by experimenting on several moderately complex open source database application programs, and performed a series of rigorous and comprehensive statistical analyses. The results show that linear models fit the relationship of size and coverage to effectiveness well and that coverage appears to have greater impact on effectiveness than size. However, surprisingly, command form coverage was not consistently more effective than statement or branch coverage.
Chixiang Zhou, Phyllis G. Frankl
ICST2
2011 Preventing Web Application Injections with Complementary Character Coding
Raymond Mui, Phyllis G. Frankl
ESORICS2
2011 Inferential Checking for Mutants Modifying Database States
abstract
Several recent research projects have developed new testing techniques targeted to database application programs, a widely used class of programs with some unique characteristics. Mutation testing, focused on interactions between an application and a database, presents a promising approach to evaluating test adequacy and to evaluating the effectiveness of other test generation and test adequacy criteria. Prior work on database application mutation techniques has focused exclusively on SELECT statements, which extract data without modifying the database state. Extending the techniques to updating statements, INSERT, DELETE, and UPDATE, is challenging because it's necessary to compare the behavior of mutants when executed against the same database state, but each mutant execution changes the database state. This paper presents inferential checking, a new technique for determining whether mutants of an updating statement are killed, without actually executing the mutants. Queries are automatically derived from updating statements and their mutants, characterizing the state change that would occur if the statement were executed. Results of these queries are compared to determine which mutants are killed. The paper presents the technique, its implementation for Java/JDBC applications, and empirical evaluation demonstrating that it is efficient, precise, and useful.
Chixiang Zhou, Phyllis G. Frankl
ICST2
2011 JDAMA: Java database application mutation analyser
abstract
Abstract Database application programs are ubiquitous; hence, good techniques for testing them are needed. Several approaches to testing database applications have been proposed recently, including test generation techniques and adequacy criteria. Tuyaet al.proposed mutation‐based adequacy criteria for database queries and developed a set of mutation operators for Structured Query LanguageSELECTstatements. This paper extends that approach by integrating it with analysis and instrumentation of the application bytecode. The design and implementation of a tool, Java Database Application Mutation Analyser (JDAMA), are described. JDAMA instruments application bytecode so as to compare the results of queries executed by the application under test to the results of mutants of those queries. JDAMA can be used to support mutation testing for Java database applications. A second, potentially more useful application of JDAMA is to support experiments evaluating testing techniques for database applications, in which query mutation is used to seed faults into subject applications. The paper illustrates these uses of JDAMA with experiments comparing two approaches to test generation and experiments evaluating coverage criteria. Copyright © 2011 John Wiley & Sons, Ltd.
Chixiang Zhou, Phyllis G. Frankl
Softw. Test. Verification Reliab.2
2009 Mutation Testing for Java Database Applications
abstract
Database application programs are ubiquitous, so good techniques for testing them are needed. Recently, several research groups have proposed new approaches to generating tests for database applications and for assessing test data adequacy. This paper describes a mutation testing tool, JDAMA (Java Database Application Mutation Analyzer), for Java programs that interact with a database via the JDBC interface. Our approach extends the mutation testing approach for SQL by Tuya et al, by integrating it with analysis and instrumentation of the application bytecode. JDAMA's use is illustrated through a small study which uses mutation scores to compare two test generation techniques for database applications.
Chixiang Zhou, Phyllis G. Frankl
ICST2
2007 An Integrated Peer-to-Peer Data and Service Dissemination System
John F. Buford, Emré Celebi, Phyllis G. Frankl
CCNC3
2006 Property-Based Peer Trust in the Sleeper Service Discovery Protocol
abstract
We describe the use of property-based peer trust to provide security in Sleeper, a new energy-efficient service discovery protocol which uses proxied advertisement and discovery to dynamically offload service discovery workload from power-limited devices. Property-based digital certificates have previously been used in trust-negotiation methods. In earlier work we developed a new method for secure and private peer-to-peer trust negotiation using property-based digital certificates and a secure trust negotiation agent. Here we describe how property-based peer trust can be used to secure the Sleeper service discovery protocol
John F. Buford, Emré Celebi, Phyllis G. Frankl
COMPSAC (2)3
2006 Sleeper: A Power-Conserving Service Discovery Protocol
abstract
The design of service discovery protocols which limit power consumption of devices has received little consideration but is an important problem because of the growing use of power-limited mobile networked devices. We describe Sleeper, a new discovery protocol which uses proxied advertisement and discovery to dynamically offload service discovery workload from power-limited devices. The advertisement structure supports several modes of service discovery including conventional service advertisements, meta discovery, taxonomic-based discovery, location-based discovery and federated discovery. In addition, Sleeper supports both push and pull modes of advertisement, but unlike other protocols uses service popularity to select push or pull modality. We describe an implementation of the new protocol and provide an analytical model for comparing response time to other push-based service discovery methods.
John F. Buford, Bernard Burg, Emré Celebi, Phyllis G. Frankl
MobiQuitous4
2005 Testing database transactions with AGENDA
abstract
AGENDA is a tool set for testing relational database applications. An earlier prototype was targeted to applications consisting of a single query and included components for populating a database with data suitable for testing the application, generating inputs to the query, and checking relatively simple aspects of the results of executing the query. This paper describes substantial extensions to AGENDA, allowing it to test transactions with multiple queries and with complex intended behavior. The paper introduces a technique for checking complex properties of the database state transition performed by the transaction under test, as well as an improved input generation heuristic. Results of using AGENDA to test three applications with seeded faults are presented.
Yuetang Deng, Phyllis G. Frankl, David Chays
ICSE2
2004 An AGENDA for testing relational database applications
abstract
Abstract Database systems play an important role in nearly every modern organization, yet relatively little research effort has focused on how to test them. This paper discusses issues arising in testing database systems, presents an approach to testing database applications, and describes AGENDA, a set of tools to facilitate the use of this approach. In testing such applications, the state of the database before and after the user's operation plays an important role, along with the user's input and the system output. A framework for testing database applications is introduced. A complete tool set, based on this framework, has been prototyped. The components of this system are a parsing tool that gathers relevant information from the database schema and application, a tool that populates the database with meaningful data that satisfy database constraints, a tool that generates test cases for the application, a tool that checks the resulting database state after operations are performed by a database application, and a tool that assists the tester in checking the database application's output. The design and implementation of each component of the system are discussed. The prototype described here is limited to applications consisting of a single SQL query. Copyright © 2004 John Wiley & Sons, Ltd.
David Chays, Yuetang Deng, Phyllis G. Frankl, Saikat Dan, Filippos I. Vokolos, Elaine J. Weyuker
Softw. Test. Verification Reliab.3
2003 Testing Database Transaction Concurrency
abstract
Database application programs are often designed to be executed concurrently by many users. By grouping related database queries into transactions, DBMS (database management system) can guarantee that each transaction satisfies the well-known ACID properties: atomicity, consistency, isolation, and durability. However, if a database application is decomposed into transactions in an incorrect manner, the application may fail when executed concurrently due to potential offline concurrency problems. This paper presents a dataflow analysis technique for identifying schedules of transaction execution aimed at revealing concurrency faults of this nature, along with techniques for controlling the DBMS or the application so that execution of transaction sequences follows generated schedules. The techniques have been integrated into AGENDA, a tool set for testing relational database application programs. Preliminary empirical evaluation is presented.
Yuetang Deng, Phyllis G. Frankl, Zhongqiang Chen
ASE2
2000 A framework for testing database applications
abstract
Database systems play an important role in nearly every modern organization, yet relatively little research effort has focused on how to test them. This paper discusses issues arising in testing database systems and presents an approach to testing database applications. In testing such applications, the state of the database before and after the user's operation plays an important role, along with the user's input and the system output. A tool for populating the database with meaningful data that satisfy database constraints has been prototyped. Its design and its role in a larger database application testing tool set are discussed.
David Chays, Saikat Dan, Phyllis G. Frankl, Filippos I. Vokolos, Elaine J. Weber
ISSTA3
2000 Comparison of delivered reliability of branch, data flow and operational testing: A case study
abstract
Many analytical and empirical studies of software testing effectiveness have used the probability that a test set exposes at least one fault as the measure of effectiveness. That measure is useful for evaluating testing techniques when the goal of testing is to gain confidence that the program is free from faults. However, if the goal of testing is to improve the reliability of the program (by discovering and removing those faults that are most likely to cause failures when the software is in the field) then the measure of test effectiveness must distinguish between those faults that are likely to cause failures and those that are unlikely to do so. Delivered reliability was previously introduced as a means of comparing testing techniques in that setting. This paper empirically compares reliability delivered by three testing techniques, branch testing, the all-uses data flow testing criterion, and operational testing. The subject program is a moderate-sized C-program (about 10,000 LOC) produced by professional programmers and containing naturally occurring faults.
Phyllis G. Frankl, Yuetang Deng
ISSTA1
2000 Testing software to detect and reduce risk
Phyllis G. Frankl, Elaine J. Weyuker
J. Syst. Softw.1
1999 Path-sensitive Alias Analysis for Data Flow Testing
abstract
This paper describes a new approach to performing data flow testing in the presence of aliasing, and a tool based on this method. The technique is based on the observation that, under certain reasonable assumptions, one can statically determine which variables are aliased whenever control reaches a given program point via a particular path. Furthermore, one can group together paths that behave similarly with respect to aliasing and represent them by regular expressions. The resulting test requirements demand that the test data execute representatives of particular sets of paths between variable definitions and uses. Copyright © 1999 John Wiley & Sons, Ltd.
Delia I. S. Marx, Phyllis G. Frankl
Softw. Test. Verification Reliab.2
1998 Empirical Evaluation of the Textual Differencing Regression Testing Technique
abstract
Regression testing is a commonly used activity whose purpose is to determine whether the modifications made to a software system have introduced new faults. Textual differencing is a new, safe and fairly precise, selective regression testing technique that works by comparing source files from the old and the new version of the program. We have implemented the textual differencing technique in a tool called Pythia. Pythia has been developed primarily through the integration of standard, well known UNIX programs, and is capable of analyzing large software systems written in C. We present results from a case study involving a software system of approximately 11,000 lines of source code written for the European Space Agency. The results provide empirical evidence that textual differencing is very fast and capable of achieving substantial reductions in the size of the regression test suite.
Filippos I. Vokolos, Phyllis G. Frankl
ICSM2
1998 Further Empirical Studies of Test Effectiveness
abstract
This paper reports on an empirical evaluation of the fault-detecting ability of two white-box software testing techniques: decision coverage (branch testing) and the all-uses data flow testing criterion. Each subject program was tested using a very large number of randomly generated test sets. For each test set, the extent to which it satisfied the given testing criterion was measured and it was determined whether or not the test set detected a program fault. These data were used to explore the relationship between the coverage achieved by test sets and the likelihood that they will detect a fault.Previous experiments of this nature have used relatively small subject programs and/or have used programs with seeded faults. In contrast, the subjects used here were eight versions of an antenna configuration program written for the European Space Agency, each consisting of over 10,000 lines of C code.For each of the subject programs studied, the likelihood of detecting a fault increased sharply as very high coverage levels were reached. Thus, this data supports the belief that these testing techniques can be more effective than random testing. However, the magnitudes of the increases were rather inconsistent and it was difficult to achieve high coverage levels.
Phyllis G. Frankl, Oleg Iakounenko
SIGSOFT FSE1
1998 Evaluating Testing Methods by Delivered Reliability
abstract
There are two main goals in testing software: (1) to achieve adequate quality (debug testing), where the objective is to probe the software for defects so that these can be removed, and (2) to assess existing quality (operational testing), where the objective is to gain confidence that the software is reliable. Debug methods tend to ignore random selection of test data from an operational profile, while for operational methods this selection is all-important. Debug methods are thought to be good at uncovering defects so that these can be repaired, but having done so they do not provide a technically defensible assessment of the reliability that results. On the other hand, operational methods provide accurate assessment, but may not be as useful for achieving reliability. This paper examines the relationship between the two testing goals, using a probabilistic analysis. We define simple models of programs and their testing, and try to answer the question of how to attain program reliability: is it better to test by probing for defects as in debug testing, or to assess reliability directly as in operational testing? Testing methods are compared in a model where program failures are detected and the software changed to eliminate them. The "better" method delivers higher reliability after all test failures have been eliminated. Special cases are exhibited in which each kind of testing is superior. An analysis of the distribution of the delivered reliability indicates that even simple models have unusual statistical properties, suggesting caution in interpreting theoretical comparisons.
Phyllis G. Frankl, Richard G. Hamlet, Bev Littlewood, Lorenzo Strigini
IEEE Trans. Software Eng.1
1997 Choosing a Testing Method to Deliver Reliability
abstract
Testing methods are compared in a model where program failures are detected and the software changed to eliminate them.The question considered is whether it is better to use tests that seek out failures ("debug testing") or to simulate usage and find failures along the way ("operational testing'')."Better" is measured by the delivered reliability obtained after all test failures have been eliminated.This comparison extends previous work, where the measure was the probability of detecting a failure.The theoretical treatment of the paper is probabilistic and analytical.Revealing special cases are exhibited in which each kind of testing is superior.
Phyllis G. Frankl, Richard G. Hamlet, Bev Littlewood, Lorenzo Strigini
ICSE1
1997 Hardware Test: Can We Learn from Software Testing?
J. Abraham, Phyllis G. Frankl, Christian Landrault, Meryem Marzouki, Paolo Prinetto, Chantal Robach, Pascale Thévenod-Fosse
VTS2
1997 All-uses vs mutation testing: An experimental comparison of effectiveness
abstract
The effectiveness of a test data adequacy criterion for a given program and specification is the probability that a test set satisfying the criterion will expose a fault. Experiments were performed to compare the effectiveness of the mutation testing and all-uses test data adequacy criteria at various coverage levels, for randomly generated test sets. Large numbers of test sets were generated and executed, and for each, the proportion of mutants killed or def-use associations covered was measured. This data was used to estimate and compare the effectiveness of the criteria. The results were mixed: at the highest coverage levels considered, mutation was more effective than all-uses for five of the nine subjects, all-uses was more effective than mutation for two subjects, and there was no clear winner for two subjects. However, mutation testing was much more expensive than all-uses. The relationship between coverage and effectiveness for fixed-sized test sets was also explored and was found to be nonlinear and, in many cases, nonmonotonic.
Phyllis G. Frankl, Stewart N. Weiss, Cang Hu
J. Syst. Softw.1
1996 The Path-Wise Approach to Data Flow Testing with Pointer Variables
abstract
This paper describes a new approach to performing data flow testing on programs that use pointer variables and a tool based on this approach. Our technique is based on the observation that, under certain reasonable assumptions, we can determine which dereferenced pointers are aliased whenever control reaches a given program point via a particular path. Furthermore, we can group together paths which behave similarly and represent them by regular expressions. The resulting test requirements demand that the test data execute representatives of particular sets of paths between variable definitions and uses.
Delia I. S. Marx, Phyllis G. Frankl
ISSTA2
1996 Globally Consistent Event Ordering in One-Directional Distributed Environments
abstract
We consider communication structures for event ordering algorithms in distributed environments where information flows only in one direction. Example applications are multilevel security and hierarchically decomposed databases. Although the most general one directional communication structure is a partial order, partial orders do not enjoy the property of being consistently ordered, a formalization of the notion that local ordering decisions are ensured to be globally consistent. Our main result is that the crown free property is necessary and sufficient for a communication structure to be consistently ordered. We discuss the computational complexity of detecting crowns and sketch typical applications.
Paul Ammann, Sushil Jajodia, Phyllis G. Frankl
IEEE Trans. Parallel Distributed Syst.3
1995 Reply to "Some Critical Remarks on a Hierarchy of Fault-Detecting Abilities of Test Methods"
Phyllis G. Frankl, Elaine J. Weyuker
IEEE Trans. Software Eng.1
1994 The ASTOOT Approach to Testing Object-Oriented Programs
abstract
This article describes a new approach to the unit testing of object-oriented programs, a set of tools based on this approach, and two case studies. In this approach, each test case consists of a tuple of sequences of messages, along with tags indicating whether these sequences should put objects of the class under test into equivalent states and/or return objects that are in equivalent states. Tests are executed by sending the sequences to objects of the class under test, then invoking a user-supplied equivalence-checking mechanism. This approach allows for substantial automation of many aspects of testing, including test case generation, test driver generation, test execution, and test checking. Experimental prototypes of tools for test generation and test execution are described. The test generation tool requires the availability of an algebraic specification of the abstract data type being tested, but the test execution tool can be used when no formal specification is available. Using the test execution tools, case studies involving execution of tens of thousands of test cases, with various sequence lengths, parameters, and combinations of operations were performed. The relationships among likelihood of detecting an error and sequence length, range of parameters, and relative frequency of various operations were investigated for priority queue and sorted-list implementations having subtle errors. In each case, long sequences tended to be more likely to detect the error, provided that the range of parameters was sufficiently large and likelihood of detecting an error tended to increase up to a threshold value as the parameter range increased.
Roong-Ko Doong, Phyllis G. Frankl
ACM Trans. Softw. Eng. Methodol.2
1993 An Analytical Comparison of the Fault-Detecting Ability of Data Flow Testing Techniques
Phyllis G. Frankl, Elaine J. Weyuker
ICSE1
1993 A Formal Analysis of the Fault-Detecting Ability of Testing Methods
abstract
Several relationships between software testing criteria, each induced by a relation between the corresponding multisets of subdomains, are examined. The authors discuss whether for each relation R and each pair of criteria, C/sub 1/ and C/sub 2/, R(C/sub 1/, C/sub 2/) guarantees that C/sub 1/ is better at detecting faults than C/sub 2/ according to various probabilistic measures of fault-detecting ability. It is shown that the fact that C/sub 1/ subsumes C/sub 2/ does not guarantee that C/sub 1/ is better at detecting faults. Relations that strengthen the subsumption relation and that have more bearing on fault-detecting ability are introduced.>
Phyllis G. Frankl, Elaine J. Weyuker
IEEE Trans. Software Eng.1
1993 An Experimental Comparison of the Effectiveness of Branch Testing and Data Flow Testing
abstract
An experiment comparing the effectiveness of the all-uses and all-edges test data adequacy criteria is discussed. The experiment was designed to overcome some of the deficiencies of previous software testing experiments. A large number of test sets was randomly generated for each of nine subject programs with subtle errors. For each test set, the percentages of executable edges and definition-use associations covered were measured, and it was determined whether the test set exposed an error. Hypothesis testing was used to investigate whether all-uses adequate test sets are more likely to expose errors than are all-edges adequate test sets. Logistic regression analysis was used to investigate whether the probability that a test set exposes an error increases as the percentage of definition-use associations or edges covered by it increases. Error exposing ability was shown to be strongly positively correlated to percentage of covered definition-use associations in only four of the nine subjects. Error exposing ability was also shown to be positively correlated to the percentage of covered edges in four different subjects, but the relationship was weaker.>
Phyllis G. Frankl, Stewart N. Weiss
IEEE Trans. Software Eng.1
1993 Provable Improvements on Branch Testing
abstract
This paper compares the fault-detecting ability of several software test data adequacy criteria. It has previously been shown that if C/sub 1/ properly covers C/sub 2/, then C/sub 1/ is guaranteed to be better at detecting faults than C/sub 2/, in the following sense: a test suite selected by independent random selection of one test case from each subdomain induced by C/sub 1/ is at least as likely to detect a fault as a test suite similarly selected using C/sub 2/. In contrast, if C/sub 1/ subsumes but does not properly cover C/sub 2/, this is not necessarily the case. These results are used to compare a number of criteria, including several that have been proposed as stronger alternatives to branch testing. We compare the relative fault-detecting ability of data flow testing, mutation testing, and the condition-coverage techniques, to branch testing, showing that most of the criteria examined are guaranteed to be better than branch testing according to two probabilistic measures. We also show that there are criteria that can sometimes be poorer at detecting faults than substantially less expensive criteria.>
Phyllis G. Frankl, Elaine J. Weyuker
IEEE Trans. Software Eng.1
1988 An Applicable Family of Data Flow Testing Criteria
abstract
The authors extend the definitions of the previously introduced family of data flow testing criteria to apply to programs written in a large subset of Pascal. They then define a family of adequacy criteria called feasible data flow testing criteria, which are derived from the data-flow testing criteria. The feasible data flow testing criteria circumvent the problem of nonapplicability of the data flow testing criteria by requiring the test data to exercise only those definition-use associations which are executable. It is shown that there are significant differences between the relationships among the data flow testing criteria and the relationships among the feasible data flow testing criteria. The authors discuss a generalized notion of the executability of a path through a program unit. A script of a testing session using their data flow testing tool, ASSET, is included.>
Phyllis G. Frankl, Elaine J. Weyuker
IEEE Trans. Software Eng.1