Publications

Peer-reviewed Conferences and Journals

FSE 2024 Analyzing Quantum Programs with LintQ: A Static Analysis Framework for Qiskit
Matteo Paltenghi, Michael Pradel
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]