VLDB 2026 Research / reviewers in the wild / expert
Bruno B. P. Cafeo
dblp:46/10082 · also Bruno Barbieri Pontes Cafeo
· DBLP profile ↗
10ranked-venue papers
2as first author
3since 2021 · last 2026
0000-0002-9908-4384ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 2 first-author · 3 since 2021Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A large-scale study on developer engagement and expertise in Configurable Software System projects
Karolina Milano, Wesley K. G. Assunção, Bruno B. P. Cafeo |
J. Syst. Softw. | 3 |
| 2024 | Navigating Expertise in Configurable Software Systems through the Maze of VariabilityabstractThe understanding of source code in large-scale software systems poses a challenge for developers. The role of expertise in source code becomes critical for identifying developers accountable for substantial changes. However, in the context of configurable software systems (CSS) using pre-processing and conditional compilation, conventional expertise metrics may encounter limitations due to the non-alignment of variability implementation with the natural module structure. This early research study investigates the distribution of development efforts in CSS, specifically focusing on variable and mandatory code. It also examines the engagement of designated experts with variable code in their assigned files. The findings provide insights into task allocation dynamics and raise questions about the applicability of existing metrics, laying the groundwork for alternative approaches to assess developer expertise in handling variable code. This research aims to contribute to a comprehensive understanding of challenges within CSS, marking initial steps toward advancing the evaluation of expertise in this context. Karolina Milano, Bruno B. P. Cafeo |
SANER | 2 |
| 2022 | How are framework code samples maintained and used by developers? The case of Android and Spring Boot
Gabriel Menezes, Bruno B. P. Cafeo, Andre Hora 0001 |
J. Syst. Softw. | 2 |
| 2019 | Framework Code Samples: How Are They Maintained and Used by Developers?abstractBackground: Modern software systems are commonly built on the top of frameworks. To accelerate the learning process of features provided by frameworks, code samples are made available to assist developers. However, we know little about how code samples are actually developed. Aims: In this paper, we aim to fill this gap by assessing the characteristics of framework code samples. We provide insights on how code samples are maintained and used by developers. Method: We analyze 233 code samples of Android and SpringBoot, and assess aspects related to their source code, evolution, popularity, and client usage. Results: We find that most code samples are small and simple, provide a working environment to the clients, and rely on automated build tools. They change frequently over time, for example, to adapt to new framework versions. We also detect that clients commonly fork the code samples, however, they rarely modify them. Conclusions: We provide a set of lessons learned and implications to creators and clients of code samples to improve maintenance and usage activities. Gabriel Menezes, Bruno B. P. Cafeo, Andre Hora 0001 |
ESEM | 2 |
| 2016 | Code anomalies flock together: exploring code anomaly agglomerations for locating design problemsabstractDesign problems affect every software system. Diverse software systems have been discontinued or reengineered due to design problems. As design documentation is often informal or nonexistent, design problems need to be located in the source code. The main difficulty to identify a design problem in the implementation stems from the fact that such problem is often scattered through several program elements. Previous work assumed that code anomalies -- popularly known as code smells -- may provide sufficient hints about the location of a design problem. However, each code anomaly alone may represent only a partial embodiment of a design problem. In this paper, we hypothesize that code anomalies tend to "flock together" to realize a design problem. We analyze to what extent groups of inter-related code anomalies, named agglomerations, suffice to locate design problems. We analyze more than 2200 agglomerations found in seven software systems of different sizes and from different domains. Our analysis indicates that certain forms of agglomerations are consistent indicators of both congenital and evolutionary design problems, with accuracy often higher than 80%. Willian Nalepa Oizumi, Alessandro F. Garcia 0001, Leonardo da Silva Sousa, Bruno B. P. Cafeo, Yixue Zhao |
ICSE | 4 |
| 2016 | Feature dependencies as change propagators: An exploratory study of software product lines
Bruno B. P. Cafeo, Elder Cirilo, Alessandro F. Garcia 0001, Francisco Dantas, Jaejoon Lee |
Inf. Softw. Technol. | 1 |
| 2015 | Evaluation and assessment of effects on exploring mutation testing in programming coursesabstractMutation analysis is a testing strategy that consists of using supporting tools to seed artificial faults in the original code of a software under test, generating faulty programs (“mutants”) that are supposed to produce incorrect outputs. Novice programmers suffer of a wide range of deficits due to defective training processes. We argue that the incorporation of experiences on mutation testing in programming courses adds valuable knowledge to the learning process. In this paper we evaluate the effects of using mutation testing to improve the learning process of students in programming courses. We present results of experiments and analysis involving undergraduate students. These experiments are the continuation of a previous work in which we raise empirical evidences that the adequate incorporation of mutation testing in programming courses contributes to form an effective environment that fosters learning. To do so, we provide a mutation testing tool to promote the practice of mutation testing by novice programmers. Through practical experiences and several analysis survey we measured the effects of using the mutation testing criterion to teach programming. In addition, we collected the opinion of senior students who already knew mutation testing concepts about their opinion on the usage of mutation concepts to teach novice programmers. Our findings reveal that the effective use of mutation analysis concepts contributes to the learning process, making students see the code as a product under development that is the result of a careful manual coding process which they need for measuring and predicting the effect of each command. The main contributions discussed in this paper are: (1) presenting results of an empirical analysis involving undergraduate students, thus giving us preliminary evidence on the effects of the novel practice; (2) exposing possible practices to explore mutation testing in programming classes, highlighting the limitations and strengths of such strategy; and (3) a mutation testing tool for educational purposes. Rafael Alves Paes de Oliveira, Lucas B. R. Oliveira, Bruno B. P. Cafeo, Vinicius H. S. Durelli |
FIE | 3 |
| 2015 | Quantifying usability of domain-specific languages: An empirical study on software maintenance
Diego Albuquerque, Bruno B. P. Cafeo, Alessandro F. Garcia 0001, Simone D. J. Barbosa, Silvia Abrahão, António Ribeiro |
J. Syst. Softw. | 2 |
| 2014 | On Using Mutation Testing for Teaching Programming to Novice ProgrammersabstractIn this paper we argue that the incorporation of experiences on testing activities, in particular mutation testing, in programming courses adds valuable knowledge to the learning process. Mutation testing is centered on the idea of creating test data for uncovering seeded faults in programs that slightly differ from the original program. These faulty programs are called mutants. Through source code analysis and test case execution, testers have to identify the differences between the original program and the mutants. To do so, testers must have a sound understanding of the program's control flow and instructions. This broad understanding of programming represents a key skill for novice students in programming courses. We evaluate the effects of using mutation testing to improve the learning process of novice students in programming courses. We conclude that the introduction of mutation testing in the learning process provides students with learning experiences that go beyond traditional lectures and hands-on programming courses. Rafael Alves Paes de Oliveira, Lucas B. R. Oliveira, Bruno B. P. Cafeo, Vinicius H. S. Durelli |
ICCE | 3 |
| 2011 | Inferring test results for dynamic software product linesabstractDue to the very large number of configurations that can typically be derived from a Dynamic Software Product Line (DSPL), efficient and effective testing of such systems have become a major challenge for software developers. In particular, when a configuration needs to be deployed quickly due to rapid contextual changes (e.g., in an unfolding crisis), time constraints hinder the proper testing of such a configuration. In this paper, we propose to reduce the testing required of such DSPLs to a relevant subset of configurations. Whenever a need to adapt to an untested configuration is encountered, our approach determines the most similar tested configuration and reuses its test results to either obtain a coverage measure or infer a confidence degree for the new, untested configuration. We focus on providing these techniques for inference of structural testing results for DSPLs, which is supported by an early prototype implementation. Bruno B. P. Cafeo, Joost Noppen, Fabiano Cutigi Ferrari, Ruzanna Chitchyan, Awais Rashid |
SIGSOFT FSE | 1 |