Datenbanktests - Interviewfragen

Das Testen der Datenbank umfasst das Durchführen der Datengültigkeit, das Testen der Datenintegrität, die Leistungsprüfung in Bezug auf die Datenbank und das Testen von Prozeduren, Triggern und Funktionen in der Datenbank.

Es gibt mehrere Gründe, warum Datenbanktests durchgeführt werden. Es ist erforderlich, Datenintegrität, Validierung und Datenkonsistenzprüfung für die Datenbank durchzuführen, da das Backend-System für die Speicherung der Daten verantwortlich ist und für mehrere Zwecke zugegriffen wird.

Einige der häufigsten Gründe, warum Datenbanktests durchgeführt werden müssen, sind folgende:

  • Um die Komplexität der Aufrufe des Datenbank-Backends zu verringern, erhöhen Entwickler die Verwendung von View und Stored Verfahren.

  • Diese Stored Verfahren und ViewsEnthält wichtige Aufgaben wie das Einfügen von Kundendaten (Name, Kontaktinformationen usw.) und Verkaufsdaten. Diese Aufgaben müssen auf mehreren Ebenen getestet werden.

  • Black-Box-Tests am Front-End sind wichtig, machen es jedoch schwierig, das Problem einzugrenzen. Tests im Backend-System erhöhen die Robustheit der Daten. Aus diesem Grund werden Datenbanktests auf dem Back-End-System durchgeführt.

  • In einer Datenbank stammen Daten aus mehreren Anwendungen, und es besteht die Möglichkeit, dass schädliche oder falsche Daten in der Datenbank gespeichert werden. Daher müssen die Datenbankkomponenten regelmäßig überprüft werden. Darüber hinaus sollten Datenintegrität und -konsistenz regelmäßig überprüft werden.

Die Schritte, die Sie beim Ausführen von Datenbanktests ausführen müssen, sind folgende:

  • Die Daten in der Datenbank müssen überprüft werden.
  • Überprüfen Sie, ob die Einschränkungen beibehalten werden.
  • Die Leistung der Prozeduren und die Ausführung von Triggern müssen überprüft werden.
  • Rollback und Commit der Transaktion müssen überprüft werden.

Aufgrund der Funktion und Struktur einer Datenbank können DB-Tests in die folgenden Kategorien eingeteilt werden:

  • Structural Database testing - Es befasst sich mit Tabellen- und Spaltentests, Schematests, Tests mit gespeicherten Prozeduren und Ansichten, Überprüfen von Triggern usw.

  • Functional Testing- Es beinhaltet die Überprüfung der Funktionalität der Datenbank aus Anwendersicht. Die gebräuchlichste Art von Funktionstests sind White-Box- und Black-Box-Tests.

  • Nonfunctional Testing - Es umfasst Lasttests, Risikotests in der Datenbank, Stresstests, Mindestsystemanforderungen und die Leistung der Datenbank.

Die gebräuchlichsten Tools zum Testen gespeicherter Prozeduren sind LINQ, SP Test Tool usw.

Joins werden verwendet, um zwei oder mehr Tabellen auf logische Weise zu verbinden. Zu den gebräuchlichen Arten von Joins gehören: Innerer Join, Nicht-Equijoin, Äußerer Join, Selbst-Join und Cross-Join.

Sie können eine einzelne Tabelle mit sich selbst verbinden. In diesem Fall verwenden Sie dieselbe Tabelle zweimal.

Step 1 - Stellen Sie eine Verbindung zur Datenbank her

db_connect(query1 DRIVER {drivername};SERVER server_name;UID uidname;
   PWD password;DBQ database_name );

Step 2 - Führen Sie die Abfrage der Datenbank aus. -

db_excecute_query (write the required query that is to execute); Specify the appropriate condition

Step 3 - Trennen Sie die Datenbankverbindung mit

db_disconnect(query);

Bei Verwendung von Ausgabedatenbankprüfpunkten müssen Optionen für manuelle SQL-Abfragen ausgewählt werden. Hier kann die Auswahlabfrage geschrieben werden.

Überprüfen Sie zunächst die Anforderungen der gespeicherten Prozedur. Der nächste Schritt besteht darin, zu überprüfen, ob Indizes, Verknüpfungen, Löschungen und Aktualisierungen im Vergleich zu den in der gespeicherten Prozedur genannten Tabellen korrekt sind.

