810 Stimmen

Was sind Unit-Tests, Integrationstests, Smoke-Tests und Regressionstests?

Was sind Unit-Tests, Integrationstests, Smoke-Tests und Regressionstests? Was sind die Unterschiede zwischen ihnen und welche Tools kann ich für jedes von ihnen verwenden?

Ich verwende zum Beispiel JUnit y NUnit para Unit-Tests y Integrationsprüfung . Gibt es Werkzeuge für die letzten beiden, Rauchprüfung o Regressionstests ?

3 Stimmen

2 Stimmen

Andere haben bereits gut geantwortet, aber ich möchte hinzufügen, dass ich persönlich denke, dass Smoke Test und Regression Test überflüssig sind. Sie tun das Gleiche: Sie testen, um sicherzustellen, dass Änderungen am System nichts kaputt machen.

16 Stimmen

Ich denke, sie unterscheiden sich deutlich von Regressionstests. Ich denke, es handelt sich um absichtlich "leichtgewichtige" Schnelltests, die zu Beginn durchgeführt werden, um Zeit zu sparen, denn wenn einer dieser Tests fehlschlägt, weiß man, dass es sich nicht lohnt, sich mit weiteren Tests zu beschäftigen. Sie können auch vor der Bereitstellung (wir führen ein Upgrade von v1 auf v1.1 durch, also prüfen Sie, ob v1 installiert ist) und nach der Bereitstellung Rauch-Tests durchführen.

3voto

mohit sarsar Punkte 169

Einheitliche Prüfung

Unit-Tests werden in der Regel von den Entwicklern durchgeführt, während die Tester teilweise in diese Art von Tests eingebunden sind, bei denen die Tests Einheit für Einheit durchgeführt werden. In Java JUnit Mit Hilfe von Testfällen kann auch geprüft werden, ob der geschriebene Code perfekt konzipiert ist oder nicht.

Integrationstests:

Diese Art des Testens ist nach dem Unit-Test möglich, wenn alle/einige Komponenten integriert sind. Diese Art des Testens stellt sicher, dass die Komponenten, wenn sie integriert sind, die Arbeitsfähigkeiten oder Funktionalitäten der anderen Komponenten nicht beeinflussen.

Rauchtest

Diese Art von Tests wird zuletzt durchgeführt, wenn das System erfolgreich integriert wurde und bereit ist, auf dem Produktionsserver zu laufen.

Diese Art von Tests stellt sicher, dass alle wichtigen Funktionen von Anfang bis Ende einwandfrei funktionieren und das System bereit für den Einsatz auf dem Produktionsserver ist.

Regressionsprüfung

Diese Art von Tests ist wichtig, um zu prüfen, dass keine unbeabsichtigten/unerwünschten Fehler im System vorhanden sind, wenn der Entwickler einige Probleme behoben hat. Diese Tests stellen auch sicher, dass alle Fehler erfolgreich behoben wurden und somit keine weiteren Probleme auftreten.

0 Stimmen

Das ist die Antwort auf die Überschrift, nicht aber auf die Frage nach den Werkzeugen für die letzten beiden Testarten, für Smoke-Tests oder Regressionstests. Außerdem wiederholt er frühere Antworten - er könnte durch die Beantwortung der Frage nach den Werkzeugen einzigartig werden.

3voto

Radostta Punkte 31

Smoke- und Sanity-Tests werden beide nach einem Software-Build durchgeführt, um festzustellen, ob mit dem Testen begonnen werden soll. Der Sanity-Test kann nach dem Smoke-Test durchgeführt werden, muss aber nicht. Sie können getrennt oder gleichzeitig durchgeführt werden, wobei Sanity unmittelbar nach Smoke erfolgt.

Da Sanity-Tests tiefgreifender sind und mehr Zeit in Anspruch nehmen, lohnt es sich in den meisten Fällen, sie zu automatisieren.

Die Durchführung von Smoke-Tests dauert in der Regel nicht länger als 5-30 Minuten. Er ist allgemeiner gehalten: Er prüft eine kleine Anzahl von Kernfunktionen des gesamten Systems, um sicherzustellen, dass die Stabilität der Software für weitere Tests ausreicht und dass keine Probleme auftreten, die die Ausführung der geplanten Testfälle blockieren.

Die Sanitätsprüfung ist ausführlicher als die Rauchprüfung und kann je nach Umfang des neuen Gebäudes zwischen 15 Minuten und einem ganzen Tag dauern. Es handelt sich dabei um eine speziellere Art von Akzeptanztests, die nach einer Weiterentwicklung oder einem erneuten Test durchgeführt werden. Dabei werden die Kernfunktionen bestimmter neuer Funktionalitäten und/oder Fehlerbehebungen zusammen mit einigen eng damit verbundenen Funktionen geprüft, um sicherzustellen, dass sie gemäß der erforderlichen Betriebslogik funktionieren, bevor Regressionstests in größerem Umfang durchgeführt werden können.

