Testmethoden im IT-Qualitätsmanagement

Die Notwendigkeit von IT-Qualitätsmanagement ist schnell erklärt: Funktioniert eine Website oder eine Anwendung nicht, ist der Nutzer weg! Im schlimmsten Fall für immer. Darunter leidet die Kundenzufriedenheit, der Umsatz und die Wettbewerbsfähigkeit. Damit dieser Fall möglichst nicht eintritt, wird IT-Qualitätsmanagement eingesetzt, das bereits in der Konzeptions- und Entwicklungsphase greift und während des alltäglichen Betriebs der Anwendung kontinuierlich fortgeführt wird. Hierbei werden unterschiedliche Testmethoden eingesetzt. Katarina Apelt, Softwaretesterin bei Neofonie, stellt die wichtigsten Testmethoden kurz vor.

Je größer und komplexer Entwicklungsprojekte sind, desto höher ist die Wahrscheinlichkeit, dass sich Fehler, sog. „Bugs“, einnisten. Die können sich an den unterschiedlichsten Stellen verbergen: in den Schnittstellen, im Workflow, im Design, in den Funktionalitäten, im Payment, in der Performanz, im Caching, in der Datenbankverwaltung und so weiter und so weiter. Manche Fehler sind ganz winzig, wirken sich aber dramatisch aus, manche Fehler sind kompliziert zu lösen, wirken sich aber nur minimal aus. Manche Fehler sind einfach zu finden und andere tarnen sich geschickt. Ebenso unterschiedlich wie die Fehlerarten sind, so unterschiedlich sind die Testverfahren, um die Bugs zu entdecken und letztlich zu eliminieren.

Softwaretesting im Überblick

Regressiontest

Die Pflege, Weiterentwicklung und Korrektur von Software-Code verursacht (neue) Fehler. Mit dem “regelmäßigen Wiederholen von Testfällen” wird geprüft, ob sich die Software nach den Änderungen weiterhin wie gewünscht verhält. Hierzu werden reale Testfälle mit einem klaren Soll-Ergebnis durchgeführt und mehrfach wiederholt. Dadurch wird sichergestellt, dass Modifikationen in bereits getesteten Teilen der Software zu keinen neuen Fehler führen. Regressionstests werden idealerweise automatisiert, weil das manuelle Testen aufgrund der Menge der Testfälle bei großen und langlebigen Projekten sehr zeitaufwendig wird.

Smoketest

Über den Smoketest werden die wichtigsten Komponenten der Anwendung oberflächlich und schnell auf kritische funktionale Fehler geprüft. Hierbei werden in limitierter Zeit die wichtigsten Funktionen und Komponenten einer Anwendung getestet. Fehler können schnell aufgedeckt werden, die je nach Schwere ein Release der Software verhindern würden.

Featuretest

Mit dem Featuretest werden insbesondere die neuen Funktionen der Software intensiv getestet. Beim Test von Bedieneroberflächen, dem sog. Frontend, wird aus Sicht des Nutzers getestet, das übrigens eine große Herausforderung darstellt, da diese Sicht nicht immer mit der technischen Sichtweise übereinstimmt. Die Komplexität wird durch die Vielzahl der Internet-Browser, unterschiedlicher Betriebssysteme (iOS, Windows, Android) und Endgeräte (Desktop, Tablet, Smartphone) erhöht. Diese nutzerorientierte Testmethode berücksichtigt das Layout, das Wording und Ungereimtheiten oder Definitions-Lücken im Klick-Flow. Abweichungen, die dabei aufgedeckt werden, können relativ schnell beseitigt werden, da allen Beteiligten die neuen Funktionen und damit verbundenen Änderungen präsent sind.

Kundentest

Der Kunde testet vor der Liveschaltung auf einer separaten Umgebung selber. Je nach Absprache handelt es sich hier um eine festgelegte Menge Abnahmetests oder um umfangreiche Featuretests. Der entscheidende Mehrwert dieses integrierten Vorgehens: Je schneller die ersten Sprint-Ergebnisse vorliegen, desto früher erhalten die Kunden Einblick in den Entwicklungsprozess und können die Qualität mitgestalten sowie das Risiko falsch verstandener Absprachen minimieren.

