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

Caius Brindescu

dblp:145/3991 · DBLP profile ↗
← Back
9ranked-venue papers
5as first author
0since 2021 · last 2020
0000-0003-1196-8749ORCID · corroborated

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

Software engineering, systems software and programming languages · 9 · 5 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
5 papers
Software testing · 52% Empirical software engineering · 25% Software maintenance and evolution · 23%
Human-computer interaction and pervasive computing
2 papers
Collaborative and social computing · 100%

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

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › software merging
merge conflict resolution
0.822020
Planning for untangling: predicting the difficulty of merge conflicts · ICSE 2020
How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements · ESEC/SIGSOFT FSE 2018
Empirical software engineering
mining software repositories
0.622020
Planning for untangling: predicting the difficulty of merge conflicts · ICSE 2020
How do centralized and distributed version control systems impact software changes? · ICSE 2014
Software testing › test generation
automated test generation
0.412020
Using Relative Lines of Code to Guide Automated Test Generation for Python · ACM Trans. Softw. Eng. Methodol. 2020
Software testing › test generation
coverage-based test generation
0.412020
Using Relative Lines of Code to Guide Automated Test Generation for Python · ACM Trans. Softw. Eng. Methodol. 2020
Software testing
fault detection
0.412020
Using Relative Lines of Code to Guide Automated Test Generation for Python · ACM Trans. Softw. Eng. Methodol. 2020
Software testing › random testing
property-based testing
0.412020
Using Relative Lines of Code to Guide Automated Test Generation for Python · ACM Trans. Softw. Eng. Methodol. 2020
Empirical software engineering
collaborative software development
0.312018
How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements · ESEC/SIGSOFT FSE 2018
Empirical software engineering
developer studies
0.312018
How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements · ESEC/SIGSOFT FSE 2018
Software maintenance and evolution › software configuration management
version control
0.322018
How do centralized and distributed version control systems impact software changes? · ICSE 2014
How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements · ESEC/SIGSOFT FSE 2018
Software testing › test coverage
code coverage
0.212016
Can testedness be effectively measured? · SIGSOFT FSE 2016
Software testing › mutation testing
mutation score
0.212016
Can testedness be effectively measured? · SIGSOFT FSE 2016
Software testing › test coverage › code coverage
statement coverage
0.212016
Can testedness be effectively measured? · SIGSOFT FSE 2016
Software testing › test quality
test suite quality
0.212016
Can testedness be effectively measured? · SIGSOFT FSE 2016
Software maintenance and evolution
code change analysis
0.212014
How do centralized and distributed version control systems impact software changes? · ICSE 2014
Collaborative and social computing › team collaboration
collaborative software development
0.222020
Planning for untangling: predicting the difficulty of merge conflicts · ICSE 2020
How do centralized and distributed version control systems impact software changes? · ICSE 2014
Empirical software engineering › collaborative software development
pull requests
0.112018
How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements · ESEC/SIGSOFT FSE 2018
Software testing
software testing evaluation
0.112016
Can testedness be effectively measured? · SIGSOFT FSE 2016

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

