Sdílet prostřednictvím


Übersicht über Datenbankkomponententests

Aktualisiert: November 2007

Mit Datenbankkomponententests können Sie einen Baselinezustand der Datenbank definieren und alle späteren Änderungen an Datenbankobjekten überprüfen. Zu Beginn schreiben Sie dabei Gruppen von T-SQL-Tests, die ein bestimmtes Datenbankobjekt prüfen und die korrekte Funktion des Datenbankobjekts sicherstellen. Nach Änderungen am Datenbankschema können Sie dann mithilfe dieser Tests überprüfen, ob die Änderungen Fehler in bestehenden Funktionen verursacht haben. Mithilfe von Komponententests, die den Erfolg von Änderungen am Datenbankentwurf prüfen, können Sie gewährleisten, dass diese Änderungen wie erwartet funktionieren und dadurch keine neuen Fehler eingeführt wurden. Datenbankkomponententests ergänzen die von den Softwareentwicklern erstellten Softwarekomponententests. Beide Arten von Komponententests sind erforderlich, um auf sichere Weise Änderungen an der Anwendung vornehmen zu können.

Für das Erstellen von Komponententests wird zuerst eine isolierte, von der Produktionsdatenbank getrennte Datenbankentwicklungsumgebung benötigt. Mit Visual Studio Team System Database Edition führen Sie die folgenden grundlegenden Schritte aus:

  1. Erstellen eines Datenbankprojekts

  2. Importieren des Schemas aus der Produktionsdatenbank in dieses Projekt

  3. Bereitstellen des Datenbankprojekts, um eine Datenbank zu erstellen, die dasselbe Schema wie die Produktionsdatenbank verwendet

  4. Füllen dieser Datenbank mit Testdaten

Nach dem Einrichten der isolierten Datenbankentwicklungsumgebung und Füllen der Datenbank mit Daten können Sie mit dem Erstellen von Komponententests beginnen, um die Datenbankobjekte in dieser Umgebung zu testen. Nach dem Testen der Datenbankobjekte können mithilfe dieser Komponententest Regressionen in der Funktionalität erkannt werden, die durch Änderungen an der Datenbank verursacht wurden. Wenn Sie diese Änderungen in einer isolierten Entwicklungsumgebung testen, können Sie sicherstellen, dass die Produktionsdatenbank nicht beeinträchtigt wird. Nach dem Abschluss aller Tests können Sie die Komponententests in einer größeren Testumgebung bereitstellen, die die Änderungen von anderen Teammitgliedern enthält. So können Sie schnell Regressionen erkennen und beheben, die durch weitere Datenbankänderungen verursacht wurden.

Sie können Komponententests auch als Teil des manuellen Bereitstellungsprozesses ausführen. In diesem Fall erstellen Sie ein Buildskript aus einer benannten Gruppe von Quellen und bearbeiten das Skript nach Bedarf. Stellen Sie die Datenbank auf einem Stagingserver bereit, und führen Sie anschließend die Datenbank- und Softwarekomponententests aus, um den Zustand der Datenbank und der Gesamtanwendung zu prüfen. Wenn alle Tests erfolgreich ausgeführt werden, können Sie die Datenbank in der Produktionsumgebung bereitstellen. Weitere Informationen finden Sie unter Verwalten von Datenbankänderungen.

Erstellen von Datenbankkomponententests

Sie können Datenbankkomponententests für die Evaluierung von Änderungen an beliebigen Datenbankobjekten erstellen. Database Edition bietet jedoch zusätzliche Unterstützung für Datenbankfunktionen, Trigger und gespeicherte Prozeduren. Beim Erstellen von Tests für diese Objekte werden automatisch T-SQL-Codestubs generiert, die Sie anpassen können. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Datenbankkomponententests für Funktionen, Trigger und gespeicherte Prozeduren und unter Gewusst wie: Erstellen eines leeren Datenbankkomponententests.

Aa833233.alert_note(de-de,VS.90).gifHinweis:

Sie können Datenbankkomponententests auch dann erstellen und ausführen, wenn kein Datenbankprojekt geöffnet ist. Beim Generieren von T-SQL-Skripts für zu testende Objekte muss jedoch das Datenbankprojekt geöffnet sein, das diese Objekte enthält.

Entwerfen von Komponententests

Wie andere in Visual Studio Team System Test Edition integrierte Testtypen sind Datenbankkomponententests ebenfalls in Visual Studio integriert. Mit dem Datenbankkomponententest-Designer können Sie Transact-SQL-(T-SQL-)Testskripts definieren, die Datenbankskripts ausführen, und die Ergebnisse dieser Skripts dann anhand von Testbedingungen auswerten, die eine erfolgreiche Ausführung oder einen Fehler der Skriptaktion angeben.

Der Datenbankkomponententest-Designer enthält die folgenden Features:

Feature

Zweck

Navigationsleiste - Listenfeld Testname

Hiermit können Sie einzelne Komponententests im Testprojekt nach ihrem Namen auswählen, oder wählen Sie den Eintrag CommonScripts, um Skripts zu erstellen, die vor oder nach jedem Komponententest in derselben Testklasse ausgeführt werden.

Navigationsleiste - Listenfeld Test

Hier können Sie Vortest-, Test- und Nachtestoptionen auswählen, um T-SQL-Skripts und Testbedingungen zu erstellen, die zu verschiedenen Zeiten während eines Komponententests ausgeführt werden. Mithilfe des Vortestskripts können Sie einen bestimmten Zustand innerhalb der Entwicklungsdatenbank herstellen. Mithilfe des Nachtestskripts können Sie die Datenbank nach den Testläufen in den Ausgangszustand zurück versetzen, bzw. (abhängig von den erforderlichen Berechtigungen) den Testerfolg prüfen.

