VLDB 2026 Research / reviewers in the wild / expert
Ru-Gang Xu
dblp:00/2144
· DBLP profile ↗
8ranked-venue papers
1as first author
0since 2021 · last 2009
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 1 first-authorTheory of computation · 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
6 papers |
Software testing · 65% Program verification · 19% Program analysis · 14% | |
| Network and information security
1 paper |
Systems and software security · 100% |
Topics — the 17 heaviest of 18, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
symbolic execution |
0.2 | 2 | 2008 | Testing for buffer overflows with length abstraction · ISSTA 2008 Directed test generation using symbolic grammars · ASE 2007 |
Software testing › test generation
grammar-based test generation |
0.1 | 2 | 2007 | Directed test generation using symbolic grammars · ESEC/SIGSOFT FSE 2007 Directed test generation using symbolic grammars · ASE 2007 |
Software testing
test generation |
0.1 | 2 | 2007 | Directed test generation using symbolic grammars · ESEC/SIGSOFT FSE 2007 Directed test generation using symbolic grammars · ASE 2007 |
Software testing › partition testing
input partitioning |
0.1 | 1 | 2009 | Reducing Test Inputs Using Information Partitions · CAV 2009 |
Software testing › test optimization
test input reduction |
0.1 | 1 | 2009 | Reducing Test Inputs Using Information Partitions · CAV 2009 |
Software testing › regression testing
test suite reduction |
0.1 | 1 | 2009 | Reducing Test Inputs Using Information Partitions · CAV 2009 |
Systems and software security › memory safety › memory error detection
buffer overflow detection |
0.1 | 1 | 2008 | Testing for buffer overflows with length abstraction · ISSTA 2008 |
Systems and software security
memory safety |
0.1 | 1 | 2008 | Testing for buffer overflows with length abstraction · ISSTA 2008 |
Program verification › model checking
counterexample generation |
0.1 | 1 | 2008 | Proving non-termination · POPL 2008 |
Program verification › termination analysis
non-termination proving |
0.1 | 1 | 2008 | Proving non-termination · POPL 2008 |
Software testing
random testing |
0.1 | 1 | 2008 | Random Test Run Length and Effectiveness · ASE 2008 |
Program verification
termination analysis |
0.1 | 1 | 2008 | Proving non-termination · POPL 2008 |
Software testing
test input generation |
0.1 | 1 | 2008 | Testing for buffer overflows with length abstraction · ISSTA 2008 |
Software testing › test generation
symbolic testing |
0.1 | 1 | 2007 | Directed test generation using symbolic grammars · ESEC/SIGSOFT FSE 2007 |
Software testing
failure detection |
0.0 | 1 | 2008 | Random Test Run Length and Effectiveness · ASE 2008 |
Program synthesis and code generation › search-based program synthesis
enumerative synthesis |
0.0 | 1 | 2007 | Directed test generation using symbolic grammars · ASE 2007 |
Automata and formal languages › formal grammars
context-free grammar |
0.0 | 1 | 2007 | Directed test generation using symbolic grammars · ESEC/SIGSOFT FSE 2007 |
Methods — techniques the papers use, named apart from their topics
symbolic execution · 0.3directed random testing · 0.2exhaustive enumeration · 0.1statistical analysis · 0.1static feasibility proving · 0.1dynamic path enumeration · 0.1bit-level reasoning · 0.1symbolic grammars · 0.1constraint solving · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2009 | Reducing Test Inputs Using Information Partitions
Rupak Majumdar, Ru-Gang Xu |
CAV | 2 |
| 2008 | Testing for buffer overflows with length abstractionabstractWe present Splat, a tool for automatically generating inputs that lead to memory safety violations in C programs. Splat performs directed random testing of the code, guided by symbolic execution. However, instead of representing the entire contents of an input buffer symbolically, Splat tracks only a prefix of the buffer symbolically, and a symbolic length that may exceed the size of the symbolic prefix. The part of the buffer beyond the symbolic prefix is filled with concrete random inputs. The use of symbolic buffer lengths makes it possible to compactly summarize the behavior of standard buffer manipulation functions, such as string library functions, leading to a more scalable search for possible memory errors. While reasoning only about prefixes of buffer contents makes the search theoretically incomplete, we experimentally demonstrate that the symbolic length abstraction is both scalable and sufficient to uncover many real buffer overflows in C programs. In experiments on a set of benchmarks developed independently to evaluate buffer overflow checkers, Splat was able to detect buffer overflows quickly, sometimes several orders of magnitude faster than when symbolically representing entire buffers. Splat was also able to find two previously unknown buffer overflows in a heavily-tested storage system. Ru-Gang Xu, Patrice Godefroid, Rupak Majumdar |
ISSTA | 1 |
| 2008 | Random Test Run Length and EffectivenessabstractA poorly understood but important factor in random testing is the selection of a maximum length for test runs. Given a limited time for testing, it is seldom clear whether executing a small number of long runs or a large number of short runs maximizes utility. It is generally expected that longer runs are more likely to expose failures - which is certainly true with respect to runs shorter than the shortest failing trace. However, longer runs produce longer failing traces, requiring more effort from humans in debugging or more resources for automated minimization. In testing with feedback, increasing ranges for parameters may also cause the probability of failure to decrease in longer runs. We show that the choice of test length dramatically impacts the effectiveness of random testing, and that the patterns observed in simple models and predicted by analysis are useful in understanding effects observed in a large scale case study of a JPL flight software system. James H. Andrews, Alex Groce, Melissa Weston, Ru-Gang Xu |
ASE | 4 |
| 2008 | Proving non-terminationabstractThe search for proof and the search for counterexamples (bugs) are complementary activities that need to be pursued concurrently in order to maximize the practical success rate of verification tools.While this is well-understood in safety verification, the current focus of liveness verification has been almost exclusively on the search for termination proofs. A counterexample to termination is an infinite programexecution. In this paper, we propose a method to search for such counterexamples. The search proceeds in two phases. We first dynamically enumerate lasso-shaped candidate paths for counterexamples, and then statically prove their feasibility. We illustrate the utility of our nontermination prover, called TNT, on several nontrivial examples, some of which require bit-level reasoning about integer representations. Ashutosh Gupta 0001, Thomas A. Henzinger, Rupak Majumdar, Andrey Rybalchenko, Ru-Gang Xu |
POPL | 5 |
| 2007 | Directed test generation using symbolic grammarsabstractWe present CESE, a tool that combines exhaustive enumeration of test inputs from a structured domain with symbolic execution driven test generation. We target programs whose valid inputs are determined by some context free grammar. We abstract the concrete input syntax with symbolic grammars, where some original tokens are replaced with symbolic constants. This reduces the set of input strings that must be enumerated exhaustively. For each enumerated input string, which may contain symbolic constants, symbolic execution based test generation instantiates the constants based on program execution paths. The "template" generated by enumerating valid strings reduces the burden on the symbolic execution to generate syntactically valid inputs and helps exercise interesting code paths. Together, symbolic grammars provide a link between exhaustive enumeration of valid inputs and execution-directed symbolic test generation Rupak Majumdar, Ru-Gang Xu |
ASE | 2 |
| 2007 | Directed test generation using symbolic grammarsabstractWe present CESI, an algorithm that combines exhaustive enumeration of test inputs from a structured domain with symbolic execution driven test generation. We target programs whose valid inputs are determined by some context free grammar. We introduce symbolic grammars, where the original tokens are replaced with symbolic constants, that link enumerative grammar-based input generation with symbolic directed testing. Symbolic grammars abstract the concrete input syntax, thus reducing the set of input strings that must be enumerated exhaustively. For each enumerated input string, which may contain symbolic constants, symbolic execution based test generation instantiates the constants based on program execution paths. The "template" generated by enumerating valid strings reduces the burden on the symbolic execution to generate syntactically valid inputs and hence exercise interesting code paths. Together, symbolic grammars provide a link between exhaustive enumeration of valid inputs and execution-directed symbolic test generation. In preliminary experiments, CESI is better than if both enumerative and symbolic techniques are used alone. Rupak Majumdar, Ru-Gang Xu |
ESEC/SIGSOFT FSE | 2 |
| 2007 | State of the Union: Type Inference Via Craig Interpolation
Ranjit Jhala, Rupak Majumdar, Ru-Gang Xu |
TACAS | 3 |
| 2006 | Structural Invariants
Ranjit Jhala, Rupak Majumdar, Ru-Gang Xu |
SAS | 3 |