Last- und Performancetest

Internetanwendungen mit viel Traffic müssen schnell und belastbar sein. Je nach Kundenanforderung und Absprache führen Qualitätssicherung, Entwicklung und ASP (Application Service Provider) Last- und Performancetests durch. Entwickler führen temporär entwicklungsbegleitende Lasttests durch mit dem Ziel der Optimierung der Kennzahlen (Antwortzeiten, Durchsatz), mittels Tuning von Parametern bzw. Änderungen in der Applikations-Programmierung oder in anderen Fehlerquellen.

Die Tester führen Nutzer-Stresstests für jedes Release als Regressionstest auf einem Prelive-System durch. Sinn ist die Vergleichbarkeit der Kennzahlen zwischen den Releases. Ein positives Ergebnis wäre, wenn die gemessenen Werte mindestens genauso gut wie beim Vor-Release bleiben.

Datensicherheit

Das Thema Datensicherheit ist ein komplexes Themenfeld. Man kann bereits mit einfachen Mitteln die wichtigsten Security Checks durchführen, allerdings ist das keinesfalls mit einem Sicherheitsaudit zu vergleichen. Automatisiert können Vulnerability Scans für Webanwendungen durchgeführt werden, z.B. auf Basis des OWASP ZAP Webapplication Scanner mit dem Focus auf den OWASP Top 10 (Sicherheitsrisiken für Webanwendungen). Zudem gibt es automatisierte Regressionstests bzw. Integrationtests auf Selenium/Java-Basis, die regelmäßig über z.B. Jenkins ausgeführt werden. Diese Tests prüfen auf der Weboberfläche, ob bestimmte durch die Entwicklung behobene Sicherheitslücken trotz fortlaufender Änderungen im Code unauffällig bleiben. Diese Tests leiten sich vor allem aus den Ergebnissen von IT-Sicherheitsaudits ab.

Barrierefeiheit

Testmöglichkeiten zur Barriere-Freiheit sind zahlreich, sowohl für den White-Box-Bereich (WCAG 2.0 über Test Tools) als auch den Black-Box-Bereich (Prüfkataloge nach W3C oder BITV).

User-Acceptance-Testing (UAT)

Bei einem User-Acceptance-Test wird die Anwendung in einer Beta-Phase von ausgewählten Endnutzern getestet. Mit den Nutzern werden dann Szenarien durchgegangen und notiert, wie sie sich unvoreingenommen durch die Anwendung bewegen und wie diese die Funktionen verwenden. Die Nutzer werden nur geleitet, ohne zu sehr Einfluss auf ihre Nutzung zu nehmen. Oftmals zeigen sich Verhaltensweisen, die man während der Entwicklung nicht bedacht hat und kann somit neue User Journeys ausfindig machen.

Integrationstest

Eine Software ist oftmals in einem digitalen Ökosystem mit vielen Abhängigkeiten und Verweisen eingebettet. Ein Integrationstest überprüft hierbei eine Anwendung in seiner Systemumgebung mit all den integrierten und umliegenden Komponenten. Es wird geprüft, ob ein reibungsloser Ablauf in diesem System gewährleistet werden kann oder ob doch gewisse Abhängigkeiten und Verweise Fehler aufwerfen.

Content-Test

Neben den eigentlichen Funktionen einer Software ist der Inhalt in gleichem Maße entscheidend. Bei dem Content Test wird der komplette Inhalt der Software auf Richtigkeit und Tonalität getestet und überprüft. Gerade bei Anwendungen mit multinationalen Inhalten ist es wichtig sicherzustellen, dass jede Ländervariante auch die passenden Inhalten in der jeweiligen Sprache aufweist.

Fazit

Auch bei der Softwareentwicklung lautet das Credo: If it’s not tested, it doesn’t work! Mit verschiedenen Testmethoden können Sie das Qualitätsniveau Ihrer Anwendung hoch halten und Ihren Nutzern ein einwandfreies Erlebnis bieten!

 

Veröffentlicht am 27. April 2015, aktualisiert am 08. Juni 2023

Katarina Apelt

Katarina Apelt ist seit November 2012 bei der Neofonie als Lead Software Test Engineer tätig.