User Acceptance Tests (UAT) oder auf Deutsch “Akzeptanztests” sind eine wichtige Komponente in der Testgetriebenen Entwicklung. Bisher kannte ich die üblichen Verdächtigen, also Selenium. Man kann damit komfortabel einen Klickpfad definieren, PHP-Code exportieren und daraus einen Test für PHPUnit erzeugen. Leider benötigen diese Tests immer einen laufenden Seleniumdienst, einen Browser und diesen ganzen Kram. Ich bin eher ein Fan von Testmethoden die headless funktionieren, direkt auf einer Shell. Bei meinem Blick über den Tellerrand in Richtung Ruby On Rails bin ich auf Cucumber aufmerksam geworden. Cucumber ist ein tolles Test-Framework für Behaviour Driven Development, das mit menschenlesbaren Tests im Klartext arbeitet. Zusammen mit Webrat, einem Toolkit um Webbrowser fernzusteuern oder mit Mechanize komplett headless zu arbeiten, kann man Webapplikationen hervorragend testen.

Am Beispiel der Google-Suche werde ich zeigen, wie einfach man Tests mit Cucumber anlegen kann und das Testen damit wirklich Spaß macht :-) (more…)