Die Welt ist voller Software, die alle dokumentierten Anforderungen perfekt erfüllt und dennoch keinen Mehrwert für ihre Nutzer schafft.
Als ich vor vielen Jahren Softwaretechnik studierte, bedeutete Qualität Übereinstimmung, also Konformität mit den Anforderungen. Ich lernte außerdem, dass Qualitätssicherung alle Maßnahmen umfasst, die ergriffen werden, um Qualität zu ermöglichen, zu schaffen und zu überprüfen, und dass Testen eine Schlüsselmaßnahme der Qualitätssicherung ist.
Heute definiert Wikipedia Testen als das Untersuchen der Artefakte und des Verhaltens der Software unter Test mittels Validierung und Verifikation. Testen wird als Tätigkeit definiert, wobei der Zweck offenbleibt. Die Definitionen, die ich an der Ingenieurschule lernte, sind sehr kompatibel mit der Wikipedia-Definition von Konformitätstests: Tests, die feststellen, ob ein Prozess, Produkt oder eine Dienstleistung den Anforderungen einer Spezifikation, technischen Norm, eines Vertrags oder einer Vorschrift entspricht. Interessanterweise verwenden weder diese Definitionen noch das Wort Qualität.
Was ist Qualität?
Heutzutage vermeide ich es, Qualität direkt zu definieren, sondern betrachte sie indirekt aus vier Perspektiven: Nutzen, Funktionen, Prozess und Erfahrung. Nehmen wir etwas, das jeder kennt, zum Beispiel Paypal. Menschen nutzen es, um Geld online zu überweisen; das ist die Funktion. Die gesuchten Nutzen sind Bequemlichkeit, Sicherheit und niedrige Kosten. Die Nutzung von PayPal umfasst verschiedene Prozesse, durch die die Software den Nutzer leitet. Die Gefühle, wie Freude, Frustration oder Erfolgserlebnis, die der Anwender beim Umgang mit Paypal empfindet, machen die Erfahrung aus. Was immer Qualität ist – ohne alle vier Dimensionen kann sie kaum bestehen.
Das Testen konzentriert sich in der Regel auf die funktionale Konformität, also darauf, zu prüfen, ob die Software das tut, was ihre Anforderungen vorgeben, und nichts darüber hinaus. Es kann auch nicht-funktionale Anforderungen geben, wie etwa Antwortzeiten, die Anzahl paralleler Transaktionen oder die Sicherheit der Benutzerdaten. Normen und Vorschriften wie SOC2 oder DSGVO bringen zusätzliche Anforderungen mit sich, ebenso wie Paypals Vereinbarungen mit Kreditkartenunternehmen. Diese haben mit den eigentlichen Funktionen und dem Wert der Software oft wenig zu tun, doch die Einhaltung ist Voraussetzung, um am Markt teilzunehmen.
Qualität geht über reine Konformität hinaus. Um beides zu erreichen, schauen Sie sich unsere kuratierte Liste der besten Software-Testplattformen an
Die ideale Welt
Großartige Tester wenden sowohl eine konformitätsorientierte Sichtweise an, die auf die Erfüllung der Anforderungen fokussiert, als auch eine ergebnisorientierte, die auf die Realisierung der Vorteile abzielt. In einer idealen Welt würde die Erfüllung der dokumentierten Anforderungen auch die Umsetzung der Nutzervorteile bedeuten, doch die Welt ist selten ideal. Selbst wenn die Software perfekt wäre, sind es die Nutzer nicht. Die Realisierung der Vorteile hängt stark von den Nutzeraktionen ab, und diese wiederum davon, wie die Software mit dem Nutzer interagiert und ihn führt. Diese wiederum beeinflussen die Qualität der gesamten Erfahrung. Solche Eigenschaften lassen sich kaum in Konformitätsanforderungen oder förmliche Testfälle gießen. Wiederum gilt, dass in einer idealen Welt all diese Herausforderungen frühzeitig durch nutzerzentrierte Gestaltung gelöst wären – aber die Realität sieht anders aus, und ein Tester muss als Stellvertreter des echten Nutzers agieren.
Konformitätstests vs. Ergebnistests
Konformitätstests und Ergebnistests erfordern unterschiedliche Denkweisen. Konformitätstests sind wie das Aufstellen von Fallen: Anhand der Anforderungen überlegt man, was schiefgehen könnte, und entwirft Testszenarien, unter denen die Software wahrscheinlich versagt. Ergebnisorientiertes Testen ist eher ein Akt der Neugier: Man versucht zu verstehen, was der Nutzer erreichen möchte, stellt sich all die verschiedenen Handlungen vor, ermittelt, wie die Software darauf reagieren sollte, und probiert es dann aus.
Konformität ist eine Voraussetzung für Qualität. In vielen Branchen ist das Erfüllen formaler Compliance-Anforderungen sogar Voraussetzung für die Teilnahme am Geschäft. Man kann auch das eigene Haftungsrisiko minimieren, indem man einen dokumentierten Nachweis erbringt, dass die Compliance korrekt getestet wurde. Ich glaube, dass Konformitätstests dazu beitragen, das Risiko des Scheiterns zu reduzieren, während ergebnisorientierte Tests die Erfolgschancen steigern.
