- Extreme Testing
-
Das Extreme Testing bzw. Extremtesten ist eine agile Methode, die das Testen vorrangig vor der Methodik der Programmierung in den Vordergrund der Softwareentwicklung stellt. Das Extreme Testing stellt somit eine Verstärkung der testgetriebenen Entwicklung dar.
Beim Extreme Testing wird die Anforderung der testgetriebenen Entwicklung, ständig lauffähige Software zu haben, zum Prinzip erklärt. Die Erfolgsquote der Unit-Tests wird bei 100 % gehalten. Die Implementierungs- und Erfolgsquote der Akzeptanztests dient als Metrik für die Geschwindigkeit des Entwicklungsvorgangs. Während die testgetriebene Entwicklung, z. B. das Extreme Programming, das Testen als Mittel zum Zweck der Programmerstellung sieht, steht beim Extreme Testing das Testen zentral im Vordergrund. Das Extreme Testing ist Bestandteil einiger agiler Prozesse.
Manchmal wird Extreme Testing auch nur scherzhaft als Bezeichnung für Testgetriebene Entwicklung oder Extreme Programming verwendet. Diese Verwendung ist jedoch nicht ganz korrekt. Eine Extreme Testing-Phase von einigen Wochen kann bei der Einführung von Extreme Programming verwendet werden, um die Software-Entwickler in testgetriebener Entwicklung zu schulen.
Inhaltsverzeichnis
Hintergrund
Ziel des Extreme Testing ist es nicht, die Fehlerzahl einer Software so niedrig wie möglich zu halten, also nahe Null: Dies ist in der Regel das grundsätzliche Ziel der Softwareentwicklung. Ziel ist es vielmehr, vorrangig den Testerfolg als Kriterium des Programmiererfolgs anzusetzen. Dazu befasst sich das Extreme Testing speziell und ausschließlich mit dem Testen als zentralem Aspekt der Softwareentwicklung.
Um das Projektziel zu erreichen, steht beim Extreme Testing nicht die Entwicklung des gewünschten Programms im Mittelpunkt der Programmierung, sondern die Entwicklung einer umfangreichen Testsammlung, die zu einem gut strukturierten Entwicklungsprozess und schnell zu einem nicht nur in der Funktion, sondern auch in der Fallunterscheidung umfassenden Entwicklungsergebnis führen soll. Anders als das Extreme Programming gestattet das Extreme Testing daher keine Testauslassungen. Auch Trivialtests müssen beim Extreme Testing programmiert und durchgeführt werden.
Kritische Betrachtung
Auch das Vorgehensmodell des Extreme Testing kann unausgewogen eingesetzt werden und dann scheitern. Das Extreme Testing birgt die Gefahr, mehr Zeit mit dem Testen von Software zu verbringen, als sinnvoll ist. Außerdem kann das Extreme Testing zu mangelnder Flexibilität führen, da Änderungen an der Spezifikation oder dem Entwurf auch eine Änderung an einer großen Anzahl an Tests nach sich ziehen. Da letztendlich dem Kunden kontinuierlich eine gut getestete Version übergeben werden sollte, sind eventuell spät auftretende „radikale“ Änderungen der Anforderungen kritisch zu hinterfragen.
Vergleich mit anderen Ansätzen
Im klassischen Modell der Software-Technik werden Tests parallel und unabhängig oder nachgeschaltet entwickelt. Tests werden als Mittel zur Qualitätssicherung (Erfüllungen von Kundenanforderungen, Stabilität, Zuverlässigkeit etc.), aber nicht als Mittel zur Software-Entwicklung selbst angesehen.
Bei der testgetriebenen Entwicklung wird das Testen als fester Bestandteil in die Entwicklung der Implementierung einbezogen. Tests dienen dazu, die Implementierung zu steuern und voranzutreiben. Dafür werden aus den Anforderungen (im Großen wie im Kleinen) Tests entwickelt und anschließend wird solange implementiert, bis die Tests bestätigen, dass die Anforderung erfüllt wird. Der Detaillierungsgrad der Tests hängt davon ab, für wie sinnvoll der Programmierer die Tests erachtet. Trivialtests werden auch bei der testgetriebenen Entwicklung nicht entwickelt.
Beim Extreme Testing werden für sämtliche Anforderungen und Komponenten sämtliche denkbaren Tests entwickelt, inklusive Trivialtests.
Siehe auch
- Software-Test
- Testautomatisierung
- Anforderungserhebung
- Softwarequalität
- ASQF (Arbeitskreis Software-Qualität und- Fortbildung e.V.)
Literatur
- Scott Ambler: Extreme Testing. In: Dr. Dobb's Journal. 1. Juni 2003 (online ; Stand: 22. Januar 2008).
Wikimedia Foundation.