Personal tools
You are here: Home Research

Research Topics

Our research focuses on developing automated techniques and tools for detecting bugs in complex SW such as embedded SW. Unlike conventional manual testing, automated SW testing enables our SW-centric society to advance fast and reliably for the following reasons:  

  • High complexity of SW

SW is very complex engineering product in its nature due to complex data structures and loops which enable infinitely diverse executions. In addition, many SW applications are non-deterministic multi-threaded ones (including event handlers). Such complexity cannot be understood nor handled correctly by human engineers, but can be controlled only by scientific techniques and automated tools.  

  • Ineffectiveness  of manual testing
Even small SW has millions to billions of different execution scenarios due to loop and recursion. Thus, just hundreds of test cases manually written by human engineers cannot sufficiently check the correctness of target SW. Furthermore, subtle errors appear only at corner-case executions which a human engineer cannot imagine and, thus, cannot detect.
  • Application of scientific theory on program analysis  

Software testing is not any more manual art, but scientific application of program analysis theory. For the last half century, significant advance made in program analysis techniques which can be applied to complex large programs through automated tools using a large number of cloud computing nodes.  

 

Research areas (see our publication page):  

  • Automated software testing: automatically generates millions of diverse test cases through program analysis and modification

  • Symbolic analysis: effective and efficient target environment modeling and optimization of state exploration

  • Debugging (automated fault localization): automatically locates the buggy statement lines

 

A few selected industrial applications:

Document Actions