David Peter Towey

Prof. David Peter Towey

orcid

Research Focus & Metrics

Academic Career Length

25Years (2002-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
27 September 2013 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
HLHuai Liu
Huai Liu
FKFei-Ching Kuo
Fei-Ching Kuo
DTDavid Peter Towey
David Peter Towey
TCTsong Yueh Chen
Tsong Yueh Chen
In software testing, something which can verify the correctness of test case execution results is called an oracle. The oracle problem occurs when either an oracle does not exist, or exists but is too expensive to be used. Metamorphic testing is a testing approach which uses metamorphic relations, properties of the software under test represented in the form of relations among inputs and outputs of multiple executions, to help verify the correctness of a program. This paper presents new empirical evidence to support this approach, which has been used to alleviate the oracle problem in various applications and to enhance several software analysis and testing techniques. It has been observed that identification of a sufficient number of appropriate metamorphic relations for testing, even by inexperienced testers, was possible with a very small amount of training. Furthermore, the cost-effectiveness of the approach could be enhanced through the use of more diverse metamorphic relations. The empirical studies presented in this paper clearly show that a small number of diverse metamorphic relations, even those identified in an ad hoc manner, had a similar fault-detection capability to a test oracle, and could thus effectively help alleviate the oracle problem.

12 December 2018 in IEEE Software
Verified
Journal Article
Open access
SSSergio Segura
Sergio Segura
DTDavid Peter Towey
David Peter Towey
ZZZhi Quan Zhou
Zhi Quan Zhou
TCTsong Yueh Chen
Tsong Yueh Chen
What if we could know that a program is buggy, even if we could not tell whether or not its observed output is correct? This is one of the key strengths of metamorphic testing, a technique where failures are not revealed by checking an individual concrete output, but by checking the relations among the inputs and outputs of multiple executions of the program under test. Two decades after its introduction, metamorphic testing has become a fully-fledged testing technique with successful applications in multiple domains, including online search engines, autonomous machinery, compilers, Web APIs, and deep learning programs, among others. This article serves as a hands-on entry point for newcomers to metamorphic testing, describing examples, possible applications, and current limitations, providing readers with the basics for the application of the technique in their own projects.

16 October 2018 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
ZZZhi Quan Zhou
Zhi Quan Zhou
LSLiqun Sun
Liqun Sun
TCTsong Yueh Chen
Tsong Yueh Chen
DTDavid Peter Towey
David Peter Towey
Modern information technology paradigms, such as online services and off-the-shelf products, often involve a wide variety of users with different or even conflicting objectives. Every software output may satisfy some users, but may also fail to satisfy others. Furthermore, users often do not know the internal working mechanisms of the systems. This situation is quite different from bespoke software, where developers and users usually know each other. This paper proposes an approach to help users to better understand the software that they use, and thereby more easily achieve their objectives—even when they do not fully understand how the system is implemented. Our approach borrows the concept of metamorphic relations from the field of metamorphic testing (MT), using it in an innovative way that extends beyond MT. We also propose a "symmetry" metamorphic relation pattern and a "change direction" metamorphic relation input pattern that can be used to derive multiple concrete metamorphic relations. Empirical studies reveal previously unknown failures in some of the most popular applications in the world, and show how our approach can help users to better understand and better use the systems. The empirical results provide strong evidence of the simplicity, applicability, and effectiveness of our methodology.

6 May 2025 in Engineering Applications of Artificial Intelligence
Verified
Journal Article
Closed access
QDQi Dong
Qi Dong
RHRubing Huang
Rubing Huang
CCChenhui Cui
Chenhui Cui
DTDavid Peter Towey
David Peter Towey
LZLing Zhou
Ling Zhou
Jianzhou WangJianzhou Wang
Jianzhou Wang

23 September 2019 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
RHRubing Huang
Rubing Huang
WSWeifeng Sun
Weifeng Sun
YXYinyin Xu
Yinyin Xu
HCHaibo Chen
Haibo Chen
DTDavid Peter Towey
David Peter Towey
XXXin Xia
Xin Xia
Random testing (RT) is a well-studied testing method that has been widely applied to the testing of many applications, including embedded software systems, SQL database systems, and Android applications. Adaptive random testing (ART) aims to enhance RT's failure-detection ability by more evenly spreading the test cases over the input domain. Since its introduction in 2001, there have been many contributions to the development of ART, including various approaches, implementations, assessment and evaluation methods, and applications. This paper provides a comprehensive survey on ART, classifying techniques, summarizing application areas, and analyzing experimental evaluations. This paper also addresses some misconceptions about ART, and identifies open research challenges to be further investigated in the future work.

13 June 2016 in Computer
Verified
Journal Article
Closed access
TCTsong Yueh Chen
Tsong Yueh Chen
FKFei-Ching Kuo
Fei-Ching Kuo
WMWenjuan Ma
Wenjuan Ma
Willy SusiloWilly Susilo
Willy Susilo
DTDavid Peter Towey
David Peter Towey
ZZZhi Quan Zhou
Zhi Quan Zhou
Metamorphic testing (MT) can enhance security testing by providing an alternative to using a test oracle, which is often unavailable or impractical. The authors report how MT detected previously unknown bugs in real-world critical applications such as code obfuscators, giving evidence that software testing requires diverse perspectives to achieve greater cybersecurity.