His research interests are in software engineering, particularly testing, model checking, static analysis, automated debugging, and execution understanding. He focuses on software engineering from an "investigative" viewpoint, with an emphasis on the execution traces that programs produce — software engineering as the art and science of building programs with a desired set of executions.