EDBT 2026 Demo / reviewers in the wild / expert
Yanwei Bai
dblp:116/8628
· DBLP profile ↗
5ranked-venue papers
0as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4Applied, interdisciplinary, general and emerging computing · 1
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
2 papers |
Software testing · 80% Program analysis · 15% Compilers and program optimization · 5% |
Topics — the 6 heaviest of 7, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing
compiler testing |
0.3 | 1 | 2017 | Learning to prioritize test programs for compiler testing · ICSE 2017 |
Software testing › regression testing › test case prioritization
learning-based test prioritization |
0.3 | 1 | 2017 | Learning to prioritize test programs for compiler testing · ICSE 2017 |
Software testing › regression testing
test case prioritization |
0.3 | 1 | 2017 | Learning to prioritize test programs for compiler testing · ICSE 2017 |
Software testing › test oracle
oracle data selection |
0.2 | 1 | 2016 | Supporting oracle construction via static analysis · ASE 2016 |
Program analysis
static analysis |
0.2 | 1 | 2016 | Supporting oracle construction via static analysis · ASE 2016 |
Software testing
test oracle |
0.2 | 1 | 2016 | Supporting oracle construction via static analysis · ASE 2016 |
Methods — techniques the papers use, named apart from their topics
time model · 0.3machine learning · 0.3capability model · 0.3probabilistic substitution graph · 0.20-1-CFA call graph analysis · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Research on the Input Methods of Cardboard
Zhiyi Ma, Hongjie Chen 0002, Yanwei Bai, Ye Qiu |
ICCSA (2) | 3 |
| 2017 | Learning to prioritize test programs for compiler testingabstractCompiler testing is a crucial way of guaranteeing the reliability of compilers (and software systems in general). Many techniques have been proposed to facilitate automated compiler testing. These techniques rely on a large number of test programs (which are test inputs of compilers) generated by some test-generation tools (e.g., CSmith). However, these compiler testing techniques have serious efficiency problems as they usually take a long period of time to find compiler bugs. To accelerate compiler testing, it is desirable to prioritize the generated test programs so that the test programs that are more likely to trigger compiler bugs are executed earlier. In this paper, we propose the idea of learning to test, which learns the characteristics of bug-revealing test programs from previous test programs that triggered bugs. Based on the idea of learning to test, we propose LET, an approach to prioritizing test programs for compiler testing acceleration. LET consists of a learning process and a scheduling process. In the learning process, LET identifies a set of features of test programs, trains a capability model to predict the probability of a new test program for triggering compiler bugs and a time model to predict the execution time of a test program. In the scheduling process, LET prioritizes new test programs according to their bug-revealing probabilities in unit time, which is calculated based on the two trained models. Our extensive experiments show that LET significantly accelerates compiler testing. In particular, LET reduces more than 50% of the testing time in 24.64% of the cases, and reduces between 25% and 50% of the testing time in 36.23% of the cases. Junjie Chen 0003, Yanwei Bai, Dan Hao 0001, Yingfei Xiong 0001, Hongyu Zhang 0002 |
ICSE | 2 |
| 2017 | How Do Assertions Impact Coverage-Based Test-Suite Reduction?abstractCode coverage is the dominant criterion in test-suite reduction. Typically, most test-suite reduction techniques repeatedly remove tests covering code that has been covered by other tests from the test suite. However, test-suite reduction based on code coverage alone may incur fault-detection capability loss, because a test detects faults if and only if its execution covers buggy code and its test oracle catches the buggy state. In other words, test oracles may also affect test-suite reduction, However, to our knowledge, their impacts have never been studied before. In this paper, we conduct the first empirical study on such impacts by using 10 real-world GitHub Java projects, and find that assertions (i.e., a typical type of test oracles) are significantly correlated with coverage-based test-suite reduction. Based on our preliminary study results, we also proposed an assertion-aware test-suite reduction technique which outperforms traditional test-suite reduction in terms of cost-effectiveness. Junjie Chen 0003, Yanwei Bai, Dan Hao 0001, Lingming Zhang 0001, Lu Zhang 0023 |
ICST | 2 |
| 2016 | Test Case Prioritization for Compilers: A Text-Vector Based ApproachabstractTest case prioritization aims to schedule the execution order of test cases so as to detect bugs as early as possible. For compiler testing, the demand for both effectiveness and efficiency imposes challenge to test case prioritization. In the literature, most existing approaches prioritize test cases by using some coverage information (e.g., statement coverage or branch coverage), which is collected with considerable extra effort. Although input-based test case prioritization relies only on test inputs, it can hardly be applied when test inputs are programs. In this paper we propose a novel text-vector based test case prioritization approach, which prioritizes test cases for C compilers without coverage information. Our approach first transforms each test case into a text-vector by extracting its tokens which reflect fault-relevant characteristics and then prioritizes test cases based on these text-vectors. In particular, in our approach we present three prioritization strategies: greedy strategy, adaptive random strategy, and search strategy. To investigate the efficiency and effectiveness of our approach, we conduct an experiment on two C compilers (i.e., GCC and LLVM), and find that our approach is much more efficient than the existing approaches and is effective in prioritizing test cases. Junjie Chen 0003, Yanwei Bai, Dan Hao 0001, Yingfei Xiong 0001, Hongyu Zhang 0002, Lu Zhang 0023 |
ICST | 2 |
| 2016 | Supporting oracle construction via static analysisabstractIn software testing, the program under test is usually executed with test inputs and checked against a test oracle, which is a mechanism to verify whether the program behaves as expected. Selecting the right oracle data to observe is crucial in test oracle construction. In the literature, researchers have proposed two dynamic approaches to oracle data selection by analyzing test execution information (e.g., variables' values or interaction information). However, collecting such information during program execution may incur extra cost. In this paper, we present the first static approach to oracle data selection, SODS (Static Oracle Data Selection). In particular, SODS first identifies the substitution relationships between candidate oracle data by constructing a probabilistic substitution graph based on the definition-use chains of the program under test, then estimates the fault-observing capability of each candidate oracle data, and finally selects a subset of oracle data with strong fault-observing capability. For programs with analyzable test code, we further extend SODS via pruning the probabilistic substitution graph based on 0-1-CFA call graph analysis. The experimental study on 11 subject systems written in C or Java demonstrates that our static approach is more effective and much more efficient than state-of-the-art dynamic approaches in most cases. Junjie Chen 0003, Yanwei Bai, Dan Hao 0001, Lingming Zhang 0001, Lu Zhang 0023, Hong Mei 0001 |
ASE | 2 |