Development

Artifactory Pro: Clean up Branch-Specific Artifacts on Pull Request in Bitbucket

Haben sie auch einen automatischen Branch Build, d.h. einen Build der selbstständig erkennt, ob ein neuer Branch angelegt wurde und darauf hin die Build Pipeline für diesen neuen Branch dupliziert? Dann haben sie vermutlich auch Branch-spezifische Artefakte, oder zumindest Snapshots davon.

Weiterlesen

Einführung in Gatling

Der Software-Test gehört zur Agilen Softwareentwicklung. Auch wenn viele Softwareentwickler automatische (J)Unit-Tests als “Testen” ansehen, liegt der Schwerpunkt beim Testen im eigentlichen Sinne nicht nur im Verhindern von Regressionen durch automatische Checks, sondern auch im Gewinnen von Informationen über die entwickelte Software. Wertvolle und zeitnahe Informationen sind essenziell, um fundierte Entscheidungen zu treffen. Neben vielen anderen Test-Arten ist der Leistungstest ein wichtiger Bestandteil einer umfassenden Test-Strategie.

Weiterlesen

Functional Load Testing mit Gatling

Die Hauptaufgabe im Testen besteht darin, Informationen über ein Software-System zu gewinnen; dazu gehören auch Last- und Performance-Tests. Mit funktionaler Programmierung können wir Ereignisse und Szenarien modellieren, die mit klassischen Ansätzen gar nicht oder nur schwer abbildbar sind. Dieser Artikel beschreibt diese Szenarien und zeigt die Möglichkeiten von Gatling auf, sie funktional zu testen.

Weiterlesen

Mutation-Analysis-Plugin 1.2 released

Am 7.2. haben wir die neueste Version 1.2 des Mutation-Analysis Plugin für Sonarqube veröffentlich.

Weiterlesen

Tourniquet JUnit 0.4.6 released

Mit dem heutigen Release von Tourniquet JUnit 0.4.6 gibt es vor allem Erweiterungen des HTTP Server Mock als auch der PageObjects Bibliothek. Mit der neuen Version des Server Mocks ist es nun möglich nicht nur GET sondern auch auf POST requests zu antworten. Es wurden auch die Möglichkeiten erweitert, nur auf spezifische Requests zu antworten und direkt auf Request und Response zuzugreifen, um so dynamische Reaktionen für Test Requests zu formulieren.

Weiterlesen

Tourniquet-Junit

Heute wurde ein neues Release von Tourniquet-Junit (0.4.5) veröffentlich. Tourniquet ging aus dem Projekt Scribble hervor und wird nun als eigenständiges Projekt weiterentwickelt. Was ist Tourniquet? Tourniquet-Junit ist eine Sammlung von JUnit4 Rules, die das Entwickeln funktionaler Tests vereinfachen sollen, da damit Tests, die typischerweise eine Integrationsumgebung benötigt werden, self-contained werden, d.h. keine weiteren Laufzeit Abhängigkeiten mehr haben. Ausserdem enthält Tourniquet-Junit eine Reihe von Assertions und weiterer Utilities die das Entwicklen von Test vereinfachen sollen.

Weiterlesen

Patterns zum Umgang mit Legacy Code: ServiceLoader

Legacy Code ist Code, der nicht nach aktuellen Massstäben der Software-Entwicklung entwickelt wurde, nicht mehr gewartet wird und häufig nicht oder unzureichend Dokumentiert wird. Aber auch externe, proprietäre closed source Libraries genügen häufig diesen Kriterien. Oftmals wird dieser Code jedoch nach wie vor betrieben und muss auch hin und wieder angepasst werden, z.B. um regulatorischen Anforderungen nachzukommen. Legacy Code kommt häufig in der Form eine CLOBs daher. Eine undefinierte Masse an Codezeilen, von der keiner mehr weiss, was er tut.

Weiterlesen

Mixins mit Java

Unter Mixins versteht man zusätzliche Funktionalität, die einer Klasse hinzugefügt werden kann. Sie sind eine spezielle Form der Mehrfachvererbung, bei der Eigenschaften oder Verhalten von mehreren „Eltern“ geerbt werden. Mit Mixins lassen sich zwei Problemgebiete lösen: Man möchte viele Optionale Features für eine Klasse anbieten Man möchte ein bestimmtes Feature für viele verschiedene Klassen anbieten Mit Hilfe von Mixins lassen sich Domain Modelle einfach halten, indem nur die essentiellen Eigenschaften definiert werden und optionale Eigenschaften über Mixins hinzugefügt werden können.

Weiterlesen

Exponentielles Wachstum der LoC ist kein Zeichen gesteigerter Produktivität

Eines der wesentlichen Eckpfeiler agiler Software Entwicklungs ist dessen Transparenz. Teams geben kontinuierlich Auskunft über ihren Fortschritt, erledigte Aufgaben, Hindernisse, Ereignisse im Team, aber auch die Qualität ihrer Arbeit. Das erfassen von Metriken gehört dabei ebenso zum Handwerk wie gezielte Verbesserungen, die mit Hilfe dieser Metriken nachgewiesen werden – what gets measured, gets managed. Das Erfassen von Code Metriken ist dabei heute weitestgehend mit Tools wie PMD, Findbugs, Sonarqube und Code-Coverage automatisierbar und dank Code Versioning Systemen wie CVS, SVN oder Git lückenlos nachverfolgbar.

Weiterlesen