Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Stefan Bucur

dblp:97/7805 · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2019
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 3 · 2 first-authorSoftware engineering, systems software and programming languages · 3 · 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
4 papers
Program analysis · 50% Software testing · 47% Programming languages and type systems · 3%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 10 heaviest of 11, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis
symbolic execution
0.532014
Prototyping symbolic execution engines for interpreted languages · ASPLOS 2014
Efficient state merging in symbolic execution · PLDI 2012
Parallel symbolic execution for automated real-world software testing · EuroSys 2011
Systems and software security › vulnerability discovery
fuzzing
0.412019
FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019
Systems and software security
vulnerability discovery
0.412019
FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019
Software testing › fuzzing
fuzz driver generation
0.412019
FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019
Software testing
fuzzing
0.412019
FUDGE: fuzz driver generation at scale · ESEC/SIGSOFT FSE 2019
Program analysis
dynamic analysis
0.212014
Prototyping symbolic execution engines for interpreted languages · ASPLOS 2014
Program analysis › symbolic execution
state merging
0.112012
Efficient state merging in symbolic execution · PLDI 2012
Program analysis › symbolic execution
parallel symbolic execution
0.112011
Parallel symbolic execution for automated real-world software testing · EuroSys 2011
Software testing
test generation
0.122014
Prototyping symbolic execution engines for interpreted languages · ASPLOS 2014
Efficient state merging in symbolic execution · PLDI 2012
High-performance computing
cluster computing
0.012011
Parallel symbolic execution for automated real-world software testing · EuroSys 2011

Methods — techniques the papers use, named apart from their topics

symbolic execution · 0.4POSIX environment modeling · 0.2constraint solving · 0.1
YearPublicationVenuePosition
2019 FUDGE: fuzz driver generation at scale
abstract
At Google we have found tens of thousands of security and robustness bugs by fuzzing C and C++ libraries. To fuzz a library, a fuzzer requires a fuzz driver—which exercises some library code—to which it can pass inputs. Unfortunately, writing fuzz drivers remains a primarily manual exercise, a major hindrance to the widespread adoption of fuzzing. In this paper, we address this major hindrance by introducing the Fudge system for automated fuzz driver generation. Fudge automatically generates fuzz driver candidates for libraries based on existing client code. We have used Fudge to generate thousands of new drivers for a wide variety of libraries. Each generated driver includes a synthesized C/C++ program and a corresponding build script, and is automatically analyzed for quality. Developers have integrated over 200 of these generated drivers into continuous fuzzing services and have committed to address reported security bugs. Further, several of these fuzz drivers have been upstreamed to open source projects and integrated into the OSS-Fuzz fuzzing infrastructure. Running these fuzz drivers has resulted in over 150 bug fixes, including the elimination of numerous exploitable security vulnerabilities.
Domagoj Babic, Stefan Bucur, Franjo Ivancic, Tim King 0001, Markus Kusano, Caroline Lemieux, Laszlo Szekeres
ESEC/SIGSOFT FSE2
2014 Prototyping symbolic execution engines for interpreted languages
abstract
Symbolic execution is being successfully used to automatically test statically compiled code. However, increasingly more systems and applications are written in dynamic interpreted languages like Python. Building a new symbolic execution engine is a monumental effort, and so is keeping it up-to-date as the target language evolves. Furthermore, ambiguous language specifications lead to their implementation in a symbolic execution engine potentially differing from the production interpreter in subtle ways.
Stefan Bucur, Johannes Kinder, George Candea
ASPLOS1
2012 Efficient state merging in symbolic execution
abstract
Symbolic execution has proven to be a practical technique for building automated test case generation and bug finding tools. Nevertheless, due to state explosion, these tools still struggle to achieve scalability. Given a program, one way to reduce the number of states that the tools need to explore is to merge states obtained on different paths. Alas, doing so increases the size of symbolic path conditions (thereby stressing the underlying constraint solver) and interferes with optimizations of the exploration process (also referred to as search strategies). The net effect is that state merging may actually lower performance rather than increase it.
Volodymyr Kuznetsov, Johannes Kinder, Stefan Bucur, George Candea
PLDI3
2011 Parallel symbolic execution for automated real-world software testing
abstract
This paper introduces Cloud9, a platform for automated testing of real-world software. Our main contribution is the scalable parallelization of symbolic execution on clusters of commodity hardware, to help cope with path explosion. Cloud9 provides a systematic interface for writing "symbolic tests" that concisely specify entire families of inputs and behaviors to be tested, thus improving testing productivity. Cloud9 can handle not only single-threaded programs but also multi-threaded and distributed systems. It includes a new symbolic environment model that is the first to support all major aspects of the POSIX interface, such as processes, threads, synchronization, networking, IPC, and file I/O. We show that Cloud9 can automatically test real systems, like memcached, Apache httpd, lighttpd, the Python interpreter, rsync, and curl. We show how Cloud9 can use existing test suites to generate new test cases that capture untested corner cases (e.g., network stream fragmentation). Cloud9 can also diagnose incomplete bug fixes by analyzing the difference between buggy paths before and after a patch.
Stefan Bucur, Vlad Ureche, Cristian Zamfir, George Candea
EuroSys1
2010 Automated software testing as a service
abstract
This paper makes the case for TaaS--automated software testing as a cloud-based service. We present three kinds of TaaS: a "programmer's sidekick" enabling developers to thoroughly and promptly test their code with minimal upfront resource investment; a "home edition" on-demand testing service for consumers to verify the software they are about to install on their PC or mobile device; and a public "certification service," akin to Underwriters Labs, that independently assesses the reliability, safety, and security of software.
George Candea, Stefan Bucur, Cristian Zamfir
SoCC2