Gpredict Generic Predictive Concurrency Analysis Essay



  • CSCE 689: Fundamentals of Software Analysis (Spring 2015, Fall 2016, Spring 2018)
  • CSCE 606: Software Engineering (Fall 2015, Fall 2017)
  • CSCE 431: Software Engineering (Spring 2016, Spring 2017)
  • CSCE 604: Programming Language Design (Spring 2017)
  • CSCE 689: Special Topics in Reliable Concurrent Software (Fall 2014)


    I enjoy doing research in software engineering and programming languages, in particular, concurrency and concurrent programming, program analysis, program verification, testing, debugging, and everything looks interesting related to software correctness, performance, reliability, and security. See my recent papers:
    PLDI 2018D4: Fast Concurrency Debugging with Parallel Differential Analysis
    Bozhen Liu and Jeff Huang
    Accept Rate: 20% (55/277).
    IEEE S&P 2018Study and Mitigation of Origin Stripping Vulnerabilities in Hybrid-postMessage Enabled Mobile Applications
    Guangliang Yang, Jeff Huang, Guofei Gu, Abner Mendoza
    Accept Rate: ??% (??/??).
    ICSE 2018UFO: Predictive Concurrency Use-After-Free Detection
    Jeff Huang
    Accept Rate: 21% (105/502).
    NDSS 2018Automated Generation of Event-Oriented Exploits in Android Hybrid Apps
    Guangliang Yang, Jeff Huang and Guofei Gu
    Accept Rate: 21% (??/??).
    ASE 2017EHBDroid: Beyond GUI Testing for Android Applications
    Wei Song, Xiangxing Qian and Jeff Huang
    Accept Rate: 21% (65/314).
    USENIX ATC 2017Towards Production-Run Heisenbugs Reproduction on Commercial Hardware
    Shiyou Huang, Bowen Cai and Jeff Huang
    Accept Rate: 21% (60/283).
    USENIX SECURITY 2017Attacking the Brain: Races in the SDN Control Plane
    Lei Xu, Jeff Huang, Sungmin Hong, Jialong Zhang and Guofei Gu
    Accept Rate: 16% (85/522).
    ECOOP 2017What’s the Optimal Performance of Precise Dynamic Race Detection? – A Redundancy Perspective
    Jeff Huang and Arun Rajagopalan
    Accept Rate: ??% (27/??).
    ECOOP 2017Speeding Up Maximal Causality Reduction with Static Dependency Analysis
    Shiyou Huang and Jeff Huang
    Accept Rate: ??% (27/??).
    IEEE TSE 2017Using Local Clocks to Reproduce Concurrency Bugs
    Zhe Wang, Chenggang Wu, Xiang Yuan, Zhenjiang Wang, Jianjun Li, Pen-Chung Yew, Jeff Huang, Xiaobing Feng, Yanyan Lan, Yunji Chen, Yuanming Lai, Yong Guan
    JCST 2016Debugging Concurrent Software: Advances and Challenges
    Jeff Huang and Charles Zhang
    OOPSLA 2016Maximal Causality Reduction for TSO and PSO
    Shiyou Huang and Jeff Huang
    Accept Rate: 25.6% (52/203).
    OOPSLA 2016Precise and Maximal Race Detection from Incomplete Traces
    Jeff Huang and Arun Rajagopalan
    Accept Rate: 25.6% (52/203).
    FSE 2016ECHO: Instantaneous In Situ Race Detection in the IDE
    Sheng Zhan and Jeff Huang
    Accept Rate: 27% (74/273).
    ICSE 2016Scalable Thread Sharing Analysis
    Jeff Huang
    Accept Rate: 19% (101/530).
    IEEE TSE 2015Verifying Synchronization for Atomicity Violation Fixing
    Qingkai Shi, Jeff Huang, Zhenyu Chen and Baowen Xu

    LCPC 2015SMT Solving for the Theory of Ordering Constraints
    Cunjing Ge, Feifei Ma, Jeff Huang and Jian Zhang
    Accept Rate: ?% (?/?).
    NIER 2015
    RDIT: Race Detection from Incomplete Traces
    Arun Rajagopalan and Jeff Huang
    Accept Rate: 27% (?/?).
    ESEC/FSE 2015 Finding Schedule-Sensitive Branches
    Jeff Huang and Lawrence Rauchwerger
    Accept Rate: 25% (74/291).
    PLDI 2015 Stateless Model Checking Concurrent Programs with Maximal Causality Reduction
    Jeff Huang
    Accept Rate: 19% (58/303).
    ICSE 2015 GPredict: Generic Predictive Concurrency Analysis
    Jeff Huang, Qingzhou Luo, Grigore Rosu
    Accept Rate: 18.5% (84/452).
    ICSE 2015ReCBuLC: Reproducing Concurrency Bugs Using Local Clocks
    Xiang Yuan, Chenggang Wu, Zhenjiang Wang, Jianjun Li, Pen-Chung Yew, Jeff Huang, Xiaobing Feng, Yanyan Lan, Yunji Chen, Yong Guan
    Accept Rate: 18.5% (84/452).
    RV-TOOL 2014ROSRV: Runtime Verification for Robots
    Jeff Huang, Cansu Erdogan, Yi Zhang, Brandon Moore, Qingzhou Luo, Aravind Sundaresan, and Grigore Rosu
    PLDI 2014Maximal Sound Predictive Race Detection with Control Flow Abstraction
    Jeff Huang, Patrick Meredith and Grigore Rosu
    PLDI 2013CLAP: Recording Local Executions to Reproduce Concurrency Failures
    Jeff Huang, Charles Zhang and Julian Dolby
    Distinguished Paper Award
    Nominated for CACM Research Highlights
    TOSEM 2013Scaling Predictive Analysis of Concurrent Programs by Removing Trace Redundancy
    Jeff Huang, Jinguo Zhou and Charles Zhang
    PLDI-SRC 2012Lightweight Concurrency Crash Reproduction Without Logging Shared Memory Dependencies and Program States
    Jeff Huang won 1st place & gold medal
    OOPSLA 2012LEAN: Simplifying Concurrency Bug Reproduction via Replay-supported Execution Reduction
    Jeff Huang and Charles Zhang
    OOPSLA 2012Execution Privatization of Scheduler-Oblivious Concurrent Programs
    Jeff Huang and Charles Zhang
    ISSTA 2011Persuasive Prediction of Concurrency Access Anomalies
    Jeff Huang and Charles Zhang
    SAS 2011An Efficient Static Trace Simplification Technique for Debugging Concurrent Programs
    Jeff Huang and Charles Zhang
    FSE 2010LEAP: Lightweight Deterministic Replay of Concurrent Java Programs
    Jeff Huang, Peng Liu and Charles Zhang
    FSE-DEMO 2010LEAP: A Tool for Lightweight Deterministic Replay of Concurrent Java Programs
    Jeff Huang, Peng Liu and Charles Zhang