Führen Sie als Nächstes die folgenden Aufgaben aus:

  • Überprüfen Sie den Namen der aufrufenden Prozedur, die aufrufenden Parameter und die erwarteten Antworten für verschiedene Sätze von Eingabeparametern.

  • Führen Sie die Prozedur mit TOAD oder MySQL oder Query Analyzer aus.

  • Führen Sie die verfügbaren Prozeduren erneut aus, indem Sie verschiedene Parameter senden, und überprüfen Sie die Ergebnisse mit den erwarteten Werten.

  • Automatisieren Sie abschließend die Tests mit WinRunner.

Der Tester sollte die in der Datenbank gespeicherte Prozedur mit dem Befehl EXEC aufrufen. Wenn Parameter erforderlich sind, müssen diese übergeben werden. Es müssen unterschiedliche Parameterwerte übergeben werden, um zu bestätigen, ob die gespeicherte Prozedur ausgeführt wird oder nicht. Beim Aufrufen dieses Befehls muss die Art und das Verhalten der Datenbank überprüft und überprüft werden.

Example - Wenn die gespeicherte Prozedur zum Auffüllen einer Tabelle geschrieben wurde, müssen die Tabellenwerte überprüft werden.

Wir haben drei Arten von SQL-Anweisungen -

  • Datenmanipulationssprache (DML)
  • Datendefinitionssprache (DDL)
  • Datensteuerungssprache (DCL)

DDL-Anweisungen werden verwendet, um die Datenbankstruktur oder das Schema zu definieren. Einige Beispiele -

  • CREATE - um Objekte in der Datenbank zu erstellen

  • ALTER - ändert die Struktur der Datenbank

  • DROP - Objekte aus der Datenbank löschen

Operatoren werden verwendet, um Bedingungen in einer SQL-Anweisung anzugeben und als Konjunktionen für mehrere Bedingungen in einer Anweisung zu dienen.

  • Rechenzeichen
  • Vergleichs- / Vergleichsoperatoren
  • Logische Operatoren
  • Operatoren einstellen
  • Operatoren, mit denen Bedingungen negiert werden

Union wird verwendet, um die Ergebnisse von zwei oder mehr Select-Anweisungen zu kombinieren. Es werden jedoch die doppelten Zeilen entfernt. Union ist ein Set-Operator.

Unionwird verwendet, um die Ergebnisse von zwei oder mehr Select-Anweisungen zu kombinieren. Es werden jedoch doppelte Zeilen entfernt

Union All Die Operation ähnelt der von Union, zeigt jedoch auch die doppelten Zeilen an.

Trigger werden verwendet, um die Integrität der Datenbank aufrechtzuerhalten. Um zu überprüfen, ob der Trigger ausgelöst wurde oder nicht, können Sie Überwachungsprotokolle einchecken.

Trigger können nicht bei Bedarf aufgerufen werden. Sie werden aufgerufen, wenn eine zugehörige Aktion (Einfügen, Löschen und Aktualisieren) für die Tabelle ausgeführt wird, für die sie definiert sind. Trigger werden verwendet, um Geschäftsregeln, die Überwachung und auch die referenzielle Integritätsprüfung anzuwenden.

Holen Sie sich zunächst die funktionale Anforderung. Verstehen Sie dann die Tabellenstruktur, Verknüpfungen, Cursor und Trigger, die verwendete gespeicherte Prozedur und andere Parameter. Als nächstes können Sie einen Testfall mit verschiedenen Werten als Eingabe für diese Objekte schreiben.

Beim DB-Testen werden Back-End-Komponenten getestet, die für Benutzer nicht sichtbar sind. Es enthält Datenbankkomponenten und DBMS-Systeme wie MySQL und Oracle.

Beim Front-End-Testen werden die Funktionen einer Anwendung und ihrer Komponenten wie Formulare, Diagramme, Menüs, Berichte usw. überprüft. Diese Komponenten werden mit Front-End-Entwicklungstools wie VB.net, C #, Delphi usw. erstellt.

Der Prozess zum Durchführen von Datenbanktests ähnelt dem Testen anderer Anwendungen. DB-Tests können mit den folgenden Schlüsselprozessen beschrieben werden:

  • Umgebung einrichten
  • Führen Sie einen Test durch
  • Überprüfen Sie das Testergebnis
  • Validierung gemäß den erwarteten Ergebnissen
  • Melden Sie die Ergebnisse den jeweiligen Stakeholdern

Zur Entwicklung der Testfälle werden verschiedene SQL-Anweisungen verwendet. Die häufigste SQL-Anweisung, die zum Ausführen von DB-Tests verwendet wird, ist die select-Anweisung. Daneben können auch verschiedene DDL-, DML- und DCL-Anweisungen verwendet werden.

Example - Erstellen, Einfügen, Auswählen, Aktualisieren usw.