T-SQL-Editor

Mit diesem Editor können Sie die im Komponententest verwendeten Vortest-, Test- und Nachtest-T-SQL-Skripts erstellen. Mithilfe des T-SQL-Befehls RAISERROR können Sie anstelle von Testbedingungen auch T-SQL-Assert-Anweisungen im Testskript verwenden. Dieser Befehl kann auf Grundlage des Schweregradcodes ebenso wie Testbedingungen verwendet werden, um Erfolg oder Fehler eines Tests anzugeben. Weitere Informationen finden Sie unter Verwenden von T-SQL-Assertionen in Datenbankkomponententests.

Bereich Testbedingungen

Mit den Testbedingungen in diesem Fenster können Sie die Ergebnisse der Ausführung des T-SQL-Skripts auswerten.

Verwenden von Testbedingungen

Im Bereich Testbedingungen ist eine Gruppe vordefinierter Testbedingungen verfügbar, mit denen Sie beispielsweise die Anzahl zurückgegebener Zeilen in einem Resultset oder den erforderlichen Zeitbedarf für die Ausführung des T-SQL-Skripts testen können, oder ob ein Resultset leer ist. Für jede vordefinierte Testbedingung ist eine Assert-Methode verfügbar (definiert für die TestCondition-Basisklasse), die beim Auswerten einer Testbedingung aufgerufen wird. Wenn eine Testbedingung beim Vergleichen der Ausführungsergebnisse mit den erwarteten Ergebnissen nicht erfüllt ist, wird eine Ausnahme ausgelöst, und im Fenster Testergebnisse wird das Ergebnis Fehler zurückgegeben. Bei einem erfolgreichen Test wird keine Ausnahme ausgelöst.

Beim Ausführen des Tests wird zuerst das T-SQL-Skript ausgeführt und gibt ein Ergebnis zurück. In der Regel ist dies ein Resultset. Welcher Teil der zurückgegebenen Informationen ausgewertet wird, um die erfolgreiche Ausführung zu prüfen, hängt von der Implementierung der jeweiligen Testbedingung ab. So prüft beispielsweise die Testbedingung Ausführungszeit den Zeitbedarf für die Ausführung des T-SQL-Skripts, und die Testbedingung Skalarwert prüft einen Wert in einer bestimmten Zeile. Abhängig vom Ergebnis dieser Auswertung wird im Fenster Testergebnisse der Erfolg bzw. Fehler des Tests angezeigt. Der Test ist nur erfolgreich, wenn alle Testbedingungen für das Testskript erfüllt waren. Wenn für eine Bedingung eine Ausnahme ausgelöst wurde, tritt für den gesamten Test ein Fehler auf.

Es sind sechs vordefinierte Testbedingungen verfügbar. Da Testbedingungen erweiterbar sind, können Sie der Liste mit Testbedingungen jedoch bei Bedarf weitere Bedingungen hinzufügen. Darüber hinaus können Sie mit der T-SQL-Funktion RAISERROR im T-SQL-Skript ein erfolgreiches oder fehlerhaftes Ergebnis erzeugen und im Fenster Testergebnisse anzeigen. Weitere Informationen hierzu finden Sie unter Verwenden von T-SQL-Assertionen in Datenbankkomponententests.

Aa833233.alert_note(de-de,VS.90).gifHinweis:

Zu den in Test Edition generierten Komponententests und den in Database Edition generierten Datenbankkomponententests wird automatisch die Testbedingung Nicht eindeutig hinzugefügt. Beim Auswerten dieser Testbedingung werden Tests als "nicht eindeutig" markiert. Dabei wird eine InconclusiveException ausgelöst. Diese Testbedingung wird standardmäßig automatisch zu allen Tests hinzugefügt, um Sie daran zu erinnern, eigene Assert-Anweisungen oder Testbedingungen hinzuzufügen. Sie können diese Testbedingung problemlos entfernen, indem Sie diese im Fenster Testbedingungen markieren und dann auf das Symbol Testbedingung löschen klicken.

Eine vollständige Liste vordefinierter Testbedingungen finden Sie unter Verwenden von Testbedingungen in Datenbankkomponententests.

Tests können auch zu einem Fehler führen, wenn sie abgebrochen werden oder wenn eine Zeitüberschreitung auftritt. Weitere Informationen über mögliche Ergebnisse im Fenster Testergebnisse finden Sie unter Grundlegende Testergebnisse.

Komponententests und Testdaten

Sie können das Datengenerierungsfeature von Team Edition for Database Professionals verwenden, um der Datenbankumgebung Testdaten hinzuzufügen. Dieses Feature umfasst eine Gruppe von Datengeneratoren, die auf Grundlage eines bestimmten Startwerts dieselben Daten generieren. Auf diese Weise können Sie Daten generieren, die erzeugte Datenbank untersuchen und die Ergebnisse ermitteln, die die einzelnen Tests liefern sollen. Anschließend können Sie entsprechende Tests schreiben. Weitere Informationen zur Verwendung von Datengenerierung bei Komponententests finden Sie unter Exemplarische Vorgehensweise: Erstellen und Ausführen eines Datenbankkomponententests. Weitere Informationen über die verschiedenen Datengeneratoren finden Sie unter Übersicht über das Generieren von Daten.

Testen über die Befehlszeile

Wenn Sie Testläufe aktualisieren möchten, können Sie Datenbankkomponententests in der IDE oder an der Eingabeaufforderung ausführen. Weitere Informationen finden Sie unter Testausführung in der Befehlszeile.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Testbedingungen zu Datenbankkomponententests

Konzepte

Übersicht über Transact-SQL-Editor

Übersicht über die Terminologie der Database Edition