Marcelo d'Amorim
Marcelo d'Amorim 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).



Recent Highlights:

Associate Professor, NCSU
PhD UIUC, 2007
Publications
Service
Software
CV
Students  
Contact


ThirdEye: Technique that uses Attention Maps --Explainable AI technique-- for online testing (i.e., anomaly detection) of Autonomous Driving Systems.
[paper+tool+simulator]
     ThirdEye
SpecFuzzer: Technique to synthesize test oracles using grammar-based fuzzing, likely invariant detection, and mutation testing.
[ICSE'22 paper, tool, video]
     ThirdEye
NCQ: A coding environment to support Node.js code snippets search and testing.
[paper, tool]
NCQ
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]      Shipwright
PASTE: A lightweight technique to automate parallelization of test execution while minimizing flakiness observation. [ICSM'21 paper, tool]      PASTE
Shaker: A technique to detect flaky tests by introducing noise in the execution environment. [ICSM'20 paper, tool]      Shaker