Dienstag, 15. März 2011

Wie die Erstellung von Akzeptanztests in der Software ablaufen soll

Mit der fertigen Software soll es später mögliche sein, Akzeptanztests für datenbankbasierte Anwendungen zu erstellen und zu verwalten. Das Erstellen von Akzeptanztests soll dabei mithilfe von DSLs geschehen. Die Erstellung besteht aus den folgenden Schritten:

  • Beschreibung der Domäne
  • Beschreibung des Ausgangszustandes
  • Beschreibung wie die zu testende Software ausgeführt wird
  • Beschreibung des Endzustandes

Beschreibung der Domäne

In der Software soll es möglich sein, ein Domänenmodell zu beschreiben. Dieses Modell besteht aus Domänenobjekten. Die Domänenobjekte können z.B. Geschäftsobjekte, wie "Kunde" oder "Rechnung" sein. Die Domänenobjekte können dann verwendet werden, um den Ausgangs- und den Endzustand bei Testausführung zu beschreiben. In dem Domänenmodell wird beschrieben, welche Beziehung ein Domänenobjekt zu den Tabellen und Tabellenspalten der Datenbank hat. Dadurch wird es für die Software möglich, die Zustandsbeschreibungen mit Fachbegriffen aus der Domain in SQL-Queries zu übersetzen, diese auszuführen und das Ergebnis zurück zu liefern.

Um nicht bei null mit der Beschreibung des Domänenmodells anfangen zu müssen, kann dieses zu Beginn aus einer bereits vorhandenen Datenbank generiert werden. Dabei entspricht eine Tabelle der Datenbank mit all ihren Spalten genau einem Domänenobjekt. Dieses generierte Domänenmodell kann anschließend weiter bearbeitet werden, um es z.B. von technischen Details zu befreien (z.B. von "id"-Spalten).

Zum Anzeigen und Bearbeiten des Domänenmodells eignet sich wahrscheinlich eine grafische DSL am besten. Gerade bei großen Domänen mit sehr vielen Domänenobjekten ist es wahrscheinlich schwer den Überblick zu bewahren, wenn diese in einer textuellen DSL beschrieben wäre. Diese grafische DSL könnte sich vom Erscheinungsbild her an UML-Klassendiagrammen orientieren.

Beschreibung des Ausgangs- und Endzustandes

Bei der Beschreibung des Ausgangs- und des Endzustandes werden konkrete Instanzen einzelner Domänenobjekte beschrieben (z.B. Instanz "x" ist ein Domänenobjekt "Kunde" mit den Werten "Name" = "Mustermann" und "Vorname" = "Max"). In der Regel müssen nur wenige Instanzen beschrieben werden. Dadurch bleibt der Überblick auch bei der Beschreibung durch eine textuelle DSL erhalten. Im Idealfall können bei einer textuellen DSL die Vor- und Nachbedingungen aus den Use-Cases möglichst ähnlich übernommen werden.

Für die Beschreibung des Ausgangs- und des Endzustandes kann die gleiche DSL verwendet werden. Diese DSL hätte die grundlegende Form "Es existiert 20 von X". Bei der Auswertung der Beschreibung des Endzustandes wird überprüft, ob diese Aussage wahr ist. Ist sie es, so war der Test erfolgreich.
Bei der Auswertung der Beschreibung des Ausgangszustandes wird ebenfalls überprüft ob die Aussage wahr ist. Ist sie es, so kann mit der Ausführung der zu testenden Software begonnen werden. Ist sie es nicht, so kann von der Software angeboten werden den Ausgangszustand herzustellen.

Beschreibung wie die Software ausgeführt wird

Um den Akzeptanztest durchführen zu können, muss angegeben werden, wie die zu testende Software auszuführen ist. Hierfür ist wohl ein grafischer Dialog am besten geeignet. Dieser Dialog könnte verschiedene Möglichkeiten zur Ausführung der Software bieten, z.B.:

  • Ausführung von Javacode: So hat man z.B. die Möglichkeit eine zu testende Klasse zu instanziieren und auszuführen.
  • Ausführung von ausführbaren Dateien und Jar-Archiven mit Angabe von Paramatern
  • Manuelle Ausführung: So kann man z.B. eine Aktion über das Webinterface der Software per Hand ausführen.

Keine Kommentare:

Kommentar veröffentlichen