1 Stimmen

Das ist etwas ausführlicher, aber nicht über Werkzeuge für die beiden letztgenannten Arten von Tests, für Rauchprüfung o Regressionstests . Sie könnte durch die Beantwortung der Frage nach den Werkzeugen einzigartig gemacht werden.

2voto

Sanyal Punkte 816

Regressionstest - Ist eine Art von Softwaretest, bei dem wir versuchen, den Fehler abzudecken oder zu umgehen. reparieren . Die Funktionalität rund um die Fehlerbehebung sollte durch die bereitgestellte Lösung nicht verändert werden. Probleme, die in einem solchen Prozess gefunden werden, werden als Regressionsprobleme .

Rauchtest: Ist eine Art von Test, der durchgeführt wird, um zu entscheiden, ob der Build/die Software für weitere QA-Tests akzeptiert wird.

2voto

Krunal Punkte 51

Einheitstests: Es führt immer von Entwickler nach ihrer Entwicklung getan, um herauszufinden, Problem von ihrer Prüfung Seite, bevor sie eine Anforderung bereit für QA.

Integrationstests: Das bedeutet, dass der Tester die Verifizierung von Modul zu Untermodul überprüfen muss, wenn einige Daten/Funktionsausgaben von einem Modul zu einem anderen Modul übertragen werden. Oder in Ihrem System, wenn Sie ein Tool eines Drittanbieters verwenden, das Ihre Systemdaten für die Integration nutzt.

Smoke Testing: Tester, die das System für High-Level-Tests überprüfen und versuchen, Fehler zu finden, bevor Änderungen oder Code live gehen.

Regressionstests: Die Tester führten Regressionstests zur Überprüfung der bestehenden Funktionalität aufgrund von Änderungen durch, die in das System implementiert wurden, um neue Verbesserungen oder Änderungen am System vorzunehmen.

0 Stimmen

Müssen wir nicht erst den Test erstellen, bevor wir die eigentliche Entwicklung durchführen?

0 Stimmen

@VinShahrdar , Sprechen Sie über Unit-Tests?

0 Stimmen

Ja. Normalerweise erstelle ich meine Unit-Tests, bevor ich den Produktionscode schreibe. Das ist, wie Sie es tun sollen, richtig?

1voto

uriDium Punkte 12771

Es gibt bereits einige gute Antworten, aber ich würde sie gerne weiter verfeinern:

Unit-Tests sind hier die einzige Form von White-Box-Tests. Die anderen sind Blackbox-Tests. White-Box-Testing bedeutet, dass Sie die Eingabe kennen, das Innenleben des Mechanismus kennen und untersuchen können und die Ausgabe kennen. Bei Black-Box-Tests weiß man nur, was die Eingabe ist und was die Ausgabe sein soll.

Der Unit-Test ist hier also eindeutig der einzige White-Box-Test.

  • Unit-Tests testen bestimmte Teile des Codes. In der Regel Methoden.
  • Bei Integrationstests wird geprüft, ob Ihre neue Software mit allen anderen Komponenten integriert werden kann.
  • Regressionstests. Das sind Tests, mit denen Sie sicherstellen, dass Sie nichts kaputt gemacht haben. Alles, was früher funktioniert hat, sollte auch heute noch funktionieren.
  • Der Rauchtest dient als Schnelltest, um sicherzustellen, dass alles in Ordnung ist, bevor man sich auf die gründlichere Prüfung einlässt.

6 Stimmen

Unit-Tests sind nicht unbedingt White-Box-Tests. Einige der besten Unit-Tests, die ich gesehen habe, sind im Wesentlichen Beispiele, die aus den Anforderungen abgeleitet sind und die erwarteten Ergebnisse unabhängig von den Implementierungskonzepten spezifizieren.

1 Stimmen

Hinzu kommt, dass Ihre Unit-Tests in Ihren Regressionstests enthalten sind, weshalb Regressionstests weder White- noch Blackbox-Tests sind. Ich würde sogar so weit gehen zu sagen, dass auch Integrations- und Smoke-Tests entweder White- oder Blackbox-Tests sein können.

1 Stimmen

Dem kann ich nicht zustimmen. Das Testen einer Entwurfsmusterimplementierung ist eine Form des Integrationstests und gehört zu den White-Box-Tests.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X