Tutorial zum Datenbanktest
Was ist Datenbanktest?
Datenbanktests ist eine Art von Softwaretest, bei dem das Schema, die Tabellen, Trigger usw. der zu testenden Datenbank ĂŒberprĂŒft werden. AuĂerdem werden DatenintegritĂ€t und -konsistenz geprĂŒft. Möglicherweise mĂŒssen komplexe Abfragen erstellt werden, um die Datenbank einem Belastungs-/Stresstest zu unterziehen und ihre ReaktionsfĂ€higkeit zu prĂŒfen.

Warum sind Datenbanktests wichtig?
Datenbanktests sind wichtig in Softwaretest weil dadurch sichergestellt wird, dass die empfangenen und in der Datenbank gespeicherten Datenwerte und Informationen gĂŒltig sind oder nicht. Datenbanktests helfen, Datenverluste zu vermeiden, abgebrochene Transaktionsdaten zu speichern und einen unbefugten Zugriff auf die Informationen zu verhindern. Datenbanken sind fĂŒr jede Softwareanwendung wichtig, daher mĂŒssen Tester zum Testen von Datenbanken ĂŒber gute SQL-Kenntnisse verfĂŒgen.
Der GUI wird von den Mitgliedern des Test- und Entwicklungsteams in der Regel die gröĂte Bedeutung beigemessen, da die grafische BenutzeroberflĂ€che zufĂ€llig der sichtbarste Teil der Anwendung ist. Wichtig ist jedoch auch die Validierung der Informationen, die das HerzstĂŒck der Anwendung bilden, auch bekannt als DATENBANK.
Betrachten wir eine Banking-Anwendung, in der ein Benutzer Transaktionen durchfĂŒhrt. Aus Sicht des Datenbanktests oder DB-Tests sind folgende Dinge wichtig:
- Die Anwendung speichert die Transaktionsinformationen in der Anwendungsdatenbank und zeigt sie dem Benutzer korrekt an.
- Dabei gehen keine Informationen verloren.
- Es werden von der Anwendung keine Informationen zu teilweise ausgefĂŒhrten oder abgebrochenen VorgĂ€ngen gespeichert.
- Es ist keiner unbefugten Person gestattet, auf die Informationen des Benutzers zuzugreifen.
Um alle oben genannten Ziele sicherzustellen, mĂŒssen wir Datenvalidierung oder Datentests verwenden.
Unterschiede zwischen BenutzeroberflÀchentests und Datentests