Professional Activities

OC Member:


PC/ERC Member:

Journal Reviewer:

    2018: TSE, TOPC
    2017: TSE, TPDS
    2016: TOSEM
    2015: TOSEM, TSE, IEEE Software
    2014: TOPLAS, TOSEM, TSE
    2013: TC, TKDE, SCP, JPDC, SoSyM

Technical Research Papers

Please find a list of the accepted papers (alphabetic order by first author) for the Technical Research Track.

Congratulations to the authors!!

Mining Apps for Abnormal Usage of Sensitive Data

Vitalii Avdiienko, Konstantin Kuznetsov, Alessandra Gorla, Andreas Zeller, Steven Arzt, Siegfried Rasthofer, Eric Bodden

Efficient Scalable Verification of LTL Specifications

Luciano Baresi, Mohammad Mehdi, Pourhashem Kallehbasti, Matteo Rossi

Helping Developers Help Themselves: Automatic Decomposition of Code Review Changesets

Mike Barnett, Christian Bird, João Brunet, Shuvendu K. Lahiri

Symbolic Model Checking of Product-Line Requirements Using SAT-Based Methods

Shoham Ben-David, Baruch Sterin, Joanne M. Atlee, Sandy Beidu

Coexecutability for Efficient Verification of Data Model Updates

Ivan Bocic, Tevfik Bultan

Measuring Software Redundancy

