Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren. 1
Automatische Verifikation von Anforderungen Dr. Guido Dischinger guido.dischinger@liantis.com Erfolg (??) von IT-Projekten Gescheitert Erfolgreich 28% 26% 46% Problematisch Quelle: Standish Group, 1998 4/24 2
Übersicht 1. Einleitung 2. Anforderungen, Abnahmekriterien, Testszenarien 3. Verifikation 4. Vom Code zur Anforderung 5. Fortschrittskontrolle 6. Eingesetzte Werkzeuge 7. Ausblick 5/24 1 Das kennen wir alle! Anforderungsmanagement Modellierung Testen Implementierung 6/24 3
1 Aber was passiert hier? Anforderungsmanagement? Modellierung? Testen Fehlende Schnittstellen und fehlende Integration kosten Zeit, Geld und Qualität?? Implementierung 7/24 1 Skizze einer Lösung Anforderungsmanagement Was der Kunde will, wird in natürlicher Sprache aufgeschrieben Modellierung Für die entsprechende Software wird eine Bauzeichnung (ein Modell) erstellt Test Das System wird gegen die Wünsche des Kunden geprüft Das Programm wird in der Syntax einer Programmierspra che kodiert Implementierung 8/24 4
1 Lösung: Integration & definierte Schnittstellen Anforderungsmanagement Modellierung Anforderungen Testfälle (Abnahme - kriterien) Modell Regressionsfähige Tests (Testszenarien) fachliche Operationen (manuell codiert) Anwendung Code Generierung (Design) Test Implementierung 9/24 2 Anforderungen an eine Kaffeekanne Fassungsvermögen: 1 Liter kaffeedicht 1 Henkel 1 Ausguss 1 abnehmbarer Deckel, darf beim Gießen nicht herausfallen 10/24 5
2 Lösung: Die Kaffeekanne Idee: Karol Frühauf 11/24 2 Anforderung und Abnahmekriterium (1) Idee: Sagen, was man will (genauer: aufschreiben). Das ist die Anforderung. Gleich (!) dazusagen, wie man nachprüfen wird, ob der Wunsch erfüllt wurde. Das ist das Abnahmekriterium. 12/24 6
2 13/24 Anforderung und Abnahmekriterium (2) Anforderung: Der Benutzer kann einen Zusatz für einen Artikel löschen. Wird der Zusatz in einer Bestellposition verwendet, kann er nicht mehr gelöscht werden. Abnahmekriterium 1: Normalfall Situation: Es existiert der Artikel 1 mit dem Zusatz Extra Käse und Nicht angebrannt. Es existiert eine Bestellung mit einer Bestellposition mit Artikel 1 und dem Zusatz Extra Käse. Aktion: Der Benutzer versucht, den Zusatz Nicht angebrannt zu löschen. Erwartetes Ergebnis: Es existiert der Artikel 1 mit (nur) dem Zusatz Extra Käse. 2 Abnahmekriterium und Testszenario (1) Idee: Jedes Abnahmekriterium zu einem fachlichen Testfall machen: Codieren Laufen lassen Erwartetes Ergebnis mit tatsächlichem Ergebnis vergleichen Definition: Ein Testszenario ist ein ausprogrammiertes Abnahmekriterium. 14/24 7
2 Abnahmekriterium und Testszenario (2) Abnahmekriterium 1: Normalfall (siehe oben) Ausschnitt aus Testszenario 1 (ohne Kommentare): Artikel artikel = Artikel.createArtikel(1); artikel.createzusatz("nicht angebrannt"); artikel.createzusatz("extra Käse"); Bestellung bestellung = new Bestellung(); Bestellposition position = bestellung.createbestellposition(artikel); position.addtozusätze(artikel.getzusatz("extra Käse")); try{ Artikel.get(1).getZusatz("Nicht angebrannt").delete(); }catch(exception e){} assertnotnull(artikel.get(1)); assertnotnull(artikel.get(1).getzusatz("extra Käse")); assertequals(1, Artikel.get(1).getZusätze().getSize()); 15/24 2 Zu jeder Anforderung mindestens ein Abnahmekriterium AF 1 AK 1.1 AF 2 AK 2.1 AK 2.2 AF 3 AK 3.1 AF 2000 AK 2000.1... AK 2000.12 16/24 8
2 Damit: Zu jeder Anforderung mindestens ein Testszenario AF 1 TS 1.1 AF 2 TS 2.1 TS 2.2 AF 3 TS 3.1 AF 2000 TS 2000.1... TS 2000.12 17/24 3 Verifikation Eine Anforderung Eine Gruppe von Anforderungen Alle Anforderungen 18/24 9
3 Geänderte Anforderung Gegeben: AF 1,..., AF 475,..., AF 2000 (bekannt und verifiziert) Ereignis: AF 475 wird in AF 475 geändert. Frage: Ist AF 475 mit allen anderen Anforderungen noch vereinbar? 19/24 4 Vom Code zur Anforderung Gegeben: Eine Stelle im (fachlichen) Code Frage: Welche Anforderung ist der Grund für dieses Stück Code? Hinweis: Für die Beantwortung dieser Frage musste niemand etwas dokumentieren. 20/24 10
5 Fortschrittskontrolle Wie viele Anforderungen gibt es insgesamt? von geschätzten N Anforderungen? Wie viele Anforderungen sind in welchem Status? Wie viele Anforderungen haben mindestens ein AK? noch kein AK? Wie viele noch nicht abgenommene Anforderungen sind älter als 3, 7, 14 Tage?... 21/24 6 Eingesetzte Werkzeuge RE-Werkzeug: DRES (Open Source) UML-Werkzeug: Rational Rose 2002 MDA-Werkzeug: XCoder (Open Source) Requirements-Konvertierung: Eigenentwicklung Log-Konvertierung: Eigenentwicklung MS Access 22/24 11
7 Ausblick Weitergehende Generierung von Testszenarien Generierung von (Teilen von) Akzeptanzkriterien Bessere Unterstützung des Workflows Vielleicht sogar: Workflow Engine, in die RE- Werkzeug, UML-Werkzeug usw. eingebunden werden u. v. a. m. 23/24 Free your work. Unsere Kompetenz ist Software Engineering. 12