Testmethoden in der Softwareentwicklung

Das Testen von Software ist ein unerlässlicher Bestandteil der Qualitätssicherung der Softwareentwicklung. Hochqualitative (fehlerarme, stabile, usw.) sowie an den Anforderung orientierte Programme stellen Kunden zufrieden und sichern somit die Erteilung von Folgeaufträgen.

Tests bzw. Testmethoden sollen das gewährleisten. https://de.wikipedia.org/wiki/Softwaretest (16.08.2018)

Teststufen

Teststufen lassen sich z.B. aus dem V-Modell ableiten:


V-Modell

Abbildung 1: Stufen des V-Modells  


Komponententests

Komponententests (Unittests) testen automatisiert jede Softwarekomponente, indem jede Methode mit bestimmten Parametern aufgerufen wird, um sie auf den erwarteten Rückgabewert zu prüfen. Diese Tests werden durch die Entwickler implementiert (Testdriven Development).


Integrationstests

Integrationstests bzw. Interaktionstests testen auf die korrekte Zusammenarbeit verschiedener Komponenten bzw.Teilsysteme. Hier stehen also Schnittstellen und korrekter Datenaustausch im Blickpunkt. Werden insbesondere bei kleineren Projekten häufig von Entwicklern selbst z.B. auf Basis von automatisierten Unittests realisiert.


Systemtests

Systemtests testen das gesamte System gegen funktionale Anforderungen (gewünschte Funktionalität) und nichtfunktionale Anforderungen (z.B. Zuverlässigkeit, Antwortzeitverhalten, Usability, etc.1).

Diese Tests werden i.d.R. auf einer Testumgebung, die die Produktivumgebung des Kunden simuliert) von speziellen Testern (möglichst nicht durch die Entwickler selbst) durchgeführt. Wie sich gezeigt hat, sind Entwickler in ihrer Betrachtungsweise nicht objektiv genug und rechnen nicht mit Fehlern, die sie ja selbst gemacht haben.


Abnahmetest

Ein Abnahmetest, Verfahrenstest, Akzeptanztest (User Acceptance Test) ist ein Test der gelieferten Software durch den Kunden bzw. Auftraggeber. Sie sind meist Voraussetzung für die Rechnungsstellung. Dieser Test sollte auf der Produktivumgebung (ev. mit Kopien von Echtdaten) durchgeführt werden.

Dem Abnahmetest könnten z.B. sog. Betatests (Feldtests) durch den Kunden vorausgehen, die eine Vorabversion der Software zum Gegenstand haben.


Die Grenzen zwischen den Teststufen sind häufig unscharf und Tests lassen sich auf vielfältige Art und Weise klassifizieren und benennen2.

Entscheidend ist, dass bereits mit Projektbeginn getestet wird. Erfolgreiche Tests finden Fehler. Je früher das geschieht, um so mehr Zeit, Geld und Ärger wird gespart. Bereits in der Designphase kann dem Kunden z.B. eine funktionslose Eingabemaske gezeigt werden, an Hand derer erkannt wird, dass bestimmte Parameter nicht berücksichtigt wurden (eine statische Testmethode: Review3).

Das Horrorszenario schlechthin ist ja, dass der Kunde erst beim Abnahmetest feststellt: „Ja so haben wir uns das eigentlich nicht vorgestellt!“


Last modified: Friday, 21 September 2018, 12:37 PM