Willkommen

... auf meinem privaten Blog.

Zu den Beiträgen

Verbesserung der Software durch bessere Testfälle

Erstmal klingt es recht leicht gute Software zu schreiben. Der Source Code lässt sich kompilieren und die Anwendung startet. Jedoch reicht dies i.d.R. nicht aus, um sicherzustellen, das die Software fehlerfrei ist. Viele der Anforderungen verstecken sich in unzähligen Code Zeilen und oft komplexen Verschachtelungen. Da ist es selbst für erfahrende Entwickler schwierig der Überblick zu behalten.

Daher empfiehlt sich die (fachlichen) Testfälle zusammen mit den Anforderen zu erstellen und festzulegen. Jedoch wie sollen nun die Testfälle aufgeschrieben werden – als Programmcode kann der Mitarbeiter aus der Fachabteilung nicht viel mitsprechen und wird der Testfall als Prosatext aufgeschrieben, so kann der Entwickler ihn oft nicht automatisieren. Daher habe ich mir mal verschiedene Tools angesehen, mit denen man Testfälle nachhaltig erfassen kann und die Qualität der Software zu verbessern. Hier eine kleine Zusammenfassung der Erkenntnisse.

Handling von Datenbank-Updates

Logo von Liquibase

Die Verwaltung von Datenbank-Updates ist heute ein elementar Punkt innerhalb der Software-Entwicklung. In den vergangenen Jahren sind dazu eine Vielzahl von Frameworks entstanden. Wie baut man aber diese Frameworks nun richtig und flexibel in sein Projekt ein?

In diesem Artikel möchte ich kurz eine Möglichkeit beschreiben, wie man mit Liquibase (http://www.liquibase.org) und HSQLDB (http://hsqldb.org) ein einfaches Projektsetup aufsetzen kann, das automatisch Datenbank-Updates anwendet. HSQLDB dient dabei als „lokale“ Entwicklungsdatenbank, die später dann durch ein vollständiges DBMS ersetzt werden kann.

Die Idee hinter diesem Vorgehen ist jetzt einfach:

  • Jeder Entwickler soll seine eigene Datenbank zum Testen haben.
  • Die (Unit-)Testfälle sollen auf einem definierten und reproduzierbaren Datenbestand ausgeführt werden.
  • Die Datenbank-Updates sollen an einen zentralen und versionierten Ort gespeichert werden und jeder Entwickler kann diese erweitern.
  • Sie sollen automatisch bei den Entwicklern ausgeführt werden.
  • Angewendete Updates sollen nicht erneut ausgeführt werden.

Neue Bibliothek MarkDown

Wie dokumentiert man sein Projekt möglichst einfach. Eine einfache Art bietet hier die Sprache MarkDown.

Markdown ist eine vereinfachte Auszeichnungssprache, die von John Gruber und Aaron Swartz entworfen wurde. Ein Ziel von Markdown ist, dass schon die Ausgangsform ohne weitere Konvertierung leicht lesbar ist. Als Auszeichnungselemente wurden daher vor allem Auszeichnungsarten verwendet, die in Plaintext und E-Mails üblich sind.
Quelle: http://de.wikipedia.org/wiki/Markdown

Damit die Dokumentation versioniert und passend zum restlichen Quellcode abgelegt werden kann, sollte sie ebenfalls im Versionsverwaltungssystem eingecheckt werden. Da die MarkDown-Dateien auf Text basieren, sind sogar parallele Änderungen möglich.

Die Entstehung und der Wandel von Webtechnologien und Browsern

Webtechnologien in der Geschichte des Internets (Quelle: http://www.evolutionoftheweb.com)

Webtechnologien in der Geschichte des Internets (Quelle: http://www.evolutionoftheweb.com)

Beim Stöbern im Netz ist mir eine sehr interessante Grafik aufgefallen.

Diese interaktive Grafik zeigt die Evolution des Webs seit 1990. Ebenso wird darstellt, wie sich die Optik der Browser, die Internetnutzung und Webtechnologien verändert haben.

Die vollständige Grafik findet man unter http://www.evolutionoftheweb.com

DataBinding und Validierung mittels Eclipse RCP

Eclipse Logo

Logo von Eclipse, Quelle: https://wiki.eclipse.org

In Eclipse RCP gibt für die Bindung zwischen Model und UI ein Framework für das DataBinding. Das DataBinding Framework verbindet Eigenschaften/Properteries von Objekten. Es wird typischerweise verwendet, um Eigenschaften der Benutzeroberfläche mit Eigenschaften anderer Java-Objekte zu synchronisieren. Diese Java-Objekte repräsentieren in der Regel das Datenmodell oder Domänenmodell.

Somit synchronisiert dieses DataBinding Frameworks Veränderungen dieser Eigenschaften/Properteries zwischen UI und Modell. Es unterstützt auch eine Validierung und Umwandlung bei der Synchronisation.

Erstellen einer kleinen Demo-Anwendung für Eclipse RCP

Eclipse Logo

Logo von Eclipse, Quelle: https://wiki.eclipse.org

Um die Fähigkeiten von Eclipse RCP kurz auszuprobieren, habe ich eine kleine Anwendung für die Anzeige und Bearbeitung von Kontakten implementiert. Das Beispiel findet sich unter meinem GitHub als Tag „DemoContacts“. Zum Ausprobieren wird die Eclipse Platform IDE benötigt oder es müssen die erforderlichen Plugins in Eclipse nachinstalliert werden.