Was ist ein Sanity Test / Check?

Antworten:

92

Ein Sanity Test ist in keiner Weise auf den Kontext der Programmierung oder Softwareentwicklung beschränkt. Ein Vernunfttest ist nur ein gelegentlicher Begriff, der bedeutet, dass Sie etwas testen / bestätigen / validieren, das einer sehr klaren und einfachen Logik folgen sollte. Es wird jemand anderes gebeten, zu bestätigen, dass Sie nicht verrückt sind und dass das, was für Sie sinnvoll erscheint, auch für ihn Sinn macht ... oder haben Sie in den letzten 4 Stunden viel zu viele Energy-Drinks getrunken, um die geistige Gesundheit aufrechtzuerhalten?

Wenn Sie Ihren Kopf völlig ratlos gegen die Wand schlagen, warum etwas sehr Einfaches nicht funktioniert, würden Sie jemanden bitten, einen schnellen Gesundheitstest für Sie durchzuführen. Lassen Sie sie sicherstellen, dass Sie dieses Semikolon am Ende Ihrer forSchleife die letzten 15 Male, in denen Sie es durchgesehen haben, nicht übersehen haben . Ein extrem einfaches Beispiel sollte eigentlich nicht passieren, aber manchmal sind Sie zu nah an etwas, um zurückzutreten und das Ganze zu sehen. Eine andere Perspektive hilft manchmal dabei, sicherzustellen, dass Sie nicht völlig verrückt sind.

Sion Sheevok
quelle
3
Wenn Sie viel trinken, brauchen Sie mehr Gesundheitsprüfungen bei der Arbeit
Pawel
Könnten Sie einige Methoden zum Schreiben von Vernunftstests im Softwarekontext bereitstellen?
AV94
7

Ein gutes Beispiel ist eine Überprüfung der Integrität einer Datenbankverbindung.

SELECT 1 FROM DUAL

Es ist eine einfache Abfrage zum Testen der Verbindung, siehe:

SELECT 1 von DUAL: MySQL

Es testet keine Deep-Funktionalität, nur, dass die Verbindung in Ordnung ist, um fortzufahren.

Jon
quelle
Eine Datenbank-Überprüfung der Integrität kann Teil eines Rauchtests sein. Im Allgemeinen handelt es sich bei einem Rauchtest jedoch um eine Reihe von rudimentären Überprüfungen, die Sie durchführen würden, um sicherzustellen, dass eine Anwendung ordnungsgemäß funktioniert.
Jon
Weitere Infos hier - stackoverflow.com/questions/745192/…
Jon
6

Ein Sanity-Test oder eine Sanity-Prüfung ist ein grundlegender Test, um schnell zu bewerten, ob ein Anspruch oder das Ergebnis einer Berechnung möglicherweise wahr sein kann @ http://en.wikipedia.org/wiki/Sanity_testing

Aravind Yarram
quelle
3
Wenn Sie beispielsweise eine Quadratwurzel durch einen iterativen Mechanismus berechnen. Sie würden dann erwarten, dass die Wurzel, die Sie finden, positiv ist, und wenn sie mit sich selbst multipliziert wird, entspricht sie ungefähr dem Eingabewert. Sie können also einige Überprüfungen hinzufügen, um sicherzustellen, dass Ihre Logik korrekt ist - dass die Antwort "vernünftig" ist. Dies sind Sanity Checks - sie können nicht falsch sein, wenn der Algorithmus logisch konsistent ist.
Pete Kirkham
4

Der Unterschied zwischen Rauch und Vernunft besteht, zumindest so wie ich es verstehe, darin, dass der Rauchtest ein schneller Test ist, um festzustellen, dass die Anwendung nach einem Build gut genug zum Testen ist . Anschließend führen Sie einen Vernunfttest durch, bei dem festgestellt wird, ob ein bestimmter Funktionsbereich gut genug ist, um tatsächlich Tests in diesem Bereich durchzuführen .

Beispiel:

Rauchtest: Ich kann die Anwendung starten und durch alle Bildschirme navigieren, und die Anwendung stürzt nicht ab.

-Wenn die Anwendung abstürzt oder ich nicht auf alle Bildschirme zugreifen kann, stimmt etwas nicht. Es gibt ein "Feuer", das so schnell wie möglich gelöscht werden muss, und die Version ist nicht zum Testen geeignet.

Sanity Test (Bildschirm "Benutzerverwaltung"): Ich kann zum Bildschirm "Benutzerverwaltung" gelangen, einen Benutzer erstellen und ihn löschen.

  • Die Anwendung hat also den Rauchtest bestanden, und jetzt gehe ich zu Sanity Tests für verschiedene Bereiche. Wenn ich mich nicht darauf verlassen kann, dass die Anwendung einen Benutzer erstellt und löscht, ist es wertlos, erweiterte Funktionen wie Benutzerablauf, Anmeldungen usw. zu testen. Wenn der Vernunftstest jedoch bestanden wurde, kann ich mit dem Test fortfahren dieser Bereich.
