Frage

Mir wurde beigebracht, dass ein Regressionstest ein kleines (nur genug, um Ihnen alles, was mit der Einführung einer Änderung oder neue Module nicht brechen zu beweisen) war Probe der Gesamttests. Allerdings diesem Artikel von Ron Morrison und Grady Booch macht mich denken anders:

  

Die gewünschte Strategie wäre, um jede Einheit zu bringen, zu einer Zeit, in einem, führen eine umfangreiche Regressionstests, korrigieren Sie eventuelle Mängel und dann auf die nächste Einheit fortzufahren.

Das gleiche Dokument sagt auch:

  

Sobald eine kleine Anzahl von Einheiten hinzugefügt wird, wird eine Testversion generiert und „Rauch getestet“, wobei eine kleine Anzahl von Tests, Vertrauen zu gewinnen ist, läuft, dass das integrierte Produkt funktioniert wie erwartet. Die Absicht ist weder gründlich testen Sie die neue Einheit (en) noch auf das gesamte System vollständig Regression getestet werden.

Wenn Rauch Tests beschreiben die Autoren sagen, dass dies:

  

Es ist auch wichtig, dass der Rauchtest eine schnelle Überprüfung des gesamten Systems durchführen, nicht nur die neue Komponente (n).

Ich habe noch nie „extensiven“ und „Regressionstest“ verwendet gesehen zusammen noch eine Regressionstest als „völlig Regressionstest des Gesamtsystem“ beschrieben. Regressionstests sollen so leicht und schnell wie möglich sein. Und die Definition von Rauchtest ist, was ich ein Regressionstest gelernt wurde.

Habe ich falsch verstehen, was ich gelehrt wurde? falsch unterrichtet wurde ich? Oder gibt es mehrere Interpretationen von „Regressionstest“?

War es hilfreich?

Lösung

Es gibt mehrere Interpretationen. Wenn Sie nur einen Fehler beheben, die einen kleinen Teil des Systems wirkt mich dann könnten Regressionstests sind nur eine kleine Reihe von Tests, die die Klasse oder das Paket in Frage ausüben. Wenn Sie einen Fehler sind Festsetzung oder das Hinzufügen einer Funktion, die größere Reichweite hat, dann sollten Sie Ihre Regressionstests größeren Umfang haben als auch.

Die „wenn es möglicherweise könnte brechen, testen“ Daumenregel gilt auch hier. Wenn eine Änderung in Foo Bar beeinflussen könnte, dann die Regressionen für beide ausgeführt werden.

Regressionstests überprüfen, um nur festzustellen, ob eine Änderung eine zuvor bestandene Prüfung verursacht scheitern. Sie können auf jeder Ebene (Einheit, Integration, System) ausgeführt werden sollen. Referenz .

Andere Tipps

Ich habe Regressionstests immer alle Tests zu verstehen, dessen Zweck es war, um sicherzustellen, dass vorhandene Funktionalität wird durch neue Änderungen nicht gebrochen. Das wäre keine Einschränkung für die Größe der Testsuite bedeuten.

Regression wird im Allgemeinen beziehen sich auf die gesamte Suite von Tests verwendet. Es ist das letzte, was QA tut vor einer Freigabe. Es wird verwendet, dass alles zu zeigen, die noch verwendet arbeiten arbeitet, in dem Maße, das möglich ist, zu zeigen. Nach meiner Erfahrung ist es in der Regel eine systemweite Reihe von Tests, unabhängig davon, wie klein die Änderung war (obwohl kleine Veränderungen einen Regressionstest nicht auslösen können).

Wo ich arbeite, Regressionstests werden für jede Anwendung am Ende jeder Veröffentlichung standardisieren. Sie sollen alle Funktionen testen, aber sie sind nicht zu fangen subtile Bugs entworfen. Also, wenn Sie ein Formular, das auf mich getan verschiedene Arten von Validierung hat zum Beispiel wäre eine Regressions Suite für das Formular zu bestätigen, dass jede Art der Validierung (Feldebene und Formularebene) durchgeführt wird und dass korrekte Informationen eingereicht werden . Es ist nicht jeden einzelnen Fall decken ausgelegt (das heißt was, wenn ich Feld verlassen Eine leere? Wie wäre Feld B? Es wird nur einer von ihnen testen und übernehmen die anderen arbeiten).

Doch auf dem aktuellen Projekt arbeite ich an, sind die Regressionstests viel gründlicher, und wir haben eine Verringerung der Anzahl der Defekte bemerkt zu werden während des Tests erhöht. Die beiden sind nicht notwendigerweise nahe stehende, aber wir es bemerken ziemlich konsequent.

mein Verständnis des Begriffs ‚Regressionstest‘ ist:

  • Unit-Tests geschrieben Funktionen zu testen, wenn das System erstellt wird,
  • , wenn Fehler entdeckt werden, werden mehr Unit-Tests geschrieben, um den Fehler zu reproduzieren und verifizieren, dass es korrigiert wurde
  • ein Regressionstest läuft der gesamte Satz von Tests beweisen, dass alles noch funktioniert, einschließlich, dass keine alten Fehler wurden wieder aufgetaucht [d zu beweisen, dass der Code nicht „regrediert“]
  • hat

In der Praxis ist es am besten, immer alle vorhandenen Unit-Tests ausgeführt werden, wenn Änderungen vorgenommen werden. das einzige Mal, dass ich mit einer Teilmenge von Tests stören würde, ist, wenn die volle Einheit Test-Suite „zu lang“ laufen dauert [wo „zu lang“ ist ziemlich subjektiv]

Starten Sie mit dem, was Sie versuchen zu erreichen. Dann tun, was Sie tun müssen, um dieses Ziel zu erreichen. Und dann Buzzword Bingo verwenden, um ein Wort zuweisen, was Sie eigentlich tun. Genau wie jeder andere auch :-) Die Genauigkeit ist nicht so wichtig.

  

... Regressionstest war eine kleine (nur genug, um zu beweisen, dass Sie nicht alles, was mit der Einführung einer Änderung brechen haben oder neue Module) Stichprobe der Gesamttests

Wenn eine kleine Probe von Tests genug ist, um zu beweisen, dass das System funktioniert, warum existiert der Rest der Tests selbst? Und wenn Sie denken, Sie wissen, dass Ihre Änderung nur eine Teilmenge der Funktionalität betroffen sind, warum dann tun Sie etwas testen, müssen nach der Änderung? Menschen fehlbar sind, weiß niemand wirklich, wenn etwas zu ändern etwas anderes bricht. IMO, wenn die Tests automatisiert sind, neu zu laufen sie alle. Und wenn sie nicht automatisiert sind, automatisieren sie. In der Zwischenzeit, re-run, was auch immer ist automatisiert.

Im Allgemeinen ist eine Teilmenge der Merkmals Tests für die neue Funktion in Version X ein Produkts eingeführt wird zur Grundlage der Regressionstests für die Version X + 1, X + 2, und so weiter. Im Laufe der Zeit können Sie die Zeit, die durch die Funktion / Regressionstests von stabilen Merkmalen genommen verringern, die von Regressionen nicht gelitten haben. Wenn ein Merkmal von vielen Regressionen leidet, dann kann es von Vorteil sein, den Schwerpunkt auf die Funktion zu erhöhen.

Ich denke, dass der Artikel mit Bezug auf dem umfangreichen Regressionstest "ist ein umfangreiches Set an (individuell einfach) Regressionstests ausgeführt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top