Neo Tech Blog

NEO TECH LBLOG - Praxis-Techblog für IT, Web und Mobile
Software Testing und Qualitätsmanagement

IT-Qualitätsmanagement:
Ein Überblick zu den gängigen Testmethoden

Keine Kommentare

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, Software Testerin 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 DB-Verwaltung 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.

Software Testing im Überblick

Software Testing und Qualitätsmanagement

Bildquelle: Shutterstock, Bildnummer: 109214621; alexskopje

Regression-Test

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.

Smoke-Test

Ü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.

Feature-Test

Mit dem Feature-Test 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 Performance Tests

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.

Barrierefreiheit

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).

Lesen Sie mehr zu den Vorteilen von barrierefreiem Design

 

 

Katarina Apelt

Autor: Katarina Apelt

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

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.