Geschäftsprozesse oder „End-to-end Prozesse“ sind fast immer abteilungs- und anwendungsübergreifend. Eine gute IT-Unterstützung wird nur erreicht, wenn entlang der gesamten Prozesskette die richtigen Tests stattfinden. Denn jede Kette ist nur so stark wie ihr schwächstes Glied.
Eine gute Testabdeckung mit automatisierten Modultests ist eine Eingangsvoraussetzung für gute Softwarequalität. Diese Erkenntnis hat sich durchgesetzt. Aus fachlicher Sicht wird mit diesem Instrument alleine noch kein hoher Qualitätsgrad erreicht. Modultests sollten daher durch automatisierte, prozessorientierte und anwendungsübergreifende Tests vervollständigt werden.
Testautomatisierung von Prozessen – Jede Kette ist nur so stark wie ihr schwächstes Glied
Die Gliederung der Tests nach Geschäftsprozessen sorgt direkt für eine fachliche Relevanz der Testszenarien und erlaubt dadurch eine Priorisierung und Risikobetrachtung aus fachlicher Sicht. Bei einer abgestimmten Umsetzung lässt sich die Redundanz zwischen den Modultests einerseits und zwischen den prozessorientierten Tests andererseits auf ein Minimum reduzieren. Die Kombination beider Testarten trägt zu einer hohen Testabdeckung bei.
Automatisierte Modultests sind mittlerweile Standard – sowohl bei einem traditionellen Vorgehen im Projekt als auch bei der agilen Entwicklung. Diese Tests erlauben bei Änderungen eine schnelle Fehlererkennung beziehungsweise eine verkürzte Reaktionszeit und verbessern außerdem die Robustheit der Software. Automatisierte Tests stellen somit ein unabdingbares Werkzeug für eine professionelle Softwareentwicklung dar.
Module unter Testkontrolle steigern das Vertrauen des Entwicklers in seinen eigenen Code erheblich. Aus Sicht eines Entwicklers werden die Modultests sogar oft als hinreichend für eine hohe Softwarequalität erachtet. Allerdings haben Modultests ihre Grenzen. Die Möglichkeiten, durch Modultests ganzheitlich die Qualität einer Software zu verbessern, unterliegen technisch bedingten Einschränkungen: void Tests, Abhängigkeiten durch Mocks, verdeckte Fehler sowie ein hoher Komplexitätsgrad der Module sind hier nur einige Stichworte.
Den kompletten Artikel mit Praxistipps für effektive und effiziente Tests sowie konkretem Bezug zu Projekten aus unterschiedlichen Branchen können Sie hier kostenlos herunterladen.
Ein einzelnes Entwicklerteam ist in der Regel für ein einzelnes System oder sogar nur ein Teilsystem verantwortlich. Was jenseits der eigenen Schnittstellen passiert, ist für Entwickler häufig eine Blackbox. Modultests verbessern die Codequalität innerhalb des Moduls, im gesamten Prozess können aber trotzdem Fehler auftreten.
Anwendungsübergreifende Prozesse
„Prozess“ ist in diesem Zusammenhang eine unscharfe Bezeichnung, da sie in der Praxis auf vielen unterschiedlichen Abstraktionsebenen verwendet wird. Von Hauptprozessen im unternehmensweiten Prozessmodell bis zu detaillierten funktionalen Abläufen tritt der Begriff auf. Um den Mehrwert automatisierter Prozesstests zu erkennen, wird eine einheitliche Definition des Begriffes „Prozess“ benötigt. Eine Ausrichtung am Begriff „Geschäftsprozess“ kann hier Klarheit schaffen. In unseren Projekten verwenden wir folgende Definition:Ein Geschäftsprozess ist eine logische Folge von Aktivitäten mit definiertem Input und Output, die einen Nutzen für Kunden (Bedürfnisbefriedigung) und Unternehmen (Wertschöpfung) schafft.
Vor allem durch die Anforderung, dass ein Geschäftsprozess einen Mehrwert für einen (externen oder internen) Kunden schafft, sind Geschäftsprozesse fast immer bereichs- und anwendungsübergreifend. Geschäftsprozesse werden aufgeteilt in Teilprozesse und Prozessschritte. Solche anwendungsübergreifenden Prozesse werden auch gerne als „Prozessketten“ oder „End-to-end-Prozesse“ bezeichnet. Die Anforderung an die Qualitätssicherung hat bei solchen Prozessen einen anderen Fokus als bei Modultests. Der Prozessverantwortliche trägt die ganzheitliche Verantwortung und steuert die Prozessentwicklung mit dem Blick auf die Erfüllung der Kundenbedarfe und die Einhaltung von (z. B. juristischen) Rahmenbedingungen. Die Verantwortlichen für einzelne Teilprozesse fokussieren sich nicht nur auf die Ein- und Ausgabeschnittstellen, sondern hauptsächlich auf einen funktionalen Teil des Prozesses.
Prozesse testen
Zur Sicherstellung der Softwarequalität werden auf höheren Teststufen (System- und Integrationstests) idealerweise von den (Teil-)Prozessverantwortlichen anwendungsübergreifende Testsequenzen spezifiziert oder angefordert, die dann mit Unterstützung eines Testteams durchgeführt werden. Einige Prozesse werden unter Umständen sogar erst mit dem Abnahmetest geprüft. Für komplette Neuentwicklungen im Rahmen einer klassischen, sequenziellen Vorgehensweise ist dieses Verfahren auch angemessen. Spätestens aber bei einer agilen Entwicklung sowie bei Wartungs- und Erweiterungsprojekten bestehender Systeme ist der Aufwand solcher Regressionstests hoch und kostspielig. Zudem werden bei manuell durchgeführten Tests Fehler nur verzögert festgestellt. Sind zusätzliche Codeänderungen für eine Fehlerbehebung notwendig, müssen zumindest Teile des Tests wiederholt werden. Der Vorteil der (hochautomatisierten) Modultests geht verloren und dies stellt einen Schwachpunkt in der Qualitätssicherung dar.Bedarf an Testautomatisierung
Genau aus dem Grund müssen prozessorientierte und anwendungsübergreifende Tests automatisiert werden. Der Schwerpunkt der Testautomatisierung liegt dabei auf Schnittstellen, dem Zusammenspiel zwischen mehreren Systemen und der Geschäftsprozesslogik. Dies ersetzt zwar die manuelle Testarbeit nicht komplett, bringt aber viele Vorteile der automatisierten Modultests mit sich.Die Möglichkeit, Tests beliebig oft zu wiederholen, erlaubt eine regelmäßige Ausführung bis hin zur Integration in einen CI (Continuous Integration)-Dienst und stärkt die Sicherheit bei Änderungen. Durch die erhöhte Testabdeckung werden fachliche Fehler und solche, die durch Modultests nicht identifiziert werden können, wesentlich schneller erkannt. Eine Korrektur erfordert anschließend keinen zusätzlichen manuellen Testaufwand.
Die Hauptgründe für die Automatisierung fachlicher Tests
Gleichzeitig haben Mitarbeiter der Fachseite eine Möglichkeit, die eigenen Prozesse unter Testkontrolle zu bringen und damit – ähnlich wie die Entwickler – Vertrauen in das eigene Arbeitsergebnis zu gewinnen. Darüber hinaus decken automatisierte Prozesstests auch nichtfunktionale Anforderungen wie Performanz oder Speicherverbrauch ab. Gute Automatisierungstools protokollieren die Laufzeiten jeder einzelnen Aktion.Die Einbindung prozessorientierter Tests in einen Continuous Integration Prozess während der Entwicklung bringt zusätzliche Sicherheit.
Den kompletten Artikel mit Praxistipps für effektive und effiziente Tests sowie konkretem Bezug zu Projekten aus unterschiedlichen Branchen können Sie hier kostenlos herunterladen.
Von der Test- zur Prozessautomatisierung: aus vtf wird mateo
Das ehemalige viadee Testframework (vTF) hat sich weiterentwickelt. Um dem Leistungsumfang des gewachsenen Produktportfolios gerecht zu werden, erscheint es unter neuem Namen: mateo.
zurück zur Blogübersicht