Dienstag, 6. März 2007

User Acceptance Testing

Nach Extreme Progromming (XP) ein wichtiger Ansatz, dass man erst einen Test schreibt, bevor man die Implementierung beginnt, auch bekannt als Test Driven Development (TDD).


Für die Durchführung von Tests gibt es diverse Frameworks, z.B. JUnit (Erich Gamma and Kent Beck, http://junit.org). Sie dienen in erster Linie für Integrationstest. Diese werden meistens nächtlich (nightly build) automatisiert durchlaufen und charakterisieren "Modul-" bzw. "Integrationstest". Sie sind technischer Natur und prüfen technische Belange, z.B. DB Connection, korrekte Berechnungen, CRUD Operationen auf Objekten, etc.

Zusätzlich gibt es (User) Acceptance Tests (UAT): Die Idee ist, dass man die entwickelten Features einer Applikation, die iterativ entwickelt wird, stetig einem Akzpeptanztest unterzieht. Geprüft wird, ob das entwickelte Feature das tut, was erwartet wird, was es tun soll. Dies kann der Product Owner oder ein (fremder) Benutzer des Systems verfizieren. Man spricht bei UAT von einem System-under-test (SUT).

Ward Cunningham hat dafür ein einfaches Framework entwickelt: FIT, Framework for Integrated Test: "Fit is a tool for enhancing communication and collaboration. Fit creates a feedback loop between customers and programmers. Fit allows customers and testers to use tools like Microsoft Office to give examples of how a program should behave--without being programmers themselves. Fit automatically checks those examples against the actual program, thus building a simple and powerful bridge between the business and software engineering worlds."[Quelle: http://fit.c2.com/wiki.cgi?IntroductionToFit]

Es ist sehr einfach die Acceptance Test zu definieren, gemeinsam mit dem Kunden/Product Owner, z.B. mit Excel.

FIT selbst basieren auf HTML, was sich leicht aus dem Excel Sheet generieren lässt. Fit Tools parsen einen speziellen HTML Syntax und verarbeiten diesen als Tests. Dafür muss pro Excel Tabelle ein "fixture" codiert werden.
Das ist sehr mühsam und bedeutet, dass man Development-Skills benötigt, um einen Test zu schreiben.

Selenium ist ein Tool, dass auf dem FIT HTML Syntax basiert, aber zunächst keine codierung von "fixture" benötigt. Es wurde ThoughtWorks entwickelt. Man kann mit der Selenium IDE als Browser plug-in Test einfach aufzeichnen.

Mit Selenium Remote Control besteht auch die Möglichkeit Test in einer beliebigen Sprache zu implementieren.

Keine Kommentare: