Programmierblog von Johannes Dienst

Software QS-Tag 2017

Posted by in Konferenz, Softwarequalität, Testverfahren

Der Software QS-Tag 2017 wird von der imbus AG organisiert und war wie schon letztes Jahr vollgepackt mit vielen interessanten Vorträgen. Neu war der Veranstaltungsort: Das Sheraton Hotel am Frankfurter Flughafen. Nachdem letztes Jahr praktisch Überfüllung angesagt war, war es diesmal nicht ganz so kuschlig, dafür aber mit umso mehr Teilnehmern. Gefallen hat mir die perfekte Organisation und die Betreuung als Sprecher! Auch die Speakers Corner war eine super Idee, die gerne beibehalten werden darf. Aufgrund der vielen Vorträge, die ich mir angehört habe, werde ich nur kurz auf die,…read more

0

Softwareentwicklung ist ein Kampf

Posted by in Allgemein, Rant, Softwarequalität

Hinweis: Dieser Post ist aus Frust entstanden und spiegelt meine subjektive Meinung wieder! Es gibt Tage und es gibt diese Tage. Und dann gibt es solche Tage wie heute. Eigentlich wollte ich etwas über eine weiteres kontrollflussorientiertes Testverfahren schreiben, aber wie eigentlich immer funktionierte die Installation eines Tools nicht! Das Entwicklerdilemma In den letzten Jahren saß ich wöchentlich mindestens 40 Stunden vor dem Rechner und sollte Arbeiten, Business value schaffen, wie man so schön sagt. Ich weiß nicht wie viele Stunden ich das tatsächlich getan habe. Ganz subjektiv war es…read more

0

Herbstcampus 2017: Erfahrungsbericht Tag 2

Posted by in Allgemein, Konferenz, Softwarequalität

Der Herbstcampus 2017 in Nürnberg ist für mich als gebürtigen Mittelfranken fast ein Heimspiel. Die Location ist bahnhofsnah und sehr einfach zu finden. Das Motto der Konferenz Wissenstransfer par excellence wurde tatsächlich gelebt und spiegelt sich vor allem in der Vortragslänge wieder. Ganze 70 Minuten hatte man als Vortragender Zeit sein Thema vorzustellen. Leider habe ich persönlich nur 60 Minuten geschafft. Ich hoffe aber, die vielen Fragen zufriedenstellend beantwortet zu haben. Auffallend war auch die Bandbreite an Themen, die im Angebot waren. Von reinen Entwicklerthemen wie dem Modulsystem von Java…read more

0

Code Coverage am Beispiel: Pfadüberdeckung (Path Coverage)

Posted by in Grundlagen, Java, Softwarequalität, Testverfahren

In den letzten beiden Blogposts ging es um die Überdeckungsmaße Zweigüberdeckung und Zeilenüberdeckung. Die Zweigüberdeckung ist ein stärkeres Maß für die Qualität der Abdeckung, da sie die Zeilenüberdeckung enthält. Sie ist also eine echte Obermenge. Die Pfadüberdeckung ist wiederum eine echte Obermenge der Zweigüberdeckung und ist damit als das härteste Maß der Überdeckungsmessung zu betrachten. In diesem Post wird zuerst wieder an einem Beispiel die Pfadüberdeckung vorgestellt. Ziel ist es, eine vollständige Pfadüberdeckung durch die vorhandene Testsuite zu erreichen. Auf los geht’s los 🙂 Pfadüberdeckung die Theorie: Vollständig Die Pfadüberdeckung…read more

0

Code Coverage am Beispiel: Zweigüberdeckungs (Branch Coverage)

Posted by in Grundlagen, Java, Softwarequalität, Testverfahren

Im letzten Blog ging es um Zeilenüberdeckung. Ich habe gezeigt, wie man sie am Beispiel des Game of Life von Conway einsetzt, um bessere Tests zu schreiben, die jede Anweisung mindestens einmal ausführen. In diesem Teil möchte ich zuerst zeigen, warum die Zeilenüberdeckung zwar eine sinnvolle Metrik ist, aber doch nicht ausreicht, um die Qualität der Testsuite abzusichern. Das lässt sich sehr leicht an einem Fehler zeigen, den die bisherigen Tests nicht gefunden haben. Als Zweites möchte ich auf die Zweigüberdeckung eingehen. Diese ist eine echte Obermenge der Zeilenüberdeckung und…read more

