Automatisierte Architekturtests und statische Codeanalyse mit ArchUnit

Agile Day
18.05.
ab 10:45 Uhr
bis Uhr
Testen
Architektur
Raum
Schwarzwald

Abstract

Im Architektur-Entwurf treffen wir viele Architekturentscheidungen, im besten Fall explizit, dokumentiert und verstanden. Dieser Prozess ist aufwändig und mühsam, mit der Folge, dass viele Entscheidungen meist nur implizit getroffen werden und dann in Vergessenheit geraten.

Eine automatisierte Überprüfung solcher Architekturentscheidungen hilft hier weiter:

Manche Entscheidungen wie Namenskonventionen lassen sich schon lange über altbekannte Tools wie Checkstyle leicht abtesten. Komplexere Entscheidungen aber lassen sich nicht immer einfach checken - oder sie erfordern ein komplexes Metamodell, das aufwändig zu erstellen und zu pflegen ist. Hier kommt ArchUnit ins Spiel. In unserem Talk stellen wir anhand konkreter Fragestellungen vor, wie man mit ArchUnit autisiert Architekturentscheidungen in einen Standard-Testzyklus einbinden kann.

Dazu bringt ArchUnit von Haus aus eine ganze Reihe von Standard-Hilfsmitteln mit.

Besser noch: Eigene Architekturregeln lassen sich leicht in Form von Tests definieren und so im automatisiertem Build überprüfen. Beispiele:

  • Sind Abhängigkeiten zwischen Komponenten richtig definiert?
  • Sind Strukturen innerhalb einer Komponente richtig modelliert, z.B. als Onion-Architektur?

Dieselbe API von ArchUnit kann man aber auch für statische Codeanalyse einsetzen, dessen Output nicht in einem Test, sondern als Input in weitere Tools eingeht. Damit lassen sich einfach kleine Helferlein schreiben, um gezielt Handlungsbedarfe identifizieren und analysieren zu können.

Beispiel: In einem System werden Daten versioniert zwischen Services ausgetauscht. Finde alle Services, die direkt oder transitiv von inkompatiblen Änderungen an diesem Datenmodell betroffen und daher anzupassen sind.

ArchUnit lässt sich demnach für kleine, mittlere und komplexe Fragestellungen einsetzen. Das skaliert gut und ermöglicht eine leichtgewichtige und automatisierte Absicherung von Architekturentscheidungen.

Folien:

Speaker

Martin Lehmann

Accso - Accelerated Solutions GmbH, Deutschland

Martin Lehmann Accso - Accelerated Solutions GmbH Cheftechnologe

Martin Lehmann ist Diplom-Informatiker und arbeitet als Cheftechnologe bei der Accso - Accelerated Solutions GmbH. Seit Ende der 90er-Jahre arbeitet er als Softwarearchitekt in der Softwareentwicklung in Individualentwicklungsprojekten für Kunden verschiedener Branchen. Er interessiert sich besonders für Software-Architektur und Entwicklungsmethodik.

Kristine Schaal

Accso - Accelerated Solutions GmbH, Deutschland

Kristine Schaal Accso - Accelerated Solutions GmbH Softwarearchitektin

Dr. Kristine Schaal ist als Softwarearchitektin bei der Accso - Accelerated Solutions GmbH tätig. Sie arbeitet seit mehr als 20 Jahren in der Softwareentwicklung und ist in Projekten der Individual-entwicklung für Kunden verschiedener Branchen unterwegs, technisch überwiegend im Java-Umfeld.