Faculty Research Interests & Selected Research Projects
Software Testing and Its Applications:
Professor Wong’s work related to
the impact of code coverage on fault detection, test minimization and
prioritization, regression testing, etc. has led to the creation of the
χSuds Software Understanding and Diagnosis tool suite, used by real-life
projects at Bellcore (Telcordia) and other industry corporations for effective
and efficient software testing and analysis. It has also been used at more
than ten universities worldwide, including UTD and Purdue, as a teaching aid
in software testing courses. Professor Wong’s ongoing research includes, but
is not limited to, probing and repairing security vulnerabilities in smartphone
and other mobile applications, and achieving high code coverage through automatic
test generation supported by an innovative backward tracking followed by a
forward validation in conjunction with a constraint solver.
- A Framework for Effective Software Testing using Combinatorial Design and MC/DC Coverage, NIST : (National Institute of Standards and Technology), PI: W. E. Wong, 09/01/2014-06/30/2015
- Developing an Automated and Cost-Effective Framework using Asset-Based Testing for High Quality Software Assurance, NEC, Japan, PI: W. E. Wong, 07/16/2014-03/31/2015
- Using Functional Requirements and Risk Analysis to Improve Software Testing, Hyundai Motor Company , PI: W. E. Wong, 04/01/2012-03/31/2013
- Incorporating Software Testing into Multiple Computer Science and Software Engineering Undergraduate Courses, NSF TUES/CCLI , PI: W. E. Wong, co-PI: G. Gupta, S. Kim, and L. Khan, 09/01/2010-08/31/2014 (Click here to visit our CCLI website)
- A Testing Framework for Reproducible Execution and Race Condition Detection in Real-Time Embedded Systems, NASA , co-PI: W. E. Wong, PI: Y. H. Lee (Arizona State University), 01/01/2005-12/31/2007
- Timing and Race Condition Verification of Real-Time Systems, NASA , co-PI W. E. Wong, PI: Y. H. Lee (Arizona State University), co-PI: G. Gannod (Arizona State University) and K. Chatha (Arizona State University), 01/01/2003-12/31/2003
- A Framework for Measuring and Improving Code Coverage for Embedded Software, Texas Instruments , PI: W. E. Wong, 10/01/2004-08/31/2005
- Visual-Aid Novel Testing for Software Applications in C, C++, and Java, Avaya Research Labs, (formerly part of Lucent Bell Labs) , PI: W. E. Wong, 06/01/2004-05/31/2006
Software Safety:
Distinct from security and reliability, software
safety implies that the software should execute within a system context
(even in the presence of unexpected adverse conditions) without contributing
to hazards. This is especially important for software-dependent systems
in which failures can result in significant property damage, injury, or
death. Traditional testing for consistency between implementation and
functional specifications does not provide safety assurance. In response,
Professor Wong’s research focuses on the integration of fault tree models
from the safety requirements into specifications from the functional
requirements so as to identify testable interactions between intended
behaviors and hazardous conditions. Not only is software validated under
normal conditions, but its implementation is also more completely verified
to ensure that hazardous conditions identified by the fault tree analysis
have been properly handled.
- Software Safety: Research, Practice and a Path Forward, NSF REU , PI: W. E. Wong, co-PI: S. Kim, 03/01/2015-02/28/2017 (Click here to visit our REU website)
- Software Safety: Methodology, Practice and Research, NSF REU, PI: W. E. Wong, co-PI: S. Kim, 03/01/2012-02/28/2015
- Verification and Validation for Software Safety, NSF REU, PI: W. E. Wong, co-PI: S. Kim, 03/01/2009-02/28/2012
- Four REU Site Supplements, NSF REU, PI: W. E. Wong, co-PI: S. Kim, 03/01/2012-02/28/2015
- Risk Analysis for Real-Time Embedded Software, NSF CORBI, PI: W. E. Wong, 08/01/2011-02/28/2013
- Foundational Requirements for Competency in Software Safety, NSF I/UCRC, PI: W. E. Wong, EDS/HP, 05/01/2009-01/31/2012
- Risk Analysis-Based Fault-Proneness Identification for Multi-Threaded Embedded Software, NSF I/UCRC, PI: W. E. Wong, Raytheon, 06/01/2011-05/31/2013
- Testing for Software Safety, NASA, PI: W. E. Wong, Co-PI: Y. H. Lee (Arizona State University) and D. Xu (North Dakota State University), 01/01/2007-12/31/2007
- Software Analysis to aid in Probabilistic Risk Assessment, NASA, PI: W. E. Wong, Johnson Space Center, 08/01/2003-07/31/2004
Towards the Automation of Program Debugging:
Debugging, when a program
execution failure is observed, is essentially a two-step process of
first determining the location and nature of a suspected fault, and
then fixing the fault itself. Professor Wong has conducted research
using different execution slicing, program spectrum and data
dependency-based techniques, a crosstab-based statistical analysis, BP
and RBF neural networks, and data mining algorithms to prioritize
suspicious code in terms of its likelihood of containing faults. Our
ongoing research also explores the combination of mutation with fault
localization to automatically suggest fixes for software faults, and
investigates the interference between multiple faults in a program.
Results by Professor Wong and his students have been published in top
journals such the IEEE Transactions on Reliability and the IEEE
Transactions on Systems, Man and Cybernetics, received the Best Paper
Award from the COMPSAC and ACM SAC conferences, as well as having been
the most cited among all papers published by the Journal of Systems and
Software in 2010.
- Fault Localization for Programs with Multiple Bugs: The Next Step , PI: W. E. Wong, 01/01/2013 �C Present
- Fixing Software Faults Automatically: A Novel New Direction, PI: W. E. Wong, 01/01/2014 �C Present
- A Survey on Software Fault Localization, PI: W. E. Wong, 07/01/2013 �C Present
- Improving System Quality by Effective Analysis of Defects, PI: W. E. Wong, Texas Instruments, 10/01/2004-08/31/2005
Information-Retrieval-based Regression Testing:
Regression testing is widely used in practice for validating program
changes. However, running large regression suites can be costly.
Researchers have developed several techniques for prioritizing tests
such that the higher priority tests have a higher likelihood of finding
bugs. A vast majority of these techniques are based on dynamic analysis,
which can be precise but can also have significant overhead (e.g., for
program instrumentation and test-coverage collection). In this project,
Professor Lingming Zhang and his colleagues introduce a new approach,
REPiR, to address the problem of regression test prioritization by
reducing it to a standard Information Retrieval problem such that the
differences between two program versions form the query and the tests
constitute the document collection. REPiR does not require any dynamic
profiling or static program analysis. As an enabling technology we
leverage the open-source IR toolkit Indri. An empirical evaluation
using eight open-source Java projects shows that REPiR is computationally
efficient and performs better than existing (dynamic or static) techniques
for the majority of subjects. A paper that reports some of the results of
this project will appear in ICSE’15.
Summary-based Context-Sensitive Program Analysis:
Building a summary for library code is a common approach to
speeding up the analysis of client code. In presence of callbacks,
some reachability relationships between library nodes cannot be
obtained during library-code summarization. Thus, the library code
may have to be analyzed again during the analysis of the client code
with the library summary. In this project, Professor Lingming Zhang
and colleagues propose to summarize library code with
tree-adjoining-language (TAL) reachability. Compared with the summary
built with context-free-language (CFL) reachability, the summary
built with TAL reachability further contains conditional reachability
relationships. The conditional reachability relationships can lead to
much lighter analysis of the library code during the client code
analysis with the TAL-reachability-based library summary. We performed
an experimental comparison of context-sensitive data-dependence
analysis with the TAL-reachability-based library summary and
context-sensitive data-dependence analysis with the CFL- reachability
based library summary using 15 benchmark subjects. The experimental
results demonstrate that the former has an 8X speed-up over the latter
on average. A paper reporting some of the results from this project will
appear in ACM POPL’15.
iDiscovery — Automated Program Invariant Inference:
Program invariants can help software developers identify
program properties that must be preserved as the software
evolves, however, formulating correct invariants can be challenging.
In this work, Professor Lingming Zhang and colleagues introduce iDiscovery, a technique
which leverages symbolic execution to improve the quality
of dynamically discovered invariants computed by Daikon.
Candidate invariants generated by Daikon are synthesized
into assertions and instrumented onto the program. The instrumented
code is executed symbolically to generate new
test cases that are fed back to Daikon to help further refine
the set of candidate invariants. This feedback loop is executed
until a fix-point is reached. To mitigate the cost of
symbolic execution, optimizations are also proposed to prune the
symbolic state space and to reduce the complexity of the
generated path conditions. Recent advances
in constraint solution reuse techniques are also leveraged to avoid computing
results for the same constraints across iterations. Experimental
results show that iDiscovery converges to a set of
higher quality invariants compared to the initial set of candidate
invariants in a small number of iterations. A paper reporting some of
the results from this project was accepted to ACM ISSTA’14.
NEC
Hyundai
SFL
REU
TUES
(Reserved)
(Reserved)
(Reserved)
(Reserved)
(Reserved)
(Reserved)
(Reserved)
(Reserved)
(Reserved)