Blog

Thoughts, tech notes, in-depth articles and walkthroughs.

July 01, 2017 2 mins read

A Critical Evaluation of Spectrum-Based Fault Localization Techniques on a Large-Scale Software System

This paper is published in Software Quality, Reliability and Security (QRS) 2017. It is a paper on the topic of my bachelor’s thesis.

Abstract

In the past, spectrum-based fault localization (SBFL) techniques have been developed to pinpoint a fault location in a program given a set of failing and successful test executions. Most of the algorithms use similarity coefficients and have only been evaluated on established but small benchmark programs from the Software-artifact Infrastructure Repository (SIR). In this paper, we evaluate the feasibility of applying 33 state-of-the-art SBFL techniques to a large real-world project, namely ASPECTJ. From an initial set of 350 faulty version from the iBugs repository of ASPECTJ we manually classified 88 bugs where SBFL techniques are suitable. Notably, only 11 bugs of these bugs can be found after examining the 1000 most suspicious lines and on average 250 source code files need to be inspected per bug. Based on these results, the study showcases the limitations of current SBFL techniques on a larger program.

Read more
June 26, 2017 6 mins read
Architecture

Documenting Architecture Decisions

Take a moment and think of a big architectural decision you made in your last project. That one point were you started just with the problem description and had to choose either to go one way to solve it or the other. That was a tough decision to make, right?

Now, can you know show me based on what facts, criteria and opinions that decision was made? Who was actually involved in making that decision? From a retrospective point of view, wouldn’t it now be really helpful to go through that decision again and see how it turned out in the end? Did the architects anticipate the pain points experienced later on in the project? Were they unforeseeable based on the knowledge present at the decision point? How could those decisions be improved in the future?

Read more
May 31, 2017 3 mins read
Cloud

Logging Extra Headers with Cloud Foundry

A Cloud Foundry deployment can be configured to log extra HTTP headers on every request to enrich the log messages produced by the gorouters. This is highly useful to add trace headers to all requests going through the Cloud Foundry deployment. As of writing this, there is a configuration option for this feature available in the OpsManager API, but not in the OpsManager UI itself. So to configure the extra headers to log with Cloud Foundry, we’ll need to hop on a shell.

Read more
April 08, 2017 1 mins read
Engineering

Fix Git Line Feeds on Windows Forever

In my day-to-day workflow, I frequently use a cygwin shell on Windows, namely Babun. As you might imagine, shell scripts with Windows line endings \r\n are simply no good at all:

$ ./script.sh
bash: ./script.sh: /bin/sh^M: bad interpreter: No such file or directory

$ ./script.sh
./script.sh: line 2: $'\r': command not found

This blog post is a note to my future self to not read through the thousands of answers available on StackOverflow again. Let’s get rid of those \r\n things.

Read more