Testen
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:

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!“