My research interests span the theories and applications on software analysis and testing. I have been recently focusing on developing effective and efficient testing and debugging methods, involving test case sampling techniques, multiple-phase fault localization approaches, program profiling tools, etc. Apart from these studies, I am also working on the fundamental theories of software testing, e.g., computing the lower bound of the size of covering array in the presence of constraints, assessing the effectiveness of test cases in a probability perspective, unifying the fault localization techniques within a framework from combinatorics.