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

Michaela Greiler

dblp:94/886 · DBLP profile ↗
← Back
12ranked-venue papers
6as first author
1since 2021 · last 2023
0000-0002-2636-0560ORCID · corroborated

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

Software engineering, systems software and programming languages · 11 · 6 first-author · 1 since 2021Databases, data management, data science and information retrieval · 4 · 2 first-authorComputer networks · 1

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
Empirical software engineering · 78% Software testing · 12% Software maintenance and evolution · 11%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering › developer studies
developer experience
0.712023
An Actionable Framework for Understanding and Improving Developer Experience · IEEE Trans. Software Eng. 2023
Empirical software engineering › developer studies › developer behavior
developer productivity
0.712023
An Actionable Framework for Understanding and Improving Developer Experience · IEEE Trans. Software Eng. 2023
Empirical software engineering
developer studies
0.432023
An Actionable Framework for Understanding and Improving Developer Experience · IEEE Trans. Software Eng. 2023
Test confessions: A study of testing practices for plug-in systems · ICSE 2012
Code Reviews Do Not Find Bugs. How the Current Code Review Best Practice Slows Us Down · ICSE (2) 2015
Software maintenance and evolution
code review
0.212015
Code Reviews Do Not Find Bugs. How the Current Code Review Best Practice Slows Us Down · ICSE (2) 2015
Software testing › regression testing
test selection
0.212015
The Art of Testing Less without Sacrificing Quality · ICSE (1) 2015
Empirical software engineering › qualitative research
interview study
0.212023
An Actionable Framework for Understanding and Improving Developer Experience · IEEE Trans. Software Eng. 2023
Software testing
regression testing
0.112015
The Art of Testing Less without Sacrificing Quality · ICSE (1) 2015
Software maintenance and evolution
software ecosystems
0.012012
Test confessions: A study of testing practices for plug-in systems · ICSE 2012

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

