Temat: Automatyzacja testów
Testy automatyczne to ogólna nazwa testów wykonywanych automatycznie. Na początku należy określić poziom tych testów: na poziomie kodu czy funkcjonalnym? W tym pierwszym przypadku nie ma chyba innej sensownej alternatywy niż PHPUnit (jeśli ktoś ma doświadczenie z innymi systemami testów jednostkowych to proszę o info).
Jeśli mówimy tutaj o testach funkcjonalnych to Selenium jest niezły i darmowy. To dobre i skalowalne narzędzie. Pytanie czy biznesowo uzasadnione jest budowanie i utrzymanie infrastruktury serwera selenium, nocnych buildów itd jeśli projekt jest niewielki?;)
Z dobrych darmowych narzędzi pozwolę sobie zareklamować program o nazwie BadBoy (darmowy dla przedsięwzięć niekomercyjnych). Badboy podobnie jak selenium jest programem typu capture-replay. Jest banalny w obsłudze, dobrze łyka wszelkie AJAXy a do tego ma narzędzia do bezpośrednich testów wielowątkowych (np. wydajności). Testy można również wyeksportować w formacie JMetera (mniam:)). Polecam!
Z płatnych narzędzi oczywiście WinRunner i QTP. Ale przy aplikacjach webowych te cudeńka często głupieją.
Po wielu miesiącach pisania różnych automatów funkcjonalnych mogę stwierdzić co następuje:
- każdy program tego rodzaju wywala się na różnych strukturach (jeden pada na dziwnych formach, inny zgłupieje na ajaxie, a już prawie wszystkie klękają na popupach;))
- żeby testy automatyczne miały sens trzeba założyć testy regresyjne (prawda?:)), a to oznacza konieczność utrzymania, aktualizacji i wersjonowania zarówno kodu programu jak i automatów (albo robimy coś sensownie albo udajemy sensownych)
- czas poświęcony na napisane dobrego w miarę uniwersalnego automatu jest spory. Zakłada się, że pisanie i utrzymanie testu automatycznego jest opłacalne jeśli zamierzamy go użyć więcej niż 6-8 razy (zależnie od wielkości).
A wszystko to napisałem będąc zwolennikiem automatów.:) Pozdrawiam!