Eine Ansicht ist eine Tabelle, die nicht eigenständig existiert, sondern von einer oder mehreren Basistabellen abgeleitet wird. Mit anderen Worten, es gibt keine gespeicherte Datei, die die Ansicht direkt darstellt, stattdessen wird eine Definition der Ansicht im Datenwörterbuch gespeichert.

Das Wachstum und die Umstrukturierung von Basistabellen spiegeln sich nicht in den Ansichten wider. Somit kann die Ansicht Benutzer von den Änderungen in der Datenbank isolieren. Berücksichtigt daher die logische Datenunabhängigkeit.

Es gibt Benutzeransichten und deren Zuordnungen zum konzeptionellen Schema an.

Es ist ein Prozess, bei dem eine Tabelle in mehrere Tabellen zerlegt wird, ohne dass Informationen verloren gehen. Die Normalisierung wird durchgeführt, um die folgenden Ziele zu erreichen:

  • Redundanz minimieren.
  • Um das Einfügen, Löschen und Aktualisieren von Anomalien zu minimieren.

Die Indizierung ist eine Technik, mit der ermittelt wird, wie schnell bestimmte Daten gefunden werden können. Es wird zur Optimierung der Abfrageleistung verwendet. Es gibt folgende Arten der Indizierung:

  • Indizierung des binären Suchstils
  • B-Tree-Indizierung
  • Indizierte Listenindizierung
  • Speicherresidente Tabelle
  • Tabellenindizierung

SQL ist eine strukturierte Abfragesprache, die speziell für Datenzugriffsvorgänge auf normalisierten relationalen Datenbankstrukturen entwickelt wurde.

Der Hauptunterschied zwischen SQL und anderen herkömmlichen Programmiersprachen besteht darin, dass SQL-Anweisungen angeben, welche Datenoperationen ausgeführt werden sollen, anstatt wie sie ausgeführt werden sollen.

Gespeicherte Prozeduren werden verwendet, um eine benutzerdefinierte Operation auszuführen. Eine gespeicherte Prozedur kann eine Reihe zusammengesetzter SQL-Anweisungen enthalten. Eine gespeicherte Prozedur führt die SQL-Befehle aus und gibt das Ergebnis an den Client zurück.

PL / SQL verwendet Cursor für alle Datenbankinformationen, die auf Anweisungen zugreifen. Die Sprache unterstützt die Verwendung von zwei Arten von Cursorn - implizit und explizit.

Cold Backup- Cold Back wird als Sicherung von Datenbankdateien, Redo-Protokollen und Steuerdateien bezeichnet, wenn die Instanz heruntergefahren wird. Dies ist eine Dateikopie, normalerweise von der Festplatte direkt auf Band. Sie müssen die Instanz herunterfahren, um eine konsistente Kopie zu gewährleisten.

Wenn eine kalte Sicherung durchgeführt wird, ist die einzige Option, die bei Verlust von Datendateien verfügbar ist, die Wiederherstellung aller Dateien aus der letzten Sicherung. Alle Änderungen, die nach der letzten Sicherung vorgenommen werden, gehen verloren.

Hot Backup- Einige Datenbanken können nicht heruntergefahren werden, während eine Sicherungskopie der Dateien erstellt wird. Daher ist eine kalte Sicherung nicht verfügbar. Für diese Arten von Datenbanken verwenden wir Hot Backup.

Mit der SQL-Unterabfrage können zwei oder mehr Tabellen gleichzeitig abgefragt werden. Die Unterabfrage selbst ist eine SQL SELECT-Anweisung, die in der WHERE-Klausel einer anderen SQL SELECT-Anweisung enthalten ist und durch Klammern getrennt ist. Einige Unterabfragen haben äquivalente SQL-Join-Strukturen, korrelierte Unterabfragen können jedoch nicht von einem Join dupliziert werden

In einem solchen Fall müssen Sie die folgenden Aspekte testen:

  • Mehrwertige Abhängigkeiten
  • Funktionale Abhängigkeiten
  • Kandidatenschlüssel
  • Primärschlüssel
  • Fremde Schlüssel

Sie können zur Datenbank gehen und eine relevante SQL-Abfrage ausführen. In WinRunner können Sie die Datenbankprüfpunktfunktion verwenden. Wenn die Anwendung eine Ansichtsfunktion bietet, können Sie diese im Front-End überprüfen.

Datengesteuertes Testen ist definiert als ein Automatisierungstestprozess, bei dem die Anwendung mit mehreren Testdaten getestet wird. Es ist einfach und unkompliziert als ein erneuter Test, bei dem der Tester einfach vor dem System sitzt und manuell über die Front-End-Schnittstelle verschiedene neue Eingabewerte eingibt.