EKI
quelle
2

Der Rauchtest dient zum schnellen Testen eines neuen Builds auf seine Stabilität. Der Sanity-Test ist ein Test der neu bereitgestellten Umgebung.

Stas Yartsev
quelle
1

Das Grundkonzept einer Überprüfung der Integrität besteht darin, sicherzustellen, dass die Ergebnisse der Ausführung Ihres Codes mit den erwarteten Ergebnissen übereinstimmen. Abgesehen davon, dass es sich um etwas handelt, das weitaus seltener verwendet wird als es sollte, hilft eine ordnungsgemäße Überprüfung der geistigen Gesundheit sicherzustellen, dass das, was Sie tun, nicht völlig außerhalb der Grenzen liegt und etwas tut, das es nicht tun sollte. Die häufigste Verwendung für eine Überprüfung der Integrität ist das Debuggen von Code, der sich schlecht verhält, aber selbst ein Endprodukt kann davon profitieren, dass einige vorhanden sind, um zu verhindern, dass unerwünschte Fehler infolge von GIGO (Müll rein, Müll raus) auftreten.

Unterschätzen Sie daher niemals die Fähigkeit Ihrer Benutzer, etwas zu tun, von dem Sie nicht erwartet hatten, dass es tatsächlich jemand tun würde. Dies ist eine Lektion, die viele Programmierer nie lernen, egal wie oft sie unterrichtet wird, und Sanity Checks sind ein hervorragendes Werkzeug, um sich damit abzufinden. "Ich würde das niemals tun" ist keine gültige Entschuldigung dafür, warum Ihr Code kein Problem behandelt hat, und eine gute Überprüfung der geistigen Gesundheit kann dazu beitragen, dass Sie diese Entschuldigung nie vorbringen müssen.

Sky Render
quelle
1

Für eine Softwareanwendung besteht ein Sanity-Test aus einer Reihe von Tests, mit denen eine Softwareversion nach der Integration neuer Funktionen und Fehlerkorrekturen für die Öffentlichkeit freigegeben werden kann. Ein Vernunfttest bedeutet, dass zwar viele Probleme bestehen bleiben könnten, die sehr kritischen Probleme, die beispielsweise dazu führen könnten, dass jemand Geld oder Daten verliert oder das Programm zum Absturz bringt, behoben wurden. Wenn keine kritischen Probleme mehr bestehen, besteht die Version den Sanity-Test. Dies ist normalerweise der letzte Test, der vor der Veröffentlichung durchgeführt wurde.

Milena Paz
quelle
0

Es ist ein grundlegender Test, um sicherzustellen, dass etwas einfach funktioniert.

Zum Beispiel: Herstellen einer Verbindung zu einer Datenbank. Oder pingen Sie eine Website / einen Server an, um festzustellen, ob sie aktiv oder inaktiv ist.

Bryan Denny
quelle
Nein ist es nicht. Keiner von beiden prüft, ob die Logik des Systems "vernünftig" ist, beide prüfen, ob das Netzwerk in Ordnung ist. Wenn Sie also nicht vorschlagen, dass Sie eine Überprüfung der geistigen Gesundheit nach den Prinzipien von TCP selbst durchführen (von denen ziemlich gut bestätigt wird, dass sie vernünftig sind), ist das Pingen von etwas keine Prüfung der geistigen Gesundheit. Und selbst dann besteht die Grundlage einer Überprüfung der Integrität nicht - wenn die Logik korrekt ist, kann der Test nicht fehlschlagen, während die Logik von TCP korrekt ist, Pings jedoch weiterhin fehlschlagen können.
Pete Kirkham
Der Versuch, eine Datenbankverbindung herzustellen oder festzustellen, ob ein Host aktiv ist, ist ein Vorgang auf viel höherer Ebene als eine grundlegende Überprüfung der Integrität.
Meagar
0

Das Überprüfen eines Codes (oder irgendetwas anderem, z. B. eines Usenet-Postings) auf völlig dumme Fehler.

Dies bedeutet, dass mit der Überprüfung sichergestellt werden soll, dass der Autor beim Schreiben gesund war.

Wenn sich beispielsweise eine wissenschaftliche Software auf eine bestimmte Formel stützte und unerwartete Ergebnisse lieferte, könnte man zuerst die Verschachtelung von Klammern oder die Codierung der Formel als Überprüfung der geistigen Gesundheit betrachten, bevor man sich die komplexeren E / A oder Routinen zur Manipulation von Datenstrukturen, geschweige denn der Algorithmus selbst.

Rikin Patel
quelle