I am always looking for bright motivated PhD students to join my group. More information about PhD at NCSU: Structure, Application deadlines.
Service Upcoming: ISSTA'23, ESEC/FSE'23 (Workshop Co-Chair), ICSE'24, ESEC/FSE'24 (General Chair)
Teaching Spring 2023: CSC 510 (Software Engineering)
My research interests are in the areas of Software Engineering and Programming Languages, with a focus on improving software reliability through program analysis and systematic testing. Software bugs are expensive and inevitable as software is mostly written by humans or automatically synthesized via ML. My research focuses at improving various software quality assurance tasks, including bug prevention, bug finding, bug diagnosis, and code repair. As part of my research, I develop tools to automate software testing and debugging activities. The tools I developed revealed many bugs and vulnerabilities in code. These tools are publicly available on GitHub.
Funding: My research has been funded by NSF, Amazon, Microsoft, NCSU, and Brazilian research agencies (CAPES, CNPq, FACEPE, and RNP).
Associate Professor, NCSU
PhD UIUC, 2007
ThirdEye: Technique that uses Attention Maps --Explainable AI technique-- for online testing (i.e., anomaly detection) of Autonomous Driving Systems.
SpecFuzzer: Technique to synthesize test oracles using grammar-based fuzzing, likely invariant detection, and mutation testing.
[ICSE'22 paper, tool, video]
NCQ: A coding environment to support Node.js code snippets search and testing.
|Shipwright: Technique to repair broken Dockerfiles. Shipwright clusters broken files (based on static and dynamic data) and searches for solutions to corresponding problems on the web. [ICSE'21 paper, tool]|
|PASTE: A lightweight technique to automate parallelization of test execution while minimizing flakiness observation. [ICSM'21 paper, tool]|
|Shaker: A technique to detect flaky tests by introducing noise in the execution environment. [ICSM'20 paper, tool]|