Testkonzepte im Software Testing einfach erklärt
Die individuelle Softwareentwicklung ist immer noch aufwändig und teuer. Software Testing kann Firmen unterstützen, qualitativ hochwertige Software in Time und Budget auf den Markt zu bringen und so Wettbewerbsvorteile zu generieren. Khayrat Glende, Head of Quality Management, ist bereits seit 20 Jahren in der Softwareentwicklung und im Test- und Qualitätsmanagement tätig. Wir haben ihn zum Thema Software Testing befragt und klären, was wichtig beim Erstellen eines Testkonzepts ist.
Was ist Software Testing und in welchen Situationen wird getestet?
Beim Testing handelt es sich um einen Prozess, der Software und deren einzelne Anwendungen auf Fehler und Mängel überprüft. Es soll sichergestellt werden, dass Software-Produkte, egal ob bereits existent oder in der Entwicklung befindlich, bestimmten Anforderungen und Spezifikationen entsprechen. Dabei geht es neben der reinen Funktionalität auch um Aspekte wie Benutzerfreundlichkeit, Performance, Stabilität, Compliance, Kompatibilität oder Sicherheit, aber auch darum, wie sich das neue Produkt in den bisherigen Workflow einfügt, beziehungsweise diesen verändert. Neben diesen rein am Software-Produkt orientieren Test kann das Testing auch weiter gefasst werden und projektorganisatorische und prozessuale Aspekte umfassen. Gerade diese organisatorischen oder weichen Faktoren spielen bei Softwareprojekten eine bedeutende Rolle.
Warum ist Software Testing wichtig?
Viele Gründe sprechen für das Testen von Software-Produkten. Das Aufdecken von Fehlern und Schwächen bei Software-Produkten kann je nach Reifegrad der Software dem Kunden viel Zeit und Ressourcen sparen. Vertrauen in das auszuliefernde Produkt und dessen Qualität ist ein weiterer wichtiger Grund. Zentral ist dabei das Minimieren von Risiken durch das Verifizieren von expliziten und impliziten Anforderungen und Erwartungen an die Software. Frühzeitiges Einbeziehen von Expertise lohnt bereits in der Konzeptionsphase und hilft am Ende immer bares Geld zu sparen.
Was kann beim Testing außer Software noch überprüft werden?
Beim Testing können sowohl Software als auch Prozesse überprüft werden. Diese Evaluierung kann natürlich auch APIs im Rahmen agiler Projekte, Reviews von Angebotsdokumenten, Fachkonzepten aber auch Testfälle, Testdaten, Testumgebungen und Testausführungen selbst umfassen.
Wie wird ein Testkonzept in der Softwareentwicklung erstellt?
Ich skizziere hier einen idealisierten Prozess zum Erstellen eines Testkonzepts. Natürlich variiert das dann in der Praxis von Kunde zu Kunde.
Wichtig für den Planungsprozess sind die folgenden Schritte:
1. Kontext erfassen
Als erstes ist es notwendig, das Produkt und die Zielsetzung des Unternehmens genau zu verstehen. Hierbei arbeiten wir eng mit dem Kunden zusammen. Wir fragen nach Pflichtenheften, Fachkonzepten und anderen internen Materialien, die uns helfen können, den zu testenden Inhalt in seinem individuellen Gefüge zu erfassen. Dieser Schritt ist die Basis für die Testanforderungen und die Identifikation von Testobjekten. Im Anschluss stecken wir den zeitlichen Horizont ab und klären Fragen, die das Budget und sonstige Ressourcen betreffen. Interessant ist auch, ob es schon einen Softwareentwicklungsplan gibt, und welche Kommunikationswege bevorzugt werden.
2. Zuständigkeiten klären
Zuständigkeiten und Verantwortlichkeiten müssen möglichst schnell identifiziert werden, damit allen Beteiligten klar ist, wer welche Aufgaben übernimmt und Ansprechpartner für die relevanten Bereiche bekannt sind.
3. Risikoanalyse
Ein valides Konzept beinhaltet eine ausführliche Risikobetrachtung. Das Erfassen und Klassifizieren möglicher Risiken erfordert Erfahrung und bedeutet einen großen Kommunikationsaufwand, ist aber essentiell für ein gutes Testkonzept, um die meist knappen Ressourcen an Zeit und Manpower optimal einzusetzen.
4. Entwurf einer Teststrategie
Mit Hilfe einer Teststrategie klären wir, wie wir die Testziele im Rahmen der zur Verfügung stehenden Mittel und Einflußfaktoren erreichen können. Berücksichtigt werden müssen vor allem die Aspekte Zeit, Personal (Know-How und Verfügbarkeit), Budget, Projektorganisation (agil, klassisch, mixed) und Testinfrastruktur (Testsysteme, Testdaten).
Da Testen hauptsächlich darauf abzielt, relevante Aussagen über den Zustand des Softwareprodukts zu erhalten, ist darüber hinaus das Identifizieren und Festlegen von geeigneten Testobjekten, Teststufen, Testarten sowie Testmethoden ein zentraler Bestandteil der Teststrategie. Abgerundet wird die Teststrategie durch die Wahl einer geeigneten ToolChain einschließlich des Berichtswesens.
5. Abstimmung und Iteration
Erfahrungsgemäß gibt es nie auf Anhieb den perfekten Plan, der hundertprozentig alle Eventualitäten vorwegnehmen kann. Gleiches gilt für die Teststrategie. Eine gute und abgestimmte Teststrategie berücksichtigt aber möglichst früh die vorhandenen und relevanten Informationen und vermittelt so den relevanten Stakeholdern (insbesondere auch dem Projektteam) einen klaren Überblick über den geplanten Testumfang, sowie den geschätzten Ressourcenbedarf. Im Laufe des Projektfortschritts und dem damit einhergehenden Zuwachs an Wissen über Produkt- und Projektzustand, wird die Teststrategie den neuen Erkenntnissen angepasst.
Mit welchen Anforderungen begegnen dir die Kunden, die auf der Suche nach einem Testkonzept sind?
Sie kommen zuallererst mit einer Vorstellung von Ihrem Produkt – was die gewünschte Software idealerweise für Problemstellungen bewältigen soll. Hilfreich ist für uns immer, wenn schon etwas in schriftlicher Form vorliegt. Basierend auf diesen initialen Informationen wird ein Testkonzept entwickelt. Damit soll sichergestellt werden, dass das fertige Produkt den Vorstellungen des Kunden entspricht.
Und was passiert, wenn die Kundenanforderungen auf dem Tisch liegen?
Dann ist die Expertise der Neofonie gefragt. Ab hier beginnt unsere umfassende Beratung. Das weitere Vorgehen ist individuell. Wir erstellen auf Basis der Anforderungen und unserer Analyse gemeinsam mit dem Kunden ein passendes Testkonzept. Dazu gehört natürlich auch ein Schulungsplan für die Mitarbeitenden beim Kunden. Fachabteilungen, die selbst Tests durchführen, müssen geschult werden.
Worauf muss man bei komplexen Projekten im Software Testing besonders achten?
Ganz wichtig ist, alle Stakeholder an einen Tisch zu bekommen. Gerade die Fachabteilungen, die später mit den Produkten umgehen sollen, müssen frühzeitig beteiligt sein.
Des Weiteren ist an jeder Stelle des Prozesses eine umsichtige Risikobetrachtung notwendig. Die richtigen Fragen müssen gestellt werden, gerade auch in Hinblick auf die Reduktion von Komplexität.
Ist eine längere Projektlaufzeit absehbar, empfiehlt es sich auch frühzeitig, über eine Testautomatisierung nachzudenken. Automatisierungsstrategien beziehen vor allem kritischen Testfälle ein, die regelmäßig bei Releaselieferungen erneut durchlaufen werden müssen (Regressionstests). Auf jeder Ebene sollte dabei genau abgewogen werden, ob und was automatisiert werden soll. Selbst auf Unit-Ebene lässt sich im Rahmen von Refactorings die Komplexität teilweise drastisch reduzieren. Kompatibilität ist ein weiterer Punkt. Wenn verschiedene Software-Produkte im Einsatz sind, muss unter anderem geprüft werden, wie kompatibel die unterschiedlichen Produkte untereinander sind. Wichtig in diesem Zusammenhang ist auch das Thema Schnittstellen innerhalb der Produktlandschaft, ebenso die Infrastruktur.
Eine hundertprozentige Testabdeckung kann es nicht geben. Man kann lediglich eine hinreichend aussagekräftige Stichprobe testen. Ein Expertenrat gleich am Anfang des Testing Prozesses kann so manche kostspielige Entwicklung im Nachgang vermeiden.
Was zeichnet ein erfolgreiches Testkonzept deiner Meinung nach aus?
Das Schaffen einer Balance von Zeit, Budget und Ressourcen spielt sicher eine entscheidende Rolle für den Projekterfolg. Und: je genauer die Anforderungen und Risiken im Vorfeld des Testings definiert sind, desto tragfähiger und umsetzbarer wird ein Testkonzept sein. Wichtig sind auch ein gemeinsames Verständnis und schriftlich fixierte Vereinbarungen. Das Konzept muss natürlich auch regelmäßig an den Projektfortschritt angepasst werden.
Nach welchen Standards arbeitet Neofonie im Testmanagement?
Neofonie orientiert sich bei der Planung, Durchführung und Dokumentation des Testkonzepts in der Softwareentwicklung an etablierten Standards wie zum Beispiel ISO-21919. Das Arbeiten nach Standards gepaart mit langjähriger Erfahrung gewährleistet am Ende ein hohes Maß an Qualität.
Vielen Dank für das Gespräch!
L(i)ebe Deinen Job!
Du hast weitere Fragen oder Lust bei uns zu arbeiten, dann melde Dich gern bei uns! Wir sind für Dich da!
Das Interview führte Susen Rumposch.
Veröffentlichung am 31.01.2023