Extreme Testing
aus Wikipedia, der freien Enzyklopädie
Das Extreme Testing ist eine agile Methode, die das Testen anstelle 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 |
[Bearbeiten] Hintergrund
Ziel des Extreme Testing ist, die Fehlerzahl einer Software so niedrig wie möglich zu halten, also nahe Null. Dies ist zwar in der Regel ein grundsätzliches Ziel der Softwareentwicklung; jedoch befasst sich das Extreme Testing speziell und ausschließlich mit diesem Aspekt der Softwareentwicklung. Um dieses Ziel zu erreichen, steht beim Extreme Testing nicht die Entwicklung des gewünschten Zielprodukts im Mittelpunkt der Programmierung, sondern die Entwicklung einer umfangreichen Testsammlung, die zu einem fehlerfreien Entwicklungsprozess führen soll. Anders als das Extreme Programming gestattet das Extreme Testing dabei keine Testauslassungen, auch Trivialtests müssen beim Extreme Testing programmiert und durchgeführt werden.
[Bearbeiten] Kritische Betrachtung
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.
[Bearbeiten] 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 für Anforderungen (im Großen wie im Kleinen) Tests entwickelt und anschließend solange implementiert, bis der Test bestätigt, dass die Anforderung erfüllt wird. Der Detaillierungsgrad der Tests hängt jedoch davon ab, für wie sinnvoll der Programmierer den Test 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.
[Bearbeiten] Siehe auch
- Software-Test
- Softwarequalität
- ASQF (Arbeitskreis Software-Qualität und- Fortbildung e.V.)