NoweMedia

Automatyczne testy aplikacji internetowej

Zbliżamy się do końca tworzenia naszego projektu internetowego. Jest to dla nas długo wyczekiwany moment, często trwający wiele miesięcy. Jest to moment finalnego rozliczenia projektu z firmą IT, więc organizujemy z naszej strony zasoby, do przetestowania produktu. Autorzy projektów również mocno testują produkt, aby proces odbiorów przeszedł jak najsprawniej.

Po jakimś czasie chcemy rozwinąć projekt o drobne funkcjonalności, z założenia mało istotne jednak usprawniające prace. Nie jest to duże zlecenie, trwające około tygodnia czasu pracy programisty. W tym momencie nie angażujemy już dużych sił do testowania całego serwisu, testujemy jedynie nowo utworzone funkcjonalności. Jest to błędem, ponieważ nowe funkcjonalności mogą uszkodzić stare.

Rozwój aplikacji internetowej wpływa na jej funkcjonowanie

芽生え
Załóżmy, że posiadamy na stronie moduł przelicznika Walut. Działa on prawidłowo 1 EUR = 4.27 PLN. W kodzie serwisu znajduje się odpowiedni mechanizm przeliczania walut. Jako rozwój naszego projektu mamy zadnie utworzyć moduł wystawiania faktur dla klientów zagranicznych.

Programista wziął pod uwagę, że istnieje już odpowiednia funkcjonalność przelicznika walut, więc ją wykorzystał. Przy odbiorze okazało się jednak, że powinniśmy zaokrąglać przeliczone ceny do pełnych złotówek. Zmiana wydawała się bardzo prosta do wprowadzenia, więc programista zmodyfikował kod mechanizmu przeliczania walut, aby zaokrąglał wartości do liczb całkowitych. Wszyscy przetestowali działanie modułu faktur i projekt został odebrany.

Po pewnym czasie klienci zaczęli nam zgłaszać, że w kalkulatorze walutowym 1 EUR = 4 PLN, wynikło to z modyfikacji zaokrąglania walut do faktur.

Jak sobie radzić z rozwojem aplikacji i unikaniem powstawania nowych błędów?

Rozwiązaniem tego problemu jest stworzenie testów automatycznych, które przy każdej modyfikacji systemu będą uruchamiana i zweryfikują czy całość funkcjonalności, które działały poprzednio funkcjonują również teraz.

Testy automatyczne dzielą się na dwa rodzaje:

  • testy kodu źródłowego – testują wszystkie funkcjonalności, które dzieją się po stronie serwera
  • testy przeglądarkowe – testują funkcjonalności, które widzimy na ekranie przeglądarki

Odwołując się do naszego przykładu, posiadając testy automatyczne programista od razu wiedziałby, że popełnił błąd, ponieważ zakładanie działanie przelicznika walut różni się od obecnego.

Testy automatyczne dają nam pewność, że aplikacja będzie działała w każdym swoim momencie. Są one szczególnie ważne przy aplikacjach, które są intensywnie rozwijane, szczególnie polecam to startupom, których wizja produktu zmienia się bardzo dynamicznie. Minusem wdrożenia testów automatycznych są koszty, które mogą wynosić nawet 30% wartości całego projektu, jednak prędzej czy później zdamy sobie sprawę z faktu, że są one niezbędne do prawidłowego funkcjonowania aplikacji.

Kategorie:   Zarządzanie

Komentarze

  • Napisane: Sierpień 8, 2016 07:49

    Michał

    Chyba mimo kosztów warto zainwestować w takie testy. Jeśli nasz aplikacja będzie miała problemy w przyszłości stracimy na tym więcej pieniędzy niż te, które poświęcimy na takie testowanie
  • Napisane: Listopad 4, 2016 18:17

    Adam

    Spotkałem się z testami automatycznymi, których koszt był wręcz równy kosztom samego projektu... wtedy czasami klient nagle stwierdza 'że testować można w wersji live'... oczywiście coś za coś:)

 

WP-SpamFree by Pole Position Marketing