Ich bin gerade dabei, unsere Lösung zu testen, die den ganzen "Gamut" von Layern hat: UI, Middle und die allgegenwärtige Datenbank.Welche Best Practices verwenden Sie zum Testen von Datenbankabfragen?
Bevor ich in mein aktuelles Team kam, wurden Abfragetests durchgeführt, indem die Tester manuell Abfragen erstellten, die theoretisch eine Ergebnismenge zurückgaben, die die gespeicherte Prozedur basierend auf verschiedenen Relevanzregeln, Sortierung, zurückgab.
Dies hatte die Nebenwirkung von Bugs gegen die Abfrage des Testers öfter als gegen die eigentliche Abfrage in Frage gestellt.
Ich schlug vor, tatsächlich mit einem bekannten Ergebnissatz zu arbeiten, den Sie einfach ableiten könnten, wie es zurückkommen soll, da Sie die vorhandenen Daten kontrollieren - zuvor wurden Daten aus der Produktion genommen, bereinigt und dann in unsere Testdatenbanken eingefügt.
Die Leute waren immer noch darauf beharrlich, ihre eigenen Abfragen zu erstellen, um zu testen, was die Entwickler erstellt haben. Ich vermute, dass viele noch sind. Ich bin der Meinung, dass dies alles andere als ideal ist, und vergrößert unsere Testfläche unnötig.
Also, ich bin neugierig, welche Praktiken verwenden Sie, um Szenarien wie diese zu testen, und was wäre ideal für die beste Ende-zu-Ende-Abdeckung, die Sie erhalten können, ohne chaotische Daten einzuführen?
Das Problem, das ich habe, ist, wo ist der beste Ort, um was zu testen. Stoße ich den Dienst direkt an und vergleiche diesen Datensatz mit dem, den ich aus der gespeicherten Prozedur ziehen kann? Ich habe eine ungefähre Vorstellung und bin bisher erfolgreich genug gewesen, aber ich fühle, dass wir hier noch etwas Wichtiges vermissen, also schaue ich auf die Community, um zu sehen, ob sie wertvolle Einsichten haben, die bei der Formulierung meines Testansatzes helfen könnten besser.
Ich werde weitermachen und den Kommentar hinzufügen, dass die Zielumgebung tatsächlich alle MS-Technologie basiert (SQL, IIS, .NET), für besser oder schlechter. Aber ich schätze immer noch die Erwähnung von Tools, die Dinge wie Python verwenden, trotz meiner mangelnden Fähigkeiten dort. –