Category Archives: Research

“Using (Bio)Metrics to Predict Code Quality” is currently one of the most downloaded articles in software engineering

We are happy to announce that our paper “Using (Bio)Metrics to Predict Code Quality Online”, written by Sebastian Müller and Thomas Fritz, was one of the most downloaded software engineering articles in June and July 2016. With 1709 downloads in 6 weeks, it scored the second place of all ACM software engineering articles. According to ACM, this is the first time that any paper was downloaded more than 1000 times.

screen-shot-2016-10-05-at-14-18-11

Image source: ACM SIGSOFT Software Engineering Notes. Volume 41 Number 4.

The paper investigates the use of biometrics, such as heart rate variability (HRV) or electro-dermal activity (EDA) to determine the difficulty that developers experience while working on real world change tasks and automatically identify code quality concerns while a developer is making a change to the code. It can be accessed here.

Journal of Systems and Software: Eye Gaze and Interaction Contexts for Change Tasks – Observations and Potential

The more we know about software developers’ detailed navigation behavior for change
tasks, the better we are able to provide effective tool support. In this article, we extend our work on the fine-granular navigation behavior of developers (see blogpost) and explore the potential of the more detailed and fine-granular data by examining the use of the captured change task context to predict perceived task difficulty and to provide better and more fine-grained navigation recommendations.

 

Check out our Journal article!

seal @ ICSE 2016

We are very happy to announce that our research group got two papers and a technical briefing accepted at ICSE 2016 in Austin, Texas.

The first accepted paper entitled “The Impact of Test Case Summaries on Bug Fixing Performance: An Empirical Investigation” was written in collaboration with the University of Delft. The authors of the paper are : Sebastiano Panichella, Annibale Panichella, Moritz Beller, Andy Zaidman and Harald Gall.

Abstract: “Automated test generation tools have been widely investigated with the goal of reducing the cost of testing activities. However, generated tests have been shown not to help developers in detecting and finding more bugs even though they reach higher structural coverage compared to manual testing. The main reason is that generated tests are difficult to understand and maintain.

Test Case Summarizer

Our paper proposes an approach which automatically generates test case summaries of the portion of code exercised by each individual test, thereby improving understandability. We argue that this approach can complement the current techniques around automated unit test generation or search-based techniques designed to generate a possibly minimal set of test cases. In evaluating our approach we found that (1) developers find twice as many bugs, and (2) test case summaries significantly improve the comprehensibility of test cases, which is considered particularly useful by developers.”

A preprint of the paper can be found online.

The second paper is entitled “Using (Bio)Metrics to Predict Code Quality Online” and was written by Sebastian Müller and Thomas Fritz. The paper investigates the use of biometrics, such as heart rate variability (HRV) or electro-dermal activity (EDA) to determine the difficulty that developers experience while working on real world change tasks and automatically identify code quality concerns while a developer is making a change to the code.

overview

A preprint of the paper will be available soon.

Additionally, we had a technical briefing on “Using Docker Containers to Improve Reproducibility in Software Engineering Research”, by Jürgen Cito and Harald Gall, accepted, where we will present opportunities to aid reproducibility to the SE community.

Survey on “Microservices: Hype and Reality”

Software Architectures revolving around services have seen a renaissance with the hype of microservices being the hot topic of many developer conferences and online discourse alike.

We invite you to participate in our survey about your experience with service architectures. Your answers will help us shed a light on how service architectures are implemented in industrial practice and provide future directions for research through the challenges we observe.

The following survey should take  7-8 minutes of your time.
This is the link to the survey: http://bit.ly/services_survey

We will keep your survey responses anonymous. We will NOT attribute answers to any particular participant.

We would greatly appreciate your participation! Thank you!

Please feel free to contact Jürgen Cito or Gerald Schermann at {cito, schermann}@ifi.uzh.ch if you have any further questions.

Preprint: “Interruptibility of Software Developers and its Prediction Using Psycho-Physiological Sensors”

We are excited that our paper “Interruptibility of Software Developers and its Prediction Using Psycho-Physiological Sensors” by Manuela Züger and Thomas Fritz was accepted for CHI 2015 and like to share a preprint with you.

Interruptions of knowledge workers are common and can cause a high cost if they happen at inopportune moments. Our paper presents a lab and a field study with a total of 20 software developers, where we examined the use of psycho-physiological sensors to measure interruptibility of a knowledge worker in a real-world context.

