Publications
Peer-reviewed Conferences and Journals
ICSE 2025 |
Calibration and Correctness of Language Models for Code Claudio Spiess, David Gros, Kunal Suresh Pai, Michael Pradel, Md Rafiqul Islam Rabin, Amin Alipour, Susmit Jha, Premkumar Devanbu, Toufique Ahmed [pdf] |
OOPSLA 2024 |
Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben Titzer, Sukyoung Ryu, Michael Pradel [pdf] [code and data] |
FSE 2024 |
Analyzing Quantum Programs with LintQ: A Static Analysis Framework for Qiskit Matteo Paltenghi, Michael Pradel [pdf] [code and data] |
FSE 2024 |
DyPyBench: A Benchmark of Executable Python Software Islem Bouzenia, Bajaj Piyush Krishan, Michael Pradel [pdf] [code and data] |
ICSE 2024 |
PyTy: Repairing Static Type Errors in Python Yiu Wai Chow, Luca Di Grazia, Michael Pradel [pdf] [code and data] |
ICSE 2024 |
Fuzz4All: Universal Fuzzing with Large Language Models Chunqiu Steven Xia, Matteo Paltenghi, Jia Le Tian, Michael Pradel, Lingming Zhang [paper] [code and data] |
ICSE 2024 |
Resource Usage and Optimization Opportunities in Workflows of GitHub Actions Islem Bouzenia, Michael Pradel [pdf] [code and data] |
FSE 2023 |
LExecutor: Learning-Guided Execution Beatriz Souza, Michael Pradel [pdf] [code and data] ACM SIGSOFT Distinguished Paper Award |
ISSTA 2023 |
That's a Tough Call: Studying the Challenges of Call Graph Construction for WebAssembly Daniel Lehmann, Michelle Thalakottur, Frank Tip, Michael Pradel [pdf] [code and data] ACM SIGSOFT Distinguished Artifact Award |
ISSTA 2023 |
Beware of the Unexpected: Bimodal Taint Analysis Yiu Wai Chow, Max Schäfer, Michael Pradel [pdf] [code and data] [slides] ACM SIGSOFT Distinguished Paper Award |
ICSE 2023 |
MorphQ: Metamorphic Testing of the Qiskit Quantum Computing Platform Matteo Paltenghi, Michael Pradel [pdf] [code and data] |
ICSE 2023 |
When to Say What: Learning to Find Condition-Message Inconsistencies Islem Bouzenia, Michael Pradel [pdf] [code and data] [slides] |
ICSE 2023 |
SecBench.js: An Executable Security Benchmark Suite for Server-Side JavaScript Masudul Hasan Masud Bhuiyan, Adithya Srinivas Parthasarathy, Nikos Vasilakis, Michael Pradel, Cristian-Alexandru Staicu [pdf] [code and data] |
ICSE 2023 |
VulGen: Realistic Vulnerability Generation Via Pattern Mining and Deep Learning Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chan, Haipeng Cai [pdf] [code and data] |
TSE 2022 |
DiffSearch: A Scalable and Precise Search Engine for Code Changes Luca Di Grazia, Paul Bredl, Michael Pradel [pdf] [tool] [code] |
CSUR 2022 |
Code Search: A Survey of Techniques for Finding Code Luca Di Grazia, Michael Pradel [pdf] |
FSE 2022 |
DynaPyt: A Dynamic Analysis Framework for Python Aryaz Eghbali, Michael Pradel [pdf] [code and data] [slides] [video] |
FSE 2022 |
The Evolution of Type Annotations in Python: An Empirical Study Luca Di Grazia, Michael Pradel [pdf] [code and data] [video] ACM SIGSOFT Distinguished Paper Award |
FSE 2022 |
Generating Realistic Vulnerabilities via Neural Code Editing: An Empirical Study Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chen, Haipeng Cai [pdf] [code and data] |
ASE 2022 |
CrystalBLEU: Precisely and Efficiently Measuring the Similarity of Code Aryaz Eghbali, Michael Pradel [pdf] [code and data] [slides] [video] ACM SIGSOFT Distinguished Paper Award |
OOPSLA 2022 |
Bugs in Quantum Computing Platforms: An Empirical Study Matteo Paltenghi, Michael Pradel [pdf] [dataset] |
PLDI 2022 |
Finding the Dwarf: Recovering Precise Types from WebAssembly Binaries Daniel Lehmann, Michael Pradel [pdf] [code and data] [video] |
ICSE 2022 |
Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies in Jupyter Notebooks Jibesh Patra, Michael Pradel [pdf] [code and data] [video] |
ICSE 2022 |
Nessie: Automatically Testing JavaScript APIs with Asynchronous Callbacks Ellen Arteca, Sebastian Harner, Michael Pradel, Frank Tip [pdf] [code and data] [video] |
S&P 2022 |
Wobfuscator: Obfuscating JavaScript Malware via Opportunistic Translation to WebAssembly Alan Romano, Daniel Lehmann, Michael Pradel, Weihang Wang [pdf] [dataset (code available on demand)] |
ASE 2021 |
Thinking Like a Developer? Comparing the Attention of Humans with Neural Models of Code Matteo Paltenghi, Michael Pradel [pdf] [code and data] [video] [slides] |
FSE 2021 |
Semantic Bug Seeding: A Learning-Based Approach for Creating Realistic Bugs
Jibesh Patra, Michael Pradel [pdf] [code and data] [video] [slides] ACM SIGSOFT Distinguished Paper Award |
CCS 2021 |
Preventing Dynamic Library Compromise on Node.js via RWX-Based Privilege Reduction
Nikos Vasilakis, Cristian-Alexandru Staicu, Grigoris Ntousakis, Konstantinos Kallas, Ben Karel, Andre DeHon, Michael Pradel [pdf] [implementation] |
ISSTA 2021 |
Finding Data Compatibility Bugs with JSON Subschema Checking
Andrew Habib, Avraham Shinnar, Martin Hirzel, Michael Pradel [pdf] [implementation] [artifact] [slides] Distinguished Artifact Award |
ISSTA 2021 |
Continuous Test Suite Failure Prediction
Cong Pan, Michael Pradel [pdf] |
CACM 2021 |
Neural Software Analysis
Michael Pradel, Satish Chandra [pdf] |
The Web Conference (WWW) 2021 |
An Empirical Study of Real-World WebAssembly Binaries: Security, Languages, Use Cases
Aaron Hilbig, Daniel Lehmann, Michael Pradel [pdf] [dataset] [video] |
ICSE 2021 |
IdBench: Evaluating Semantic Representations of Identifier Names in Source Code Yaza Wainakh, Moiz Rauf, Michael Pradel [pdf] [dataset] [video] |
ICPE 2021 |
ConfProf: White-Box Performance Profiling of Configuration Options Xue Han, Tingting Yu, Michael Pradel [pdf] |
IEEE Software 2020 |
Satisfying Increasing Performance Requirements with Caching at the Application
Level Jhonny Mertz, Ingrid Nunes, Luca Della Toffola, Marija Selakovic, Michael Pradel [pdf] |
ASE 2020 |
No Strings Attached: An Empirical Study of String-related Software Bugs Aryaz Eghbali, Michael Pradel [pdf] [dataset] [video] |
USENIX Security 2020 | Everything Old is New Again: Binary Security of WebAssembly Daniel Lehmann, Johannes Kinder, Michael Pradel [pdf] [code and data] [video] |
FSE 2020 | TypeWriter: Neural Type Prediction with Search-based Validation Michael Pradel, Georgios Gousios, Jason Liu, Satish Chandra [pdf] [open-source dataset] [model implementation] [video] [slides] |
ISSTA 2020 | Scaffle: Bug Localization on Millions of Files Michael Pradel, Vijayaraghavan Murali, Rebecca Qian, Mateusz Machalica, Erik Meijer, Satish Chandra [pdf] [video] [slides] |
ISSTA 2020 | Differential Regression Testing for REST APIs Patrice Godefroid, Daniel Lehmann, Marina Polishchuk [pdf] |
ICSE 2020 | Extracting Taint Specifications for JavaScript Libraries Cristian-Alexandru Staicu, Martin Toldam Torp, Max Schäfer, Anders Møller, Michael Pradel [pdf] [code and data] [video] |
OOPSLA 2019 | Getafix: Learning to Fix Bugs Automatically Johannes Bader, Andrew Scott, Michael Pradel, Satish Chandra [pdf] [video] |
CSUR 2019 | A Survey of Compiler Testing Junjie Chen, Jibesh Patra, Michael Pradel, Yingfei Xiong, Hongyu Zhang, Dan Hao, Lu Zhang [pdf] |
ISSTA 2019 | Interactive Metamorphic Testing of Debuggers Sandro Tolksdorf, Daniel Lehmann, Michael Pradel [pdf] |
CACM 2019 | Automated Program Repair Claire Le Goues, Michael Pradel, Abhik Roychoudhury [pdf] |
USENIX Security 2019 | Small World with High Risks: A Study of Security Threats in the npm Ecosystem Markus Zimmermann, Cristian-Alexandru Staicu, Cam Tenny, Michael Pradel [pdf] [implementation] |
USENIX Security 2019 | Leaky Images: Targeted Privacy Attacks in the Web Cristian-Alexandru Staicu, Michael Pradel [pdf] [slides] [video] |
The Web Conference (WWW) 2019 | Anything to Hide? Studying Minified and Obfuscated Code in the Web Philippe Skolka, Cristian-Alexandru Staicu, Michael Pradel [pdf] |
ICSE 2019 | NL2Type: Inferring JavaScript Function Types from Natural Language Information Rabee Sohail Malik, Jibesh Patra, Michael Pradel [pdf] [slides] [implementation and data] |
ASPLOS 2019 | Wasabi: A Framework for Dynamically Analyzing WebAssembly Daniel Lehmann, Michael Pradel [pdf] [slides] [tool] Best Paper Award |
OOPSLA 2018 | DeepBugs: A Learning Approach to Name-based Bug Detection Michael Pradel, Koushik Sen [pdf] [implementation] [slides] [video] |
OOPSLA 2018 | Test Generation for Higher-Order Functions in Dynamic Languages Marija Selakovic, Michael Pradel, Rezwana Karim Nawrin, Frank Tip [pdf] [slides] [code] |
ASE 2018 | How Many of All Bugs Do We Find? A Study of Static Bug Detectors Andrew Habib, Michael Pradel [pdf] [slides] [implementation] |
ASE 2018 | Is This Class Thread-Safe? Inferring Documentation using Graph-based Learning Andrew Habib, Michael Pradel [pdf] [slides] [implementation] |
FSE 2018 | Feedback-Directed Differential Testing of Interactive Debuggers Daniel Lehmann, Michael Pradel [pdf] [implementation] |
ICSME 2018 | Change-aware Dynamic Program Analysis for JavaScript Dileep R. K. Murthy, Michael Pradel [pdf] [implementation] |
USENIX Security 2018 | Freezing the Web: A Study of ReDoS Vulnerabilities in JavaScript-based Web
Servers Cristian-Alexandru Staicu, Michael Pradel [pdf] [vulnerabilities] |
ICSE 2018 | ConflictJS: Finding and Understanding Conflicts Between JavaScript Libraries Jibesh Patra, Pooja N. Dixit, Michael Pradel. [pdf] [implementation] |
NDSS 2018 | Synode: Understanding and Automatically Preventing Injection Attacks on Node.js Cristian-Alexandru Staicu, Michael Pradel, Ben Livshits [pdf] [implementation] [video] |
CGO 2018 | Synthesizing Programs that Expose Performance Bottlenecks Luca Della Toffola, Michael Pradel, Thomas R. Gross [pdf] |
CSUR 2017 | A Survey of Dynamic Analysis and Test Generation for JavaScript. Esben Andreasen, Liang Gong, Anders
Møller, Michael Pradel, Marija Selakovic, Koushik Sen, Cristian-Alexandru Staicu [pdf] |
ASE 2017 | Automatically Reducing Tree-Structured Test Inputs Satia Herfert, Jibesh Patra, Michael Pradel [pdf] [implementation] |
ASE 2017 | Saying “hi!” Is Not Enough: Mining Inputs for Effective Test Generation Luca Della Toffola, Cristian-Alexandru Staicu, Michael Pradel. [pdf] [implementation] |
OOPSLA 2017 | Detecting Argument Selection Defects Andrew Rice, Edward Aftandilian, Ciera Jaspan, Emily Johnston, Michael Pradel, Yulissa Arroyo-Paredes [pdf] [implementation] [video] |
ISSTA 2017 | An Actionable Performance Profiler for Optimizing the Order of Evaluations Marija Selakovic, Thomas Glaser, Michael Pradel [pdf] [slides] |
PLDI 2017 | Systematic Black-Box Analysis of Collaborative Web Applications Marina Billes, Anders Møller, Michael Pradel [pdf] [implementation] [slides] |
ICSE 2017 | Making Malory Behave Maliciously: Targeted Fuzzing of Android Execution Environments Siegfried Rasthofer, Steven Arzt, Stefan Triller, Michael Pradel [pdf] [implementation] |
ICSE 2017 | Efficient Detection of Thread Safety Violations via Coverage-Guided Generation of Concurrent
Tests Ankit Choudhary, Shan Lu, Michael Pradel [pdf] [slides] [implementation] |
EMSE 2017 | Pinpointing and Repairing Performance Bottlenecks in Concurrent Programs. Tingting Yu, Michael Pradel.
Empirical Software Engineering (EMSE) [pdf] |
ISSTA 2016 | Monkey See, Monkey Do: Effective Generation of GUI Tests with Inferred Macro Events Markus Ermuth, Michael Pradel [pdf] [slides] |
ISSTA 2016 | SyncProf: Detecting, Localizing, and Optimizing Synchronization Bottlenecks Tingting Yu, Michael Pradel [pdf] [slides] |
ICSE 2016 | Performance Issues and Optimizations in JavaScript: An Empirical Study Marija Selakovic, Michael Pradel [pdf] [material] [slides] |
ICSE 2016 | Nomen Est Omen: Exploring and Exploiting Similarities between Argument and
Parameter Names Hui Liu, Qiurong Liu, Cristian-Alexandru Staicu, Michael Pradel, Yue Luo [pdf] [slides] |
OOPSLA 2015 | Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities Luca Della Toffola, Michael Pradel, Thomas R. Gross [pdf] [implementation] |
FSE 2015 | JITProf: Pinpointing JIT-Unfriendly JavaScript Code Liang Gong, Michael Pradel, Koushik Sen [pdf] [implementation] [slides] |
ISSTA 2015 | DLint: Dynamically Checking Bad Coding Practices in JavaScript Liang Gong, Michael Pradel, Manu Sridharan, Koushik Sen [pdf] [implementation] |
ECOOP 2015 | The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in
JavaScript Michael Pradel, Koushik Sen [pdf] [slides] [video] |
ICSE 2015 | TypeDevil: Dynamic Type Inconsistency Analysis for JavaScript Michael Pradel, Parker Schuh, Koushik Sen [pdf] [implementation] [slides] [talk at Mozilla] |
OOPSLA 2014 | EventBreak: Analyzing the Responsiveness of User Interfaces through Performance-Guided Test
Generation Michael Pradel, Parker Schuh, George Necula, Koushik Sen [pdf] [implementation] [slides] |
ISSTA 2014 | Performance Regression Testing of Concurrent Classes Michael Pradel, Markus Huggler, Thomas R. Gross [pdf] [slides] |
TSE 2013 | Name-based Analysis of Equally Typed Method Arguments Michael Pradel and Thomas R. Gross [pdf] |
ASE 2013 | Bita: Coverage-Guided, Automatic Testing of Actor Programs Samira Tasharofi, Michael Pradel, Yu Lin, and Ralph Johnson [pdf] |
ICSE 2013 | Automatic Testing of Sequential and Concurrent Substitutability Michael Pradel and Thomas R. Gross [pdf] [material] [slides] |
ISSTA 2012 | Static Detection of Brittle Parameter Typing Michael Pradel, Severin Heiniger, and Thomas R. Gross [pdf] [implementation and material] [slides] |
PLDI 2012 | Fully Automatic and Precise Detection of Thread Safety Violations Michael Pradel and Thomas R. Gross [pdf] [material] [slides] Try it out and download the implementation: www.thread-safe.org |
ICSE 2012 | Leveraging Test Generation and Specification Mining for Automated Bug Detection without False
Positives Michael Pradel and Thomas R. Gross [pdf] [material] [slides] |
ICSE 2012 | Statically Checking API Protocol Conformance with Mined Multi-Object Specifications Michael Pradel, Ciera Jaspan, Jonathan Aldrich, and Thomas R. Gross [pdf] [companion report] [material] [slides] |
ICSE 2012 | Ballerina: Automatic Generation and Clustering of Efficient Random Unit Tests for Multithreaded
Code Adrian Nistor, Qingzhou Luo, Michael Pradel, Thomas R. Gross, and Darko Marinov [pdf] |
ISSTA 2011 | Detecting Anomalies in the Order of Equally-typed Method Arguments Michael Pradel and Thomas R. Gross [pdf] [implementation] [slides] |
ICSM 2010 | A Framework for the Evaluation of Specification Miners Based on Finite State Machines Michael Pradel, Philipp Bichsel, and Thomas R. Gross [pdf] [implementation and material] |
IJEIS 2010 | A Good Role Model for Ontologies: Collaborations. Michael Pradel, Jakob Henriksson, and Uwe Aßmann.
International Journal of Enterprise Information Systems (IJEIS) [pdf] |
ASE 2009 | Automatic Generation of Object Usage Specifications from Large Method Traces Michael Pradel and Thomas R. Gross [pdf] |
ICSOFT 2008 | Scala Roles - A Lightweight Approach towards Reusable Collaborations Michael Pradel and Martin Odersky Best Student Paper Award [pdf] [implementation] |
RR 2008 | Ontology Design and Reuse with Conceptual Roles Jakob Henriksson, Michael Pradel, Steffen Zschaler, and Jeff Z. Pan. [pdf] |
PhD Theses
2022 | Program Analysis of WebAssembly Binaries. Daniel Lehmann [pdf] |
2021 | Analyzing Code Corpora to Improve the Correctness and Reliability of Programs. Jibesh Patra [pdf] |
2020 | Learning to Find Bugs in Programs and their Documentation. Andrew Habib [pdf] |
Enhancing the Security and Privacy of Full-Stack JavaScript Web Applications. Cristian-Alexandru
Staicu [pdf] |
|
2019 | Actionable Program Analyses for Improving Software Performance. Marija Selakovic [pdf] |
Preprints, Technical Reports, Workshops, etc.
TraceFixer: Execution Trace-Driven Program Repair.
Islem Bouzenia, Yangruibo Ding, Kexin Pei, Baishakhi Ray, Michael Pradel. 2023 [pdf] |
TraceFixer: Execution Trace-Driven Program Repair.
Islem Bouzenia, Yangruibo Ding, Kexin Pei, Baishakhi Ray, Michael Pradel. 2023 [pdf] |
Code Generation Tools (Almost) for Free? A Study of Few-Shot, Pre-Trained Language Models on Code.
Patrick Bareiß, Beatriz Souza, Marcelo d'Amorim, Michael Pradel. 2022 [pdf] |
Meta Learning for Code Summarization. Moiz Rauf, Sebastian Pado, Michael Pradel. 2022 [pdf] |
Fuzzm: Finding Memory Bugs through Binary-Only Instrumentation and Fuzzing of WebAssembly. Daniel
Lehmann, Martin Torp, Michael Pradel. 2021 [pdf] |
Learning to Make Compiler Optimizations More Effective. Rahim Mammadli, Marija Selakovic, Felix Wolf,
Michael Pradel. Annual Symposium on Machine Programming (MAPS) at PLDI. 2021 [pdf] |
An Empirical Study of Information Flows in Real-World JavaScript. Cristian-Alexandru Staicu, Daniel
Schoepe, Musard Balliu, Michael Pradel, Andrei Sabelfeld. Workshop on Programming Languages and Analysis for
Security (PLAS), 2019 [pdf] |
Neural Bug Finding: A Study of Opportunities and Challenges. Andrew Habib, Michael Pradel. Technical
Report, 2019 [pdf] |
Easy to Fool? Testing the Anti-evasion Capabilities of PDF Malware Scanners. Saeed Ehteshamifar,
Antonio Barresi, Thomas R. Gross, Michael Pradel. Technical Report, 2019 [pdf] |
Deep Learning to Find Bugs. Michael Pradel, Koushik Sen. Technical Report, 2018 [pdf] [video] |
Context2Name: A Deep Learning-Based Approach to Infer Natural Variable Names from Usage Contexts. Rohan
Bavishi, Michael Pradel, Koushik Sen. Technical Report, 2018 [pdf] |
Learning to Fuzz: Application-Independent Fuzz Testing
with Probabilistic, Generative Models of Input Data. Jibesh Patra, Michael Pradel. Technical Report,
2016 [pdf] |
Automatically Fixing Real-World JavaScript Performance Bugs. Marija Selakovic and Michael Pradel.
International Conference on Software Engineering (ICSE), 2015, poster track. [pdf] |
DLint: Dynamically Checking Bad Coding Practices in JavaScript. Liang Gong, Michael Pradel, Manu
Sridharan, Koushik Sen. Technical Report, 2015 [pdf] [implementation] |
Program Analyses for Automatic and Precise Error Detection. Michael Pradel. Doctoral dissertation
(Ph.D. thesis). 2012 [pdf] [web site] |
Mining API Usage Protocols from Large Method Traces. Michael Pradel and Thomas R. Gross. Mining
Software Specifications: Methodologies and Applications. David Lo and Khoo Siau Cheng and Jiawei Han and Chao
Liu. CRC Press, 2011 |
Inference of Object Usage Protocols. Michael Pradel. Dagstuhl seminar 10152 on Relationships, Objects, Roles, and Queries in Modern Programming Languages (2010) |
Dynamically Inferring, Refining, and Checking API Usage Protocols. Michael Pradel. Student Research
Competition at OOPSLA 2009 Second Place [pdf] |
Explicit Relations with Roles - A Library Approach. Michael Pradel. Workshop on Relationships and
Associations in Object-Oriented Languages (RAOOL) at OOPSLA 2008 [pdf] |
Roles and Collaborations in Scala. Michael Pradel. Diploma thesis. 2008 [pdf] [slides] |
Ontology Composition using a Role Modeling Approach. Michael Pradel. Lecture Notes in Informatics (LNI)
2008 [pdf] |
A Good Role Model for Ontologies: Collaborations. Michael Pradel, Jakob Henriksson, and Uwe Aßmann.
Workshop on Semantic-Based Software Development at OOPSLA 2007 [pdf] |
Ontology Composition using a Role Modeling Approach. Michael Pradel. Semester project (Großer
Beleg). 2007 [pdf] [slides] |