Hoang Lam Nguyen

Overview

My main research interest is in automated software testing, primarily targeting the JVM. As part of my PhD research, I am currently researching the idea to use biostatistical methods to quantify the performance of random fuzzers. Specifically, my main hypothesis is that a fuzzer is more effective in finding bugs if it not only covers a lot of code, but also diversely exercises it — I call this concept behavioral diversity.

Inspired by the STADS framework, I propose to measure behavioral diversity based on the execution distribution of a fuzzer, analogous to how ecologists quantify biodiversity based on the species distribution of an assemblage. To this end, I research to what extent a fuzzer exhibiting higher behavioral diversity also inspires more confidence in the correctness of the program under test. Moreover, I have proposed BeDivFuzz, a coverage-guided fuzz testing technique that aims to diversely explore the program behaviors through an adaptive mutation strategy.

Selected Publications

View full publication list on [Google Scholar] or [dblp].

ICST'24

Evolutionary Testing for Program Repair

Haifeng Ruan, Hoang Lam Nguyen, Ridwan Shariffdeen, Yannic Noller, Abhik Roychoudhury

Mini abstract: Using bug reports to synthesize test oracles, we introduce a coevolutionary workflow that incrementally improves the test suite to produce better patches.

2024 IEEE Conference on Software Testing, Verification and Validation (ICST).

Note: This work was done as part of a research internship at the National University of Singapore (NUS).

[Publication] [Preprint] [Artifact]

ICSE'22

BeDivFuzz: Integrating Behavioral Diversity into Generator-based Fuzzing

Hoang Lam Nguyen, Lars Grunske

Mini abstract: We diversely explore the space of program behaviors by adaptively performing structure-changing vs. structure-preserving mutations to generate new test inputs.

Proceedings of the 44th International Conference on Software Engineering (ICSE'22).

[Publication] [Preprint] [Repository]

ASE'20

MoFuzz: A Fuzzer Suite for Testing Model-Driven Software Engineering Tools

Hoang Lam Nguyen, Nebras Nassar, Timo Kehrer, Lars Grunske

Mini abstract: We present approaches to effectively fuzz MDSE tools through the generation of valid test inputs (i.e., input models adhering to the constraints of a meta-model).

Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering (ASE'20).

[Publication] [Repository]

JPF'19

Complete Shadow Symbolic Execution with Java PathFinder

Yannic Noller, Hoang Lam Nguyen, Minxing Tang, Timo Kehrer, Lars Grunske

Mini abstract: We extend the idea of shadow symbolic execution to exhaustively search for test inputs that show divergent behavior between program versions (regression testing).

ACM SIGSOFT Software Engineering Notes, Volume 44, Issue 4.

[Publication] [Preprint] [Repository]