VLDB 2026 Research / reviewers in the wild / expert
Qingzhou Luo
dblp:17/7915
· DBLP profile ↗
10ranked-venue papers
4as first author
0since 2021 · last 2015
0009-0000-7567-4040ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 4 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
6 papers |
Software testing · 42% Concurrent programming · 24% Program verification · 12% |
Topics — the 15 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bug detection |
0.4 | 3 | 2015 | GPredict: Generic Predictive Concurrency Analysis · ICSE (1) 2015 Change-aware preemption prioritization · ISSTA 2011 Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded code · ICSE 2012 |
Software testing
regression testing |
0.3 | 2 | 2014 | An empirical analysis of flaky tests · SIGSOFT FSE 2014 Change-aware preemption prioritization · ISSTA 2011 |
Program analysis › dynamic analysis
predictive trace analysis |
0.2 | 1 | 2015 | GPredict: Generic Predictive Concurrency Analysis · ICSE (1) 2015 |
Software testing
flaky test |
0.2 | 1 | 2014 | An empirical analysis of flaky tests · SIGSOFT FSE 2014 |
Empirical software engineering
mining software repositories |
0.2 | 1 | 2014 | An empirical analysis of flaky tests · SIGSOFT FSE 2014 |
Debugging and program repair
root cause analysis |
0.2 | 1 | 2014 | An empirical analysis of flaky tests · SIGSOFT FSE 2014 |
Software testing › concurrency testing
multithreaded program testing |
0.2 | 1 | 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programs · ISSTA 2013 |
Program verification › dynamic verification › runtime verification
runtime enforcement |
0.2 | 1 | 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programs · ISSTA 2013 |
Program verification › dynamic verification
runtime verification |
0.2 | 1 | 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programs · ISSTA 2013 |
Software testing
test generation |
0.1 | 1 | 2012 | Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded code · ICSE 2012 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2011 | Improved multithreaded unit testing · SIGSOFT FSE 2011 |
Software testing › regression testing
test case prioritization |
0.1 | 1 | 2011 | Change-aware preemption prioritization · ISSTA 2011 |
Software testing
unit testing |
0.1 | 1 | 2011 | Improved multithreaded unit testing · SIGSOFT FSE 2011 |
Software testing
concurrency testing |
0.0 | 1 | 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programs · ISSTA 2013 |
Concurrent programming › concurrency bug detection
data race detection |
0.0 | 1 | 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programs · ISSTA 2013 |
Methods — techniques the papers use, named apart from their topics
constraint modeling · 0.2SMT solving · 0.2empirical study · 0.2commit analysis · 0.2synchronization mechanisms · 0.2runtime monitoring · 0.2random test generation · 0.1clustering · 0.1schedule enforcement · 0.1change-aware prioritization · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | GPredict: Generic Predictive Concurrency AnalysisabstractPredictive trace analysis (PTA) is an effective approach for detecting subtle bugs in concurrent programs. Existing PTA techniques, however, are typically based on adhoc algorithms tailored to low-level errors such as data races or atomicity violations, and are not applicable to high-level properties such as "a resource must be authenticated before use" and "a collection cannot be modified when being iterated over". In addition, most techniques assume as input a globally ordered trace of events, which is expensive to collect in practice as it requires synchronizing all threads. In this paper, we present GPredict: a new technique that realizes PTA for generic concurrency properties. Moreover, GPredict does not require a global trace but only the local traces of each thread, which incurs much less runtime overhead than existing techniques. Our key idea is to uniformly model violations of concurrency properties and the thread causality as constraints over events. With an existing SMT solver, GPredict is able to precisely predict property violations allowed by the causal model. Through our evaluation using both benchmarks and real world applications, we show that GPredict is effective in expressing and predicting generic property violations. Moreover, it reduces the runtime overhead of existing techniques by 54% on DaCapo benchmarks on average. Jeff Huang 0001, Qingzhou Luo, Grigore Rosu |
ICSE (1) | 2 |
| 2014 | ROSRV: Runtime Verification for Robots
Jeff Huang 0001, Cansu Erdogan, Brandon M. Moore, Qingzhou Luo, Aravind Sundaresan, Grigore Rosu |
RV | 5 |
| 2014 | RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties
Qingzhou Luo, Choonghwan Lee, Dongyun Jin, Patrick O'Neil Meredith, Traian-Florin Serbanuta, Grigore Rosu |
RV | 1 |
| 2014 | An empirical analysis of flaky testsabstractRegression testing is a crucial part of software development. It checks that software changes do not break existing functionality. An important assumption of regression testing is that test outcomes are deterministic: an unmodified test is expected to either always pass or always fail for the same code under test. Unfortunately, in practice, some tests often called flaky tests—have non-deterministic outcomes. Such tests undermine the regression testing as they make it difficult to rely on test results. We present the first extensive study of flaky tests. We study in detail a total of 201 commits that likely fix flaky tests in 51 open-source projects. We classify the most common root causes of flaky tests, identify approaches that could manifest flaky behavior, and describe common strategies that developers use to fix flaky tests. We believe that our insights and implications can help guide future research on the important topic of (avoiding) flaky tests. Qingzhou Luo, Farah Hariri, Lamyaa Eloussi, Darko Marinov |
SIGSOFT FSE | 1 |
| 2013 | EnforceMOP: a runtime property enforcement system for multithreaded programsabstractMultithreaded programs are hard to develop and test. In order for programs to avoid unexpected concurrent behaviors at runtime, for example data-races, synchronization mechanisms are typically used to enforce a safe subset of thread interleavings. Also, to test multithreaded programs, devel- opers need to enforce the precise thread schedules that they want to test. These tasks are nontrivial and error prone. Qingzhou Luo, Grigore Rosu |
ISSTA | 1 |
| 2013 | Efficient mutation testing of multithreaded codeabstractSUMMARY Mutation testing is a well‐established method for measuring and improving the quality of test suites. A major cost of mutation testing is the time required to execute the test suite on all the mutants. This cost is even greater when the system under test is multithreaded: not only are test cases from the test suite executed on many mutants but also each test case is executed—or more precisely, explored—for multiple possible thread schedules. This paper introduces a general framework for efficient exploration that can reduce the time for mutation testing of multithreaded code. The paper presents five techniques (four optimizations and one heuristic) that are implemented in a tool called MuTMuT within the general framework. Evaluation of MuTMuT on mutation testing of 12 multithreaded programs shows that it can substantially reduce the time required for mutation testing of multithreaded code.Copyright © 2012 John Wiley & Sons, Ltd. Milos Gligoric 0001, Vilas Jagannath, Qingzhou Luo, Darko Marinov |
Softw. Test. Verification Reliab. | 3 |
| 2012 | Ballerina: Automatic generation and clustering of efficient random unit tests for multithreaded codeabstractTesting multithreaded code is hard and expensive. A multithreaded unit test creates two or more threads, each executing one or more methods on shared objects of the class under test. Such unit tests can be generated at random, but basic random generation produces tests that are either slow or do not trigger concurrency bugs. Worse, such tests have many false alarms, which require human effort to filter out. We present Ballerina, a novel technique for automated random generation of efficient multithreaded tests that effectively trigger concurrency bugs. Ballerina makes tests efficient by having only two threads, each executing a single, randomly selected method. Ballerina increases chances that such simple parallel code finds bugs by appending it to more complex, randomly generated sequential code. We also propose a clustering technique to reduce the manual effort in inspecting failures of automatically generated multithreaded tests. We evaluate Ballerina on 14 real-world bugs from six popular codebases: Groovy, JDK, JFreeChart, Apache Log4j, Apache Lucene, and Apache Pool. The experiments show that tests generated by Ballerina find bugs on average 2×-10× faster than basic random generation, and our clustering technique reduces the number of inspected failures on average 4×-8×. Using Ballerina, we found three previously unknown bugs, two of which were already confirmed and fixed. Adrian Nistor, Qingzhou Luo, Michael Pradel, Thomas R. Gross, Darko Marinov |
ICSE | 2 |
| 2011 | Change-aware preemption prioritizationabstractSuccessful software evolves as developers add more features, respond to requirements changes, and fix faults. Regression testing is widely used for ensuring the validity of evolving software. As regression test suites grow over time, it becomes expensive to execute them. The problem is exacerbated when test suites contain multithreaded tests. These tests are generally long running as they explore many different thread schedules searching for concurrency faults such as dataraces, atomicity violations, and deadlocks. While many techniques have been proposed for regression test prioritization, selection, and minimization for sequential tests, there is not much work for multithreaded code. Vilas Jagannath, Qingzhou Luo, Darko Marinov |
ISSTA | 2 |
| 2011 | Improved multithreaded unit testingabstractMultithreaded code is notoriously hard to develop and test. A multithreaded test exercises the code under test with two or more threads. Each test execution follows some schedule/interleaving of the multiple threads, and different schedules can give different results. Developers often want to enforce a particular schedule for test execution, and to do so, they use time delays (Thread.sleep in Java). Unfortunately, this approach can produce false positives or negatives, and can result in unnecessarily long testing time. Vilas Jagannath, Milos Gligoric 0001, Dongyun Jin, Qingzhou Luo, Grigore Rosu, Darko Marinov |
SIGSOFT FSE | 4 |
| 2010 | A Lightweight and Portable Approach to Making Concurrent Failures Reproducible
Qingzhou Luo, Sai Zhang 0001, Jianjun Zhao 0001 |
FASE | 1 |