semi-structured interviews · 0.7iterative coding · 0.7experience report · 0.2empirical study · 0.2cost model · 0.2survey · 0.1grounded theory · 0.1
YearPublicationVenuePosition
2023 An Actionable Framework for Understanding and Improving Developer Experience
abstract
Developer experience is an important concern for software organizations as enhancing developer experience improves productivity, satisfaction, engagement and retention. We set out to understand what affects developer experience through semi-structured interviews with 21 developers from industry, which we transcribed and iteratively coded. Our findings elucidate factors that affect developer experience and characteristics that influence their respective importance to individual developers. We also identify strategies employed by individuals and teams to improve developer experience and the barriers that stand in their way. Lastly, we describe the coping mechanisms of developers when developer experience cannot be sufficiently improved. Our findings result in the DX Framework, an actionable conceptual framework for understanding and improving developer experience. The DX Framework provides a go-to reference for organizations that want to enable more productive and effective work environments for their developers.
Michaela Greiler, Margaret-Anne D. Storey, Abi Noda
IEEE Trans. Software Eng.1
2018 Introduction to the special issue on source code analysis and manipulation
Gabriele Bavota, Michaela Greiler
Empir. Softw. Eng.2
2015 Code Reviews Do Not Find Bugs. How the Current Code Review Best Practice Slows Us Down
abstract
Because of its many uses and benefits, code reviews are a standard part of the modern software engineering workflow. Since they require involvement of people, code reviewing is often the longest part of the code integration activities. Using experience gained at Microsoft and with support of data, we posit (1) that code reviews often do not find functionality issues that should block a code submission; (2) that effective code reviews should be performed by people with specific set of skills; and (3) that the social aspect of code reviews cannot be ignored. We find that we need to be more sophisticated with our guidelines for the code review workflow. We show how our findings from code reviewing practice influence our code review tools at Microsoft. Finally, we assert that, due to its costs, code reviewing practice is a topic deserving to be better understood, systematized and applied to software engineering workflow with more precision than the best practice currently prescribes.
Jacek Czerwonka, Michaela Greiler, Jack Tilford
ICSE (2)2
2015 The Art of Testing Less without Sacrificing Quality
abstract
Testing is a key element of software development processes for the management and assessment of product quality. In most development environments, the software engineers are responsible for ensuring the functional correctness of code. However, for large complex software products, there is an additional need to check that changes do not negatively impact other parts of the software and they comply with system constraints such as backward compatibility, performance, security etc. Ensuring these system constraints may require complex verification infrastructure and test procedures. Although such tests are time consuming and expensive and rarely find defects they act as an insurance process to ensure the software is compliant. However, long lasting tests increasingly conflict with strategic aims to shorten release cycles. To decrease production costs and to improve development agility, we created a generic test selection strategy called THEO that accelerates test processes without sacrificing product quality. THEO is based on a cost model, which dynamically skips tests when the expected cost of running the test exceeds the expected cost of removing it. We replayed past development periods of three major Microsoft products resulting in a reduction of 50% of test executions, saving millions of dollars per year, while maintaining product quality.
Kim Herzig, Michaela Greiler, Jacek Czerwonka, Brendan Murphy
ICSE (1)2
2015 Lessons Learned from Building and Deploying a Code Review Analytics Platform
abstract
Tool-based code review is growing in popularity and has become a standard part of the development process at Mi-crosoft. Adoption of these tools makes it possible to mine data from code reviews and provide access to it. In this paper, we pre-sent an experience report for CodeFlow Analytics, a system that collects code review data, generates metrics from this data, and provides a number of ways for development teams to access the metrics and data. We discuss the design, design decisions and chal-lenges that we encountered when building CodeFlow Analytics. We contacted teams that used CodeFlow Analytics over the past two years and discuss what prompted them to use CodeFlow Ana-lytics, how they have used it, and what the impact has been. Fur-ther, we survey research that has been enabled by using the Code-Flow Analytics platform. We provide a series of lessons learned from this experience to help others embarking on a task of building an analytics platform in an enterprise setting.
Christian Bird, Trevor Carnahan, Michaela Greiler
MSR3
2015 Characteristics of Useful Code Reviews: An Empirical Study at Microsoft
abstract
Over the past decade, both open source and commercial software projects have adopted contemporary peer code review practices as a quality control mechanism. Prior research has shown that developers spend a large amount of time and effort performing code reviews. Therefore, identifying factors that lead to useful code reviews can benefit projects by increasing code review effectiveness and quality. In a three-stage mixed research study, we qualitatively investigated what aspects of code reviews make them useful to developers, used our findings to build and verify a classification model that can distinguish between useful and not useful code review feedback, and finally we used this classifier to classify review comments enabling us to empirically investigate factors that lead to more effective code review feedback. In total, we analyzed 1.5 millions review comments from five Microsoft projects and uncovered many factors that affect the usefulness of review feedback. For example, we found that the proportion of useful comments made by a reviewer increases dramatically in the first year that he or she is at Microsoft but tends to plateau afterwards. In contrast, we found that the more files that are in a change, the lower the proportion of comments in the code review that will be of value to the author of the change. Based on our findings, we provide recommendations for practitioners to improve effectiveness of code reviews.
Amiangshu Bosu, Michaela Greiler, Christian Bird
MSR2
2015 Code Ownership and Software Quality: A Replication Study
abstract
In a traditional sense, ownership determines rights and duties in regard to an object, for example a property. The owner of source code usually refers to the person that invented the code. However, larger code artifacts, such as files, are usually composed by multiple engineers contributing to the entity over time through a series of changes. Frequently, the person with the highest contribution, e.g. The most number of code changes, is defined as the code owner and takes responsibility for it. Thus, code ownership relates to the knowledge engineers have about code. Lacking responsibility and knowledge about code can reduce code quality. In an earlier study, Bird et al. [1] showed that Windows binaries that lacked clear code ownership were more likely to be defect prone. However recommendations for large artifacts such as binaries are usually not actionable. E.g. Changing the concept of binaries and refactoring them to ensure strong ownership would violate system architecture principles. A recent replication study by Foucault et al. [2] on open source software replicate the original results and lead to doubts about the general concept of ownership impacting code quality. In this paper, we replicated and extended the previous two ownership studies [1, 2] and reflect on their findings. Further, we define several new ownership metrics to investigate the dependency between ownership and code quality on file and directory level for 4 major Microsoft products. The results confirm the original findings by Bird et al. [1] that code ownership correlates with code quality. Using new and refined code ownership metrics we were able to classify source files that contained at least one bug with a median precision of 0.74 and a median recall of 0.38. On directory level, we achieve a precision of 0.76 and a recall of 0.60.
Michaela Greiler, Kim Herzig, Jacek Czerwonka
MSR1
2013 Automated Detection of Test Fixture Strategies and Smells
abstract
Designing automated tests is a challenging task. One important concern is how to design test fixtures, i.e. code that initializes and configures the system under test so that it is in an appropriate state for running particular automated tests. Test designers may have to choose between writing in-line fixture code for each test or refactor fixture code so that it can be reused for other tests. Deciding on which approach to use is a balancing act, often trading off maintenance overhead with slow test execution. Additionally, over time, test code quality can erode and test smells can develop, such as the occurrence of overly general fixtures, obscure in-line code and dead fields. In this paper, we show that test smells related to fixture set-up occur in industrial projects. We present a static analysis technique to identify fixture related test smells. We implemented this test analysis technique in a tool, called TestHound, which provides reports on test smells and recommendations for refactoring the smelly test code. We evaluate the tool through three industrial case studies and show that developers find that the tool helps them to understand, reflect on and adjust test code.
Michaela Greiler, Arie van Deursen, Margaret-Anne D. Storey
ICST1
2013 Strategies for avoiding text fixture smells during software evolution
abstract
An important challenge in creating automated tests is how to design test fixtures, i.e., the setup code that initializes the system under test before actual automated testing can start. Test designers have to choose between different approaches for the setup, trading off maintenance overhead with slow test execution. Over time, test code quality can erode and test smells can develop, such as the occurrence of overly general fixtures, obscure inline code and dead fields. In this paper, we investigate how fixture-related test smells evolve over time by analyzing several thousand revisions of five open source systems. Our findings indicate that setup management strategies strongly influence the types of test fixture smells that emerge in code, and that several types of fixture smells often emerge at the same time. Based on this information, we recommend important guidelines for setup strategies, and suggest how tool support can be improved to help in both avoiding the emergence of such smells as well as how to refactor code when test smells do appear.
Michaela Greiler, Andy Zaidman, Arie van Deursen, Margaret-Anne D. Storey
MSR1
2013 What your plug-in test suites really test: an integration perspective on test suite understanding
Michaela Greiler, Arie van Deursen
Empir. Softw. Eng.1
2012 Test confessions: A study of testing practices for plug-in systems
abstract
Testing plug-in-based systems is challenging due to complex interactions among many different plug-ins, and variations in version and configuration. The objective of this paper is to increase our understanding of what testers and developers think and do when it comes to testing plug-in-based systems. To that end, we conduct a qualitative (grounded theory) study, in which we interview 25 senior practitioners about how they test plug-in applications based on the Eclipse plug-in architecture. The outcome is an overview of the testing practices currently used, a set of identified barriers limiting test adoption, and an explanation of how limited testing is compensated by self-hosting of projects and by involving the community. These results are supported by a structured survey of more than 150 professionals. The study reveals that unit testing plays a key role, whereas plug-in specific integration problems are identified and resolved by the community. Based on our findings, we propose a series of recommendations and areas for future research.
Michaela Greiler, Arie van Deursen, Margaret-Anne D. Storey
ICSE1
2009 Quantum Coin-Flipping-Based Authentication
abstract
Quantum cryptographic key distribution (QKD) is a promising candidate for achieving unconditional security, making the renowned one-time pad encryption technically feasible for building computer networks. However, although well-developed theoretical foundations perfectly ensure protection against eavesdropping, no natural mechanism is yet able to successfully repel an adversary sitting between Alice and Bob, performing QKD with both and re-encrypting each message after heaving read it in plain text. Authentication is hence of crucial importance, and normally applied to all messages that are related to the public discussion part of the QKD protocol. We present an analysis of a scenario, in which authentication is postponed until the end of the QKD protocol. This yields to reduced computational effort, as well as simple and tight bounds on the amount of pre-shared key material. Our solution relies on a combination of quantum key distribution and quantum coin-flipping, which ensures non- controllability of the QKD key. Based on this assumption, we can apply a standard fingerprint comparison for authentication, to guard the protocol against a person-in-the-middle attack.
Stefan Rass, Peter Schartner, Michaela Greiler
ICC3