Selenium

Es gibt verschiedene Test-Technologien, die auf unterschiedlichen Ebenen einer Applikation zum Einsatz kommen. Während JUnit, TestNG und Mockito üblicherweise nicht sichtbare und meistens relativ kleine Teile der Applikation testen, braucht es auch Testframeworks für umfassende Tests, wie Integrationtests und User Acceptance Tests (UATs). Hier bieten sich Arquillian und Selenium an. Während Arquillian ziemlich schwergewichtig unterwegs ist, ist Selenium das Tool der Wahl, wenn es um's automatisierte Testen von WebGUIs geht.

Selenium-Tests können auf zwei Arten erstellt werden:
Zum Einen gibt es die Möglichkeit mit einem der verfügbaren Firefox-Plugins (z.B. "Selenium Builder") Tests zu erstellen. Dabei startet man seine zu testende Web-Applikation und startet das Plugin, welches nun die Interaktionen mit der Web-Applikation im JSON-Format aufzeichnet. Ein so aufgezeichneter Test lässt sich über den Selenium Builder laden und starten. Für eine Integration in einen nightly build oder sonstige automatisierte Tests ist dies kein gangbarer Weg. Ausserdem wird es in komplexen Fällen schwierig das generierte JSON-File zu bewirtschaften.
Der andere Weg ist der programmatische Ansatz. Hierbei werden JUnit bzw TestNG-ähnliche Tests geschrieben, die sich problemlos in Jenkins bzw. Hudson im Rahmen eines nightly builds aufrufen lassen. Diese Variante ist generell vorzuziehen, da oft eine Automatisierung der Tests gefordert ist.