Diskussion:Regressionstest
Begründung für Überarbeitungswunsch: Unverständlich, da ohne jede Zuordnung zu einem Wissensgebiet (Um was für Tests geht es hier überhaupt???) Superbass 13:54, 26. Okt 2004 (CEST)
Ich hab das Ganze zwar nicht verfasst, beschäftige mich aber gerade mit dem Thema. Also eine Zuordnung kann man grob zu Qualitätssicherung und speziell zu Software-Tests vornehmen. Da ich mich nur mit Softwaretests befasse, weiß ich nicht, ob Regressionstests bei anderen Produkten auch eine Rolle spielen (wahrscheinlich eher nicht). --141.113.101.23 13:59, 18. Apr 2005 (CEST)
Find ich gut, das jemand das Thema schonmal aufgegriffen hat.
Den Zusatz zu Echtzeitsystemen würde ich allerdings erstmal ganz entfernen. Die angeführten Gründe, weshalb man Regressionstests in Real-time-Anwendungen nicht durchführen kann sind nicht nachvollziehbar und auch nicht spezifisch für diese Klasse von Anwendungen. Die gleichen Probleme bestehen auch für alle anderen Typen von Anwendungen. Man sollte hier also eher auf die verschiedenen Problematiken, die bei Regressionstests im allgemeinen bestehen, hinweisen.
Es gibt auch für Echtzeitsysteme Testumgebungen. Hier [1] kann man sich scheinbar einen ganz guten Überblick verschaffen. Wichtig ist in diesem Zusammenhang das Thema ASQ, wie auch schon angedeutet wird.
Des weiteren wären zu nennen: - TTCN3 - UML 2 Testing Profile - und als Umgebung natürlich JUnit - und TPTP ([2]).
Wenn ich Zeit habe werde ich mich daran mal beteiligen.
Abschnitt gelöscht (wieder hergestellt)
[Quelltext bearbeiten]Der Abschnitt "Im Gegensatz zu Funktionsorientierten Testtechniken wird die Korrektheit eines Tests 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." ist sachlich falsch und wurde darum von mir entfernt:
- Der Regressionstest ist keine Testtechnik (besser wäre Testmethode) wie die verschiedenen funktionsorientierten (nicht zu vergessen die strukturorientierten) Testverfahren, sondern bedeutet lediglich soviel wie "Wiederholungstest"
- Die Korrektheit der Testergebnisse (bitte nicht "eines Tests") wird nicht durch den erwähnten Vergleich mit den Ausgaben des Vorgängers oder allgemein eines anderen Systems ermittelt (Das nennt man back-to-back-Test). Es wäre z.B. bei der Behebung von Fehlern fatal, wenn der dann folgende Regressionstest als erfolgreich absolviert gälte, sofern die Ausgaben identisch sind. Vielmehr wird auch beim Regressionstest gegen die Soll-Ergebnisse geprüft - und die können gleich geblieben sein oder sich geändert haben. Der Kern des Regressionstests ist einfach, dass man die mühsam aufgebauten Testfälle (ich sprech hier aus Erfahrung) weitere Male benutzt.
- Im übrigen werden Regressionstests durchaus auch manuell durchgeführt - professionelle Testtools z.B. von Mercury sind unglaublich teuer und lohnen oft nicht. JUnit ist für kleine Java-Anwendungen ganz nett, aber für den professionellen Einsatz bei weitem nicht ausreichend.
-- Gadelor 01:11, 16. Jun 2005 (CEST)
- Hallo Gadelor,
- ich war eine zeitlang nicht aktiv (Diplomprüfungen), deshalb erst jetzt meine Antwort auf deine Kritik und Löschung des Abschnitts.
- zu 1.
- Testtechnik und Testmethode sind synonym
- Regressiontests gehören innerhalb der Gruppe der dynamischen Testtechniken zu den Diversifizierenden Tests
- Korrektheit des Testergebnisses ? ist genauso umgangssprachlich - das Ergebnis ist wertfrei
- zu 2.
- Du vermischt hier verschiedene Testtechniken mit dem Regressiontests. Der Regressionstest soll "nachweisen, dass Modifikationen von Software keine unerwünschten Auswirkungen auf die Funktionalität besitzen." ([1], S. 187) Wenn du z.B. eine Methode änderst, weil du einen Fehler behebst, musst du natürlich die Testfälle anpassen. Das hat jedoch nichts mit einen Regressiontest zu tun. Der testet den unveränderten Rest neu, um eventuelle (nicht bedachte) Seiteneffekte aufzudecken.
- Wiederverwendung von Testfällen ist die Basis für die wirtschaftliche Nutzung aller auf Testfälle beruhenden Testtechniken
- zu 3.
- manuelle Regressiontest sind nach meiner Definition der Regressiontests nicht sinnvoll
- Da es bei den verwendeten Begriffen durchaus verschiedene Schulen geben wird, hier meine verwendete Literatur:
- ["Software-Qualität: Testen, Analysieren und Verifizieren von Software",Liggesmeyer, 2002; Spektrum, Akademischer Verlag]
- Ich habe den Abschnitt wieder eingefügt, da er von mir inhaltlich schlüssig zu den vorherigen Text geschrieben wurde. Solltest du eine weitere verbreitete Definition von Regressiontest kennen, so sollten wir beide Definitionen in den Arktikel einarbeiten.
- Gruß Taschenrechner 20:03, 11. Jul 2005 (CEST)
- Hallo Taschenrechner,
- Ich hab mal bei Liggesmeyer nachgeschaut; der verwendet den Begriff tatsächlich so, wie du geschrieben hast. Das weicht ziemlich stark von der Verwendung des Begriffs in der Praxis ab, wo er schlicht und einfach synonym mit "Wiederholungstest" gebraucht wird. Liggesmeyer reduziert das nun auf den Fall, wo eine laufende Anwendung erweitert oder korrigiert wird und per R-Test festgestellt wird, ob von der Änderung nicht betroffene Anwendungsteile unveränderte Ergebnisse bringen.
- Ein anderer Fall ist jedoch mindestens genau so häufig: Fehler werden während des Entwicklungsprozesses gefunden und behoben und die Testfälle werden wiederholt, um zu prüfen, ob die Fehlerbereinigung geklappt hat und keine neuen Fehler eingeschleppt wurden.
- Wiederholungstests als "Testmethode" zu bezeichnen, halte ich für eindeutig zu hoch gegriffen, auch wenn sich mit "diversifizierender Test" ein Lumpensammler-Label dafür findet. Im allgemeinen bezeichnet man mit Testmethode die strukturierte Vorgehensweise, mit der man seine Testfälle systematisch ermittelt, und nicht die schlichte Wiederholung von Testskripten.
- Im allgemeinen testest du sowohl im ersten Test wie auch in den folgenden Wiederholungstests gegen die Sollergebnisse. Wer anders vorgeht und gegen die Ist-Ergebnisse des ersten Durchlaufs testet, macht in meinen Augen einen methodischen Fehler. Praktisch gesehen ist die Unterscheidung nur dort relevant, wo beim ersten Testdurchlauf Fehler aufgetreten sind.
- Einen Gegensatz zu funktionsorientierten Tests sehe ich nicht. Die einzelnen Testfälle eines R-Tests können durchaus funktionsorientiert ermittelt worden sein. Oder eben auch mit strukturorientierten oder datenorientierten Methoden.
- Ob ein Testwerkzeug "sinnvoll" und ein manueller R-Test "nicht sinnvoll" ist, ist wohl eine Frage der Definition von "sinnvoll". Gemeinhin wird eher die Frage geprüft, ob sich die Investition wirtschaftlich rechnet. Bei kleinen und mittelgroßen Organisationen ohne eigenes spezialisiertes QM-Team ist das meistens nicht der Fall. Dennoch sind auch dort Regressionstests nötig und werden eben manuell durchgeführt.
- Ich persönlich unterscheide schon genau zwischen der Korrektheit eines Tests und der Korrektheit der Testergebnisse. Korrektheit eines Tests bedeutet für mich: Ist er geeignet, Fehler zu finden? Also etwa: Ist die Teststrategie richtig? Sind die Kontrollpunkte richtig gesetzt? Sind die einzelnen Testfäle methodisch sauber ermittelt und vollständig? Sind die Sollergebnisse richtig spezifiziert? Ist er entsprechend den Vorgaben durchgeführt worden? Waren Randbedingungen und Testumgebung ok? Ist er sauber dokumentiert?
- Dazu fällt mir gerade noch ein, dass funktionale Korrektheit im allgemeinen nur eins der Qualitätsmerkmale ist, die bei Tests überprüft werden. Performance, Usability und Security sind häufig auch Gegenstand von Tests, ebenso die Portabilität (wenigstens im Client-Teil von Anwendungen). Auch solche Tests werden wiederholt, nachdem man versucht hat, gefundene Abweichungen von den Vorgaben zu eliminieren.
- Soweit in aller Kürze. Ich halte deinen Text weiterhin für teilweise falsch, aber ich hab im Moment sehr wenig Zeit - ironischerweise deshalb, weil ich gerade die Verantwortung für den Test einer großen Anwendung bei einem meiner Kunden übernommen habe und da läuft im nächsten halben Jahr nichts unter 10 Stunden am Tag. Auf eine längere Diskussion hier kann ich mich daher nicht mehr einlassen, sondern werde erstmal nichts mehr fürs Wiki machen. Sei's drum:
- Vielleicht denkst du einfach nochmal in Ruhe über die Punkte nach und änderst den Text dann, wenn du möchtest und die Zeit dafür findest. Sonst lass ihn so - davon geht die Welt auch nicht unter.
- Gruß, -- Gadelor 23:41, 11. Jul 2005 (CEST)
- Hallo Gadelor,
- danke für deine schnelle Antwort. Das finden der richtigen Worte für ein Artikel ist mühsam, aber es gibt hier zum Glück keine verbindlichen Termine. Ich gebe dir recht mit der Unterscheidung Korrektheit eines Tests und der Korrektheit der Testergebnisse, habe dies auch entsprechend gleich geändert.
- Funktions- und Strukturorientierte Techniken dienen zur systematischen Findung von Testfällen und bieten die Möglichkeit der Messung der "Vollständigkeit" (man beachte die Anführungsstriche :-)) einer Testsuite. Um einen Regressionstest durchführen zu können, benötigt man , wie du schon gesagt hast, Testfälle die man anhand einer anderen Technik gefunden hat. Vieleicht sollte man diese Diskussion in einen Artikel über Testtechniken packen. Allgemein besteht zu diesen Themen in der Wikipedia noch viel Schreibbedarf.
- Ich habe versucht die zwei Definitionen in den Artikel zu packen - über dein Feedback wäre ich dankbar.
- Gruß Taschenrechner 11:33, 12. Jul 2005 (CEST)
Weitere Fragen
[Quelltext bearbeiten]Also ich finde es allerdings auch schwierig, die Definition von Liggesmeyer korrekt einzuordnen. Prinzipielle ist es ja richtig, dass bei Regressionstests gegen nicht gegen irgendeine Spezifikation, sondern gegen das Testergebnis des Referenztestes getestet wird. Der Referenztest beruht allerdings natürlich auf der Spezifikation, weshalb man bei seiner Wiederholung letztlich trotzdem (wenn auch über Umwege) gegen die Spezifikation testet.
Aber eine konkrete Frage habe ich ohnehin noch. Können nicht auch Unit- (bzw.Modul-) Test wiederholt und damit zu Regressionstests werden? Dann wäre doch die Zuordnung zu den funktionsorientierten Testverfahren ohnehin nicht vollständig.
Allerdings ist zu bezweifeln, dass Regressionstests auf Modulebene sinnvoll sind, da die Module (wenn sie nicht im Rahmen der Wartung oder Weiterentwicklung verändert wurden) bereits in ihrer Struktur getestet wurden. Aber möglich wären sie doch schließlich, oder?Zumindest habe ich keine Defintion gefunden, die Regressionstest auf Modulebene ausschließt. --62.180.160.182 20:04, 13. Sep 2005 (CEST)
- Hallo, zu deiner konkreten Frage: Eine Zuordnung des Regressionstest zu den funktionsorientierten Testverfahren, findet nicht statt. Der "Praxisbegriff" macht keine Zuordnung, und der Liggesmeyer-Begriff benutzt die funkto. Testv. nur zur Abgrenzung. Wiederholen sollte man jede Art von Test die hilft Seiteneffekte nach Änderungen aufzuspüren, also auch Unit-Tests, Integrationstest usw. Gruß --Taschenrechner 09:38, 14. Sep 2005 (CEST)
- Und wie sieht es eigentlich mit dem Begriff Regression aus? Häufig habe ich (in der Praxis) die Verwendung als "Wiederholung" erlebt. In einer Diplomarbeit habe ich jedoch gelesen, das Regression den Qualitätsrückgang durch die vorgenommen Änderungen (bzw. die dadurch entstandenen neuen Fehler) beschreibt. Und der Regressionstests eben auf dieses Qualitätsrückgang testet.
--62.134.88.27 06:47, 15. Sep 2005 (CEST)
- Der Begriff Regression lässt sich mit Rückschritt oder Verfall übersetzen Die genaue Wortherkunft kenne ich nicht. Der Regressionstest ist, nach der Praxisdef., eine Wiederholung von Testfällen um Seiteneffekte (den Verfall, Qualitätsrückgang) nach Änderungen aufzuspüren. Gruß --Taschenrechner 12:47, 15. Sep 2005 (CEST)
Echtzeitsysteme
[Quelltext bearbeiten]Ich finde die Verwendung von Echtzeitsystemen im Zusammenhang mit Regressionstests etwas lasch formuliert.
Ein Echtzeitsystem im Allgemeinen zeigt nicht per se ein nicht reproduzierbares Verhalten.
Zu unterscheiden sind insbesondere deterministische und nicht deterministische Systeme.
Ansonsten: guter Artikel, danke :) (nicht signierter Beitrag von 212.189.23.66 (Diskussion) 08:52, 6. Jul 2011 (CEST))
Begriff "Regression"
[Quelltext bearbeiten]Ich finde es seltsam, dass sich offenbar niemand die Frage stellt, was Regressionstests eigentlich mit "Rückschritt" bzw. "zurückschreiten" zu tun haben. Schließlich ist es elementare Bestandteil ihrer Bezeichnung.
Häufig findet man im Testumfeld Aussagen wie: "Wir testen regressiv" oder "Unsere Testfälle sind regressionsfähig". Aber wie soll man solche Aussagen verstehen? "Wir testen zurükschreitend" bzw. "Unsere Testfälle sind rückschrittfähig".
Falsch ist wohl insbesondere der Gedanke, der Begriff "Regression" beziehe sich auf die Wiederholung von Testfällen. Denn hier findet ja keinerlei Rückschritt statt. Im Gegenteil. Die per Regressionstest getestete Version ist in der Regel (und nur dann ist der Regressionstest sinnvoll) schon ein Fortschritt (d.h. eine Weiterentwicklung) gegenüber der letzten Testdurchführung.
Die einzige schlüssige Erklärung die mir für diesen Begriff bekannt ist (leider habe ich die Quelle nicht mehr zur Hand) ist folgende: "Durch Änderungen an einer Software (z.B. Funktionale Erweiterung, BugFixing, ...) kann Fehlverhalten in anderen Komponenten verursacht bzw. (wenn zuvor bereits vorhanden aber maskiert) freigesetzt werden. Mit der Wiederholung von in früheren Phasen/Releases bereits durchgeführten Testfällen prüft man daher, ob die vorgenommenen Änderungen in den unveränderten Softwarefunktionen zu einem Rückschritt der Qualität geführt haben." (nicht signierter Beitrag von 195.88.117.31 (Diskussion) 17:19, 2. Aug. 2011 (CEST))
- hallo ,
- die definition, wo immer du sie auch her hast, find ich am verständlichsten und auch logischten. sie trägt sehr zum verständis über regressionstests bei. da sie noch nicht im
- arikel eingewoben ist sollte darüber nachgedacht werden sie hinzuzufügen (nicht signierter Beitrag von 141.76.8.138 (Diskussion) 16:41, 6. Jun. 2012 (CEST))
Vergleich mit Retest
[Quelltext bearbeiten]Gibt es einen Unterschied zum Retest? Wenn ja, kann der hier mit aufgenommen werden? Falls nein, können die Artikel ja zusammengelegt werden.
DasBKB (Diskussion) 18:07, 6. Jun. 2013 (CEST)
Gegensätzliche Defintiion - ich sehe da keine Gegensätze
[Quelltext bearbeiten]Wenn ich den Absatz "Im Gegensatz dazu ordnet Liggesmeyer ..." versuche intensiv zu verstehen, fällt es mir schwer den vermeintlichen Gegensatz festzustellen. Liggesmeyer versucht in seinem Werk den Begriff "Regressionstest" formal zu beschreiben. Es ist aus meiner Sicht aber nur bestätigend für die Absätze darüber und kein Gegensatz.
Aus meiner Sicht entsteht dieser Gegensatz in den Köpfen des Lesers, weil die Literatur das bekannte und gefühlte Definiton in derart hochgestochenen formalisiert hat, dass es widersprüchlich klingt. Ich würde den kritisierten Absatz einfach streichen - nicht weil er falsch ist, sondern weil er nichts zur Sache tut.
Lest mal die englische Seite. Die Idee es gäbe mehrere Definitionen von Regressionstest kommt da gar nicht auf (ich könnte wetten das Prof. Liggesmeyer in keiner Sprache außer der Deutschen überhaupt Erwähnung findet). D.h. auf internationaler Ebene ist diese Definition entweder nicht als Widerspruch wahrgenommen worden (meine Annahme) oder sie war irrelevant. In beiden Fällen können wir den Absatz streichen. Etherial (Diskussion) 04:33, 20. Mär. 2018 (CET)