Funktionale Tests

R 2.0.0

Was ist ein funktionaler Test?

Was ist ein funktionaler Test?

Testen, welches durchgeführt wird, um die Erfüllung der funktionalen Anforderungen durch eine Komponente oder ein System zu bewerten.

Beschreibung

Ein funktionaler Test bewertet „was“ das System tun soll.

Funktionale Tests fassen alle Testmethoden zusammen, mit Hilfe derer das von außen sichtbare Ein-/Ausgabeverhalten eines Testobjekts geprüft wird. Zur Erstellung von funktionalen Testfällen werden die Black-Box-Verfahren eingesetzt.

Als Testbasis bzw. Referenz für das Sollverhalten dienen funktionale Anforderungen. Eine funktionale Anforderung ist eine Aussage darüber, wie sich ein System verhalten muss. Es definiert, was das System tun soll, um die Bedürfnisse oder Erwartungen des Benutzers zu erfüllen. Funktionale Anforderungen können als Merkmale betrachtet werden, die der Benutzer erkennt. Ihre Umsetzung ist Voraussetzung dafür, dass das System überhaupt einsetzbar ist. Ob und wie gut ein (Teil-)System seine funktionalen Anforderungen erfüllt, wird auch als dessen "funktionale Eignung" bezeichnet und ist ein Qualitätskriterium aus dem Produktqualitätsmodell nach der ISO 25010.

Beispiele für funktionale Anforderungen

A 100

Der Anwender kann ein Fahrzeugmodell aus dem jeweils aktuellen Modellprogramm zur Konfiguration auswählen.

A 101

Für ein ausgewähltes Modell wird die Lieferbare Zusatzausstattung angezeigt.

A 102

Zu der jeweils ausgewählten Ausstattungskonfiguration wird laufen der Gesamtpreis gemäß aktueller Preisliste berechnet und angezeigt.

Tests, die funktionale Eigenschaften prüfen, werden ermittelt, indem zu jeder funktionalen Anforderung mindestens ein Testfall abgeleitet wird.

Arten von funktionalen Tests

Es gibt eine Reihe von unterschiedlichen funktionalen Tests, die während des Entwicklungsprozesses eingesetzt werden, um die Qualität des gelieferten Produkts zu überprüfen und auf das gewünschte Niveau zu bringen. Es reicht nicht aus, den Entwickler selbst testen zu lassen. Ein erfahrener Entwickler schreibt Unit Tests und führt zudem Regressionstests für seinen Quellcode auch ohne zusätzliche Anweisung durch. Funktionale Tests hingegen sollten im gesamten Entwicklungszyklus einer Anwendung fest verankert und als eigenständige Aufgabe von einem erfahrenen, professionellen Tester durchgeführt werden.

Funktionales Testen kommt in jeder Teststufe zum Einsatz. Im Komponenten- und Integrationstests dient die technische Spezifikation der Komponente(n), ihre Schnittstellenspezifikation oder White Box Informationen als Testbasis. Im System- und Abnahmetest dienen funktionale Anforderungen als Testbasis.

Wenn ein Softwaresystem einen bestimmten Geschäftsprozess automatisieren oder unterstützen soll, ist das anwendungsfallbasierte oder geschäftsprozessbasierte Testen eine weitere gut geeignete Testmethode.

Auf Basis dieser Geschäftsprozessanalysen werden Testszenarien, die typische Geschäftsvorfälle nachbilden, als Testbasis aufgestellt. Die Priorität der Testszenarien richtet sich nach der Häufigkeit und Relevanz sowie nach dem Risiko der entsprechenden Geschäftsprozesse.

Während beim anforderungsbasierten Testen einzelne Systemfunktionen im Fokus stehen, sind dies beim geschäftsprozessbasierten Test Abläufe, also hintereinandergeschaltete Tests.

Exkurs: Agiles Testen

Im agilen Vorgehen ist es nicht erforderlich, alle Funktionen im Voraus zu beschreiben. Die Entwicklung wird auf Basis der User Stories gestartet. Wenn der agile Prozess professionell eingerichtet ist, wird der funktionale Aufbau während der Sprints sorgfältig dokumentiert. Durch die Integration von Tests in diesen Prozess wird ständig daran gearbeitet:

  • Funktionalitäten zu beschreiben

  • Testfälle zu erstellen

  • Tests durchzuführen

  • Ergebnisse auszuwerten

Funktionstests stellen somit nicht Schritte nach der Entwicklung, sondern eine kontinuierliche Abfolge von Beschreiben, Testen, Bewerten und Verbessern dar.

Quellen