Regressionstest

Regressionstest

Unter einem Regressionstest (v. lat. regredior, regressus sum = zurückschreiten) versteht man in der Softwaretechnik die Wiederholung aller oder einer Teilmenge aller Testfälle, um Nebenwirkungen von Modifikationen in bereits getesteten Teilen der Software aufzuspüren. Solche Modifikationen entstehen regelmäßig z. B. aufgrund der Pflege, Änderung und Korrektur von Software. Der Regressionstest gehört zu den dynamischen Testtechniken.

Aufgrund des Wiederholungscharakters und der Häufigkeit dieser Wiederholungen ist es sinnvoll, wenn für Regressionstests Testautomatisierung zum Einsatz kommt.

In der Praxis steht der Begriff des Regressionstests für die reine Wiederholung von Testfällen. Die Testfälle selbst müssen spezifiziert und mit einem Soll-Ergebnis versehen sein, welches mit dem Ist-Ergebnis eines Testfalls verglichen wird. Ein direkter Bezug auf die Ergebnisse eines vorherigen Testdurchlaufs findet nicht statt.

Im Gegensatz dazu ordnet Liggesmeyer (Lit.: Liggesmeyer) den Regressionstest in die Gruppe der Diversifizierenden Tests ein. Dadurch wird im Unterschied zu Funktionsorientierten Testtechniken die Korrektheit der Testergebnisse nicht anhand der Spezifikation entschieden, sondern durch Vergleich der Ausgaben der aktuellen Version mit den Ausgaben des Vorgängers. Ein Testfall gilt beim Regressionstest als erfolgreich absolviert, wenn die Ausgaben identisch sind.

Regressionstests in Echtzeitsystemen

Der Regressionstest stellt insbesondere bei nicht deterministischen Echtzeitsystemen ein wesentliches Problem dar, da in diesen Systemen eine Wiederholung des Tests streng genommen nicht gewährleistet ist. Zum einen führen typischerweise bereits geringfügige Änderungen an der Hardware des Systems zu einem veränderten Verhalten, andererseits sind hier im allgemeinen manuelle Eingriffe (zum Beispiel bei Telefonanlagen oder Flugüberwachungssystemen) notwendig, die wegen des menschlichen Zeitverhaltens nicht „regressionstestgerecht“ erfolgen können. Eine Lösung dieses Problems liegt in der Implementierung eines automatischen Testsystems. Der Aufwand hierfür wird jedoch aus folgenden Gründen meistens gescheut:

  1. das automatische Testsystem muss alle Funktionen des Prüflings abdecken
  2. das automatische Testsystem muss parallel zum Prüfling entwickelt werden
  3. das automatische Testsystem muss parallel zum Prüfling angepasst werden
  4. eine Hardware-Änderung führt zu einem Neu-Aufsetzen der Testergebnisse, gegen die verglichen werden soll.

Literatur


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

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

  • Extreme programming — (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die Extremprogrammierung… …   Deutsch Wikipedia

  • Extremprogrammierung — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Xtreme Programming — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Akzeptanztest (Softwaretechnik) — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Back-To-Back-Test — Dynamische Software Testverfahren sind bestimmte Prüfmethoden um beim Softwaretest Fehler in Software aufzudecken. Während bei statischen Verfahren die zu testende Software nicht ausgeführt wird, setzen dynamische Verfahren die Ausführbarkeit der …   Deutsch Wikipedia

  • Diversifizierender Test — Dynamische Software Testverfahren sind bestimmte Prüfmethoden um beim Softwaretest Fehler in Software aufzudecken. Während bei statischen Verfahren die zu testende Software nicht ausgeführt wird, setzen dynamische Verfahren die Ausführbarkeit der …   Deutsch Wikipedia

  • Dynamische Code-Analyse — Dynamische Software Testverfahren sind bestimmte Prüfmethoden um beim Softwaretest Fehler in Software aufzudecken. Während bei statischen Verfahren die zu testende Software nicht ausgeführt wird, setzen dynamische Verfahren die Ausführbarkeit der …   Deutsch Wikipedia

  • Funktionsorientierter Test — Dynamische Software Testverfahren sind bestimmte Prüfmethoden um beim Softwaretest Fehler in Software aufzudecken. Während bei statischen Verfahren die zu testende Software nicht ausgeführt wird, setzen dynamische Verfahren die Ausführbarkeit der …   Deutsch Wikipedia

  • Programmtest — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

  • Software-Test — Ein Softwaretest ist ein Test während der Softwareentwicklung, um die Funktionalität einer Software an den Anforderungen und ihre Qualität zu messen, und Softwarefehler zu ermitteln. Inhaltsverzeichnis 1 Definition 2 Ziele 3 Testplanung …   Deutsch Wikipedia

Share the article and excerpts

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