Architecture

Architecture-Centric Integration Testing

Architecture design is responsible for dividing an overall system into manageable pieces, which can be independently worked on. The subsequent build and integration process is responsible for putting the pieces together to form intermediate stages and finally the overall system. Additionally, more and more integration of software systems of all types happen. Nevertheless, little attention is still paid to integration testing. We elaborate why architecting and integration testing should be highly connected activities and which best practices allow integration testing to be effective in practice.

Historisch gewachsen

Erfolgreiche Software lebt häufig viel länger als ursprünglich gedacht. Kontinuierliche Erweiterungen führen zu einem Zustand, den Praktiker gerne als „historisch gewachsen“ bezeichnen. Das äußert sich in inkonsistenter User Experience, leidender Qualität, steigenden Wartungskosten und mangelnder Innovationsfähigkeit.
Somit stellt sich fast jeder Softwarefirma irgendwann die Frage, wie die eigene Software erfolgreich renoviert werden kann und wie tiefgreifend der Eingriff werden muss oder darf, um auch in Zukunft die Geschäftsziele zu erreichen. Um die Weichen der Renovierung richtig zu stellen ist es notwendig, den tatsächlichen Zustand der Software genau zu analysieren, vor allem weil dieser erfahrungsgemäß deutlich von früheren Plänen und Dokumenten abweicht.