Project Details
Projekt Print View

ConcSys: Reliable and Efficient Complex, Concurrent Software Systems

Subject Area Software Engineering and Programming Languages
Term from 2014 to 2024
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 255842496
 
Final Report Year 2025

Final Report Abstract

The ConcSys project aims to develop techniques for testing and analyzing complex software systems, with a focus on increasing the correctness and performance of such systems. The project was running from March 2015 until December 2024. In this period, we made significant progress, both in terms of scientific results and in terms of building up a research group. The scientific results include novel techniques for (i) finding and preventing concurrency bugs, (ii) understanding and analyzing software performance, (iii) automated test generation, (iv) program analysis for WebAssembly, and (v) foundations of dynamic analysis. These results are presented in 83 peer-reviewed publications at top-tier conferences and journals in software engineering and programming languages, e.g., ICSE, OOPSLA, PLDI, and FSE.

Link to the final report

https://doi.org/10.34657/17943

Publications

  • DLint: Dynamically Checking Bad Coding Practices in JavaScript Liang Gong, Michael Pradel, Manu Sridharan, Koushik Sen. International Symposium on Software Testing and Analysis, pages 94–105
    Liang Gong, Michael Pradel, Manu Sridharan & Koushik Sen
  • JITProf: Pinpointing JIT-Unfriendly JavaScript Code Liang Gong, Michael Pradel, Koushik Sen. European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pages 357–368
    Liang Gong, Michael Pradel & Koushik Sen
  • Performance Problems You Can Fix: A Dynamic Analysis of Memoization Opportunities Luca Della Toffola, Michael Pradel, Thomas R. Gross. Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 607–622
    Luca Della Toffola, Michael Pradel & Thomas R. Gross
  • The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript Michael Pradel, Koushik Sen. European Conference on Object-Oriented Programming
    Michael Pradel & Koushik Sen
  • TypeDevil: Dynamic Type Inconsistency Analysis for JavaScript Michael Pradel, Parker Schuh, Koushik Sen. International Conference on Software Engineering, pages 314–324
    Michael Pradel, Parker Schuh & Koushik Sen
  • Monkey See, Monkey Do: Effective Generation of GUI Tests with Inferred Macro Events Markus Ermuth, Michael Pradel. International Symposium on Software Testing and Analysis, pages 82–93
    Markus Ermuth & Michael Pradel
  • Nomen Est Omen: Exploring and Exploiting Similarities between Argument and Parameter Names Hui Liu, Qiurong Liu, Cristian-Alexandru Staicu, Michael Pradel, Yue Luo. International Conference on Software Engineering, pages 1063–1073
    Hui Liu, Qiurong Liu, Cristian-Alexandru Staicu, Michael Pradel & Yue Luo
  • Performance Issues and Optimizations in JavaScript: An Empirical Study Marija Selakovic, Michael Pradel. International Conference on Software Engineering, pages 61–72
    Marija Selakovic & Michael Pradel
  • SyncProf: Detecting, Localizing, and Optimizing Synchronization Bottlenecks Tingting Yu, Michael Pradel. International Symposium on Software Testing and Analysis
    Tingting Yu & Michael Pradel
  • A Survey of Dynamic Analysis and Test Generation for JavaScript. ACM Computing Surveys, 50(5), 1-36.
    Andreasen, Esben; Gong, Liang; Møller, Anders; Pradel, Michael; Selakovic, Marija; Sen, Koushik & Staicu, Cristian-Alexandru
  • An Actionable Performance Profiler for Optimizing the Order of Evaluations Marija Selakovic, Thomas Glaser, Michael Pradel. International Symposium on Software Testing and Analysis, pages 170–180
    Marija Selakovic, Thomas Glaser & Michael Pradel
  • Automatically Reducing Tree-Structured Test Inputs Satia Herfert, Jibesh Patra, Michael Pradel. International Conference on Automated Software Engineering, pages 861–871
    Satia Herfert, Jibesh Patra & Michael Pradel
  • Detecting Argument Selection Defects Andrew Rice, Edward Aftandilian, Ciera Jaspan, Emily Johnston, Michael Pradel, Yulissa Arroyo-Paredes. Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 104:1–104:22
    Andrew Rice, Edward Aftandilian, Ciera Jaspan, Emily Johnston, Michael Pradel & Yulissa Arroyo-Paredes
  • Efficient Detection of Thread Safety Violations via Coverage-Guided Generation of Concurrent Tests Ankit Choudhary, Shan Lu, Michael Pradel. International Conference on Software Engineering
    Ankit Choudhary, Shan Lu & Michael Pradel
  • Making Malory Behave Maliciously: Targeted Fuzzing of Android Execution Environments Siegfried Rasthofer, Steven Arzt, Stefan Triller, Michael Pradel. International Conference on Software Engineering, pages 300-311
    Siegfried Rasthofer, Steven Arzt, Stefan Triller & Michael Pradel
  • Pinpointing and repairing performance bottlenecks in concurrent programs. Empirical Software Engineering, 23(5), 3034-3071.
    Yu, Tingting & Pradel, Michael
  • Saying “hi!” Is Not Enough: Mining Inputs for Effective Test Generation Luca Della Toffola, Cristian-Alexandru Staicu, Michael Pradel. International Conference on Automated Software Engineering, pages 44–49
    Luca Della Toffola, Cristian-Alexandru Staicu & Michael Pradel
  • Systematic Black-Box Analysis of Collaborative Web Applications Marina Billes, Anders Møller, Michael Pradel. Conference on Programming Language Design and Implementation, pages 171–184
    Marina Billes, Anders Møller & Michael Pradel
  • Change-aware Dynamic Program Analysis for JavaScript Dileep R. K. Murthy, Michael Pradel. International Conference on Software Maintenance and Evolution
    Dileep R. K. Murthy & Michael Pradel
  • ConflictJS: Finding and Understanding Conflicts Between JavaScript Libraries Jibesh Patra, Pooja N. Dixit, Michael Pradel. International Conference on Software Engineering
    Jibesh Patra, Pooja N. Dixit & Michael Pradel
  • DeepBugs: A Learning Approach to Name-based Bug Detection Michael Pradel, Koushik Sen. Conference on Object-Oriented Programming, Systems, Languages, and Applications
    Michael Pradel & Koushik Sen
  • Feedback-Directed Differential Testing of Interactive Debuggers Daniel Lehmann, Michael Pradel. European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    Daniel Lehmann & Michael Pradel
  • Freezing the Web: A Study of ReDoS Vulnerabilities in JavaScript-based Web Security’18 Servers Cristian-Alexandru Staicu, Michael Pradel. USENIX Security Symposium
    Cristian-Alexandru Staicu & Michael Pradel
  • How Many of All Bugs Do We Find? A Study of Static Bug Detectors Andrew Habib, Michael Pradel. International Conference on Automated Software Engineering
    Andrew Habib & Michael Pradel
  • Is This Class Thread-Safe? Inferring Documentation using Graph-based Learning Andrew Habib, Michael Pradel. International Conference on Automated Software Engineering
    Andrew Habib & Michael Pradel
  • Synode: Understanding and Automatically Preventing Injection Attacks on Node.js Cristian-Alexandru Staicu, Michael Pradel, Ben Livshits. Network and Distributed System Security Symposium
    Cristian-Alexandru Staicu & Michael Pradel
  • Synthesizing Programs that Expose Performance Bottlenecks Luca Della Toffola, Michael Pradel, Thomas R. Gross. International Symposium on Code Generation and Optimization, pages 314–326
    Luca Della Toffola, Michael Pradel & Thomas R. Gross
  • Test Generation for Higher-Order Functions in Dynamic Languages Marija Selakovic, Michael Pradel, Rezwana Karim Nawrin, Frank Tip. Conference on Object- Oriented Programming, Systems, Languages, and Applications
    Marija Selakovic, Michael Pradel, Rezwana Karim Nawrin & Frank Tip
  • Anything to Hide? Studying Minified and Obfuscated Code in the Web Philippe Skolka, Cristian-Alexandru Staicu, Michael Pradel. The Web Conference (WWW)
    Philippe Skolka, Cristian-Alexandru Staicu & Michael Pradel
  • Automated program repair. Communications of the ACM, 62(12), 56-65.
    Le Goues, Claire; Pradel, Michael & Roychoudhury, Abhik
  • Getafix: Learning to Fix Bugs Automatically Johannes Bader, Andrew Scott, Michael Pradel, Satish Chandra. Conference on Object-Oriented Programming, Systems, Languages, and Applications
    Johannes Bader, Andrew Scott, Michael Pradel & Satish Chandra
  • Interactive Metamorphic Testing of Debuggers Sandro Tolksdorf, Daniel Lehmann, Michael Pradel. International Symposium on Software Testing and Analysis
    Sandro Tolksdorf, Daniel Lehmann & Michael Pradel
  • Leaky Images: Targeted Privacy Attacks in the Web Security’19 Cristian-Alexandru Staicu, Michael Pradel. USENIX Security Symposium
    Cristian-Alexandru Staicu & Michael Pradel
  • NL2Type: Inferring JavaScript Function Types from Natural Language Information Rabee Sohail Malik, Jibesh Patra, Michael Pradel. International Conference on Software Engineering
    Rabee Sohail Malik, Jibesh Patra & Michael Pradel
  • Small World with High Risks: A Study of Security Threats in the npm Ecosystem Security’19 Markus Zimmermann, Cristian-Alexandru Staicu, Cam Tenny, Michael Pradel. USENIX Security Symposium
    Markus Zimmermann, Cristian-Alexandru Staicu, Cam Tenny & Michael Pradel
  • Wasabi: A Framework for Dynamically Analyzing WebAssembly Daniel Lehmann, Michael Pradel. International Conference on Architectural Support for Programming Languages and Operating Systems
    Daniel Lehmann & Michael Pradel
  • A Survey of Compiler Testing. ACM Computing Surveys, 53(1), 1-36.
    Chen, Junjie; Patra, Jibesh; Pradel, Michael; Xiong, Yingfei; Zhang, Hongyu; Hao, Dan & Zhang, Lu
  • Everything Old is New Again: Binary Security of WebAssembly Security’20 Daniel Lehmann, Johannes Kinder, Michael Pradel. USENIX Security Symposium
    Daniel Lehmann, Johannes Kinder & Michael Pradel
  • Extracting Taint Specifications for JavaScript Libraries Cristian-Alexandru Staicu, Martin Toldam Torp, Max Schäfer, Anders Møller, Michael Pradel. International Conference on Software Engineering
    Cristian-Alexandru Staicu, Martin Toldam Torp, Max Schäfer, Anders Møller & Michael Pradel
  • No Strings Attached: An Empirical Study of String-related Software Bugs Aryaz Eghbali, Michael Pradel. International Conference on Automated Software Engineering
    Aryaz Eghbali & Michael Pradel
  • Scaffle: Bug Localization on Millions of Files Michael Pradel, Vijayaraghavan Murali, Rebecca Qian, Mateusz Machalica, Erik Meijer, Satish Chandra. International Symposium on Software Testing and Analysis
    Michael Pradel, Vijayaraghavan Murali, Rebecca Qian, Mateusz Machalica, Erik Meijer & Satish Chandra
  • TypeWriter: Neural Type Prediction with Search-based Validation Michael Pradel, Georgios Gousios, Jason Liu, Satish Chandra. Symposium on the Foundations of Software Engineering
    Michael Pradel, Georgios Gousios, Jason Liu & Satish Chandra
  • An Empirical Study of Real-World WebAssembly Binaries: Security, Languages, Use Cases Aaron Hilbig, Daniel Lehmann, Michael Pradel. The Web Conference (WWW)
    Aaron Hilbig, Daniel Lehmann & Michael Pradel
  • Automatic Program Repair. IEEE Software, 38(4), 22-27.
    Le Goues, Claire; Pradel, Michael; Roychoudhury, Abhik & Chandra, Satish
  • ConfProf: White-Box Performance Profiling of Configuration Options Xue Han, Tingting Yu, Michael Pradel. International Conference on Performance Engineering
    Xue Han, Tingting Yu & Michael Pradel
  • Continuous Test Suite Failure Prediction Cong Pan, Michael Pradel. International Symposium on Software Testing and Analysis
    Cong Pan & Michael Pradel
  • Finding Data Compatibility Bugs with JSON Subschema Checking Andrew Habib, Avraham Shinnar, Martin Hirzel, Michael Pradel. International Symposium on Software Testing and Analysis
    Andrew Habib, Avraham Shinnar, Martin Hirzel & Michael Pradel
  • IdBench: Evaluating Semantic Representations of Identifier Names in Source Code Yaza Wainakh, Moiz Rauf, Michael Pradel. International Conference on Software Engineering
    Yaza Wainakh, Moiz Rauf & Michael Pradel
  • Neural software analysis. Communications of the ACM, 65(1), 86-96.
    Pradel, Michael & Chandra, Satish
  • 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. Conference on Computer and Communications Security
    Nikos Vasilakis, Cristian-Alexandru Staicu, Grigoris Ntousakis, Konstantinos Kallas, Ben Karel, Andre DeHon & Michael Pradel
  • Satisfying Increasing Performance Requirements With Caching at the Application Level. IEEE Software, 38(3), 87-95.
    Mertz, Jhonny; Nunes, Ingrid; Della Toffola, Luca; Selakovic, Marija & Pradel, Michael
  • Semantic Bug Seeding: A Learning-Based Approach for Creating Realistic Bugs Jibesh Patra, Michael Pradel. Symposium on the Foundations of Software Engineering
    Jibesh Patra & Michael Pradel
  • Thinking Like a Developer? Comparing the Attention of Humans with Neural Models of Code Matteo Paltenghi, Michael Pradel. International Conference on Automated Software Engineering
    Matteo Paltenghi & Michael Pradel
  • Bugs in Quantum Computing Platforms: An Empirical Study Matteo Paltenghi, Michael Pradel. Proceedings of the ACM on Programming Languages
    Matteo Paltenghi & Michael Pradel
  • CrystalBLEU: Precisely and Efficiently Measuring the Similarity of Code Aryaz Eghbali, Michael Pradel. International Conference on Automated Software Engineering
    Aryaz Eghbali & Michael Pradel
  • DynaPyt: A Dynamic Analysis Framework for Python Aryaz Eghbali, Michael Pradel. Symposium on the Foundations of Software Engineering
    Aryaz Eghbali & Michael Pradel
  • Finding the Dwarf: Recovering Precise Types from WebAssembly Binaries Daniel Lehmann, Michael Pradel. Conference on Programming Language Design and Implementation
    Daniel Lehmann & Michael Pradel
  • Generating Realistic Vulnerabilities via Neural Code Editing: An Empirical Study Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chen, Haipeng Cai. Symposium on the Foundations of Software Engineering
    Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chen & Haipeng Cai
  • Nalin: Learning from Runtime Behavior to Find Name-Value Inconsistencies in Jupyter Notebooks Jibesh Patra, Michael Pradel. International Conference on Software Engineering
    Jibesh Patra & Michael Pradel
  • Nessie: Automatically Testing JavaScript APIs with Asynchronous Callbacks Ellen Arteca, Sebastian Harner, Michael Pradel, Frank Tip. International Conference on Software Engineering
    Ellen Arteca, Sebastian Harner, Michael Pradel & Frank Tip
  • The Evolution of Type Annotations in Python: An Empirical Study Luca Di Grazia, Michael Pradel. Symposium on the Foundations of Software Engineering
    Luca Di Grazia & Michael Pradel
  • Wobfuscator: Obfuscating JavaScript Malware via Opportunistic Translation to WebAssembly Alan Romano, Daniel Lehmann, Michael Pradel, Weihang Wang. Symposium on Security and Privacy
    Alan Romano, Daniel Lehmann, Michael Pradel & Weihang Wang
  • Beware of the Unexpected: Bimodal Taint Analysis Yiu Wai Chow, Max Schäfer, Michael Pradel. International Symposium on Software Testing and Analysis
    Yiu Wai Chow, Max Schäfer & Michael Pradel
  • Code Search: A Survey of Techniques for Finding Code. ACM Computing Surveys, 55(11), 1-31.
    Di Grazia, Luca & Pradel, Michael
  • DiffSearch: A Scalable and Precise Search Engine for Code Changes. IEEE Transactions on Software Engineering, 49(4), 2366-2380.
    Grazia, Luca Di; Bredl, Paul & Pradel, Michael
  • LExecutor: Learning-Guided Execution Beatriz Souza, Michael Pradel. Symposium on the Foundations of Software Engineering
    Beatriz Souza & Michael Pradel
  • MorphQ: Metamorphic Testing of the Qiskit Quantum Computing Platform Matteo Paltenghi, Michael Pradel. International Conference on Software Engineering
    Matteo Paltenghi & Michael Pradel
  • 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. International Conference on Software Engineering
    Masudul Hasan Masud Bhuiyan, Adithya Srinivas Parthasarathy, Nikos Vasilakis, Michael Pradel & Cristian-Alexandru Staicu
  • That’s a Tough Call: Studying the Challenges of Call Graph Construction for WebAssembly Daniel Lehmann, Michelle Thalakottur, Frank Tip, Michael Pradel. International Symposium on Software Testing and Analysis
    Daniel Lehmann, Michelle Thalakottur, Frank Tip & Michael Pradel
  • VulGen: Realistic Vulnerability Generation Via Pattern Mining and Deep Learning Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chan, Haipeng Cai. International Conference on Software Engineering
    Yu Nong, Yuzhe Ou, Michael Pradel, Feng Chan & Haipeng Cai
  • When to Say What: Learning to Find Condition-Message Inconsistencies Islem Bouzenia, Michael Pradel. International Conference on Software Engineering
    Islem Bouzenia & Michael Pradel
  • Analyzing Quantum Programs with LintQ: A Static Analysis Framework for Qiskit Matteo Paltenghi, Michael Pradel. International Conference on the Foundations of Software Engineering
    Matteo Paltenghi & Michael Pradel
  • DyPyBench: A Benchmark of Executable Python Software Islem Bouzenia, Bajaj Piyush Krishan, Michael Pradel. International Conference on the Foundations of Software Engineering
    Islem Bouzenia, Bajaj Piyush Krishan & Michael Pradel
  • Fuzz4All: Universal Fuzzing with Large Language Models Chunqiu Steven Xia, Matteo Paltenghi, Jia Le Tian, Michael Pradel, Lingming Zhang. International Conference on Software Engineering
    Chunqiu Steven Xia, Matteo Paltenghi, Jia Le Tian, Michael Pradel & Lingming Zhang
  • PyTy: Repairing Static Type Errors in Python Yiu Wai Chow, Luca Di Grazia, Michael Pradel. International Conference on Software Engineering
    Yiu Wai Chow, Luca Di Grazia & Michael Pradel
  • Resource Usage and Optimization Opportunities in Workflows of GitHub Actions Islem Bouzenia, Michael Pradel. International Conference on Software Engineering
    Islem Bouzenia & Michael Pradel
  • 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. Proceedings of the ACM on Programming Languages
    Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben Titzer, Sukyoung Ryu & Michael Pradel
  • An Empirical Study of Suppressed Static Analysis Warnings Huimin Hu, Yingying Wang, Julia Rubin, Michael Pradel. International Conference on the Foundations of Software Engineering
    Huimin Hu, Yingying Wang, Julia Rubin & Michael Pradel
  • 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. International Conference on Software Engineering
    Claudio Spiess, David Gros, Kunal Suresh Pai, Michael Pradel, Md Rafiqul Islam Rabin, Amin Alipour, Susmit Jha, Premkumar Devanbu & Toufique Ahmed
  • Can LLMs Replace Manual Annotation of Software Engineering Artifacts? Toufique Ahmed, Premkumar Devanbu, Christoph Treude, Michael Pradel. International Conference on Mining Software Repositories
    Toufique Ahmed, Premkumar Devanbu, Christoph Treude & Michael Pradel
  • ChangeGuard: Validating Code Changes via Pairwise Learning-Guided Execution o Lars Gröninger, Beatriz Souza, Michael Pradel. International Conference on the Foundations of Software Engineering
    Lars Gröninger, Beatriz Souza & Michael Pradel
  • RepairAgent: An Autonomous, LLM-Based Agent for Program Repair Islem Bouzenia, Premkumar Devanbu, Michael Pradel. International Conference on Software Engineering
    Islem Bouzenia, Premkumar Devanbu & Michael Pradel
  • Treefix: Enabling Execution with a Tree of Prefixes Beatriz Souza, Michael Pradel. International Conference on Software Engineering
    Beatriz Souza & Michael Pradel
 
 

Additional Information

Textvergrößerung und Kontrastanpassung