Extreme Testing

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

Literatur

  • Scott Ambler: Extreme Testing. In: Dr. Dobb's Journal. 1. Juni 2003 (online ; Stand: 22. Januar 2008). 

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Extreme quality assurance — (XQA) are software testing and quality assurance methodologies that share similarities with Extreme ProgrammingExtreme QA encapsulates Extreme Testing techniques.ee also* Agile testing …   Wikipedia

  • Extreme Programming — (or XP) is a software engineering methodology (and a form of agile software development) Human Centred Technology Workshop 2005 , 2005, PDF webpage: [ftp://ftp.informatics.sussex.ac.uk/pub/reports/csrp/csrp585.pdf Informatics UK report cdrp585]… …   Wikipedia

  • Extreme Programming Practices — Extreme Programming (XP) is a popular agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme Programming has 12 practices, grouped into four areas, derived… …   Wikipedia

  • Extreme longevity tracking — is the tracing and recording of claims of exceptionally long human lives (longevity), as a branch of demography. Persons have been noted for tracking supercentenarians (those aged 110+) for hundreds of years; some included quite famous persons… …   Wikipedia

  • Testing Recall About Strange Happenings — (TRASH) is a quizbowl format, similar to College Bowl or NAQT, played in the United States and Canada. Teams of up to four players meet at tournaments to compete against each other, answering questions about pop culture and sports. The name is a… …   Wikipedia

  • Testing hypotheses suggested by the data — In statistics, hypotheses suggested by the data must be tested differently from hypotheses formed independently of the data.How to do it wrongFor example, suppose fifty different researchers, unaware of each other s work, run clinical trials to… …   Wikipedia

  • extreme beer — (eks.TREEM beer) n. A well aged, usually high priced beer with an exotic flavor or an exceptionally high alcohol content. extreme beer adj. Example Citation: Daniel Bradford describes the beverage in elegant language: Silky, rich, creamy, with… …   New words

  • extreme programming — noun A software engineering methodology that promotes agility and simplicity, typically involving pair programming and a cycle of frequent testing and feedback. Syn: XP …   Wiktionary

  • Unit testing — In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an… …   Wikipedia

  • Acceptance testing — of an aircraft catapult In engineering and its various …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”