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.

Kivanç Muslu

dblp:11/8730 · DBLP profile ↗
← Back
16ranked-venue papers
10as first author
1since 2021 · last 2022
—ORCID · none

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

Software engineering, systems software and programming languages · 16 · 10 first-author · 1 since 2021Databases, data management, data science and information retrieval · 1 · 1 since 2021

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
13 papers
Software testing · 37% Software maintenance and evolution · 20% Empirical software engineering · 19%
Databases, data mining, and information retrieval
2 papers
Data integration and cleaning · 100%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering
mining software repositories
0.722020
A study on the lifecycle of flaky tests · ICSE 2020
Development History Granularity Transformations (N) · ASE 2015
Software testing
flaky test
0.412020
A study on the lifecycle of flaky tests · ICSE 2020
Software testing
regression testing
0.412020
A study on the lifecycle of flaky tests · ICSE 2020
Software testing › test quality
test suite quality
0.212014
Empirically revisiting the test independence assumption · ISSTA 2014
Software maintenance and evolution › software configuration management
version control
0.212014
Transition from centralized to decentralized version control systems: a case study on reasons, barriers, and outcomes · ICSE 2014
Data integration and cleaning › data quality
data debugging
0.212013
Data debugging with continuous testing · ESEC/SIGSOFT FSE 2013
Program analysis › static analysis
incremental analysis
0.212013
Making offline analyses continuous · ESEC/SIGSOFT FSE 2013
Software maintenance and evolution
code recommendation
0.112012
Improving IDE recommendations by considering global implications of existing recommendations · ICSE 2012
Software maintenance and evolution › refactoring
identifier renaming
0.112012
Speculative analysis of integrated development environment recommendations · OOPSLA 2012
Software maintenance and evolution
refactoring
0.112012
Speculative analysis of integrated development environment recommendations · OOPSLA 2012
Debugging and program repair
fault localization
0.112011
Finding bugs by isolating unit tests · SIGSOFT FSE 2011
Programming languages and type systems › type checking
pluggable type checking
0.112011
Building and using pluggable type-checkers · ICSE 2011
Software testing › test maintenance
test isolation
0.112011
Finding bugs by isolating unit tests · SIGSOFT FSE 2011
Programming languages and type systems
type checking
0.112011
Building and using pluggable type-checkers · ICSE 2011
Software testing
unit testing
0.112011
Finding bugs by isolating unit tests · SIGSOFT FSE 2011
Empirical software engineering › developer studies
developer workflow
0.122015
Reducing Feedback Delay of Software Development Tools via Continuous Analysis · IEEE Trans. Software Eng. 2015
Making offline analyses continuous · ESEC/SIGSOFT FSE 2013
Program analysis
static analysis
0.122013
Integrating systematic exploration, analysis, and maintenance in software development · ICSE 2013
Building and using pluggable type-checkers · ICSE 2011
Data integration and cleaning
data quality
0.112015
Preventing data errors with continuous testing · ISSTA 2015
Software maintenance and evolution
software evolution
0.112015
Development History Granularity Transformations (N) · ASE 2015
Software testing › regression testing
test case prioritization
0.112014
Empirically revisiting the test independence assumption · ISSTA 2014
Software testing › automated testing
continuous testing
0.012013
Data debugging with continuous testing · ESEC/SIGSOFT FSE 2013
Debugging and program repair › automated program repair
compilation error repair
0.012012
Improving IDE recommendations by considering global implications of existing recommendations · ICSE 2012
Program analysis › error detection
compile-time error detection
0.012011
Building and using pluggable type-checkers · ICSE 2011

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

