Datenbanktests - Techniken
In diesem Kapitel werden die gängigsten Techniken zum Ausführen von Datenbanktests erläutert.
Testen des Datenbankschemas
Wie bereits erwähnt, wird jedes Objekt im Schema getestet.
Überprüfen von Datenbanken und Geräten
- Überprüfen des Datenbanknamens
- Überprüfen des Datengeräts, des Protokollgeräts und des Speicherauszugs
- Überprüfen, ob für jede Datenbank genügend Speicherplatz zugewiesen ist
- Überprüfen der Einstellung der Datenbankoptionen
Überprüfung von Tabellen, Spalten und Spaltentypenregeln
Überprüfen Sie die unten angegebenen Punkte, um die Unterschiede zwischen der tatsächlichen und der angewendeten Einstellung herauszufinden.
Name aller Tabellen in der Datenbank
Spaltennamen für jede Tabelle
Spaltentypen für jede Tabelle
NULL Wert geprüft oder nicht
Gibt an, ob ein Standard an korrekte Tabellenspalten gebunden ist
Regeldefinitionen zum Korrigieren von Tabellennamen und Zugriffsrechten
Schlüssel und Indizes
Überprüfen Sie den Schlüssel und die Indizes in jeder Tabelle -
Primärschlüssel für jede Tabelle
Fremdschlüssel für jede Tabelle
Datentypen zwischen einer Fremdschlüsselspalte und einer Spalte in einer anderen Tabelle Indizes, gruppiert oder nicht gruppiert eindeutig oder nicht eindeutig
Gespeicherte Prozedurtests
Dabei wird geprüft, ob eine gespeicherte Prozedur definiert ist, und die Ausgabeergebnisse werden verglichen. Bei einem Test mit gespeicherten Prozeduren werden die folgenden Punkte überprüft:
Name der gespeicherten Prozedur
Parameternamen, Parametertypen usw.
Output- Ob die Ausgabe viele Datensätze enthält. Es werden keine Zeilen ausgeführt oder nur wenige Datensätze extrahiert.
Was ist die Funktion der gespeicherten Prozedur und was soll eine gespeicherte Prozedur nicht tun?
Übergeben von Beispiel-Eingabeabfragen, um zu überprüfen, ob eine gespeicherte Prozedur korrekte Daten extrahiert.
Stored Procedure Parameters- Gespeicherte Prozedur mit Grenzdaten und mit gültigen Daten aufrufen. Machen Sie jeden Parameter einmal ungültig und führen Sie eine Prozedur aus.
Return values- Überprüfen Sie die Werte, die von der gespeicherten Prozedur zurückgegeben werden. Im Fehlerfall muss ein Wert ungleich Null zurückgegeben werden.
Error messages check- Nehmen Sie Änderungen so vor, dass die gespeicherte Prozedur fehlschlägt, und generieren Sie jede Fehlermeldung mindestens einmal. Überprüfen Sie alle Ausnahmeszenarien, wenn keine vordefinierte Fehlermeldung vorliegt.
Tests auslösen
In einem Trigger-Test muss der Tester die folgenden Aufgaben ausführen:
- Stellen Sie sicher, dass der Triggername korrekt ist.
- Überprüfen Sie den Trigger, wenn er für eine bestimmte Tabellenspalte generiert wurde.
- Update-Validierung des Triggers.
- Aktualisieren Sie einen Datensatz mit gültigen Daten.
- Aktualisieren Sie einen Datensatz mit ungültigen Daten und decken Sie jeden Triggerfehler ab.
- Aktualisieren Sie einen Datensatz, wenn er noch von einer Zeile in einer anderen Tabelle referenziert wird.
- Stellen Sie sicher, dass Transaktionen zurückgesetzt werden, wenn ein Fehler auftritt.
- Finden Sie alle Fälle heraus, in denen ein Trigger keine Transaktionen rückgängig machen soll.
Server-Setup-Skripte
Es sollten zwei Arten von Tests durchgeführt werden:
- Einrichten der Datenbank von Grund auf neu und
- So richten Sie eine vorhandene Datenbank ein
Integrationstests von SQL Server
Integrationstests sollten durchgeführt werden, nachdem Sie mit dem Komponententest fertig sind.
Gespeicherte Prozeduren sollten intensiv aufgerufen werden, um Datensätze in verschiedenen Tabellen auszuwählen, einzufügen, zu aktualisieren und zu löschen, um Konflikte und Inkompatibilitäten festzustellen.
Alle Konflikte zwischen Schema und Triggern.
Alle Konflikte zwischen gespeicherten Prozeduren und Schema.
Alle Konflikte zwischen gespeicherten Prozeduren und Triggern.
Funktionstestmethode
Funktionstests können durchgeführt werden, indem die Datenbank gemäß der Funktionalität in Module unterteilt wird. Es gibt zwei Arten von Funktionen:
Type 1- Informieren Sie sich beim Testen vom Typ 1 über die Funktionen des Projekts. Ermitteln Sie für jedes Hauptmerkmal das Schema, die Trigger und die gespeicherten Prozeduren, die für die Implementierung dieser Funktion verantwortlich sind, und ordnen Sie sie einer Funktionsgruppe zu. Dann testen Sie jede Gruppe zusammen.
Type 2- Bei Typ-2-Tests ist die Grenze der Funktionsgruppen in einem Back-End nicht offensichtlich. Sie können den Datenfluss überprüfen und sehen, wo Sie die Daten überprüfen können. Beginnen Sie am Frontend.
Der folgende Prozess findet statt -
Wenn ein Dienst eine Anforderung hat oder Daten speichert, werden einige gespeicherte Prozeduren aufgerufen.
Die Prozeduren aktualisieren einige Tabellen.
Diese gespeicherten Prozeduren sind der Ort, an dem mit dem Testen begonnen wird, und diese Tabellen sind der Ort, an dem die Testergebnisse überprüft werden.
Belastbarkeitstest
Stresstests umfassen das Abrufen einer Liste der wichtigsten Datenbankfunktionen und der entsprechenden gespeicherten Prozeduren. Befolgen Sie die unten angegebenen Schritte für Stresstests -
Schreiben Sie Testskripte, um diese Funktionen auszuprobieren, und jede Funktion muss mindestens einmal in einem vollständigen Zyklus überprüft werden.
Führen Sie die Testskripte für einen bestimmten Zeitraum immer wieder aus.
Überprüfen der Protokolldateien auf Deadlocks, Speicherausfall, Datenbeschädigung usw.
Benchmark-Tests
Wenn Ihre Datenbank keine Datenprobleme oder Fehler aufweist, kann die Systemleistung überprüft werden. Eine schlechte Systemleistung kann bei Benchmark-Tests festgestellt werden, indem die unten angegebenen Parameter überprüft werden -
- Leistung auf Systemebene
- Identifizieren Sie die am häufigsten verwendeten Funktionen / Merkmale
- Timing - maximale Zeit, minimale Zeit und durchschnittliche Zeit für die Ausführung von Funktionen
- Zugriffsvolumen
Testen einer Datenbank über das Front-End
Back-End-Fehler können manchmal auch durch Front-End-Tests gefunden werden. Sie können die folgenden einfachen Schritte ausführen, um Fehler durch Front-End-Tests zu erkennen.
Schreiben Sie Abfragen vom Frontend und geben Sie die Suchanfragen aus.
Nehmen Sie einen vorhandenen Datensatz auf, ändern Sie die Werte in einigen Feldern und speichern Sie den Datensatz. (Es handelt sich um die UPDATE-Anweisung oder um das Aktualisieren gespeicherter Prozeduren und das Aktualisieren von Triggern.)
Fügen Sie einen neuen Menüpunkt in das Front-End-Fenster ein. Geben Sie die Informationen ein und speichern Sie den Datensatz. (Es handelt sich um die INSERT-Anweisungen oder gespeicherten Prozeduren zum Einfügen und Löschauslöser.)
Nehmen Sie einen vorhandenen Datensatz auf, klicken Sie auf die Schaltfläche LÖSCHEN oder ENTFERNEN und bestätigen Sie den Löschvorgang. (Es handelt sich um die DELETE-Anweisung oder um gespeicherte Löschprozeduren und Löschauslöser.)
Wiederholen Sie diese Testfälle mit ungültigen Daten und sehen Sie, wie die Datenbank reagiert.