Automatyzacja umiejętnie stosowana

Zaprogramowanie weryfikacji za jej pomocą opiera się na tworzeniu testów jednostkowych wykorzystujących jUnit. HtmlUnit pozwala symulować operacje na drzewie elementów wyświetlanych na stronie internetowej oraz sprawdzać ich właściwości. Na nim opierają się już bardziej rozbudowane platformy testowe, takie jak webtest czy JWebUnit.

Programiści .NET także znajdą coś dla siebie. Mogą oni skorzystać z płatnego pakietu Test Automation FX. Aktualnie zapewnia on integrację z Visual Studio 2005 i 2008 (także z wersjami Express), pozwala na pracę z Designerem, jak i na ręczne oprogramowanie testów. Umożliwia dość rozbudowane rejestrowanie testów interfejsu i ich późniejsze odtwarzanie czy też kompilowanie testów do plików wykonywalnych, które mogą być potem samodzielnie rozpowszechniane. Producenci nie zapomnieli o RIA i platformy automatyzujące testy są dostępne także dla Adobe Flex - przykładem może być riatest.

Rzecz jasna, potężne korporacje także dysponują swoimi rozbudowanymi platformami. Przykładem może być Rational Functional Tester produkowany przez IBM, który zawiera wiele narzędzi i pozwala na pisanie skryptów testowych w Javie i Visual Basic.NET. Zawiera wsparcie dla testowania aplikacji opartych o SAP, Siebel czy nawet Adobe Flex. Przy tak dużej liczbie narzędzi w zasadzie każdy znajdzie technologię odpowiednią do swoich potrzeb.

Człowiek a automat

Przygotowując strategię automatyzacji, nie wolno pominąć różnic, jakie występują między testami ręcznymi, przeprowadzanymi przez człowieka a automatyczną walidacją. Po pierwsze, człowiek może analizować jednocześnie cały obszar aplikacji i potrafi dostrzec dodatkowe błędy w miejscach, których dany scenariusz bezpośrednio nie testuje. Maszyna tego nie potrafi, chociaż jest o wiele bardziej selektywna, znacznie dokładniejsza i może wykryć trudne do uchwycenia przez człowieka błędy (np. arytmetyczne).

Raz napisany test automatyczny zawsze będzie wykonany w taki sam sposób, natomiast człowiek może minimalnie zmienić kolejność pewnych operacji i przy tej okazji wykryć jakiś błąd. Z kolei, testy automatyczne są świetne, gdy trzeba sprawdzać ten sam system przy różnych konfiguracjach. Oprócz tego, człowiek może mieć często problem z reprodukcją danej sytuacji, w której wychwycił błąd. Test automatyczny nie ma tego problemu - nawet w przypadku najgorszych błędów (pojawiających się czasami), wiadomo że żaden krok ze scenariusza nie mógł umknąć uwadze maszyny.

Warto także pamiętać, że pełna automatyzacja testów w praktyce jest bardzo rzadko wykonywalna. Wniosek jest prosty: testy automatyczne i manualne muszą iść w parze, a ustalenie ich proporcji zależy od specyfiki projektu.


TOP 200