Demo Data from SIGIR 2026 / reviewers in the wild / expert
Chaoqiang Zhang
dblp:118/3958
· DBLP profile ↗
9ranked-venue papers
1as first author
0since 2021 · last 2016
0000-0001-7729-173XORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 1 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 · 94% Empirical software engineering · 2% Program analysis · 2% |
Topics — the 15 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing › test adequacy
coverage criteria |
0.4 | 2 | 2015 | Guidelines for Coverage-Based Comparisons of Non-Adequate Test Suites · ACM Trans. Softw. Eng. Methodol. 2015 Comparing non-adequate test suites using coverage criteria · ISSTA 2013 |
Software testing
test suite evaluation |
0.4 | 2 | 2015 | Guidelines for Coverage-Based Comparisons of Non-Adequate Test Suites · ACM Trans. Softw. Eng. Methodol. 2015 Comparing non-adequate test suites using coverage criteria · ISSTA 2013 |
Software testing
fuzzing |
0.3 | 2 | 2013 | Taming compiler fuzzers · PLDI 2013 Swarm testing · ISSTA 2012 |
Software testing › regression testing
test case prioritization |
0.2 | 2 | 2014 | Taming compiler fuzzers · PLDI 2013 Using test case reduction and prioritization to improve symbolic execution · ISSTA 2014 |
Software testing › test coverage › code coverage
branch coverage |
0.2 | 1 | 2015 | Guidelines for Coverage-Based Comparisons of Non-Adequate Test Suites · ACM Trans. Softw. Eng. Methodol. 2015 |
Software testing › test coverage
path coverage |
0.2 | 1 | 2015 | Guidelines for Coverage-Based Comparisons of Non-Adequate Test Suites · ACM Trans. Softw. Eng. Methodol. 2015 |
Software testing › test optimization
test case reduction |
0.2 | 1 | 2014 | Using test case reduction and prioritization to improve symbolic execution · ISSTA 2014 |
Software testing › regression testing
test selection |
0.2 | 1 | 2014 | You Are the Only Possible Oracle: Effective Test Selection for End Users of Interactive Machine Learning Systems · IEEE Trans. Software Eng. 2014 |
Software testing › fuzzing › system software fuzzing
compiler fuzzing |
0.2 | 1 | 2013 | Taming compiler fuzzers · PLDI 2013 |
Software testing
random testing |
0.1 | 1 | 2012 | Swarm testing · ISSTA 2012 |
Software testing › test suite evaluation
test diversity |
0.1 | 1 | 2012 | Swarm testing · ISSTA 2012 |
Software testing
test generation |
0.1 | 1 | 2012 | Swarm testing · ISSTA 2012 |
Program analysis
symbolic execution |
0.1 | 1 | 2014 | Using test case reduction and prioritization to improve symbolic execution · ISSTA 2014 |
Software testing
test oracle |
0.1 | 1 | 2014 | You Are the Only Possible Oracle: Effective Test Selection for End Users of Interactive Machine Learning Systems · IEEE Trans. Software Eng. 2014 |
Debugging and program repair
fault localization |
0.0 | 1 | 2013 | Taming compiler fuzzers · PLDI 2013 |
Methods — techniques the papers use, named apart from their topics
correlation analysis · 0.2user study · 0.2symbolic execution · 0.2delta debugging · 0.2random testing · 0.2coverage measurement · 0.2feature omission · 0.1configuration sampling · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2016 | Cause reduction: delta debugging, even without bugsabstractSummary What is a test casefor? Sometimes, to expose a fault. Tests can also exercise code, use memory or time, or produce desired output. Given a desired effect, a test case can be seen as acause, and its components divided into essential (required for effect) and accidental. Delta debugging is used for removing accidents from failing test cases, producing smaller test cases that are easier to understand. This paper extends delta debugging by simplifying test cases with respect toarbitrary effects, a generalization calledcause reduction. Suites produced by cause reduction provide effectivequick testsfor real‐world programs. For Mozilla's JavaScript engine, the reduced suite is possiblymoreeffective for finding faults. The effectiveness of reduction‐based suites persists through changes to the software, improving coverage by over 500 branches for versions up to 4 months later. Cause reduction has other applications, including improving seeded symbolic execution, where using reduced tests can often double the number of additional branches explored. Copyright © 2015 John Wiley & Sons, Ltd. Alex Groce, Mohammad Amin Alipour, Chaoqiang Zhang, Yang Chen 0024, John Regehr |
Softw. Test. Verification Reliab. | 3 |
| 2015 | Guidelines for Coverage-Based Comparisons of Non-Adequate Test SuitesabstractA fundamental question in software testing research is how to compare test suites, often as a means for comparing test-generation techniques that produce those test suites. Researchers frequently compare test suites by measuring their coverage . A coverage criterion C provides a set of test requirements and measures how many requirements a given suite satisfies. A suite that satisfies 100% of the feasible requirements is called C-adequate . Previous rigorous evaluations of coverage criteria mostly focused on such adequate test suites: given two criteria C and C ′, are C -adequate suites on average more effective than C ′-adequate suites? However, in many realistic cases, producing adequate suites is impractical or even impossible. This article presents the first extensive study that evaluates coverage criteria for the common case of non-adequate test suites: given two criteria C and C ′, which one is better to use to compare test suites? Namely, if suites T 1 , T 2 ,…, T n have coverage values c 1 , c 2 ,…, c n for C and c 1 ′, c 2 ′,…, c n ′ for C ′, is it better to compare suites based on c 1 , c 2 ,…, c n or based on c 1 ′, c 2 ′,…, c n ′ ? We evaluate a large set of plausible criteria, including basic criteria such as statement and branch coverage, as well as stronger criteria used in recent studies, including criteria based on program paths, equivalence classes of covered statements, and predicate states. The criteria are evaluated on a set of Java and C programs with both manually written and automatically generated test suites. The evaluation uses three correlation measures. Based on these experiments, two criteria perform best: branch coverage and an intraprocedural acyclic path coverage. We provide guidelines for testing researchers aiming to evaluate test suites using coverage criteria as well as for other researchers evaluating coverage criteria for research use. Milos Gligoric 0001, Alex Groce, Chaoqiang Zhang, Rohan Sharma, Mohammad Amin Alipour, Darko Marinov |
ACM Trans. Softw. Eng. Methodol. | 3 |
| 2014 | Cause Reduction for Quick TestingabstractIn random testing, it is often desirable to produce a "quick test" -- an extremely inexpensive test suite that can serve as a frequently applied regression and allow the benefits of random testing to be obtained even in very slow or over-subscribed test environments. Delta debugging is an algorithm that, given a failing test case, produces a smaller test case that also fails, and typically executes much more quickly. Delta debugging of random tests can produce effective regression suites for previously detected faults, but such suites often have little power for detecting new faults, and in some cases provide poor code coverage. This paper proposes extending delta debugging by simplifying tests with respect to code coverage, an instance of a generalization of delta debugging we call cause reduction. We show that test suites reduced in this fashion can provide very effective quick tests for real-world programs. For Mozilla's Spider Monkey JavaScript engine, the reduced suite is more effective for finding software faults, even if its reduced runtime is not considered. The effectiveness of a reduction-based quick test persists through major changes to the software under test. Alex Groce, Mohammad Amin Alipour, Chaoqiang Zhang, Yang Chen 0024, John Regehr |
ICST | 3 |
| 2014 | Using test case reduction and prioritization to improve symbolic executionabstractScaling symbolic execution to large programs or programs with complex inputs remains difficult due to path explosion and complex constraints, as well as external method calls. Additionally, creating an effective test structure with symbolic inputs can be difficult. A popular symbolic execution strategy in practice is to perform symbolic execution not “from scratch” but based on existing test cases. This paper proposes that the effectiveness of this approach to symbolic execution can be enhanced by (1) reducing the size of seed test cases and (2) prioritizing seed test cases to maximize exploration efficiency. The proposed test case reduction strategy is based on a recently introduced generalization of delta debugging, and our prioritization techniques include novel methods that, for this purpose, can outperform some traditional regression testing algorithms. We show that applying these methods can significantly improve the effectiveness of symbolic execution based on existing test cases. Chaoqiang Zhang, Alex Groce, Mohammad Amin Alipour |
ISSTA | 1 |
| 2014 | You Are the Only Possible Oracle: Effective Test Selection for End Users of Interactive Machine Learning SystemsabstractHow do you test a program when only a single user, with no expertise in software testing, is able to determine if the program is performing correctly? Such programs are common today in the form of machine-learned classifiers. We consider the problem of testing this common kind of machine-generated program when the only oracle is an end user: e.g., only you can determine if your email is properly filed. We present test selection methods that provide very good failure rates even for small test suites, and show that these methods work in both large-scale random experiments using a “gold standard” and in studies with real users. Our methods are inexpensive and largely algorithm-independent. Key to our methods is an exploitation of properties of classifiers that is not possible in traditional software testing. Our results suggest that it is plausible for time-pressured end users to interactively detect failures-even very hard-to-find failures-without wading through a large number of successful (and thus less useful) tests. We additionally show that some methods are able to find the arguably most difficult-to-detect faults of classifiers: cases where machine learning algorithms have high confidence in an incorrect result. Alex Groce, Todd Kulesza, Chaoqiang Zhang, Shalini Shamasunder, Margaret M. Burnett, Weng-Keen Wong, Simone Stumpf, Shubhomoy Das, Amber Shinsel, Forrest Bice, Kevin McIntosh |
IEEE Trans. Software Eng. | 3 |
| 2013 | Help, help, i'm being suppressed! The significance of suppressors in software testingabstractTest features are basic compositional units used to describe what a test does (and does not) involve. For example, in API-based testing, the most obvious features are function calls; in grammar-based testing, the obvious features are the elements of the grammar. The relationship between features as abstractions of tests and produced behaviors of the tested program is surprisingly poorly understood. This paper shows how large-scale random testing modified to use diverse feature sets can uncover causal relationships between what a test contains and what the program being tested does. We introduce a general notion of observable behaviors as targets, where a target can be a detected fault, an executed branch or statement, or a complex coverage entity such as a state, predicate-valuation, or program path. While it is obvious that targets have triggers - features without which they cannot be hit by a test - the notion of suppressors - features which make a test less likely to hit a target - has received little attention despite having important implications for automated test generation and program understanding. For a set of subjects including C compilers, a flash file system, and JavaScript engines, we show that suppression is both common and important. Alex Groce, Chaoqiang Zhang, Mohammad Amin Alipour, Eric Eide, Yang Chen 0024, John Regehr |
ISSRE | 2 |
| 2013 | Comparing non-adequate test suites using coverage criteriaabstractA fundamental question in software testing research is how to compare test suites, often as a means for comparing test-generation techniques. Researchers frequently compare test suites by measuring their coverage. A coverage criterion C provides a set of test requirements and measures how many requirements a given suite satisfies. A suite that satisfies 100% of the (feasible) requirements is C-adequate. Milos Gligoric 0001, Alex Groce, Chaoqiang Zhang, Rohan Sharma, Mohammad Amin Alipour, Darko Marinov |
ISSTA | 3 |
| 2013 | Taming compiler fuzzersabstractAggressive random testing tools ("fuzzers") are impressively effective at finding compiler bugs. For example, a single test-case generator has resulted in more than 1,700 bugs reported for a single JavaScript engine. However, fuzzers can be frustrating to use: they indiscriminately and repeatedly find bugs that may not be severe enough to fix right away. Currently, users filter out undesirable test cases using ad hoc methods such as disallowing problematic features in tests and grepping test results. This paper formulates and addresses the fuzzer taming problem: given a potentially large number of random test cases that trigger failures, order them such that diverse, interesting test cases are highly ranked. Our evaluation shows our ability to solve the fuzzer taming problem for 3,799 test cases triggering 46 bugs in a C compiler and 2,603 test cases triggering 28 bugs in a JavaScript engine. Yang Chen 0024, Alex Groce, Chaoqiang Zhang, Weng-Keen Wong, Xiaoli Z. Fern, Eric Eide, John Regehr |
PLDI | 3 |
| 2012 | Swarm testingabstractSwarm testing is a novel and inexpensive way to improve the diversity of test cases generated during random testing. Increased diversity leads to improved coverage and fault detection. In swarm testing, the usual practice of potentially including all features in every test case is abandoned. Rather, a large “swarm” of randomly generated configurations, each of which omits some features, is used, with configurations receiving equal resources. We have identified two mechanisms by which feature omission leads to better exploration of a system’s state space. First, some features actively prevent the system from executing interesting behaviors; e.g., “pop” calls may prevent a stack data structure from executing a bug in its overflow detection logic. Second, even when there is no active suppression of behaviors, test features compete for space in each test, limiting the depth to which logic driven by features can be explored. Experimental results show that swarm testing increases coverage and can improve fault detection dramatically; for example, in a week of testing it found 42% more distinct ways to crash a collection of C compilers than did the heavily hand-tuned default configuration of a random tester. Alex Groce, Chaoqiang Zhang, Eric Eide, Yang Chen 0024, John Regehr |
ISSTA | 2 |