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)