Programmierblog von Johannes Dienst

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

Präsentationen: Best Practices

Posted by in Konferenz, Vortrag

Manchen Sprechern hört man einfach gerne zu und bei anderen möchte man trotz eines interessanten Themas einfach nur den Raum verlassen. Viele Dinge beim Vortragen kommen mit der Zeit. Darunter fällt für mich die nötige Gelassenheit, eine klarere Ausdrucksweise und ein gewisser Witz. Diese Dinge können aus meiner Erfahrung die wenigstens Sprecher, die noch nicht lange vor Publikum sprechen. Das sieht man eher bei erfahrenen Sprechern mit mehreren Jahren Erfahrung. In den letzten beiden Jahren war ich auf vielen Konferenzen und habe sehr viele gute Vorträge angehört. Mit der Zeit…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

Block Element Modifier (BEM)

Posted by in Grundlagen

Wenn man CSS/Sass/Less anfängt zu schreiben, dann nimmt man sich normalerweise vor, alles schön sauber zu halten. Das ist zu Anfang sehr einfach, aber ab einer gewissen Größe verliert sich ganz einfach die Struktur. Dann ist ein erster Schritt, die Dateien in logisch gekapselte Unterdateien zu zerlegen. Für mich hat das sehr gut funktioniert. Ein Problem, das sich aber immer wieder in anderen Ausprägungen präsentiert ist der Umgang mit der Namensgebung. Benamung von Dingen ist in meinen Augen eines der zentralen Probleme eines Coders. Speziell im Team wird das eine…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