Funktionalität
ISTQB: Die Fähigkeit eines Softwareprodukts beim Einsatz unter spezifizierten Bedingungen Funktionen zu liefern, die festgelegte und vorausgesetzte Erfordernisse erfüllen.
Angemessenheit
ISTQB: Die Fähigkeit eines Softwareprodukts für spezifizierte Aufgaben und Zielsetzungen der Benutzer einen geeigneten Satz Funktionen zu liefern.
Erfüllen die Funktionen die Geschäftsanforderung?
Das ist hinsichtlich dieses Kriteriums zu fragen. Was soll die Software leisten? Das zu überprüfen ist eigentlich Aufgabe der Anforderungsanalyse und sollte beim Abgleich zwischen Lastenheft (Anforderung) und Pflichtenheft (Software-Versprechen) deutlich sein. Manchmal wird aber erst im Test offensichtlich, dass eine wesentlich Anforderung im Lastenheft fehlte und die Software die Geschäftsanforderung nicht erfüllt.
Den Tester kann dieses Qualitätskriterium dazu ermahnen, sich immer wieder darauf zu besinnen, wozu die spezielle Software gedacht ist und was sie bewirken soll. Das kann vielleicht verhindern, dass sich der Tester in Detailfragen versteift und das wesentliche außer acht lässt. Gerade wenn Zeit und Mittel knapp sind, sollte wenigstens das Wesentliche getestet sein.
Richtigkeit
ISTQB: Die Fähigkeit eines Softwareprodukts, die richtigen oder vereinbarten Ergebnisse oder Wirkungen mit dem benötigten Grad an Genauigkeit zu liefern.
Das ist der Kern des funktionalen Tests, nachzuweisen dass die Software richtig funktioniert - das heißt, dass diese die fachlichen Anforderungen genau erfüllt.
Was richtig ist, steht in der Spezifikation. Die Spezifikation muss gründlich gelesen werden, Beispiele gefunden werden, anhand denen die spezifizierten Regeln überprüft werden.
An der richtigen Stelle testen
Die Richtigkeit von Software sollte möglichst tief, direkt an der verarbeitenden Komponente testen. Wenn diese einen Fehler macht, setzt sich der Fehler weiter fort.Wenn sich der Fehler nicht fortsetzen sollte, wäre das fataler, weil es offensichtlich Korrekturmechanismen gibt, die Daten einfach ändert und die vor allem nicht spezifiziert sind (nachzuprüfen!).
Die Intention des Programmierers der nachfolgenden Komponente mag sein, kleine Datenfehler lieber kurz zu korrigieren anstatt die Fehlerquelle zu suchen (zu lassen) und den Programmierprozess aufzuhalten. Dadurch wurde kurzfristig versucht, einen Fehler zu verdecken, anstatt ihn zu lösen. Mittelfristig stellt die Korrektur eine potentielle Fehlerquelle dar, wenn nämlich der betreffende Datenzustand als gültig spezifiziert wird, denn dann wird man bei der Anpassung der Verarbeitungsfunktion nicht den neuen gültigen Wert erreichen können.
Der Test sollte also insbesondere beim Komponententest und beim Systemtest durchgeführt werden.
Funktionalität richtig durchtesten
In der Spezifikation (Lasten- und Pflichtenheft) können verschiedene Regeln beschrieben sein, aus denen sich Bereiche von gültigen und Bereiche von fehlerhaften Werten erschließen lassen.So lassen sich für jeden eigegebenen Wert eine eindeutige Test-Erwartung formulieren.
Die Spezifikation kann einzelne Aspekte und Sonderfälle ungenannt lassen, weil sie bereits als globale Regel beschrieben ist (z.B. Encoding utf-8, nachzuprüfen!), oder weil sie nicht beachtet sind. Auch diese Sonderfälle sollten mitgetestet werden. Die Test-Erwartung ist dann zumindest, dass die Anwendung nicht abstürzt (Qualitätskriterium Zuverlässigkeit). Ob die Verarbeitung korrekt ist, muss mit den Fachanforderern geklärt werden. Optimalerweise werden diese Sonderfälle bereits in der Anforderungsspezifikation abgeklärt. Im Nachhinein wird das Anwendungsverhaltenzumindest dokumentiert, und den fachlichen Anforderern vorgestellt. Diese können daraufhin eine Beschränkung der Anwendung hinzunehmen oder eine Zusatzanforderung formulieren, die entsprechend des darin enthaltenen Risikos hoch oder niedrig priorisiert wird (Rubrik bekannte Fehler).
Ordnungsgemäßheit
ISTQB: Die Software muss den betreffenden Gesetzen genügen.
Beispiel: Personendaten zu speichern ohne ein Konzept vorzusehen, wie nicht mehr zulässige Daten gelöscht werden, dürfte dem EU-DSGVO widersprechen. Die Anforderung kann in der Hinsicht unvollständig sein und muss ergänzt werden.
Sicherheit
ISTQB: Eigenschaften der Software, die sich auf die Fähigkeit beziehen, nicht autorisierte Zugriffe auf Programme oder Daten zu verhindern, unabhängig davon, ob diese versehentlich oder vorsätzlich erfolgen.
Eine absolute Software-Sicherheit wird es nicht geben, denn mutwillige, starke Hacker finden mit genügend Aufwand meistens einen Weg, die Sicherheitsvorkehrungen zu überwinden . Die bekannten Sicherheitsvorschriften sollten betrieblich eingehalten werden, um es Eindringlingen so schwer zu machen, dass sie nach paar Versuchen davon ablassen.