it-swarm.com.de

Gerätetest? Integrationstest? Regressionstest? Abnahmeprüfung?

Gibt es jemanden, der diese Teststufen eindeutig definieren kann, da ich es schwierig finde, bei TDD- oder Unit-Tests zu unterscheiden? Bitte wenn jemand erläutern kann wie, wann diese umzusetzen sind?

75
Donny

Kurz:

nit Testing - Sie testen jedes einzelne Stück Code. Denken Sie an jede Datei oder Klasse.

Integrationstest - Wenn Sie mehrere Einheiten zusammenstellen, die miteinander interagieren, müssen Sie einen Integrationstest durchführen, um sicherzustellen, dass die Integration dieser Einheiten keine Fehler verursacht.

Regressionstests - Nach dem Integrieren (und möglicherweise dem Reparieren) sollten Sie Ihre Komponententests erneut ausführen. Dies ist ein Regressionstest, um sicherzustellen, dass durch weitere Änderungen keine bereits getesteten Einheiten beschädigt wurden. Der von Ihnen bereits durchgeführte Komponententest hat die Komponententests erstellt, die für Regressionstests immer wieder ausgeführt werden können.

Abnahmetests - Wenn ein Benutzer/Kunde/Unternehmen die Funktionalität erhält, führt er (oder Ihre Testabteilung) Abnahmetests durch, um sicherzustellen, dass die Funktionalität seinen Anforderungen entspricht.

Vielleicht möchten Sie auch White-Box- und Black-Box-Tests untersuchen. Es gibt auch Leistungs- und Lasttests sowie Tests der zu berücksichtigenden "Fähigkeiten".

99
mikey

Komponententest: Wenn dies fehlschlägt, werden Sie darüber informiert, welcher Teil Ihres Codes repariert werden muss.

Integrationstest: Wenn der Integrationstest fehlschlägt, werden Sie darauf hingewiesen, dass die Teile Ihrer Anwendung nicht wie erwartet zusammenarbeiten.

Akzeptanztest: Wenn der Test fehlschlägt, werden Sie darauf hingewiesen, dass die Anwendung nicht das tut, was der Kunde von ihr erwartet.

Regressionstest: Wenn der Test fehlschlägt, werden Sie darauf hingewiesen, dass sich die Anwendung nicht mehr wie früher verhält.

93
Mathias

Ich werde es versuchen:

  1. Komponententest: Ein Entwickler würde einen schreiben, um eine einzelne Komponente oder Klasse zu testen.
  2. Integrationstest: Ein umfangreicherer Test, der mehrere Komponenten oder Pakete umfasst, die zusammenarbeiten müssen
  3. Regressionstest: Wenn Sie eine einzelne Änderung an einer Anwendung vornehmen, müssen Sie ALLE Tests erneut ausführen und ALLE Funktionen überprüfen.
  4. Akzeptanztest: Endbenutzer oder QS führen diese vor der Abmeldung durch, um die Zustellung einer Anwendung zu akzeptieren. Es heißt "Die App hat meine Anforderungen erfüllt."
11
duffymo

Hier ist eine einfache Erklärung für jeden der genannten Tests und wann sie anwendbar sind:

Komponententest Ein Komponententest wird für eine in sich geschlossene Einheit (normalerweise eine Klasse oder Methode) durchgeführt und sollte immer dann durchgeführt werden, wenn eine Einheit implementiert oder die Aktualisierung einer Einheit abgeschlossen wurde.

Dies bedeutet, dass es immer dann ausgeführt wird, wenn Sie eine Klasse/Methode geschrieben, einen Fehler behoben oder die Funktionalität geändert haben ...

Integrationstest Der Integrationstest zielt darauf ab zu testen, wie gut mehrere Einheiten miteinander interagieren. Diese Art von Test sollte immer dann durchgeführt werden, wenn eine neue Kommunikationsform zwischen Einheiten hergestellt wurde oder sich die Art ihrer Interaktion geändert hat.

Dies bedeutet, dass es ausgeführt wird, wenn eine kürzlich geschriebene Einheit in den Rest des Systems integriert wird oder wenn eine Einheit, die mit anderen Systemen interagiert, aktualisiert wurde (und ihre Komponententests erfolgreich abgeschlossen hat).

Regressionstest Regressionstests werden immer dann durchgeführt, wenn Änderungen am System vorgenommen wurden, um sicherzustellen, dass keine neuen Fehler aufgetreten sind.

Dies bedeutet, dass es nach allen Patches, Upgrades und Fehlerkorrekturen ausgeführt wird. Regressionstests können als Sonderfall von kombiniertem Unit-Test und Integrationstest angesehen werden.

Abnahmetest Abnahmetests werden immer dann durchgeführt, wenn geprüft werden soll, ob ein Teilsystem (möglicherweise das gesamte System) seine gesamten Spezifikationen erfüllt.

Dies bedeutet, dass es hauptsächlich ausgeführt wird, bevor ein neues Ergebnis fertiggestellt oder der Abschluss einer größeren Aufgabe angekündigt wird. Betrachten Sie dies als Ihre letzte Prüfung, um festzustellen, ob Sie Ihre Ziele wirklich erreicht haben, bevor Sie zum Kunden/Chef laufen und den Sieg verkünden.

Das habe ich zumindest so gelernt, obwohl ich mir sicher bin, dass es andere gegensätzliche Ansichten gibt. Wie auch immer, ich hoffe das hilft.

11
Agentlien

nit Test: Funktioniert meine Einzelmethode korrekt? (KEINE Abhängigkeiten oder verspottete Abhängigkeiten)

Integrationstest: funktionieren meine beiden separat entwickelten Module korrekt, wenn zusammengesetzt?

Regressionstest: Habe ich etwas kaputt gemacht, indem ich neuen Code geändert/geschrieben habe? (Das Ausführen von Unit-/Integrationstests mit jedem Commit ist ein technisch (automatisierter) Regressionstest.) Häufiger im Rahmen der Qualitätssicherung eingesetzt - manuell oder automatisiert.

Abnahmetest: Prüfung durch den Kunden, dass er die gelieferte Software "akzeptiert"

9
Andrejs