- Software Engineering Research
- Software Engineering Techniques and Practices
- Software Testing and Debugging Techniques
- Open Source Software Innovations
- Software System Performance and Reliability
- Software Reliability and Analysis Research
- Advanced Software Engineering Methodologies
- Service-Oriented Architecture and Web Services
- Advanced Malware Detection Techniques
- Innovative Approaches in Technology and Social Development
- Big Data and Business Intelligence
- Information Systems Theories and Implementation
- Peer-to-Peer Network Technologies
- Advanced Data Storage Technologies
- Design Education and Practice
- Spreadsheets and End-User Computing
- Caching and Content Delivery
- Data Visualization and Analytics
- Human-Automation Interaction and Safety
- Knowledge Management and Sharing
- Team Dynamics and Performance
- Visual and Cognitive Learning Processes
Microsoft Research (United Kingdom)
2017-2024
University of Zurich
2022-2024
Microsoft (United States)
2015-2018
Delft University of Technology
2009-2013
Institute for Interdisciplinary Studies of Austrian Universities
2008
Code review has been widely adopted by and adapted to open source industrial projects. practices have undergone extensive research, with most studies relying on trace data from tool reviews, sometimes augmented surveys interviews. Several recent research studies, along blog posts white papers, revealed additional insights code reviewing “from the trenches.” Unfortunately, lessons learned about are dispersed poorly summarized existing literature. In particular, practitioners wishing adopt or...
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 large amount of time effort performing reviews. Therefore, identifying factors lead to useful reviews can benefit by increasing effectiveness quality. In three-stage mixed study, we qualitatively investigated what aspects make them developers, used our findings build verify classification...
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 large amount of time effort performing reviews. Therefore, identifying factors lead to useful reviews can benefit by increasing effectiveness quality. In three-stage mixed study, we qualitatively investigated what aspects make them developers, used our findings build verify classification...
Testing is a key element of software development processes for the management and assessment product quality. In most environments, engineers are responsible ensuring functional correctness code. However, large complex products, there an additional need to check that changes do not negatively impact other parts they comply with system constraints such as backward compatibility, performance, security etc. Ensuring these may require verification infrastructure test procedures. Although tests...
Designing automated tests is a challenging task. One important concern how to design test fixtures, i.e. code that initializes and configures the system under so it in an appropriate state for running particular tests. Test designers may have choose between writing in-line fixture each or refactor can be reused other Deciding on which approach use balancing act, often trading off maintenance overhead with slow execution. Additionally, over time, quality erode smells develop, such as...
Testing is a key element of software development processes for the management and assessment product quality. In most environments, engineers are responsible ensuring functional correctness code. However, large complex products, there an additional need to check that changes do not negatively impact other parts they comply with system constraints such as backward compatibility, performance, security etc. Ensuring these may require verification infrastructure test procedures. Although tests...
Testing plug-in-based systems is challenging due to complex interactions among many different plug-ins, and variations in version configuration. The objective of this paper increase our understanding what testers developers think do when it comes testing systems. To that end, we conduct a qualitative (grounded theory) study, which interview 25 senior practitioners about how they test plug-in applications based on the Eclipse architecture. outcome an overview practices currently used, set...
Because of its many uses and benefits, code reviews are a standard part the modern software engineering workflow. Since they require involvement people, reviewing is often longest integration activities. Using experience gained at Microsoft with support data, we posit (1) that do not find functionality issues should block submission; (2) effective be performed by people specific set skills; (3) social aspect cannot ignored. We need to more sophisticated our guidelines for review show how...
An important challenge in creating automated tests is how to design test fixtures, i.e., the setup code that initializes system under before actual testing can start. Test designers have choose between different approaches for setup, trading off maintenance overhead with slow execution. Over time, quality erode and smells develop, such as occurrence of overly general obscure inline dead fields. In this paper, we investigate fixture-related evolve over time by analyzing several thousand...
Developer experience is an important concern for software organizations as enhancing developer improves productivity, satisfaction, engagement and retention. We set out to understand what affects through semi-structured interviews with 21 developers from industry, which we transcribed iteratively coded. Our findings elucidate factors that affect characteristics influence their respective importance individual developers. also identify strategies employed by individuals teams improve the...
In a traditional sense, ownership determines rights and duties in regard to an object, for example property. The owner of source code usually refers the person that invented code. However, larger artifacts, such as files, are composed by multiple engineers contributing entity over time through series changes. Frequently, with highest contribution, e.g. most number changes, is defined takes responsibility it. Thus, relates knowledge have about Lacking can reduce quality. earlier study, Bird...
Because of its many uses and benefits, code reviews are a standard part the modern software engineering workflow. Since they require involvement people, reviewing is often longest integration activities. Using experience gained at Microsoft with support data, we posit (1) that do not find functionality issues should block submission; (2) effective be performed by people specific set skills; (3) social aspect cannot ignored. We need to more sophisticated our guidelines for review show how...
Testing plug-in-based systems is challenging due to complex interactions among many different plug-ins, and variations in version configuration. The objective of this paper increase our understanding what testers developers think do when it comes testing systems. To that end, we conduct a qualitative (grounded theory) study, which interview 25 senior practitioners about how they test plug-in applications based on the Eclipse architecture. outcome an overview practices currently used, set...
In a traditional sense, ownership determines rights and duties in regard to an object, for example property. The owner of source code usually refers the person that invented code. However, larger artifacts, such as files, are composed by multiple engineers contributing entity over time through series changes. Frequently, with highest contribution, e.g. most number changes, is defined takes responsibility it. Thus, relates knowledge have about Lacking can reduce quality. earlier study, Bird...
Service-oriented architectures (SOAs) have found their ways into industry to enable better business-to-business cooperation. With the advent of SOA, new challenges for software development and testing also appeared. In this article, we motivate need SOA online show how it can reveal faults that slipped offline testing. The paper outlines a case study in which has been implemented as proof-of-concept, but evaluated terms its effectiveness identify typical runtime reconfiguration problems...
Developer experience focuses on the lived of developers and points friction they encounter in their everyday work. In addition to improving productivity, DevEx drives business performance through increased efficiency, product quality, employee retention. This paper provides a practical framework for understanding DevEx, presents measurement that combines feedback from with data about engineering systems interact with. These two frameworks provide leaders clear, actionable insights into what...
The developer-centric approach to measuring and improving productivity.
Modern Information and Communications Technology (ICT) solutions are often widely distributed highly dynamic service oriented architectures (SOA) with stringent availability requirements. Availability implies that SOA must be reconfigured, updated maintained during runtime, while retaining their overall operational integrity. This requires much of the adaptation, integration, configuration testing activities typically performed offline, development time, now have to done online, runtime....
Delivering a new set of capabilities for managing and improving Microsoft’s code-review process was the primary goal right from start. In course accomplishing that, much also learned about certain general principles. fact, subsequent research has offered surprising evidence just how similar impact can be when many these principles are followed at companies other than Microsoft.
Plug-in architectures enable developers to build extensible software products. Such products are assembled from plug-ins, and their functionality can be enriched by adding or configuring plug-ins. The plug-ins themselves consist also of multiple offer dedicated points through which influenced. A well-known example such an architecture is Eclipse, best known for its use create a series IDEs. In order test systems built extensive automated suites. Unfortunately, current testing tools little...
The two main topics of this dissertation are plug-in-based systems and test suite comprehension. In particular, challenges during testing revealed, reverse engineering based techniques to support developers comprehension presented.