Antonio Carzaniga, Andrea Mattavelli, Mauro Pezzè

Assert Use in GitHub Projects

Casey Casalnuovo, Premkumar Devanbu, Abilio Oliveira, Vladimir Filkov, Baishakhi Ray

Dynamic Data Flow Testing of Object Oriented Systems

Giovanni Denaro, Alessandro Margara, Mauro Pezze, Mattia Vivanti

Automated Data Structure Generation: Refuting Common Wisdom

Kyle Dewey, Lawton Nichols, Ben Hardekopf

AutoCSP: Automatically Retrofitting CSP to Web Applications

Mattia Fazzini, Prateek Saxena, Alessandro Orso

Lightweight Adaptive Filtering for Efficient Learning and Updating of Probabilistic Models

Antonio Filieri, Lars Grunske, Alberto Leva

Safe Memory-Leak Fixing for C Programs

Qing Gao, Yingfei Xiong, Yaqing Mi, Lu Zhang, Weikun Yang, Zhaoping Zhou, Bing Xie, Hong Mei

Making System User Interactive Tests Repeatable: When and What Should we Control?

Zebao Gao, Yalan Liang, Myra Cohen, Atif Memon, Zhen Wang

Revisiting the Impact of Classification Techniques on the Performance of Defect Prediction Models

Baljinder Ghotra, Shane McIntosh, Ahmed E. Hassan

Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery

Denis Gopan, Evan Driscoll, Ducson Nguyen, Dimitri Naydich, Alexey Loginov, David Melski

Work Practices and Challenges in Pull-Based Development: The Integrator’s Perspective

Georgios Gousios, Andy Zaidman, Margaret-Anne Storey, Arie van Deursen

Truth in Advertising: The Hidden Cost of Mobile Ads for Software Developers

Jiaping Gui, Stuart Mcilroy, Meiyappan Nagappan, William G.J. Halfond

Combining Multi-Objective Search and Constraint Solving for Configuring Large Software Product Lines

Christopher Henard, Mike Papadakis, Mark Harman, Yves Le Traon

The Art of Testing Less without Sacrificing Quality

Kim Herzig, Michaela Greiler, Jacek Czerwonka, Brendan Murphy

GPredict: Generic Predictive Concurrency Analysis

Jeff Huang, Qingzhou Luo, Grigore Rosu

Learning Combinatorial Interaction Test Generation Strategies using Hyperheuristic Search

Yue Jia, Myra Cohen, Mark Harman, Justyna Petke

From Developer Networks to Verified Communities: A Fine-Grained Approach

Mitchell Joblin, Wolfgang Mauerer, Sven Apel, Janet Siegmund, Dirk Riehle

Open Source-Style Collaborative Development Practices in Commercial Projects Using GitHub

Eirini Kalliamvakou, Daniela Damian, Kelly Blincoe, Leif Singer, Daniel German

Dynamic Generation of Likely Invariants for Multithreaded Programs

Markus Kusano, Arijit Chattopadhyay, Chao Wang

Borrowing from the Crowd: A Study of Recombination in Software Design Competitions

Thomas D. LaToza, Micky Chen, Luxi Jiang, Mengyao Zhao, Andre van der Hoek

Why Good Developers Write Bad Code: an Observational Case Study of the Impacts of Organizational Factors on Software Quality 

Mathieu Lavallee, Pierre N. Robillard

Tempura: Temporal Dimension for IDEs

Yun Young Lee, Darko Marinov, Ralph E. Johnson

IccTA: Detecting Inter-Component Privacy Leaks in Android Apps

Li Li, Alexandre Bartel, Tegawendé Bissyande, Jacques Klein, Yves Le Traon, Steven Arzt, Siegfried Rasthofer, Eric Bodden, Damien Octeau, Patrick McDaniel

What Makes a Great Software Engineer?

Paul L. Li, Andrew J. Ko, Jiamin Zhu

Morpheus: Variability-Aware Refactoring in the Wild

Joerg Liebig, Andreas Janker, Florian Garbe, Sven Apel, Christian Lengauer

Empirical Study on Leading Indicators for Cost of Formal Software Verification

Daniel Matichuk, Toby Murray, June Andronick, Ross Jeffery, Gerwin Klein, Mark Staples

