Demo Data from VLDB 2026 / reviewers in the wild / expert
Yi Wei 0001
dblp:04/470-1
· DBLP profile ↗
8ranked-venue papers
4as first author
0since 2021 · last 2014
0000-0002-0856-5773ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 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 |
Debugging and program repair · 29% Software testing · 21% Program analysis · 20% |
Topics — the 12 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Debugging and program repair
automated program repair |
0.3 | 2 | 2014 | Automated Fixing of Programs with Contracts · IEEE Trans. Software Eng. 2014 Automated fixing of programs with contracts · ISSTA 2010 |
Program verification › annotation inference
contract inference |
0.2 | 2 | 2011 | Stateful testing: Finding more errors in code and contracts · ASE 2011 Inferring better contracts · ICSE 2011 |
Program analysis
dynamic analysis |
0.2 | 1 | 2014 | Automated Fixing of Programs with Contracts · IEEE Trans. Software Eng. 2014 |
Debugging and program repair
fault localization |
0.2 | 1 | 2014 | Automated Fixing of Programs with Contracts · IEEE Trans. Software Eng. 2014 |
Requirements engineering and software design › specification
design by contract |
0.2 | 1 | 2013 | What good are strong specifications? · ICSE 2013 |
Requirements engineering and software design › specification
software specification |
0.2 | 1 | 2013 | What good are strong specifications? · ICSE 2013 |
Software testing
specification-based testing |
0.2 | 1 | 2013 | What good are strong specifications? · ICSE 2013 |
Program analysis › specification mining
dynamic invariant detection |
0.1 | 1 | 2011 | Stateful testing: Finding more errors in code and contracts · ASE 2011 |
Software testing › model-based testing
finite state machine testing |
0.1 | 1 | 2011 | Stateful testing: Finding more errors in code and contracts · ASE 2011 |
Software testing
random testing |
0.1 | 1 | 2011 | Stateful testing: Finding more errors in code and contracts · ASE 2011 |
Program analysis
static analysis |
0.1 | 1 | 2011 | Inferring better contracts · ICSE 2011 |
Software testing
test generation |
0.0 | 1 | 2011 | Stateful testing: Finding more errors in code and contracts · ASE 2011 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.3design by contract · 0.3contract checking · 0.2empirical study · 0.2static analysis · 0.1random testing · 0.1dynamic invariant inference · 0.1state abstraction · 0.1contract-based verification · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Automated Fixing of Programs with ContractsabstractThis paper describes AutoFix, an automatic debugging technique that can fix faults in general-purpose software. To provide high-quality fix suggestions and to enable automation of the whole debugging process, AutoFix relies on the presence of simple specification elements in the form of contracts (such as pre- and postconditions). Using contracts enhances the precision of dynamic analysis techniques for fault detection and localization, and for validating fixes. The only required user input to the AutoFix supporting tool is then a faulty program annotated with contracts; the tool produces a collection of validated fixes for the fault ranked according to an estimate of their suitability. In an extensive experimental evaluation, we applied AutoFix to over 200 faults in four code bases of different maturity and quality (of implementation and of contracts). AutoFix successfully fixed 42 percent of the faults, producing, in the majority of cases, corrections of quality comparable to those competent programmers would write; the used computational resources were modest, with an average time per fix below 20 minutes on commodity hardware. These figures compare favorably to the state of the art in automated program fixing, and demonstrate that the AutoFix approach is successfully applicable to reduce the debugging burden in real-world scenarios. Yu Pei 0001, Carlo A. Furia, Martín Nordio, Yi Wei 0001, Bertrand Meyer 0001, Andreas Zeller |
IEEE Trans. Software Eng. | 4 |
| 2013 | What good are strong specifications?abstractExperience with lightweight formal methods suggests that programmers are willing to write specification if it brings tangible benefits to their usual development activities. This paper considers stronger specifications and studies whether they can be deployed as an incremental practice that brings additional benefits without being unacceptably expensive. We introduce a methodology that extends Design by Contract to write strong specifications of functional properties in the form of preconditions, postconditions, and invariants. The methodology aims at being palatable to developers who are not fluent in formal techniques but are comfortable with writing simple specifications. We evaluate the cost and the benefits of using strong specifications by applying the methodology to testing data structure implementations written in Eiffel and C#. In our extensive experiments, testing against strong specifications detects twice as many bugs as standard contracts, with a reasonable overhead in terms of annotation burden and run-time performance while testing. In the wide spectrum of formal techniques for software quality, testing against strong specifications lies in a “sweet spot” with a favorable benefit to effort ratio. Nadia Polikarpova, Carlo A. Furia, Yu Pei 0001, Yi Wei 0001, Bertrand Meyer 0001 |
ICSE | 4 |
| 2011 | Evotec: Evolving the Best Testing Strategy for Contract-Equipped ProgramsabstractAutomated random testing is efficient at detecting faults but it is certainly not an optimal testing strategy for every given program. For example, an automated random testing tool ignores that some routines have stronger preconditions, they use certain literal values, or they are more error-prone. Taking into account such characteristics may increase testing effectiveness. In this article, we present Evotec, an enhancement of random testing which relies on genetic algorithms to evolve a best testing strategy for contract-equipped programs. The resulting strategy is optimized for detecting more faults, satisfying more routine preconditions and establishing more object states on a given set of classes to test. Our experiment tested 92 classes over 1710 hours. It shows that Evotec detected 29% more faults than random+ and 18% more faults than the precondition-satisfaction strategy. Lucas Serpa Silva, Yi Wei 0001, Bertrand Meyer 0001, Manuel Oriol |
APSEC | 2 |
| 2011 | Inferring better contractsabstractConsiderable progress has been made towards automatic support for one of the principal techniques available to enhance program reliability: equipping programs with extensive contracts. The results of current contract inference tools are still often unsatisfactory in practice, especially for programmers who already apply some kind of basic Design by Contract discipline, since the inferred contracts tend to be simple assertions - the very ones that programmers find easy to write. We present new, completely automatic inference techniques and a supporting tool, which take advantage of the presence of simple programmer-written contracts in the code to infer sophisticated assertions, involving for example implication and universal quantification. Yi Wei 0001, Carlo A. Furia, Nikolay Kazmin, Bertrand Meyer 0001 |
ICSE | 1 |
| 2011 | Code-based automated program fixingabstractInitial research in automated program fixing has generally limited itself to specific areas, such as data structure classes with carefully designed interfaces, and relied on simple approaches. To provide high-quality fix suggestions in a broad area of applicability, the present work relies on the presence of contracts in the code, and on the availability of static and dynamic analyses to gather evidence on the values taken by expressions derived from the code. The ideas have been built into the AutoFix-E2 automatic fix generator. Applications of AutoFix-E2 to general-purpose software, such as a library to manipulate documents, show that the approach provides an improvement over previous techniques, in particular purely model-based approaches. Yu Pei 0001, Yi Wei 0001, Carlo A. Furia, Martín Nordio, Bertrand Meyer 0001 |
ASE | 2 |
| 2011 | Stateful testing: Finding more errors in code and contractsabstractAutomated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead. Yi Wei 0001, Hannes Roth, Carlo A. Furia, Yu Pei 0001, Alexander Horton, Michael Steindorfer, Martín Nordio, Bertrand Meyer 0001 |
ASE | 1 |
| 2010 | Satisfying Test Preconditions through Guided Object SelectionabstractA random testing strategy can be effective at finding faults, but may leave some routines entirely untested if it never gets to call them on objects satisfying their preconditions. This limitation is particularly frustrating if the object pool does contain some precondition-satisfying objects but the strategy, which selects objects at random, does not use them. The extension of random testing described in this article addresses the problem. Experimentally, the resulting strategy succeeds in testing 56% of the routines that the pure random strategy missed; it tests hard routines 3.6 times more often; although it misses some of the faults detected by the original strategy, it finds 9.5% more faults overall; and it causes negligible overhead. Yi Wei 0001, Serge Gebhardt, Bertrand Meyer 0001, Manuel Oriol |
ICST | 1 |
| 2010 | Automated fixing of programs with contractsabstractIn program debugging, finding a failing run is only the first step; what about correcting the fault? Can we automate the second task as well as the first? The AutoFix-E tool automatically generates and validates fixes for software faults. The key insights behind AutoFix-E are to rely on contracts present in the software to ensure that the proposed fixes are semantically sound, and on state diagrams using an abstract notion of state based on the boolean queries of a class. Out of 42 faults found by an automatic testing tool in two widely used Eiffel libraries, AutoFix-E proposes successful fixes for 16 faults. Submitting some of these faults to experts shows that several of the proposed fixes are identical or close to fixes proposed by humans. Yi Wei 0001, Yu Pei 0001, Carlo A. Furia, Lucas Serpa Silva, Stefan Buchholz, Bertrand Meyer 0001, Andreas Zeller |
ISSTA | 1 |