0

Code Coverage am Beispiel: Zeilenüberdeckung (Line Coverage)

Posted by in Grundlagen, Softwarequalität, Testverfahren

Wie letzte Woche angekündigt, werde ich diese Woche beginnen, die verschiedenen Überdeckungsmaße für Code vorzustellen. Als Beispielprojekt habe ich mir das Game of Life von Conway ausgesucht, was als interessante Übungsaufgabe Einiges an Logik hergibt. Eine einfache Zelle Die Regeln für Conways Game of Life sind sehr einfach: Eine tote Zelle wird in der nächsten Generation belebt, wenn sie genau drei lebende Nachbarzellen hat Eine lebende Zelle lebt in der nächsten Generation weiter, wenn sie genau drei oder weniger als drei lebende Nachbarzellen besitzt Eine lebende Zelle stirbt in der…read more

0

Das Ziel von Mutationstesten

Posted by in Softwarequalität, Testverfahren

Mit das Interessanteste an einem Vortrag sind die anschließenden Fragen. Beim letzten Mal hatte ich das Gefühl die Fragen zum Mutationstesten nicht zufriedenstellend beantwortet zu haben. Deswegen versuche ich das, in den nächsten Blogs nachzuholen. Die ersten beiden Fragen waren: Kann durch eine Mutation nicht etwas Gutes entstehen? Was passiert, wenn sich zwei Mutationen gegenseitig ausschalten? Gutes durch Mutationen? Mutationstesten führt Änderungen in den Sourcecode ein, die syntaktisch korrekt sind. Diese Änderungen verändern jedoch die Semantik der Codebasis auf jeweils kleine Weise. Danach wird für jede einzelne Mutante überprüft, ob…read more

0

Die Probleme mit DRY auf Modulebene

Posted by in clean code, Softwarequalität

Das DRY – Don’t Repeat Yourself – Prinzip haben die meisten Entwickler als wichtiges Prinzip verinnerlicht. Um das nüchtern festzustellen: Das Kopieren von Code an sich ist im ersten Moment schmerzlos und geht schnell. Der Entwickler muss sich keine Gedanken über eine sinnvolle Abstraktion oder den Ort des Codes machen, sondern kopiert ihn sich einfach an die benötigte Stelle. Problematisch ist das erst im Fehlerfall. Tritt ein Fehler in einem Codestück auf, das x-Mal dupliziert wurde, dann ist er in allen Duplikaten ebenfalls zu beheben. Meistens wird dann eines davon…read more

0

Java Forum Stuttgart 2017: Erfahrungsbericht

Posted by in Konferenz, Softwarequalität

Das Java Forum Stuttgart 2017 war für mich die letzte Konferenz für die nächsten zwei Monate. Bei hochsommerlichen Temperaturen gab es wie immer mehr Vorträge anzuhören, als man Slots besuchen konnte 🙂 . Das ist immer sehr erfreulich! Die Organisation war schon im Vorfeld sehr gut. Da ich diesmal einen Pecha Kucha Vortrag halten durfte, war die Vorbereitung auch nicht ganz so zeitintensiv. Oliver Böhm, unser Betreuer für diesen Slot, war sehr sorgfältig und versorgte uns mit allen Informationen. Ein herzliches Dankeschön dafür. Erster Vortrag: ReactiveX mit RxJava Jan Blankenhorn…read more

0

Mutationstesten: Abgrenzung zu anderen Testverfahren

Posted by in Softwarequalität, Testverfahren

Mutationstesten ist ein Verfahren, um Tests aussagekräftiger zu machen. Es ist quasi der Goldstandard unter den Testabdeckungsmetriken. Warum? Es prüft nicht nur, ob eine Zeile Code abgedeckt wurde, sondern auch, ob der/die dazugehörige(n) Test(s) tatsächlich Fehler in dieser Zeile finden können. Dazu werden kleine absichtlich kleine Fehler in den Code eingebaut (Mutationen), die von der Testsuite gefunden werden sollten. Wie das alles genau aussieht, werde ich demnächst beschreiben. Heute geht es mehr um die Platzierung von Mutationstesten im Vergleich zu anderen Testverfahren, wie zum Beispiel Unit-Tests. Was Mutationstests nicht sind…read more

0