The results show that a Naïve Bayes classifier can be used to automatically assess states of a knowledge worker’s interruptibility with high accuracy in the lab as well as in the field. This demonstrates the potential of psycho-physiological sensors to avoid expensive interruptions. For instance, such a classifier could be used to automatically turn of notifications while a knowledge worker’s interruptibility is low.

The preprint of the paper can be downloaded here.

Paper accepted for ICPC ’15

We are excited to announce that out paper “Discovering Loners and Phantoms in Commit and Issue Data” has been accepted for the 23rd IEEE International Conference on Program Comprehension (ICPC 2015) in Florence, Italy.

The interlinking of commit and issue data has become a de-facto standard in software development. Modern issue tracking systems, such as JIRA, automatically interlink commits and issues by the extraction of identifiers (e.g., issue key) from commit messages. However, the conventions for the use of interlinking methodologies vary between software projects. For example, some projects enforce the use of identifiers for every commit while others have less restrictive conventions. In this work, we introduce a model called PaLiMod (Partial Linking Model) to enable the analysis of interlinking characteristics in commit and issue data. We surveyed 15 Apache projects to investigate differences and commonalities between linked and non-linked commits and issues (RQ1). Based on the gathered information, we created a set of heuristics to interlink the residual of non-linked commits and issues (RQ2).

overview

We observed that in the majority of the analyzed projects, the number of commits linked to issues is higher than the number of commits without link. On average, 74% of commits are linked to issues and 50% of the issues have associated commits. Based on the survey data, we identified two interlinking characteristics which we call Loners (one commit, one issue) and Phantoms (multiple commits, one issue). For these two characteristics, we proposed heuristics to automatically interlink non-linked commit and issue data. The evaluation results showed that our approach can achieve an overall precision of 96% with a recall of 92% in case of the Loner heuristic and an overall precision of 73% with a recall of 53% in case of the Phantom heuristic.

The results of our evaluation indicate that the proposed PaLiMod model and heuristics enable an automatic interlinking and can indeed reduce the residual of non-linked commits and issues in software projects.

Preprint: “Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and Progress”

Our paper “Stuck and Frustrated or In Flow and Happy: Sensing Developers’ Emotions and Progress” by Sebastian Müller and Thomas Fritz was accepted for ICSE 2015 and a preprint of the paper is now available.

The paper presents a study that investigates developers’ emotions and progress while working on a change task and how biometric measurements, such as heart rate or pupil sizes, can be used to assess them. In the study with 17 participants working on two change tasks each, the participants were wearing three biometric sensors and had to periodically assess their emotions and progress.

The results show that the wide range of emotions experienced by developers is correlated with their perceived progress on the change tasks. To investigate whether we can use biometric sensors to distinguish between positive and negative emotions as well as episodes of low and high progress that developers experience during change tasks, we applied a machine learning approach to the collected data.

Over the course of the participants’ work on both change tasks we collected biometric data for a total of 213 intervals. The following figure illustrates a set of four such intervals together with the collected EDA and the heart rate signal as well as the participant’s emotion and progress ratings. Especially for the EDA signal, the example shows a visible difference between the first episode with medium progress and higher valence compared to the last episode with the developer being stuck and a lower valence.

biometrics

Our analysis shows that we can build a classifier to distinguish between positive and negative emotions in 71.36% and between low and high progress in 67.70% of all cases. These results open up opportunities for improving a developer’s productivity. For instance, one could use such a classifier for providing recommendations at opportune moments when a developer is stuck and making no progress.

The preprint of the paper can be downloaded here.

Paper accepted for ICSE’15 NIER

We are excited to announce that our paper Rapid Multi-Purpose, Multi-Commit Code Analysis was accepted for the New Ideas and Emerging Results (NIER) track of the 37th International Conference on Software Engineering (ICSE) in Florence.

Existing code- and software evolution studies typically operate on the scale of a few revisions of a small number of projects, mostly because existing tools are unsuited for performing large-scale studies. We present a novel approach, which can be used to analyze an arbitrary number of revisions of a software project simultaneously and which can be adapted for the analysis of mixed-language projects. It lays the foundation for building high-performance code analyzers for a variety of scenarios. We show that for one particular scenario, namely code metric computation, our prototype outperforms existing tools by multiple orders of magnitude when analyzing thousands of revisions.

You can find a preprint of this paper online.