database testing complete guide why
Eine vollständige Anleitung zum Testen von Datenbanken mit praktischen Tipps und Beispielen:
Computeranwendungen sind heutzutage mit Technologien wie Android und auch mit vielen Smartphone-Apps komplexer. Je komplexer die vorderen Enden sind, desto komplizierter werden die hinteren Enden.
Umso wichtiger ist es, sich mit DB-Tests vertraut zu machen und Datenbanken effektiv validieren zu können, um Sicherheits- und Qualitätsdatenbanken zu gewährleisten.
In diesem Tutorial erfahren Sie alles über Datentests - warum, wie und was zu testen?
Die Datenbank ist einer der unvermeidlichen Teile einer Softwareanwendung.
Es spielt keine Rolle, ob es sich um ein Web-, Desktop- oder Mobil-, Client-Server-, Peer-to-Peer-, Unternehmens- oder Einzelunternehmen handelt. Die Datenbank wird überall im Backend benötigt.
Ebenso, ob es sich um Gesundheitswesen, Finanzen, Leasing, Einzelhandel, Versandanwendung oder die Steuerung eines Raumschiffs handelt; Hinter den Kulissen ist immer eine Datenbank in Aktion.
Mit zunehmender Komplexität der Anwendung entsteht der Bedarf an einer stärkeren und sichereren Datenbank. Ebenso für Anwendungen mit einer hohen Transaktionsfrequenz ( Zum Beispiel, Bank- oder Finanzanwendung) ist die Notwendigkeit eines voll ausgestatteten DB-Tools gekoppelt.
Heutzutage verfügen wir über große und komplexe Big Data-Daten, mit denen die herkömmlichen Datenbanken nicht umgehen können.
Es gibt einige Datenbank-Tools sind auf dem Markt erhältlich Zum Beispiel, MS-Access, MS SQL Server, SQL Server, Oracle, Oracle Financial, MySQL, PostgreSQL, DB2, Toad, Admirer usw. Diese Tools unterscheiden sich in Kosten, Robustheit, Funktionen und Sicherheit. Jedes von diesen hat seine eigenen Vor- und Nachteile.
Was du lernen wirst:
- Warum Datenbank testen?
- Was zu testen ist (Checkliste für Datenbanktests)
- So testen Sie die Datenbank (Schritt für Schritt)
Warum Datenbank testen?
Im Folgenden sehen wir, warum die folgenden Aspekte einer Datenbank validiert werden sollten:
# 1) Datenzuordnung
In Softwaresystemen werden Daten häufig von der Benutzeroberfläche (Benutzeroberfläche) zur Backend-Datenbank und umgekehrt hin- und herbewegt. Dies sind also einige Aspekte, auf die Sie achten sollten:
- Überprüfen Sie, ob die Felder in den UI- / Frontend-Formularen konsistent mit den entsprechenden Feldern in der DB-Tabelle zugeordnet sind. In der Regel werden diese Zuordnungsinformationen in den Anforderungsdokumenten definiert.
- Immer wenn eine bestimmte Aktion am Frontend einer Anwendung ausgeführt wird, wird am Backend eine entsprechende CRUD-Aktion (Erstellen, Abrufen, Aktualisieren und Löschen) aufgerufen. Ein Tester muss prüfen, ob die richtige Aktion aufgerufen wird und ob die aufgerufene Aktion an sich erfolgreich ist oder nicht.
# 2) Validierung der ACID-Eigenschaften
Atomizität, Konsistenz, Isolation und Haltbarkeit. Jede Transaktion, die eine Datenbank ausführt, muss diese vier Eigenschaften einhalten.
- Atomizität bedeutet, dass eine Transaktion entweder fehlschlägt oder erfolgreich ist. Dies bedeutet, dass selbst wenn ein einzelner Teil der Transaktion fehlschlägt, die gesamte Transaktion fehlgeschlagen ist. Normalerweise wird dies als 'Alles-oder-Nichts' -Regel bezeichnet.
- Konsistenz : Eine Transaktion führt immer zu einem gültigen Status der DB
- Isolation : Wenn es mehrere Transaktionen gibt und diese alle gleichzeitig ausgeführt werden, sollte das Ergebnis / der Status der Datenbank das gleiche sein, als ob sie nacheinander ausgeführt würden.
- Haltbarkeit : Sobald eine Transaktion abgeschlossen und festgeschrieben ist, sollten keine externen Faktoren wie Stromausfall oder Absturz in der Lage sein, sie zu ändern
Empfohlene Lektüre = >> MySQL Transaction Tutorial
# 3) Datenintegrität
Für jeden der CRUD-Operationen Die aktualisierten und neuesten Werte / der Status der freigegebenen Daten sollten auf allen Formularen und Bildschirmen angezeigt werden. Der Wert sollte nicht auf einem Bildschirm aktualisiert werden und auf einem anderen Bildschirm einen älteren Wert anzeigen.
Wenn die Anwendung ausgeführt wird, wird die Der Endbenutzer verwendet hauptsächlich die CRUD-Operationen, die vom DB-Tool unterstützt werden .
C: Erstellen - Wenn der Benutzer eine neue Transaktion 'Speichern', wird der Vorgang 'Erstellen' ausgeführt.
R: Abrufen - Wenn der Benutzer eine gespeicherte Transaktion 'Suchen' oder 'Anzeigen' anzeigt, wird der Vorgang 'Abrufen' ausgeführt.
U: Update - Wenn der Benutzer einen vorhandenen Datensatz bearbeitet oder ändert, wird der Vorgang 'Aktualisieren' der Datenbank ausgeführt.
D: Löschen - Wenn ein Benutzer einen Datensatz aus dem System entfernt, wird der Löschvorgang der Datenbank ausgeführt.
Jede vom Endbenutzer ausgeführte Datenbankoperation ist immer eine der oben genannten vier.
Entwickeln Sie Ihre DB-Testfälle so, dass die Daten an allen Stellen überprüft werden, an denen sie scheinbar konsistent sind.
# 4) Konformität der Geschäftsregeln
Mehr Komplexität in Datenbanken bedeutet kompliziertere Komponenten wie relationale Einschränkungen, Trigger, gespeicherte Prozeduren usw. Daher müssen Tester geeignete SQL-Abfragen erstellen, um diese komplexen Objekte zu validieren.
Was zu testen ist (Checkliste für Datenbanktests)
# 1) Transaktionen
Beim Testen von Transaktionen ist es wichtig sicherzustellen, dass sie die ACID-Eigenschaften erfüllen.
Dies sind die häufig verwendeten Aussagen:
- TRANSAKTION BEGINNEN TRANSAKTION #
- END TRANSACTION TRANSACTION #
Die Rollback-Anweisung stellt sicher, dass die Datenbank in einem konsistenten Zustand bleibt.
- ROLLBACK-TRANSAKTION #
Verwenden Sie nach der Ausführung dieser Anweisungen eine Auswahl, um sicherzustellen, dass die Änderungen übernommen wurden.
- SELECT * FROM TABLENAME
# 2) Datenbankschemata
Ein Datenbankschema ist nichts anderes als eine formale Definition, wie die Daten in einer Datenbank organisiert werden sollen. Um es zu testen:
- Identifizieren Sie die Anforderungen, auf deren Grundlage die Datenbank betrieben wird. Beispielanforderungen:
- Primärschlüssel, die erstellt werden müssen, bevor andere Felder erstellt werden.
- Fremdschlüssel sollten zum einfachen Abrufen und Suchen vollständig indiziert sein.
- Feldnamen, die mit bestimmten Zeichen beginnen oder enden.
- Felder mit einer Einschränkung, dass bestimmte Werte eingefügt werden können oder nicht.
- Verwenden Sie je nach Relevanz eine der folgenden Methoden:
- SQL-Abfrage DESC
um das Schema zu validieren.
- Reguläre Ausdrücke zur Validierung der Namen der einzelnen Felder und ihrer Werte
- Tools wie SchemaCrawler
# 3) Auslöser
Wenn ein bestimmtes Ereignis in einer bestimmten Tabelle stattfindet, kann ein Code (ein Trigger) automatisch zur Ausführung angewiesen werden.
Zum Beispiel, Ein neuer Schüler besuchte eine Schule. Der Schüler nimmt 2 Klassen: Mathematik und Naturwissenschaften. Der Schüler wird zur „Schülertabelle“ hinzugefügt. Ein Trigger kann den Schüler zu den entsprechenden Fachtabellen hinzufügen, sobald er zur Schülertabelle hinzugefügt wurde.
Die übliche Testmethode besteht darin, die im Trigger eingebettete SQL-Abfrage zuerst unabhängig auszuführen und das Ergebnis aufzuzeichnen. Führen Sie anschließend den Trigger als Ganzes aus. Vergleichen Sie die Ergebnisse.
Diese werden sowohl in der Black-Box- als auch in der White-Box-Testphase getestet.
youtube to mp3 converter app kostenloser download
- White-Box-Test : Stubs und Treiber werden verwendet, um Daten einzufügen, zu aktualisieren oder zu löschen, die dazu führen würden, dass der Trigger aufgerufen wird. Die Grundidee besteht darin, die Datenbank nur zu testen, bevor die Integration in das Front-End (UI) erfolgt.
- Black-Box-Test ::
zu) Seit der Benutzeroberfläche und der Datenbank ist die Integration jetzt verfügbar. Wir können Daten vom Frontend so einfügen / löschen / aktualisieren, dass der Trigger aufgerufen wird. Anschließend können mit Select-Anweisungen die DB-Daten abgerufen werden, um festzustellen, ob der Trigger die beabsichtigte Operation erfolgreich ausgeführt hat.
b) Die zweite Möglichkeit, dies zu testen, besteht darin, die Daten, die den Trigger aufrufen würden, direkt zu laden und zu prüfen, ob sie wie beabsichtigt funktionieren.
# 4) Gespeicherte Prozeduren
Gespeicherte Prozeduren ähneln benutzerdefinierten Funktionen mehr oder weniger. Diese können durch Anweisungen für Call Procedure / Execute Procedure aufgerufen werden, und die Ausgabe erfolgt normalerweise in Form von Ergebnismengen.
Diese werden im RDBMS gespeichert und stehen für Anwendungen zur Verfügung.
Diese werden auch getestet während:
- White-Box-Test: Stubs werden verwendet, um die gespeicherten Prozeduren aufzurufen, und dann werden die Ergebnisse anhand der erwarteten Werte validiert.
- Black-Box-Test: Führen Sie eine Operation vom Front-End (UI) der Anwendung aus und überprüfen Sie die Ausführung der gespeicherten Prozedur und ihrer Ergebnisse.
# 5) Feldbeschränkungen
Der Standardwert, der eindeutige Wert und der Fremdschlüssel:
- Führen Sie eine Front-End-Operation aus, die die Datenbankobjektbedingung ausführt
- Überprüfen Sie die Ergebnisse mit einer SQL-Abfrage.
Das Überprüfen des Standardwerts für ein bestimmtes Feld ist recht einfach. Es ist Teil der Validierung von Geschäftsregeln. Sie können dies manuell tun oder Tools wie QTP verwenden. Manuell können Sie eine Aktion ausführen, die einen anderen Wert als den Standardwert des Felds vom Front-End hinzufügt und prüft, ob dies zu einem Fehler führt.
Das Folgende ist ein Beispiel für einen VBScript-Code:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) Das Ergebnis des obigen Codes ist True, wenn der Standardwert vorhanden ist, oder False, wenn dies nicht der Fall ist.
Das Überprüfen des eindeutigen Werts kann genau so erfolgen, wie wir es für die Standardwerte getan haben. Versuchen Sie, Werte über die Benutzeroberfläche einzugeben, die gegen diese Regel verstoßen, und prüfen Sie, ob ein Fehler angezeigt wird.
Automatisierung VB-Skriptcode kann sein:
Function VBScriptRegularexpressionvlaidation(pattern , string_to_match) Set newregexp = new RegExp newregexp.Pattern = “
” newregexp.Ignorecase = True newregexp.Global = True VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match) End Function Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match) Für dieUnbekannter SchlüsselBei der Überprüfung von Einschränkungen werden Datenladevorgänge verwendet, die direkt Daten eingeben, die gegen die Einschränkung verstoßen, und prüfen, ob die Anwendung sie einschränkt oder nicht. Führen Sie neben dem Laden der Back-End-Daten auch die Front-End-UI-Vorgänge so aus, dass die Einschränkungen verletzt werden und überprüft wird, ob der entsprechende Fehler angezeigt wird.
Datentestaktivitäten
Der Datenbanktester sollte sich auf folgende Testaktivitäten konzentrieren:
# 1) Stellen Sie die Datenzuordnung sicher:
Die Datenzuordnung ist einer der Schlüsselaspekte in der Datenbank und sollte von jedem Software-Tester streng getestet werden.
Stellen Sie sicher, dass die Zuordnung zwischen verschiedenen Formularen oder Bildschirmen von AUT und seiner Datenbank nicht nur korrekt ist, sondern auch den Konstruktionsdokumenten (SRS / BRS) oder dem Code entspricht. Grundsätzlich müssen Sie die Zuordnung zwischen jedem Front-End-Feld und dem entsprechenden Back-End-Datenbankfeld überprüfen.
Stellen Sie bei allen CRUD-Vorgängen sicher, dass die entsprechenden Tabellen und Datensätze aktualisiert werden, wenn der Benutzer in der GUI der Anwendung auf 'Speichern', 'Aktualisieren', 'Suchen' oder 'Löschen' klickt.
Was Sie überprüfen müssen:
- Tabellenzuordnung, Spaltenzuordnung und Datentypzuordnung.
- Lookup Data Mapping.
- Die korrekte CRUD-Operation wird für jede Benutzeraktion auf der Benutzeroberfläche aufgerufen.
- Die CRUD-Operation ist erfolgreich.
# 2) Stellen Sie die ACID-Eigenschaften von Transaktionen sicher:
Die ACID-Eigenschaften von DB-Transaktionen beziehen sich auf die ZU Tomicity “,„ C. Konsistenz “,„ ich Solation “und„ D. Urabilität “. Das ordnungsgemäße Testen dieser vier Eigenschaften muss während der Datenbanktestaktivität durchgeführt werden. Sie müssen überprüfen, ob jede einzelne Transaktion die ACID-Eigenschaften der Datenbank erfüllt.
Nehmen wir ein einfaches Beispiel durch den folgenden SQL-Code:
CREATE TABLE acidtest (A INTEGER, B INTEGER, CHECK (A + B = 100));
Die ACID-Testtabelle enthält zwei Spalten - A und B. Es gibt eine Integritätsbedingung, dass die Summe der Werte in A und B immer 100 sein sollte.
Atomizitätstest stellt sicher, dass jede in dieser Tabelle ausgeführte Transaktion alle oder keine ist, d. h. es werden keine Datensätze aktualisiert, wenn ein Schritt der Transaktion fehlschlägt.
Konsistenzprüfung stellt sicher, dass bei jeder Aktualisierung des Werts in Spalte A oder B die Summe immer 100 bleibt. Das Einfügen / Löschen / Aktualisieren in A oder B ist nicht möglich, wenn die Gesamtsumme nicht 100 beträgt.
Isolationstest stellt sicher, dass diese Traktionen isoliert ausgeführt werden, wenn zwei Transaktionen gleichzeitig ausgeführt werden und versucht wird, die Daten der ACID-Testtabelle zu ändern.
Haltbarkeitstest stellt sicher, dass eine Transaktion über diese Tabelle auch nach dem Festschreiben beibehalten wird, selbst bei Stromausfall, Abstürzen oder Fehlern.
Dieser Bereich erfordert strengere, gründlichere und gründlichere Tests, wenn Ihre Anwendung die verteilte Datenbank verwendet.
# 3) Stellen Sie die Datenintegrität sicher
Beachten Sie, dass verschiedene Anwendungsmodule (d. H. Bildschirme oder Formen) dieselben Daten auf unterschiedliche Weise verwenden und alle CRUD-Operationen an den Daten ausführen.
Stellen Sie in diesem Fall sicher, dass der aktuelle Datenstatus überall angezeigt wird. Das System muss die aktualisierten und neuesten Werte oder den Status solcher gemeinsam genutzten Daten auf allen Formularen und Bildschirmen anzeigen. Dies wird als Datenintegrität bezeichnet.
Testfälle zur Validierung der Datenbankdatenintegrität:
- Überprüfen Sie, ob alle Trigger vorhanden sind, um Referenztabellendatensätze zu aktualisieren.
- Überprüfen Sie, ob in den Hauptspalten jeder Tabelle falsche / ungültige Daten vorhanden sind.
- Versuchen Sie, falsche Daten in Tabellen einzufügen, und beobachten Sie, ob ein Fehler auftritt.
- Überprüfen Sie, was passiert, wenn Sie versuchen, ein untergeordnetes Element einzufügen, bevor Sie das übergeordnete Element einfügen (versuchen Sie, mit Primär- und Fremdschlüsseln zu spielen).
- Testen Sie, ob ein Fehler auftritt, wenn Sie einen Datensatz löschen, auf den noch Daten in einer anderen Tabelle verweisen.
- Überprüfen Sie, ob replizierte Server und Datenbanken synchron sind.
# 4) Stellen Sie die Genauigkeit der implementierten Geschäftsregeln sicher:
Datenbanken dienen heute nicht nur zum Speichern der Datensätze. Tatsächlich wurden Datenbanken zu äußerst leistungsfähigen Tools entwickelt, die den Entwicklern umfassende Unterstützung bei der Implementierung der Geschäftslogik auf DB-Ebene bieten.
Einige einfache Beispiele für leistungsstarke Funktionen sind 'Referentielle Integrität', relationale Einschränkungen, Trigger und gespeicherte Prozeduren.
Mithilfe dieser und vieler anderer Funktionen, die von DBs angeboten werden, implementieren Entwickler die Geschäftslogik auf DB-Ebene. Der Tester muss sicherstellen, dass die implementierte Geschäftslogik korrekt ist und korrekt funktioniert.
Die obigen Punkte beschreiben die vier wichtigsten Aufgaben des DB-Tests. Fahren wir nun mit dem Teil 'Gewusst wie' fort.
So testen Sie die Datenbank (Schritt für Schritt)
Die Testdatenbank für allgemeine Testprozesse unterscheidet sich nicht wesentlich von anderen Anwendungen.
Das Folgende sind die Kernschritte:
Schritt 1) Bereiten Sie die Umgebung vor
Schritt 2) Führen Sie einen Test durch
Schritt 3) Testergebnis prüfen
Schritt 4) Validieren Sie gemäß den erwarteten Ergebnissen
Schritt 5) Melden Sie die Ergebnisse den jeweiligen StakeholdernNormalerweise werden SQL-Abfragen verwendet, um die Tests zu entwickeln. Der am häufigsten verwendete Befehl ist 'Auswählen'.
Wählen Sie * von wo
Neben Select verfügt SQL über drei wichtige Befehlstypen:
- DDL: Datendefinitionssprache
- DML: Datenmanipulationssprache
- DCL: Datensteuerungssprache
Sehen wir uns die Syntax für die am häufigsten verwendeten Anweisungen an.
Datendefinitionssprache Verwendet CREATE, ALTER, RENAME, DROP und TRUNCATE, um Tabellen (und Indizes) zu verarbeiten.
Datenmanipulierungssprache Enthält Anweisungen zum Hinzufügen, Aktualisieren und Löschen von Datensätzen.
Datenkontrollsprache: Behandelt die Erteilung von Berechtigungen an Benutzer zur Manipulation und zum Zugriff auf die Daten. Grant und Revoke sind die beiden verwendeten Aussagen.
Grant-Syntax:
Grant Select / Update
Auf
Zu;Syntax widerrufen:
Revokeselect / Update
auf
von;Einige praktische Tipps
# 1) Schreiben Sie selbst Fragen:
Um die Datenbank genau zu testen, sollte der Tester über sehr gute Kenntnisse der SQL- und DML-Anweisungen (Data Manipulation Language) verfügen. Der Tester sollte auch die interne DB-Struktur von AUT kennen.
Sie können die grafische Benutzeroberfläche und die Datenüberprüfung in den jeweiligen Tabellen kombinieren, um eine bessere Abdeckung zu erzielen. Wenn Sie den SQL Server verwenden, können Sie SQL Query Analyzer verwenden, um Abfragen zu schreiben, auszuführen und Ergebnisse abzurufen.
Dies ist die beste und robusteste Methode zum Testen einer Datenbank, wenn die Anwendung eine kleine oder mittlere Komplexität aufweist.
Wenn die Anwendung sehr komplex ist, kann es für den Tester schwierig oder unmöglich sein, alle erforderlichen SQL-Abfragen zu schreiben. Bei komplexen Abfragen wenden Sie sich an den Entwickler. Ich empfehle diese Methode immer, da sie Ihnen Vertrauen in das Testen gibt und auch Ihre SQL-Kenntnisse verbessert.
# 2) Beachten Sie die Daten in jeder Tabelle:
Sie können die Datenüberprüfung anhand der Ergebnisse von CRUD-Operationen durchführen. Dies kann manuell über die Benutzeroberfläche der Anwendung erfolgen, wenn Sie die Datenbankintegration kennen. Dies kann jedoch eine mühsame und umständliche Aufgabe sein, wenn sich in verschiedenen Datenbanktabellen große Datenmengen befinden.
Für manuelle Datentests muss der Datenbanktester über gute Kenntnisse der Datenbanktabellenstruktur verfügen.
# 3) Fragen Sie die Entwickler:
Dies ist der einfachste Weg, um die Datenbank zu testen. Führen Sie eine CRUD-Operation über die GUI aus und überprüfen Sie ihre Auswirkungen, indem Sie die entsprechenden SQL-Abfragen ausführen, die Sie vom Entwickler erhalten haben. Es erfordert weder gute SQL-Kenntnisse noch gute Kenntnisse der DB-Struktur der Anwendung.
Diese Methode muss jedoch mit Vorsicht angewendet werden. Was ist, wenn die vom Entwickler angegebene Abfrage semantisch falsch ist oder die Anforderungen des Benutzers nicht korrekt erfüllt? Der Prozess kann Daten einfach nicht validieren.
# 4) Verwenden Sie Tools zum Testen der Datenbankautomatisierung:
Für den Datentest stehen verschiedene Tools zur Verfügung. Sie sollten das richtige Werkzeug gemäß Ihren Anforderungen auswählen und es optimal nutzen.
=> Hier ist die Liste der TOP DB-Testtools, die Sie überprüfen sollten
Fazit
Mit all diesen Funktionen, Faktoren und Prozessen, die in einer Datenbank getestet werden müssen, besteht eine zunehmende Nachfrage nach technischen Kenntnissen der Tester in den wichtigsten Datenbankkonzepten. Trotz einiger negativer Überzeugungen, dass das Testen einer Datenbank neue Engpässe verursacht und eine Menge zusätzlicher Ausgaben verursacht, ist dies ein Testbereich, der erhebliche Aufmerksamkeit und Nachfrage auf sich zieht.
Empfohlene Lektüre = >> Was ist Datenbanksicherheitstest?
Ich hoffe, dieses Tutorial hat dazu beigetragen, sich darauf zu konzentrieren, warum das so ist, und hat Ihnen auch die grundlegenden Details zum Testen einer Datenbank geliefert.
Bitte teilen Sie uns Ihr Feedback mit und teilen Sie uns Ihre persönlichen Erfahrungen mit, wenn Sie an DB-Tests arbeiten.
Literatur-Empfehlungen
- Datenbanktests mit JMeter
- 40+ Best Database Testing Tools - Beliebte Datentestlösungen
- Ein einfacher Ansatz für XML zum Testen von Datenbanken
- Tutorial zum Testen von ETL-Data Warehouse-Tests (Eine vollständige Anleitung)
- Lernprogramm zum Testen der Datenmigration: Eine vollständige Anleitung
- Top 10 Datenbank-Design-Tools zum Erstellen komplexer Datenmodelle
- Tutorial zum Testen von Data Warehouse mit Beispielen | ETL-Testhandbuch
- So testen Sie die Oracle-Datenbank
^
- SQL-Abfrage DESC