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
- 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:
- Detecting hidden bugs of Samsung OneNAND flash memory file system (2007-2008)
- Analyzing Linux ext2 and proc file systems (2009)
- Detecting hundreds of bugs in Samsung smartphone software (2000-2013)
- Detecting subtle events timing bugs in LG's high-end microwave ovens (2014)
- Detecting integer promotion problems in LG's wash machines and refrigerators (2015)
- Finding inconsistent implementation in Hyundai's driving mode controller (2015)