| Testen der BenutzeroberflÀche | Datenbank- oder Datentests |
|---|---|
| Diese Art von Tests wird auch als grafische BenutzeroberflÀchentests oder Front-End-Tests bezeichnet. | Diese Art von Tests wird auch als Backend-Testing oder Datentests bezeichnet. |
| Bei dieser Art des Testens geht es hauptsĂ€chlich um alle testbaren Elemente, die dem Benutzer zur Ansicht und Interaktion offen stehen, wie Formulare, PrĂ€sentationen, Diagramme, MenĂŒs und Berichte usw. (erstellt mit VB, VB.net, VC++, Delphi â Front-End-Tools) | Diese Art des Testens befasst sich hauptsĂ€chlich mit allen testbaren Elementen, die dem Benutzer im Allgemeinen fĂŒr die Zuschauer verborgen bleiben. Dazu gehören interne Prozesse und Speicher wie Assembly, DBMS-Ă€hnlich Oracle, SQL Server, MySQL usw. |
|
Diese Art von Tests umfasst die Validierung der
|
Diese Art von Tests umfasst die Validierung von:
|
| Der Tester muss ĂŒber umfassende Kenntnisse der GeschĂ€ftsanforderungen sowie der Verwendung der Entwicklungstools und der Verwendung von Automatisierungsframeworks und -tools verfĂŒgen. | Um Backend-Tests durchfĂŒhren zu können, muss der Tester ĂŒber fundierte Kenntnisse der Konzepte von Datenbankservern und Structured Query Language verfĂŒgen. |
Arten von Datenbanktests
Es gibt drei Arten von Datenbanktests
In diesem Datenbanktest-Tutorial werden wir jeden Typ und seine Untertypen einzeln untersuchen.
Strukturelle Datenbanktests
Strukturelle Datenbanktests ist eine Datenbanktesttechnik, die alle Elemente im Datenrepository validiert, die hauptsĂ€chlich zur Datenspeicherung verwendet werden und nicht direkt von Endbenutzern manipuliert werden dĂŒrfen. Die Validierung von Datenbankservern ist auch ein wichtiger Aspekt bei strukturellen Datenbanktests. Um diesen Test erfolgreich abzuschlieĂen, mĂŒssen Sie SQL-Abfragen beherrschen.
Was ist Schematest?
Schematests Beim Datenbanktest werden verschiedene mit der Datenbank verknĂŒpfte Schemaformate validiert und ĂŒberprĂŒft, ob die Zuordnungsformate von Tabellen/Ansichten/Spalten mit den Zuordnungsformaten der BenutzeroberflĂ€che kompatibel sind. Der Hauptzweck des Schematests besteht darin, sicherzustellen, dass die Schemazuordnung zwischen Front-End und Back-End Ă€hnlich ist. Daher wird es auch als Mapping-Test bezeichnet.
Lassen Sie uns die wichtigsten PrĂŒfpunkte fĂŒr Schematests besprechen.
- Validierung der verschiedenen Schemaformate, die den Datenbanken zugeordnet sind. Oftmals ist das Zuordnungsformat der Tabelle möglicherweise nicht mit dem Zuordnungsformat kompatibel, das auf der BenutzeroberflÀchenebene der Anwendung vorhanden ist.
- Bei nicht zugeordneten Tabellen/Ansichten/Spalten besteht ĂberprĂŒfungsbedarf.
- DarĂŒber hinaus muss ĂŒberprĂŒft werden, ob heterogene Datenbanken in einer Umgebung mit der gesamten Anwendungszuordnung konsistent sind.
Schauen wir uns auch einige der interessanten Datenbanktesttools zur Validierung von Datenbankschemata an.
- DBUnit, das in Ant integriert ist, eignet sich sehr gut fĂŒr Mapping-Tests.
- Mit SQL Server können Tester das Schema der Datenbank ĂŒberprĂŒfen und abfragen, indem sie einfache Abfragen und nicht Code schreiben.
Wenn die Entwickler beispielsweise eine Tabellenstruktur Ă€ndern oder löschen möchten, möchte der Tester sicherstellen, dass alle gespeicherten Prozeduren und Ansichten, die diese Tabelle verwenden, mit der jeweiligen Ănderung kompatibel sind. Ein anderes Beispiel könnte sein, dass die Tester, wenn sie nach SchemaĂ€nderungen zwischen zwei Datenbanken suchen möchten, dies mithilfe einfacher Abfragen tun können.
Datenbanktabelle, Spaltentest
Schauen wir uns verschiedene PrĂŒfungen fĂŒr Datenbank- und Spaltentests an.
- Ob die Zuordnung der Datenbankfelder und -spalten im Backend mit den Zuordnungen im Frontend kompatibel ist?
- Validierung der LÀnge und Namenskonvention der Datenbankfelder und -spalten gemÀà den Anforderungen.
- Validierung des Vorhandenseins aller nicht verwendeten/nicht zugeordneten Datenbanktabellen/Spalten.
- Validierung der KompatibilitÀt der
- Datentyp
- FeldlÀngen
der Back-End-Datenbankspalten mit denen im Front-End der Anwendung.
- Ob die Datenbankfelder es dem Benutzer ermöglichen, gewĂŒnschte Benutzereingaben gemÀà den GeschĂ€ftsanforderungsspezifikationsdokumenten bereitzustellen.
Testen von SchlĂŒsseln und Indizes
Wichtige PrĂŒfungen fĂŒr SchlĂŒssel und Indizes â
- PrĂŒfen Sie, ob die erforderlichen
- PrimĂ€rschlĂŒssel
- Unbekannter SchlĂŒssel
FĂŒr die erforderlichen Tabellen wurden EinschrĂ€nkungen erstellt.
- PrĂŒfen Sie, ob die Referenzen fĂŒr FremdschlĂŒssel gĂŒltig sind.
- ĂberprĂŒfen Sie, ob der Datentyp des PrimĂ€rschlĂŒssels und der entsprechenden FremdschlĂŒssel in den beiden Tabellen gleich ist.
- ĂberprĂŒfen Sie, ob fĂŒr alle SchlĂŒssel und Indizes die erforderlichen Namenskonventionen eingehalten wurden.
- ĂberprĂŒfen Sie die GröĂe und LĂ€nge der erforderlichen Felder und Indizes.
- Ob das erforderliche
- Clustered-Indizes
- Nein Clustered-Indizes
wurden gemÀà den GeschĂ€ftsanforderungen fĂŒr die erforderlichen Tabellen erstellt.
Testen gespeicherter Prozeduren
Wichtige Tests zur ĂberprĂŒfung gespeicherter Prozeduren sind:
- Ob das Entwicklungsteam die erforderlichen A) Codierungsstandardkonventionen und B) Ausnahme- und Fehlerbehandlung ĂŒbernommen hat. FĂŒr alle gespeicherten Prozeduren fĂŒr alle Module der zu testenden Anwendung.
- Hat das Entwicklungsteam alle Bedingungen/Schleifen abgedeckt, indem es die erforderlichen Eingabedaten auf die zu testende Anwendung angewendet hat?
- Hat das Entwicklungsteam den TRIM-Vorgang immer ordnungsgemÀà angewendet, wenn Daten aus den erforderlichen Tabellen in der Datenbank abgerufen wurden?
- Ob die manuelle AusfĂŒhrung der Stored Procedure dem Endbenutzer das gewĂŒnschte Ergebnis liefert?
- Stellt die manuelle AusfĂŒhrung der gespeicherten Prozedur sicher, dass die Tabellenfelder entsprechend den Anforderungen der zu testenden Anwendung aktualisiert werden?
- Ob die AusfĂŒhrung der Stored Procedures das implizite Aufrufen der erforderlichen Trigger ermöglicht?
- ĂberprĂŒfung des Vorhandenseins ungenutzter gespeicherter Prozeduren.
- Validierung fĂŒr die Bedingung âNull zulassenâ, die auf Datenbankebene durchgefĂŒhrt werden kann.
- Validierung der Tatsache, dass alle gespeicherten Prozeduren und Funktionen erfolgreich ausgefĂŒhrt wurden, wenn die zu testende Datenbank leer ist.
- Validierung der Gesamtintegration der gespeicherten Prozedurmodule gemÀà den Anforderungen der zu testenden Anwendung.
Einige der nĂŒtzlichen Datenbanktesttools zum Testen gespeicherter Prozeduren sind LINQ, das SP-Testtool usw.
Triggertests
- Wurden wÀhrend der Codierungsphase der Trigger die erforderlichen Codierungskonventionen befolgt?
- PrĂŒfen Sie, ob die fĂŒr die jeweiligen DML-Transaktionen ausgefĂŒhrten Trigger die erforderlichen Bedingungen erfĂŒllt haben.
- Ob der Trigger die Daten nach ihrer AusfĂŒhrung korrekt aktualisiert?
- Validierung der erforderlichen Update-/EinfĂŒge-/Lösch-Trigger-FunktionalitĂ€t im Bereich der zu testenden Anwendung.
Datenbankservervalidierungen
- ĂberprĂŒfen Sie die Datenbankserverkonfigurationen gemÀà den GeschĂ€ftsanforderungen.
- ĂberprĂŒfen Sie die Berechtigung des erforderlichen Benutzers, nur die Aktionsebenen auszufĂŒhren, die fĂŒr die Anwendung erforderlich sind.
- ĂberprĂŒfen Sie, ob der Datenbankserver in der Lage ist, die Anforderungen der maximal zulĂ€ssigen Anzahl von Benutzertransaktionen gemÀà den GeschĂ€ftsanforderungsspezifikationen zu erfĂŒllen.
Funktionale Datenbanktests
Funktionale Datenbanktests ist eine Art von Datenbanktest, der verwendet wird, um die funktionalen Anforderungen einer Datenbank aus der Sicht des Endbenutzers zu validieren. Das Hauptziel des funktionalen Datenbanktests besteht darin, zu prĂŒfen, ob die von den Endbenutzern durchgefĂŒhrten Transaktionen und VorgĂ€nge, die mit der Datenbank in Zusammenhang stehen, wie erwartet funktionieren oder nicht.
Nachfolgend sind die grundlegenden Bedingungen aufgefĂŒhrt, die bei Datenbankvalidierungen beachtet werden mĂŒssen.
- Ob das Feld obligatorisch ist und gleichzeitig NULL-Werte in diesem Feld zulÀssig sind?
- Ob die LĂ€nge jedes Feldes ausreichend groĂ ist?
- Ob alle Ă€hnlichen Felder tabellenĂŒbergreifend dieselben Namen haben?
- Gibt es in der Datenbank berechnete Felder?
Bei diesem speziellen Prozess handelt es sich um die Validierung der Feldzuordnungen aus Sicht des Endbenutzers. In diesem speziellen Szenario fĂŒhrt der Tester einen Vorgang auf Datenbankebene aus und navigiert dann zum entsprechenden BenutzeroberflĂ€chenelement, um zu beobachten und zu validieren, ob die richtigen Feldvalidierungen durchgefĂŒhrt wurden oder nicht.
Der umgekehrte Fall, bei dem der Tester zuerst den Vorgang an der BenutzeroberflĂ€che ausfĂŒhrt und dieser anschlieĂend vom Backend aus validiert wird, muss ebenfalls eingehalten werden.
ĂberprĂŒfung der DatenintegritĂ€t und -konsistenz
Folgende Kontrollen sind wichtig
- Ob die Daten logisch gut organisiert sind?
- Sind die in den Tabellen gespeicherten Daten korrekt und entsprechen den GeschÀftsanforderungen?
- Sind in der getesteten Anwendung unnötige Daten vorhanden?
- Wurden die Daten gemÀà den Anforderungen in Bezug auf Daten gespeichert, die ĂŒber die BenutzeroberflĂ€che aktualisiert wurden?
- Wurden TRIM-Operationen an den Daten durchgefĂŒhrt, bevor die Daten in die zu testende Datenbank eingefĂŒgt wurden?
- Ob die Transaktionen gemÀà den GeschĂ€ftsanforderungsspezifikationen durchgefĂŒhrt wurden und ob die Ergebnisse korrekt sind oder nicht?
- Ob die Daten ordnungsgemÀà festgeschrieben wurden, wenn die Transaktion erfolgreich ausgefĂŒhrt wurde?
- Ob die Daten erfolgreich zurĂŒckgesetzt wurden, wenn die Transaktion vom Endbenutzer nicht erfolgreich ausgefĂŒhrt wurde?
- Ob die Daten zurĂŒckgesetzt wurden, wenn die Transaktion nicht erfolgreich ausgefĂŒhrt wurde und mehrere heterogene Datenbanken an der betreffenden Transaktion beteiligt waren?
- Ob alle Transaktionen unter Verwendung der erforderlichen Entwurfsverfahren gemÀà den GeschĂ€ftsanforderungen des Systems ausgefĂŒhrt wurden?
Anmelde- und Benutzersicherheit
Bei der Validierung der Anmelde- und Benutzersicherheitsdaten mĂŒssen die folgenden Aspekte berĂŒcksichtigt werden.
- Ob die Anwendung den Benutzer daran hindert, mit der Anwendung fortzufahren, wenn a
- UngĂŒltiger Benutzername, aber gĂŒltiges Passwort
- gĂŒltiger Benutzername, aber ungĂŒltiges Passwort.
- UngĂŒltiger Benutzername und ungĂŒltiges Passwort.
- Darf der Benutzer nur die spezifischen VorgĂ€nge ausfĂŒhren, die in den GeschĂ€ftsanforderungen festgelegt sind?
- Ob die Daten vor unbefugtem Zugriff geschĂŒtzt sind?
- Gibt es unterschiedliche Benutzerrollen mit unterschiedlichen Berechtigungen?
- VerfĂŒgen alle Benutzer ĂŒber die erforderlichen Zugriffsebenen auf die angegebene Datenbank, wie in den GeschĂ€ftsspezifikationen gefordert?
- ĂberprĂŒfen Sie, ob vertrauliche Daten wie Passwörter und Kreditkartennummern verschlĂŒsselt und nicht als Klartext in der Datenbank gespeichert sind. Es empfiehlt sich, sicherzustellen, dass alle Konten komplexe Passwörter haben, die nicht leicht zu erraten sind.
Nicht funktionales Testen
Nicht funktionales Testen im Zusammenhang mit Datenbanktests können entsprechend den GeschÀftsanforderungen in verschiedene Kategorien eingeteilt werden. Dies können Lasttests, Stresstests, Sicherheitstests, Usability-Tests und KompatibilitÀtstests, und so weiter. Die Belastungstests sowie die Stresstests, die unter der Skala der Leistungstests zusammengefasst werden können, dienen zwei spezifischen Zwecken, wenn es um die Rolle nichtfunktionaler Tests geht.
Risikoquantifizierungâ Die Quantifizierung des Risikos hilft den Beteiligten, die verschiedenen Anforderungen an die Systemreaktionszeit unter den erforderlichen Lastniveaus zu ermitteln. Dies ist die ursprĂŒngliche Absicht von jedem QualitĂ€tskontrolle Aufgabe. Wir mĂŒssen beachten, dass Belastungstests das Risiko nicht direkt mindern, sondern durch die Prozesse der Risikoidentifizierung und Risikoquantifizierung Korrekturmöglichkeiten und einen Impuls fĂŒr AbhilfemaĂnahmen bieten, die das Risiko mindern.
Mindestanforderungen an die SystemausrĂŒstungâ Die minimale Systemkonfiguration, die es dem System ermöglicht, die formal festgelegten Leistungserwartungen der Stakeholder zu erfĂŒllen. So können externe Hardware, Software und die damit verbundenen Betriebskosten minimiert werden. Diese besondere Anforderung kann als allgemeine GeschĂ€ftsoptimierungsanforderung kategorisiert werden.
Load Testing
Der Zweck eines jeden Belastungstests sollte klar verstanden und dokumentiert werden. Die folgenden Konfigurationstypen sind ein Muss fĂŒr LastprĂŒfung.
- Die am hÀufigsten verwendeten Benutzertransaktionen können die Leistung aller anderen Transaktionen beeintrÀchtigen, wenn sie nicht effizient sind.
- In die endgĂŒltige Testsuite sollte mindestens eine Benutzertransaktion ohne Bearbeitung aufgenommen werden, damit die AusfĂŒhrung solcher Transaktionen von anderen, komplexeren Transaktionen unterschieden werden kann.
- Die wichtigeren Transaktionen, die die Kernziele des Systems ermöglichen, sollten einbezogen werden, da ein Ausfall unter der Last dieser Transaktionen per Definition die gröĂten Auswirkungen hat.
- Dazu sollte mindestens eine bearbeitbare Transaktion enthalten sein Leistung Solche Transaktionen können von anderen Transaktionen unterschieden werden.
- Optimale Reaktionszeit bei einer groĂen Anzahl virtueller Benutzer fĂŒr alle zukĂŒnftigen Anforderungen.
- Effektive Zeiten zum Abrufen verschiedener DatensÀtze.
Wichtige Lasttest-Tools sind LoadRunner Professional, Win Runner und JMeter.
Was ist ein Datenbank-Stresstest?
Datenbank-Stresstest ist eine Testmethode, mit der ein Datenbanksystem unter hoher Auslastung einem Stresstest unterzogen wird, sodass es irgendwann ausfĂ€llt. Dies hilft bei der Identifizierung des Ausfallpunkts des Datenbanksystems. Es erfordert eine angemessene Planung und entsprechende Anstrengungen, um eine ĂŒbermĂ€Ăige Nutzung der Ressourcen zu vermeiden. Daten Stress-Tests wird auch als quĂ€lende PrĂŒfung oder ErmĂŒdungsprĂŒfung bezeichnet.
Wichtige Stresstest-Tools sind LoadRunner Professional und JMeter.
Die am hÀufigsten auftretenden Probleme beim Datenbanktest
A significant amount of overhead could be involved to determine the state of the database transactions
Lösung: Die gesamte Prozessplanung und -planung sollte so organisiert sein, dass keine zeit- und kostenbedingten Probleme auftreten.
New test data have to be designed after cleaning up of the old test data.
Lösung: Ein vorheriger Plan und eine Methodik fĂŒr die Testdatengenerierung sollten vorliegen.
An SQL generator is required to transform SQL validators in order to ensure the SQL queries are apt for handling the required database test cases.
Lösung: Die Pflege der SQL-Abfragen und deren kontinuierliche Aktualisierung ist ein wesentlicher Teil des gesamten Testprozesses, der Teil des Gesamtprozesses sein sollte Teststrategie.
The above mentioned prerequisite ensure that the set-up of the database testing procedure could be costly as well as time consuming.
Lösung: Es sollte ein ausgewogenes VerhÀltnis zwischen QualitÀt und Gesamtdauer des Projektzeitplans bestehen.
Mythen oder MissverstÀndnisse im Zusammenhang mit Datenbanktests
Database Testing requires plenty of expertise and it is a very tedious job
Wirklichkeit: Effektive und effiziente Datenbanktests im Softwaretest sorgen fĂŒr eine langfristige FunktionsstabilitĂ€t der gesamten Anwendung und erfordern daher harte Arbeit.
Database testing adds extra work bottleneck
Wirklichkeit: Im Gegenteil, Datenbanktests steigern den Wert der Gesamtarbeit, indem sie versteckte Probleme aufdecken und so proaktiv zur Verbesserung der Gesamtanwendung beitragen.
Database testing slows down the overall development process
Wirklichkeit: Ein erheblicher Umfang an Datenbanktests trÀgt zur allgemeinen Verbesserung der QualitÀt der Datenbankanwendung bei.
Database testing could be excessively costly
Wirklichkeit: Jeder Aufwand fĂŒr Datenbanktests ist eine langfristige Investition, die zu einer langfristigen StabilitĂ€t und Robustheit der Anwendung fĂŒhrt. Somit sind Ausgaben fĂŒr Datenbanktests bzw SQL Tests sind notwendig.
Best Practices
- Alle Daten, einschlieĂlich der Metadaten sowie der Funktionsdaten, mĂŒssen entsprechend ihrer Zuordnung durch die Anforderungsspezifikationsdokumente validiert werden.
- ĂberprĂŒfung der Testdaten das vom/in Absprache mit dem Entwicklungsteam erstellt wurde, muss validiert werden.
- Validierung der Ausgabedaten mithilfe sowohl manueller als auch automatisierter Verfahren.
- Einsatz verschiedener Techniken wie der Ursache-Wirkungs-Grafiktechnik, der Ăquivalenzpartitionierungstechnik und der Randwertanalysetechnik zur Generierung der erforderlichen Testdatenbedingungen.
- Die Validierungsregeln der referenziellen IntegritĂ€t fĂŒr die erforderlichen Datenbanktabellen mĂŒssen ebenfalls validiert werden.
- Die Auswahl von Standardtabellenwerten fĂŒr die Validierung der Datenbankkonsistenz ist ein sehr wichtiges Konzept. Ob die Protokollereignisse fĂŒr alle erforderlichen Anmeldeereignisse erfolgreich zur Datenbank hinzugefĂŒgt wurden
- Werden geplante Jobs rechtzeitig ausgefĂŒhrt?
- Erstellen Sie rechtzeitig ein Backup der Datenbank.
Auch Check- Fragen und Antworten zum Datenbanktest-Interview



