Frage

Wenn eine Software entwickelt wird, werden verschiedene Arten von Tests durchgeführt - Unit-, Integrations-, Funktions-, manual.In mein aktuelles Projekt (WinForms mit SQL-Server), der Legacy-Code hat (keine Tests), wir haben viele Fehler haben . Wir versuchen, sie Kombination aus manuellen + Tests mit entfernen (meist Integration)

Aber noch können einige Fehler entkommen.

Zum Beispiel (ein hypothetisches Szenario.) - wenn ein Kunde etwas im Wert von Waren für die letzten 6 Monate gekauft hat, soll er einige Rabatte auf Einkäufe gegeben werden, er macht einmal 6 Monate lapsed.His Status haben sollte Privileg aktualisiert werden

Aber aus irgendeinem Grund (Fehler im Code) das System nicht so.How tut, sollten wir solche Szenarien bewältigen? Sollten wir ein Skript auf der Datenbank ausgeführt wird, die für Szenarien wie beschrieben aussieht? Eine andere Erweiterung des Szenarios könnte sein, muss der Kunde ein Geschenk schicken, sobald er privilegiert ist, sondern System fehlt, dies zu tun.

Die Gedanken?

War es hilfreich?

Lösung

„Sollten wir ein Skript auf der Datenbank ausgeführt wird, die für Szenarien wie beschrieben aussieht?“

Meinen Sie "setzen ein Skript in der Datenbank das Problem zu beheben", dann nicht .

NO. Noch nie. Auf keinen Fall. durch Zugabe von eigentümlicher Sonderfall Logik um einen Fehler zu arbeiten, ist wirklich eine sehr schlechte Idee.

  1. Wenn die eigentümliche Sonderfall Logik seiner eigenen Fehler hat, haben Sie fehlerhaften Code hinzugefügt und korrekt fehlerhaften Code zu versuchen. Ein Nettoverlust.

  2. Wenn Sie versuchen, das System zu verbessern, haben Sie diese eigentümliche Sonderfall Logik, die keinen Sinn macht.

    a. Wenn Sie Glück haben, fixiert man den Fehler es angeblich um zu arbeiten, und es wird überflüssig. Was jetzt? Welche kopieren entfernen?

    b. Ansonsten wird es ein anderer Code widersprechen. Was jetzt? Welche ist richtig?

Wenn Sie meinen, „setzen Sie ein Skript in der Datenbank für Sie zu finden und zu debuggen, das Problem“, dann ja. Für eine kurze Zeit, verwenden Sie jedes Werkzeug zur Verfügung, um Fehler zu finden und zu beheben. Einmal gefunden und fixiert ist, ist dieses Skript dann nutzlos und muss gelöscht werden.

Wenn Sie meinen, „ein Skript in der Datenbank schreiben die Anwendung zu testen“, dann ja. Das ist, was Unit-Test-Skripte sind für. Benutze sie.

Es ist viel besser Unit-Tests zu erstellen, als es ist Skripte zu erstellen, die Sie in der Datenbank aufgenommen. Unit-Tests sind der beste Ansatz.

Andere Tipps

Sie sollten eine automatisierte Testsuite an der richtigen Stelle. Dieser Test-Suite werden alle Szenarien implementieren, die die Spezifikation erfordert. Da kann man nicht für sechs Monate warten, um zu testen, ob die Diskontierung Werke, die tatsächliche Umsetzung durch einen Mock Implementierung (das Beispiel ist in Java, aber die gleichen Grundsätze gelten in anderen Sprachen), dass zum Beispiel‚simuliert‘, dass 6 Monate vergangen sind. Man kann Behauptungen verwenden, um die Tests zu automatisieren.

Wenn Sie die gesamte Testsuite bereit haben, wenn alle Tests nach passieren (wie zuvor) ein Refactoring / des Codes zu ändern, kann man sicher sein, dass kein Merkmal aufgrund des Refactoring gebrochen hat.

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