Associate Professor
Computer Science
NC State

Marcelo d'Amorim

Service Upcoming: release_alertFSE'24 GC, ISSTA'24 PC, ICSE'25 PC, ISSTA'25 PC
Teaching Spring 2024: no teaching (organizing FSE'24)

UIUC+ Summer Undergraduate Research in 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.

Funding: My research has been funded by NSF, Amazon, Microsoft, NCSU, and Brazilian research agencies (CAPES, CNPq, FACEPE, and RNP).

Recent Highlights:


NCQ: A coding environment for Node.js code snippet search and testing.
[TSE'23 paper, tool]
ThirdEye: Technique that uses Attention Maps --Explainable AI technique-- for anomaly detection in Autonomous Driving Systems.
[ASE'22 paper, data+simulator]
SpecFuzzer: Technique to synthesize test oracles using grammar-based fuzzing, likely invariant detection, and mutation testing.
[ICSE'22 paper, tool, video]
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. [ICSM'21 paper, tool]      PASTE
Shaker: A technique to detect flaky tests by introducing noise in the execution environment. [ICSM'20 paper, tool]      Shaker