DirectFix: Looking for Simple Program Repairs

Sergey Mechtaev, Jooyong Yi, Abhik Roychoudhury

Does Automated Refactoring Obviate Systematic Editing?

Na Meng, Lisa Hua, Miryung Kim, Kathryn S. McKinley

Alloy*: A General-Purpose Higher-Order Relational Constraint Solver 

Aleksandar Milicevic, Joseph P. Near, Eunsuk Kang, Daniel Jackson

How Can I Use This Method?

Laura Moreno, Gabriele Bavota, Massimiliano Di Penta, Rocco Oliveto, Andrian Marcus

Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and Progress

Sebastian C. Müller, Thomas Fritz

A Comparative Study of Programming Languages in Rosetta Code

Sebastian Nanz, Carlo A. Furia

Graph-based Statistical Language Model for Code

Anh Tuan Nguyen, Tien N. Nguyen

CARAMEL: Detecting and Fixing Performance Problems That Have Non-Intrusive Fixes 

Adrian Nistor, Po-Chun Chang, Cosmin Radoi, Shan Lu

Detecting Inconsistencies in JavaScript MVC Applications

Frolin Ocariza, Karthik Pattabiraman, Ali Mesbah

Composite Constant Propagation: Application to Android Inter-Component Communication Analysis

Damien Octeau, Daniel Luchaup, Matthew Dering, Somesh Jha, Patrick McDaniel

Gray Computing: An Analysis of Computing with Background JavaScript Tasks

Yao Pan, Jules White, Yu Sun, Jeff Gray

Trivial Compiler Equivalence: A Large Scale Empirical Study of a Simple Fast and Effective Equivalent Mutant Detection Technique

Mike Papadakis, Yue Jia, Mark Harman, Yves Le Traon

ZoomIn: Discovering Failures by Detecting Wrong Assertions

Fabrizio Pastore, Leonardo Mariani

LACE2: Better Privacy-Preserving Data Sharing for Cross Project Defect Prediction

Fayola Peters, Tim Menzies, Lucas Layman

Hercules: Reproducing Crashes in Real-World Application Binaries

Van-Thuan Pham, Wei Boon Ng, Konstantin Rubinov, Abhik Roychoudhury

Discovering Information Explaining API Types Using Text Classification

Gayane Petrosyan, Martin P. Robillard, Renato De Mori

TypeDevil: Dynamic Type Inconsistency Analysis for JavaScript

Michael Pradel, Parker Schuh, Koushik Sen

Specifying Event-Based Systems with a Counting Fluent Temporal Logic

Germán Regis, Renzo Degiovanni, Nicolás D'Ippolito, Nazareno Aguirre

Compositional Symbolic Execution with Memoized Replay

Rui Qiu, Guowei Yang, Corina S. Pasareanu, Sarfraz Khurshid

Developing and Evaluating Software Engineering Process Theories

Paul Ralph

Presence-Condition Simplification in Highly Configurable Systems

Alexander von Rhein, Alexander Grebhahn, Sven Apel, Norbert Siegmund, Dirk Beyer, Thorsten Berger

Tricorder: Building a Program Analysis Ecosystem

Caitlin Sadowski, Jeffrey van Gogh, Ciera Jaspan, Emma Söderberg, Collin Winter

An Information Retrieval Approach for Regression Test Prioritization Based on Program Changes

Ripon Saha, Lingming Zhang, Sarfraz Khurshid, Dewayne Perry

Are Students Representatives of Professionals in Software Engineering Experiments?

Iflaah Salman, Ayse Tosun Misirli, Natalia Juristo

Tracking Static Analysis Violations Over Time to Capture Developer Characteristics

Max Schaefer, Arthur Baars, Anders Henriksen, Pavel Avgustinov, Galen Menzel, Oege de Moor, Julian Tibble, Greg Lavender

Views on Internal and External Validity in Empirical Software Engineering 

Janet Siegmund, Norbert Siegmund, Sven Apel

Build it Yourself! Homegrown Tools in a Large Software Company

Edward K. Smith, Christian Bird, Thomas Zimmermann

Combining Symbolic Execution and Model Checking for Data Flow Testing

