48 Stimmen

Was ist ein Rauchtest und was kann er mir bringen?

Ich dachte, ich hätte verstanden, dass ein Smoke-Server für die kontinuierliche Integration verwendet wird, um die Leistung und Testabdeckung eines Projekts zu messen. Ist das grundsätzlich richtig? Was bedeutet es, ein Programm zu rauchen und zu testen? Bedeutet es einfach, die auf dem Smoke-Server definierten Tests kontinuierlich anzuwenden, um Leistungsverschlechterungen in einem bestimmten Zeitrahmen feststellen zu können?

Diese andere Frage beschreibt zwar den Unterschied zwischen Unbedenklichkeitsprüfungen und Rauchtests, fragt aber nicht nach der Definition von Rauchtests. Diese Frage ist viele Jahre älter als die Referenzfrage.

69voto

MahdeTo Punkte 10654

Smoke-Tests sind eine Reihe grundlegender, billiger Tests, die dem eigentlichen Testen vorausgehen. Damit soll sichergestellt werden, dass der Build erfolgreich bereitgestellt wird und dass alle Aspekte der Testumgebung ausgeführt werden und für den eigentlichen Testprozess bereit sind. Sie ersparen es Ihnen, das ganze Ausmaß Ihres Testzorns auf ein fehlerhaftes Build zu lenken und erst zu spät festzustellen, dass Sie mit einer schlechten Umgebung oder einem fehlerhaft bereitgestellten Build getestet haben.

33voto

andreadi Punkte 1923

Schalten Sie ihn ein und sehen Sie nach, ob Rauch austritt.

25voto

Chris Nava Punkte 6432

Der Begriff stammt aus dem Hardware-Reparatur und wurde auf Software angewandt. Es ist als Schnelltest gedacht, um zu sehen, ob die Anwendung beim ersten Start "Feuer fängt". Wie bereits erwähnt, soll damit nur sichergestellt werden, dass man nicht die Zeit von Leuten verschwendet, indem man sie auf etwas loslässt, das offensichtlich defekt ist.

4voto

Wedge Punkte 19070

Smoke-Tests sind keine Leistungstests oder Tests zur Regressionsvermeidung.

Smoke-Tests sind eine Reihe von vollautomatischen Tests mit höchster Priorität. Selbst wenn Ihr regulärer Build erfolgreich ist, ist es möglich, dass Ihr Produkt in sehr grundlegenden Punkten fehlerhaft ist, die es zu 100% unbrauchbar machen. Smoke-Tests sind darauf ausgelegt, diese Ebene der Kernfunktionalität zu testen. Ein Build, der die Smoke-Tests nicht besteht, wird höchstwahrscheinlich auch die meisten Ihrer automatisierten Tests nicht bestehen.

Wenn ein Smoke-Test fehlschlägt, bedeutet das im Allgemeinen, dass Sie Produktivität verlieren, weil der Build nicht verwendbar ist, nicht getestet werden kann usw. Smoke-Test-Fehler erfordern in der Regel sofortige Korrekturen in der Größenordnung von Stunden und nicht von Tagen.

Das Wichtigste an Rauchtests ist, dass sie schnell durchgeführt werden können. Sie sollten IMMER irgendeine Art von Smoke-Tests durchführen. Viele Gruppen verfügen über ausreichende Ressourcen, um eine größere Anzahl von Tests für ihre täglichen oder kontinuierlichen Integrations-Builds durchzuführen (was gut ist), aber Smoke-Tests sollten als das absolute Minimum angesehen werden.

4voto

avandeursen Punkte 8082

El wikipedia-Seite über Rauchversuche ist eigentlich recht gut. Es enthält einen Verweis auf Steve McConnels ("Code Complete") Artikel in der Sektion "Best Practices" der IEEE Software 13(4), 1996 mit dem Titel "Täglicher Aufbau und Rauchtest" .

Ich würde sagen, dass Smoke-Tests eine Voraussetzung für Unit-Tests und andere Formen von Tests sind: Wenn der Smoke-Test fehlschlägt, hat es keinen Sinn, überhaupt einen Unit-Test zu starten.

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