Jeśli wdrażasz nowe rozwiązanie do swojej firmy, to chcesz, by działało on prawidłowo na każdym etapie funkcjonowania. Nic dziwnego – błędy mogą kosztować Cię sporo czasu i pieniędzy. Zamiast marnować je na łatanie dziur, lepiej zainwestować je w nowoczesne rozwiązania, które pomogą Ci uniknąć problemów i usprawnić działanie Twojego biznesu w przyszłości. Jeśli działasz na systemie CRM takim jak Salesforce, sprawa wydaje się jeszcze prostsza do wdrożenia.

 

Po co wykonuje się testy?

Wyobraź sobie, że firma decyduje się otworzyć sklep internetowy. Wybiera system i tworzy odpowiednią stronę oraz aplikację, jednak nie testuje sklepu przed startem. Uruchamia sklep i… okazuje się, że nie działa opcja zakupu. Firma chciała zaoszczędzić na testach, a straciła znacznie więcej — wizerunek, wiarygodność oraz wiele pełnych koszyków, które mogły zakończyć się transakcją. Dlatego wykonywanie regularnych testów oprogramowania jest bardzo ważne, by móc wychwytywać błędy w systemach, zanim spowodują nieodwracalne skutki, które odczuje Twoja firma.

 

Rodzaje testów

Testy manualne są to czynności wykonywane w systemie lub w aplikacji bezpośrednio przez człowieka. Testy te charakteryzują się dużą dokładnością, ale jednocześnie narażone są na błędy ludzkie.

Testy automatyczne polegają na przygotowaniu skryptów tak, by wykonały scenariusz testu i go oceniły. Do automatyzacji testów korzysta się m.in. ze skryptów pisanych w językach takich, jak Java czy Python.

 

Kiedy stosować testy?

Zawsze! Testy manualne powinny być przeprowadzane od samego początku wdrażania czy tworzenia produktu, systemu czy aplikacji. Powinniśmy je stosować zarówno w małych, jak i w dużych projektach. Warto jednak zastanowić się nad wdrożeniem testów automatycznych, ponieważ są świetnym uzupełnieniem działań manualnych.

To bardzo ważne słowo — uzupełnieniem, nie zastąpieniem. Wynika to głównie z faktu, iż komputery nie są w stanie przetworzyć niektórych informacji, które człowiek interpretuje naturalnie. Działa to też w drugą stronę — komputer wykonuje skomplikowane obliczenia w znacznie krótszym czasie niż człowiek.

 

Kiedy powinieneś pomyśleć o wdrożeniu testów automatycznych?

  • Gdy zależy Ci na powtarzalności niektórych działań. Bardzo możliwe, że w niektórych testach czynności będą do bólu powtarzalne, jednak człowiek nie jest w stanie powtórzyć testu za każdym razem dokładnie w 100%. Z czasem o wyniku może zadecydować np. zwykłe zmęczenie. Spadek koncentracji, zła aura mogą wpłynąć na kolejność, czas i szybkość wykonywanych działań. Automatyczne testy (oczywiście, jeśli zostały poprawnie stworzone) nie “męczą się”, więc mogą powtarzać wykonywane akcje dokładniej.
  • Gdy zależy Ci na systematyczności — testy automatyczne można zaprogramować tak, by działały o odpowiedniej porze (np. codziennie o 24:00). Z dostępnością działań ludzkich oraz ich systematycznością niestety bywa różnie.
  • Gdy zamierzasz przeprowadzać testy często i regularnie — na początku wdrożenie i eksploatacja testów automatycznych jest dość kosztowna, dlatego ważne jest, by odpowiedzieć sobie na pytanie, jak często zamierzasz je przeprowadzać.
  • Gdy chcesz uniknąć błędów ludzkich. Człowiek jest istotą omylną i choć latami uczyłby się konkretnej czynności, może się zwyczajnie pomylić. Dobrze przygotowane testy zagwarantują Ci nieomylność i miarodajne wyniki.
  • Gdy chcesz zoptymalizować działania oraz koszty — dzięki automatycznym testom możesz zaoszczędzić czas i poszerzyć zadania osobom testującym manualnie.

 

Czy wszystko można zautomatyzować?

Aby lepiej zobrazować sytuację, posłużymy się przykładem… zmywarki.

Wyobraź sobie rodzinę pięcioosobową. W ciągu dnia korzysta ona z wielu różnych naczyń, które w pewnym momencie należy pozmywać. Naczyń jest sporo, dlatego jeden z członków rodziny za każdym razem musi na dłuższy czas oderwać się od innych zajęć, aby wszystko było czyste i ponownie gotowe do użytku. Czynność i proces są powtarzalne, bardzo często żmudne, a rodzina wolałaby ten czas poświęcić np. na wspólne granie w gry planszowe.

Co może zrobić przykładowa “zmywająca” rodzina? Kupić automatyczną zmywarkę.

Na samym początku korzystanie ze zmywarki może dużo kosztować (zakup sprzętu, instalacja oraz środki myjące pochłaniają sporą ilość pieniędzy). Z czasem jednak zauważa się różnice w oszczędności wody i energii, a przede wszystkim czasu, który rodzina może wspólnie spędzić zamiast poświęcać go na zmywanie.

Tak samo jest w przypadku wdrażania testów automatycznych w firmie — musisz zatrudnić testerów (zazwyczaj są to osoby znające języki programowania, także już sam koszt zatrudnienia jest większy niż manualnego testera), przygotować środowisko testowe, kontrolować je, utrzymywać testy, co początkowo wiąże się ze sporą inwestycją. Jednak z czasem zauważasz, że automatyzacja pozwala zaoszczędzić na czasie i zasobach, a Twoja firma wykazuje coraz wyższe ROI.

Jednak tak jak w zmywarce nie umyjesz delikatnej porcelany, tak powinieneś się zastanowić, który test manualny zastępować automatycznym i czy jest to koniecznie. Przykładem mogą być testy, które sprawdzają integrację pomiędzy dwoma systemami (z czego jeden system jest tworzony przez inny zespół developerski). Aby móc wykonać taki test, konieczny jest kontakt z zewnętrznym zespołem z prośbą o utworzenie danych niezbędnych dla naszego scenariusza. Dane te nie są tworzone automatycznie, więc czas na wdrożenie testów się wydłuża.

 

Testować powinniśmy zawsze! Jednak decyzja, czy część testów powinna być zautomatyzowana, należy do Ciebie. Mimo początkowo dużych kosztów wdrożeniowych, z perspektywy czasu inwestycja w takie rozwiązanie jest opłacalna — oszczędzasz nie tylko pieniądze, ale przede wszystkim czas i redukujesz liczbę błędów do minimum.

Podobał Ci się ten artykuł?

Jeśli tak, zapraszamy do grona najlepiej poinformowanych czytelników bloga. Dołącz do naszego newslettera, a nie ominą Cię żadne nowości.