Ting Su, Zhoulai Fu, Geguang Pu, Jifeng He, Zhendong Su

Relifix: Automated Repair of Software Regressions

Shin Hwei Tan, Abhik Roychoudhury

The Impact of Mislabelling on the Performance and Interpretation of Defect Prediction Models

Chakkrit Tantithamthavorn, Shane McIntosh, Ahmed E. Hassan, Akinori Ihara, Kenichi Matsumoto

RECONTEST: Effective Regression Testing of Concurrent Programs

Valerio Terragni, Shing-Chi Cheung, Charles Zhang

When and Why Your Code Starts to Smell Bad

Michele Tufano, Fabio Palomba, Gabriele Bavota, Rocco Oliveto, Massimiliano Di Penta, Andrea De Lucia, Denys Poshyvanyk

Cascade: A Universal Type Qualifier Inference Tool

Mohsen Vakilian, Amarin Phaosawasdi, Michael D. Ernst, Ralph E. Johnson

Automated Decomposition of Build Targets

Mohsen Vakilian, Raluca Sauciuc, David Morgenthaler, Vahab Mirrokni

How Much Up-front? A Grounded Theory of Agile Architecture 

Michael Waterman, James Noble, George Allan

A Flexible and Non-intrusive Approach for Computing Complex Structural Coverage Metrics

Michael W. Whalen, Suzette Person, Neha Rungta, Matt Staats, Daniela Grijincu

"No PAIN, No Gain? The utility of PArallel fault INjections"

Stefan Winter, Oliver Schwahn, Roberto Natella, Neeraj Suri, Domenico Cotroneo

Database-Backed Program Analysis for Scalable Error Propagation

Cathrin Weiss, Cindy Rubio-González, Ben Liblit

DASE: Document-Assisted Symbolic Execution for Improving Automated Software Testing

Edmund Wong, Lei Zhang, Song Wang, Taiyue Liu, Lin Tan

Automated Modularization of GUI Test Cases

Rahulkrishna Yandrapally, Giriprasad Sridhara, Saurabh Sinha

Static Control-Flow Analysis of User-Driven Callbacks in Android Applications

Shengqian Yang, Dacong Yan, Haowei Wu, Yan Wang, Atanas Rountev

AppContext: Differentiating Malicious and Benign Mobile App Behaviors Using Context

Wei Yang, Xusheng Xiao, Benjamin Andow, Sihan Li, Tao Xie, William Enck

A Synergistic Analysis Method for Explaining Failed Regression Tests

Qiuping Yi, Zijiang Yang, Jian Liu, Chen Zhao, Chao Wang

Supporting Selective Undo in a Code Editor

Young Seok Yoon, Brad A. Myers

Do Security Patterns Really Help Designers?

Koen Yskout, Riccardo Scandariato, Wouter Joosen

Does the failing test execute a single or multiple faults? An approach to classifying failing tests

Zhongxing Yu, Chenggang Bai, Kai-Yuan Cai

ReCBuLC: Reproducing Concurrency Bugs Using Local Clocks

Xiang Yuan, Chenggang Wu, Zhenjiang Wang, Jianjun Li, Pen-Chung Yew, Jeff Huang, Xiaobing Feng, Yanyan Lan, Yunji Chen, Yong Guan

Interactive Code Review for Systematic Changes

Tianyi Zhang, Myoungkyu Song, Joseph Pinedo, Miryung Kim

Regular Property Guided Dynamic Symbolic Execution

Yufeng Zhang, Zhenbang Chen, Ji Wang, Wei Dong, Zhiming Liu

An Empirical Study on Fixing Real Bugs

Hao Zhong, Zhendong Su

Learning to Log: Helping Developers Make Informed Logging Decisions

Jieming Zhu, Pinjia He, Qiang Fu, Hongyu Zhang, Michael R. Lyu, Dongmei Zhang

A Programming Model for Sustainable Software

Haitao Steve Zhu, Chaoren Lin, Yu David Liu

A Genetic Algorithm for Detecting Significant Floating-Point Inaccuracies

Daming Zou, Ran Wang, Yingfei Xiong, Lu Zhang, Zhendong Su, Hong Mei


Leave a Reply

Your email address will not be published. Required fields are marked *