Automatyzacja umiejętnie stosowana

Model agile zawitał nawet do najbardziej konserwatywnych korporacji. Wymusza on ciągłe zmiany w oprogramowaniu i refaktoring, a bez odpowiedniego testowania te procesy mogą szybko doprowadzić do pogorszenia jakości produktu. Ograniczenie kosztów weryfikacji można uzyskać dzięki automatyzacji testów.

Wykonywanie testów to często zbiór powtarzalnych, pracochłonnych operacji. Naturalną tendencją jest więc ich automatyzacja. Jest to jednak tylko mechanizm w rękach kierowników, programistów oraz testerów i jak każdy mechanizm, musi być odpowiednio stosowany, aby przynosić korzyści. Za automatyzacją testów przemawia wygoda i potencjalne ograniczenie kosztów, gdyż testy raz zautomatyzowane nie będą już później w tak dużym stopniu zużywać cennego, ludzkiego czasu. Jednakże przyjrzenie się dokładniej temu zagadnieniu może prowadzić do kilku ciekawych wniosków. Pierwszy z nich wynika z faktu, że praca, z założenia, nie musi być przyjemna. Celem pracy testerów czy programistów nie jest poczucie komfortu, ale skuteczność i efektywność w dziedzinie kosztów.

Problemy sprawia także cena testu, która jest często mierzona czasem potrzebnym na jego automatyzację. Jest to dość złudna miara, gdyż wartość danego testu powinna być mierzona potencjalnymi błędami, jakie mogą zostać znalezione podczas jego uruchamiania, nawet w obszarach innych niż ten bezpośrednio weryfikowany oraz testami manualnymi, jakie dany test pokrywa. Problemem pozostaje czas, gdyż w wielu projektach właśnie czasu brakuje najbardziej.

Innym aspektem jest zmienność weryfikowanego fragmentu. Przy decyzji o automatyzacji należy wziąć pod uwagę, jak często zmienia się walidowany obszar. Jeśli zmiany są częste, wymuszając przy tym ciągłe modyfikacje w teście, nie pozostanie to bez wpływu na koszty. Poza tym, stosowanie automatyzacji będzie wpływać na tworzony kod i może zwiększyć koszty zaprogramowania nowych funkcjonalności.

Biorąc pod uwagę powyższe aspekty, najlepszymi kandydatami do automatyzacji są te testy, które dotykają bezpośrednio lub pośrednio jak największej liczby obszarów aplikacji, których wielokrotne uruchomienia mogą ujawniać różne rodzaje błędów. Jeśli testy wymagają czasochłonnych przygotowań, dużej ilości sprzętu oraz czasu, automatyzacja przynosi istotne korzyści biznesowe. Naturalnymi kandydatami są wobec tego wszelkie testy wydajnościowe, obciążeniowe oraz pojemnościowe.

Narzędzia do automatyzacji testów

Inny czynnik, który jest zawsze brany pod uwagę, to dostępne narzędzia pozwalające na automatyzację. Tutaj najpopularniejsze są rozwiązania automatyzujące testowanie GUI. Oczywiście, narzędzie takie można przygotować samemu, specjalnie do konkretnego zadania, ale na taką inwestycję i tak najprawdopodobniej nie będzie czasu. Na szczęście, producenci oprogramowania wypełniają tę lukę i dzięki temu na rynku jest wiele tego typu narzędzi: od rozbudowanych, płatnych platform, produkowanych przez największe korporacje, po relatywnie małe, otwarte i darmowe biblioteki. Przykładem tych ostatnich może być Javowa HtmlUnit, nazywana przez twórców "bezgraficzną przeglądarką".

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200