Softwarewartung meets Microservices

Wenn eine Applikation schon mehrere Jahre im Produktionsbetrieb ist, dann haben Fehlerbehebungen und die vielen Erweiterungen, die im Laufe der Zeit sicherlich vorgenommen wurden, gegebenenfalls ihre Spuren hinterlassen. Dies kann sich durch eine Verschlechterung der Wartbarkeit bemerkbar machen. Oft wurde die Applikation in einem Projektteam entwickelt und dann an ein Wartungsteam übergeben, was naturgemäß zu einem mehr oder weniger großen Verlust von Wissen führt. Je nach Umfang des Wissensverlusts trägt auch dieser zur Verschlechterung der Wartbarkeit bei. Viele weitere Faktoren sind denkbar.

Die Verbesserung der Testbarkeit kann oft dem Wartungsteam dabei helfen, die Wartbarkeit zu erhöhen.
Doch welche Arten von Tests sollten vorhanden sein? In welcher Quantität? Was kann von aktuellen Themen der Softwareentwicklung adaptiert werden?
Diese oder noch weitere Fragen entstehen in solch einer Situation.

Das Thema Testbarkeit wird auch im Kontext von Microservices-Architekturen diskutiert. Mögliche Antworten  auf die oben stehenden Fragen liefert ein Artikel auf der Internetseite von Martin Fowler.
Zu Beginn wird die Microservices-Architektur definiert und dann die verschiedenen Teststrategien vorgestellt.

Teststrategien im Überblick: http://martinfowler.com/articles/microservice-testing/#conclusion-summary


Unit tests: exercise the smallest pieces of testable software in the application to determine whether they behave as expected.
– Integration tests : verify the communication paths and interactions between components to detect interface defects.
Component tests: limit the scope of the exercised software to a portion of the system under test, manipulating the system through internal code interfaces and using test doubles to isolate the code under test from other components.
Contract tests: verify interactions at the boundary of an external service asserting that it meets the contract expected by a consuming service.
End-to-end tests: verify that a system meets external requirements and achieves its goals, testing the entire system, from end to end.

Fazit: Martin Fowler‘s Artikel liefert mögliche Teststrategien, die sicherlich im Wartungskontext älterer Applikationen nützlich sind, aber auch weitere Ideen für einen bevorstehenden  Umbau zur Verbesserung der Testbarkeit.

Dieser Beitrag wurde unter Software Engineering abgelegt und mit , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s