Sobald Sie die Testfälle ausgeführt haben, finden Sie die Fehler, die bereits erkannt und behoben wurden. Die erneute Ausführung desselben Tests mit unterschiedlichen Eingabewerten, um zu bestätigen, dass der ursprüngliche Fehler erfolgreich behoben wurde, wird als erneutes Testen bezeichnet.

Das erneute Testen wird mit einem kleinen Unterschied auch als datengesteuertes Testen bezeichnet.

  • Retesting - Es handelt sich um einen manuellen Testprozess, bei dem Anwendungstests mit einem völlig neuen Datensatz durchgeführt werden.

  • Data-driven Testing- Es handelt sich um einen Automatisierungstestprozess, bei dem die Anwendung mit mehreren Testdaten getestet wird. Es ist einfach und leicht als ein erneuter Test, bei dem der Tester einfach vor dem System sitzt und verschiedene neue Eingabewerte manuell über die Front-End-Schnittstelle eingibt.

Es gibt vier Arten von datengesteuerten Tests:

  • Dynamische Übermittlung von Testdaten über die Tastatur
  • Datengesteuerte Tests über TXT- und DOC-Flatfiles
  • Datengesteuerte Tests über Front-End-Objekte
  • Datengesteuerte Tests über Excel-Tabelle

Leistungstests sind Softwaretesttechniken, mit denen ermittelt wird, wie sich ein System unter hoher Arbeitsbelastung in Bezug auf Geschwindigkeit, Empfindlichkeit und Stabilität verhält.

Die folgenden wichtigen Punkte sind bei der Durchführung von Datenbankwiederherstellungstests zu berücksichtigen:

  • Zeitspanne, in der Änderungen oder Modifikationen im Datenbanksystem auftreten.

  • Der Zeitraum, bis zu dem Ihr Wiederherstellungsplan durchgeführt werden soll.

  • Die Empfindlichkeit von Daten im Datenbanksystem. Je kritischer die Daten sind, desto regelmäßiger müssen Sie die Software testen.

Die folgenden Tools werden zum Generieren von Testdaten verwendet:

  • Datenfabrik
  • DTM-Datengenerator
  • Turbodaten

Es gibt zwei Arten von Backups, die verwendet werden können:

  • Physical Backups- Physikalische Sicherung beinhaltet bis unter Verwendung von 3 zurück nehmen rd Party Backup - Tools wie Veritas Netz zurück, IBM Tivoli Manager oder Benutzer - Manager Sicherungen OS Dienstprogramme verwenden.

  • Logical Backups - Die logische Sicherung der Datenbank umfasst die Sicherung logischer Objekte wie Tabellen, Indizes, Prozeduren usw.

Ein gängiges Tool für die Datensicherung ist Oracle Recovery Manager (RMAN), ein Oracle-Dienstprogramm für die Datenbanksicherung.

Die folgenden Aktionen werden beim Testen der Datenbankwiederherstellung ausgeführt:

  • Testen des Datenbanksystems
  • Testen der SQL-Dateien
  • Testen von Teildateien
  • Testen der Datensicherung
  • Testen des Backup-Tools
  • Testen von Protokollsicherungen

Datenbanksicherheitstests werden durchgeführt, um die Lücken in Sicherheitsmechanismen zu ermitteln und um die Schwachstellen oder Schwächen des Datenbanksystems zu ermitteln.

Datenbanksicherheitstests werden durchgeführt, um die folgenden Aspekte zu überprüfen:

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

Die SQL Injection-Bedrohung ist die häufigste Angriffsart in einem Datenbanksystem, bei dem böswillige SQL-Anweisungen in das Datenbanksystem eingefügt und ausgeführt werden, um wichtige Informationen aus dem Datenbanksystem abzurufen. Dieser Angriff nutzt Lücken bei der Implementierung von Benutzeranwendungen. Um dies zu verhindern, sollten Benutzereingaben sorgfältig behandelt werden.

Die folgenden Tools können zum Durchführen von Datenbanksicherheitstests verwendet werden: Zed Attack Proxy, Paros, Social Engineer Toolkit, Skipfish, Vega, Wapiti und Web Scarab.

Die häufigsten Herausforderungen beim Testen von Datenbanken sind folgende:

  • Der Testumfang ist zu groß
  • Verkleinerte Testdatenbank
  • Änderungen in der Datenbankstruktur
  • Komplexe Testpläne
  • Gutes Verständnis von SQL