domain-specific test queries · 0.4continuous testing · 0.4test query execution · 0.3granularity transformation · 0.2codebase replication · 0.2empirical study · 0.2type system refinement · 0.1
YearPublicationVenuePosition
2022 Microsoft CloudMine: Data Mining for the Executive Order on Improving the Nation's Cybersecurity
Kim Herzig, Luke Ghostling, Maximilian Grothusmann, Sascha Just, Nora Huang, Alan Klimowski, Yashasvini Ramkumar, Myles McLeroy, Kivanç Muslu, Hitesh Sajnani, Varsha Vadaga
MSR9
2020 A study on the lifecycle of flaky tests
abstract
During regression testing, developers rely on the pass or fail outcomes of tests to check whether changes broke existing functionality. Thus, flaky tests, which nondeterministically pass or fail on the same code, are problematic because they provide misleading signals during regression testing. Although flaky tests are the focus of several existing studies, none of them study (1) the reoccurrence, runtimes, and time-before-fix of flaky tests, and (2) flaky tests in-depth on proprietary projects.
Wing Lam, Kivanç Muslu, Hitesh Sajnani, Suresh Thummalapenta
ICSE2
2015 Preventing data errors with continuous testing
abstract
Today, software systems that rely on data are ubiquitous, and ensuring the data's quality is an increasingly important challenge as data errors result in annual multi-billion dollar losses. While software debugging and testing have received heavy research attention, less effort has been devoted to data debugging: identifying system errors caused by well-formed but incorrect data. We present continuous data testing (CDT), a low-overhead, delay-free technique that quickly identifies likely data errors. CDT continuously executes domain-specific test queries; when a test fails, CDT unobtrusively warns the user or administrator. We implement CDT in the ConTest prototype for the PostgreSQL database management system. A feasibility user study with 96 humans shows that ConTest was extremely effective in a setting with a data entry application at guarding against data errors: With ConTest, users corrected 98.4% of their errors, as opposed to 40.2% without, even when we injected 40% false positives into ConTest's output. Further, when using ConTest, users corrected data entry errors 3.2 times faster than when using state-of-the-art methods.
Kivanç Muslu, Yuriy Brun, Alexandra Meliou
ISSTA1
2015 Development History Granularity Transformations (N)
abstract
Development histories can simplify some software engineering tasks, butdifferent tasks require different history granularities. For example, a history that includes every edit that resulted in compiling code is needed when searching for the cause of a regression, whereas a history that contains only changes relevant to a feature is needed for understanding the evolution of the feature. Unfortunately, today, both manual and automated history generation result in a single-granularity history. This paper introduces the concept of multi-grained development history views and the architecture of Codebase Manipulation, a tool that automatically records a fine-grained history and manages its granularity by applying granularity transformations.
Kivanç Muslu, Luke Swart, Yuriy Brun, Michael D. Ernst
ASE1
2015 Reducing Feedback Delay of Software Development Tools via Continuous Analysis
abstract
During software development, the sooner a developer learns how code changes affect program analysis results, the more helpful that analysis is. Manually invoking an analysis may interrupt the developer's workflow or cause a delay before the developer learns the implications of the change. A better approach is continuous analysis tools that always provide up-to-date results. We present Codebase Replication, a technique that eases the implementation of continuous analysis tools by converting an existing offline analysis into an IDE-integrated, continuous tool with two desirable properties: isolation and currency. Codebase Replication creates and keeps in sync a copy of the developer's codebase. The analysis runs on the copy codebase without disturbing the developer and without being disturbed by the developer's changes. We developed Solstice, an open-source, publicly-available Eclipse plug-in that implements Codebase Replication. Solstice has less than 2.5 milliseconds overhead for most common developer actions. We used Solstice to implement four Eclipse-integrated continuous analysis tools based on the offline versions of FindBugs, PMD, data race detection, and unit testing. Each conversion required on average 710 LoC and 20 hours of implementation effort. Case studies indicate that Solstice-based continuous analysis tools are intuitive and easy-to-use.
Kivanç Muslu, Yuriy Brun, Michael D. Ernst, David Notkin
IEEE Trans. Software Eng.1
2014 Transition from centralized to decentralized version control systems: a case study on reasons, barriers, and outcomes
abstract
In recent years, software development has started to transition from centralized version control systems (CVCSs) to decentralized version control systems (DVCSs). Although CVCSs and DVCSs have been studied extensively, there has been little research on the transition across these systems. This paper investigates the transition process, from the developer’s view, in a large company. The paper captures the transition reasons, barriers, and outcomes through 10 developer interviews, and investigates these findings through a survey, participated by 70 developers. The paper identifies that the majority of the developers need to work incrementally and offline, and manage multiple contexts efficiently. DVCSs fulfill these developer needs; however the transition comes with a cost depending on the previous development workflow. The paper discusses the transition reasons, barriers and outcomes, and provides recommendations for teams planning such a transition. The paper shows that lightweight branches, and local and incremental commits were the main reasons for developers wanting to move to a DVCS. Further, the paper identifies the main problems with the transition process as: steep DVCS learning curve; incomplete DVCS integration with the rest of the development workflow; and DVCS scaling issues.
Kivanç Muslu, Christian Bird, Nachiappan Nagappan, Jacek Czerwonka
ICSE1
2014 Empirically revisiting the test independence assumption
abstract
In a test suite, all the test cases should be independent: no test should affect any other test’s result, and running the tests in any order should produce the same test results. Techniques such as test prioritization generally assume that the tests in a suite are independent. Test dependence is a little-studied phenomenon. This paper presents five results related to test dependence.
Sai Zhang 0001, Darioush Jalali, Jochen Wuttke, Kivanç Muslu, Wing Lam, Michael D. Ernst, David Notkin
ISSTA4
2013 Integrating systematic exploration, analysis, and maintenance in software development
abstract
Modern integrated development environments (IDEs) support one live codebase at a given moment, which imposes limitations to software development. For example, with only one codebase, the developer must pause development while running tests, or a static analysis, as any edit could invalidate the ongoing computation. Were the IDEs supported a copy of developer's codebase, the analyses could have run on this copy, in parallel with the development process. In this paper, we propose techniques and tools that integrate multiple live codebases support to the software development process. Our hypothesis is that IDE support for multiple live codebases can provide a richer development process and aid developers.
Kivanç Muslu
ICSE1
2013 Making offline analyses continuous
abstract
Developers use analysis tools to help write, debug, and understand software systems under development. A developer's change to the system source code may affect analysis results. Typically, to learn those effects, the developer must explicitly initiate the analysis. This may interrupt the developer's workflow and/or the delay until the developer learns the implications of the change. The situation is even worse for impure analyses — ones that modify the code on which it runs — because such analyses block the developer from working on the code.
Kivanç Muslu, Yuriy Brun, Michael D. Ernst, David Notkin
ESEC/SIGSOFT FSE1
2013 Data debugging with continuous testing
abstract
Today, systems rely as heavily on data as on the software that manipulates those data. Errors in these systems are incredibly costly, annually resulting in multi-billion dollar losses, and, on multiple occasions, in death. While software debugging and testing have received heavy research attention, less effort has been devoted to data debugging: discovering system errors caused by well-formed but incorrect data. In this paper, we propose continuous data testing: using otherwise-idle CPU cycles to run test queries, in the background, as a user or database administrator modifies a database. This technique notifies the user or administrator about a data bug as quickly as possible after that bug is introduced, leading to at least three benefits: (1) The bug is discovered quickly and can be fixed before it is likely to cause a problem. (2) The bug is discovered while the relevant change is fresh in the user's or administrator's mind, increasing the chance that the underlying cause of the bug, as opposed to only the discovered side-effect, is fixed. (3) When poor documentation or company policies contribute to bugs, discovering the bug quickly is likely to identify these contributing factors, facilitating updating documentation and policies to prevent similar bugs in the future. We describe the problem space and potential benefits of continuous data testing, our vision for the technique, challenges we encountered, and our prototype implementation for PostgreSQL. The prototype's low overhead shows promise that continuous data testing can address the important problem of data debugging.
Kivanç Muslu, Yuriy Brun, Alexandra Meliou
ESEC/SIGSOFT FSE1
2012 Improving IDE recommendations by considering global implications of existing recommendations
abstract
Modern integrated development environments (IDEs) offer recommendations to aid development, such as auto-completions, refactorings, and fixes for compilation errors. Recommendations for each code location are typically computed independently of the other locations. We propose that an IDE should consider the whole codebase, not just the local context, before offering recommendations for a particular location. We demonstrate the potential benefits of our technique by presenting four concrete scenarios in which the Eclipse IDE fails to provide proper Quick Fixes at relevant locations, even though it offers those fixes at other locations. We describe a technique that can augment an existing IDE's recommendations to account for non-local information. For example, when some compilation errors depend on others, our technique helps the developer decide which errors to resolve first.
Kivanç Muslu, Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
ICSE1
2012 Speculative analysis of integrated development environment recommendations
abstract
Modern integrated development environments make recommendations and automate common tasks, such as refactorings, auto-completions, and error corrections. However, these tools present little or no information about the consequences of the recommended changes. For example, a rename refactoring may: modify the source code without changing program semantics; modify the source code and (incorrectly) change program semantics; modify the source code and (incorrectly) create compilation errors; show a name collision warning and require developer input; or show an error and not change the source code. Having to compute the consequences of a recommendation -- either mentally or by making source code changes -- puts an extra burden on the developers. This paper aims to reduce this burden with a technique that informs developers of the consequences of code transformations. Using Eclipse Quick Fix as a domain, we describe a plug-in, Quick Fix Scout, that computes the consequences of Quick Fix recommendations. In our experiments, developers completed compilation-error removal tasks 10% faster when using Quick Fix Scout than Quick Fix, although the sample size was not large enough to show statistical significance.
Kivanç Muslu, Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
OOPSLA1
2012 Location pairs: a test coverage metric for shared-memory concurrent programs
Serdar Tasiran, M. Erkan Keremoglu, Kivanç Muslu
Empir. Softw. Eng.3
2011 Building and using pluggable type-checkers
abstract
This paper describes practical experience building and using pluggable type-checkers. A pluggable type-checker refines (strengthens) the built-in type system of a programming language. This permits programmers to detect and prevent, at compile time, defects that would otherwise have been manifested as run-time errors. The prevented defects may be generally applicable to all programs, such as null pointer dereferences. Or, an application-specific pluggable type system may be designed for a single application.
Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Kivanç Muslu, Todd W. Schiller
ICSE4
2011 Finding bugs by isolating unit tests
abstract
Even in simple programs there are hidden assumptions and dependencies between units that are not immediately visible in each involved unit. These dependencies are generally hard to identify and locate, and can lead to subtle faults that are often missed, even by extensive test suites.
Kivanç Muslu, Bilge Soran, Jochen Wuttke
SIGSOFT FSE1
2010 Run-Time Verification of Optimistic Concurrency
Ali Sezgin, Serdar Tasiran, Kivanç Muslu, Shaz Qadeer
RV3