machine learning · 0.9bagging · 0.9random testing · 0.4lines-of-code heuristic · 0.4empirical study · 0.4
YearPublicationVenuePosition
2020 Planning for untangling: predicting the difficulty of merge conflicts
abstract
Merge conflicts are inevitable in collaborative software development and are disruptive. When they occur, developers have to stop their current work, understand the conflict and the surrounding code, and plan an appropriate resolution. However, not all conflicts are equally problematic---some can be easily fixed, while others might be complicated enough to need multiple people. Currently, there is not much support to help developers plan their conflict resolution. In this work, we aim to predict the difficulty of a merge conflict so as to help developers plan their conflict resolution. The ability to predict the difficulty of a merge conflict and to identify the underlying factors for its difficulty can help tool builders improve their conflict detection tools to prioritize and warn developers of difficult conflicts. In this work, we investigate the characteristics of difficult merge conflicts, and automatically classify them. We analyzed 6,380 conflicts across 128 java projects and found that merge conflict difficulty can be accurately predicted (AUC of 0.76) through machine learning algorithms, such as bagging.
Caius Brindescu, Iftekhar Ahmed 0001, Rafael Leano, Anita Sarma
ICSE1
2020 Lifting the Curtain on Merge Conflict Resolution: A Sensemaking Perspective
abstract
Merge conflicts are an inevitable, but painful part of collaborative software development. Merge conflict resolution is nontrivial because it requires gathering information from disparate sources (e.g., a codebase, diffs between versions, history of changes, documentation etc.) and then piecing together not only this information, but the rationale and context behind the conflicting changes. Current tools offer inadequate support to developers trying to understand the context and impact of the conflicting changes. They also offer little support in evaluating potential resolutions. To improve conflict resolution tools, we first need to understand the information needs of conflict resolution and its underlying sensemaking process. In this paper, through in-situ observations of 10 conflict resolutions, we qualitatively investigate how developers collect and sensemake different conflict-related information and how they reach a resolution. We identified eight behaviour patterns that developers use. These patterns have implications for tool builders and developers alike. We identify specific areas that need improved tool support. We also highlight the sensemaking traps practitioners may fall into.
Caius Brindescu, Yenifer Ramirez Gonzalez, Anita Sarma, Carlos Jensen
ICSME1
2020 An empirical investigation into merge conflicts and their effect on software quality
Caius Brindescu, Iftekhar Ahmed 0001, Carlos Jensen, Anita Sarma
Empir. Softw. Eng.1
2020 Using Relative Lines of Code to Guide Automated Test Generation for Python
abstract
Raw lines of code (LOC) is a metric that does not, at first glance, seem extremely useful for automated test generation. It is both highly language-dependent and not extremely meaningful, semantically, within a language: one coder can produce the same effect with many fewer lines than another. However, relative LOC , between components of the same project, turns out to be a highly useful metric for automated testing. In this article, we make use of a heuristic based on LOC counts for tested functions to dramatically improve the effectiveness of automated test generation. This approach is particularly valuable in languages where collecting code coverage data to guide testing has a very high overhead. We apply the heuristic to property-based Python testing using the TSTL (Template Scripting Testing Language) tool. In our experiments, the simple LOC heuristic can improve branch and statement coverage by large margins (often more than 20%, up to 40% or more) and improve fault detection by an even larger margin (usually more than 75% and up to 400% or more). The LOC heuristic is also easy to combine with other approaches and is comparable to, and possibly more effective than, two well-established approaches for guiding random testing.
Josie Holmes, Iftekhar Ahmed 0001, Caius Brindescu, Rahul Gopinath, He Zhang 0025, Alex Groce
ACM Trans. Softw. Eng. Methodol.3
2019 The life-cycle of merge conflicts: processes, barriers, and strategies
Nicholas Nelson 0002, Caius Brindescu, Shane McKee, Anita Sarma, Danny Dig
Empir. Softw. Eng.2
2018 How do developers resolve merge conflicts? an investigation into the processes, tools, and improvements
abstract
Most software development is done in teams. When more than one developer is modifying the source code, there is a change that their changes will conflict. When this happens, developers have to interrupt their workflow in order to resolve the merge conflict. This interruption can lead to frustration and lost productivity. This makes collaboration, and the problems associated with it, an important aspect of software development. Merge conflicts are some of the more difficult issues that arise when working in a team.
Caius Brindescu
ESEC/SIGSOFT FSE1
2017 An Empirical Examination of the Relationship between Code Smells and Merge Conflicts
abstract
Background: Merge conflicts are a common occurrence in software development. Researchers have shown the negative impact of conflicts on the resulting code quality and the development workflow. Thus far, no one has investigated the effect of bad design (code smells) on merge conflicts. Aims: We posit that entities that exhibit certain types of code smells are more likely to be involved in a merge conflict. We also postulate that code elements that are both "smelly" and involved in a merge conflict are associated with other undesirable effects (more likely to be buggy). Method: We mined 143 repositories from GitHub and recreated 6,979 merge conflicts to obtain metrics about code changes and conflicts. We categorized conflicts into semantic or non-semantic, based on whether changes affected the Abstract Syntax Tree. For each conflicting change, we calculate the number of code smells and the number of future bug-fixes associated with the affected lines of code. Results: We found that entities that are smelly are three times more likely to be involved in merge conflicts. Method-level code smells (Blob Operation and Internal Duplication) are highly correlated with semantic conflicts. We also found that code that is smelly and experiences merge conflicts is more likely to be buggy. Conclusion: Bad code design not only impacts maintainability, it also impacts the day to day operations of a project, such as merging contributions, and negatively impacts the quality of the resulting code. Our findings indicate that research is needed to identify better ways to support merge conflict resolution to minimize its effect on code quality.
Iftekhar Ahmed 0001, Caius Brindescu, Umme Ayda Mannan, Carlos Jensen, Anita Sarma
ESEM2
2016 Can testedness be effectively measured?
abstract
Among the major questions that a practicing tester faces are deciding where to focus additional testing effort, and deciding when to stop testing. Test the least-tested code, and stop when all code is well-tested, is a reasonable answer. Many measures of "testedness" have been proposed; unfortunately, we do not know whether these are truly effective. In this paper we propose a novel evaluation of two of the most important and widely-used measures of test suite quality. The first measure is statement coverage, the simplest and best-known code coverage measure. The second measure is mutation score, a supposedly more powerful, though expensive, measure.
Iftekhar Ahmed 0001, Rahul Gopinath, Caius Brindescu, Alex Groce, Carlos Jensen
SIGSOFT FSE3
2014 How do centralized and distributed version control systems impact software changes?
abstract
Distributed Version Control Systems (DVCS) have seen an increase in popularity relative to traditional Centralized Version Control Systems (CVCS). Yet we know little on whether developers are benefitting from the extra power of DVCS. Without such knowledge, researchers, developers, tool builders, and team managers are in the danger of making wrong assumptions.
Caius Brindescu, Mihai Codoban, Sergii Shmarkatiuk, Danny Dig
ICSE1