Upss… Coś nie tak z Twoją przeglądarką
Do poprawnego wyświetlania formularza zalecana jest przeglądarka Chrome lub Safari.
Blog

Testy automatyczne – czym są i dlaczego warto na nie postawić?

Testy automatyczne w Comarch

Praca jako tester automatyzujący to ścieżka rozwoju, którą wybiera coraz więcej osób. Co robi automatyk, dlaczego powinien być dokładny i jakie korzyści niesie ze sobą automatyzacja testów?

Czym jest automatyzacja testów?

Śledząc najnowsze trendy w IT często widzimy, że niektóre z dziedzin stają się wyjątkowo popularne. Każdego dnia powstają aplikacje, z których korzystają tysiące, jeśli nie miliony użytkowników. Przed każdym uruchomieniem i „wypuszczeniem” na rynek, aplikacje te muszą zostać przetestowane, aby zapewnić optymalne wrażenia dla użytkownika końcowego. I tutaj z pomocą przychodzi inżynieria automatyzacji. Stanowi ona niezbędną część pracy nad takim oprogramowaniem, ponieważ przy tak dużym tempie użytkowania i rozwoju aplikacji, testowanie ręczne staje się po prostu niewystarczające. Dzięki niej możemy większość uwagi przekierować na poprawę wydajności procesów produkcyjnych i komputerowych, a co za tym idzie, w krótkim czasie będziemy w stanie znacząco podnieść jakość produktu.

W dużym skrócie – programiści testów automatycznych monitorują jakość wprowadzanych zmian, aby wymagała ona jak najmniej interakcji człowieka - minimalizując przy tym szansę na wystąpienie jego błędu oraz gromadząc znacząco więcej danych o działaniu programu w takim samym czasie, jaki zajęłyby testy manualne.

Od razu można więc zauważyć, że ręczne powtarzanie testów jest po prostu monotonne, kosztowne i czasochłonne. Z kolei po utworzeniu, testy automatyczne są nie tylko szybsze, ale także mogą być uruchamiane w kółko, bez dodatkowych kosztów. Dzięki temu praca, która zajęłaby nam kilka dni, teraz może potrwać zaledwie kilka godzin.

Korzyści, jakie niesie ze sobą automatyzacja testów

  • Redukcja bugów już na wczesnym etapie rozwoju aplikacji - nie pozwalamy takim błędom namnożyć się i kumulować w większy, który mógłby zatrzymać rozwój aplikacji na dłuższy czas. Regularne sprawdzanie działania funkcjonalności oprogramowania sprawia, że szansa niewykrycia błędu znacząco się zmniejsza.
  • Lepszy zasięg testów - testy zautomatyzowane nie podlegają takim limitom jak manualne. Mogą być wykonywane w trybie ciągłym, czyli nawet 24h/7 dni w tygodniu.
  • Możliwość wielokrotnego wykorzystania - kiedy aplikacja często jest aktualizowana, warto mieć zestaw testów, który sprawnie sprawdzi jej działanie. Kto wie, czy wśród nowych funkcjonalności nie wdarł się poważny błąd w aplikacji, a szybkie sprawdzenie stabilności kolejnych wersji pozwoli nam je niemal natychmiast wychwycić.
  • Szybsze pozyskiwanie informacji - testy automatyczne pozwalają na oszczędzenie czasu. Wykonują się szybciej niż w przypadku ich ręcznego przechodzenia przez testera manualnego. Pozwala to także na uwolnienie testerów manualnych od żmudnych testów i przekierowanie ich uwagi na ciekawsze zagadnienia.
  • Zapewnienie większej spójności testów - dzięki wykonywaniu tego samego zestawu kroków testy automatyczne dają nam gwarancję powtarzalności. Nie ulegają zmęczeniu przy wykonywaniu kolejny raz tego samego testu, dzięki czemu nie ominą żadnego z kroków przy kolejnym przebiegu.

Cechy testera automatyzacji


Źródło: Juniors Learn to Code

Czy są konkretne cechy, które dokładnie definiują, do jakiego stanowiska najlepiej pasujesz? Zdecydowanie nie. W końcu jeden człowiek, może odnaleźć się w stereotypowo różnych rolach jednocześnie. Ale czy są cechy, które warto mieć, aplikując na stanowisko programisty testów automatycznych? Tak. Jeśli nie chcesz, by praca na takim stanowisku była dla ciebie męczarnią, to radzimy się właśnie z nimi zapoznać. Potem może być już za późno.

  • Cierpliwość - szczególnie przy testach regresyjnych, które wykonywane są na każdej kolejnej wersji oprogramowania. Jeśli w trakcie rozwoju aplikacji nastąpiły nawet minimalne zmiany (mogą być to zmiany widoczne tylko na poziomie implementacji, takie jak nowe nazwy czy zagnieżdżanie się elementów drzewa DOM, ale także zmiany, których odzwierciedlenie widzimy jako całkowicie nowy scenariusz funkcjonalności) musisz wprowadzić poprawki w kodzie, tak aby zostały one uwzględnione. Praca przy ich rozwoju w części polega na stałej kontroli ich działania - nie tylko implementacji nowych testów.

Dodatkowo dużo cierpliwości przyda ci się też przy kontakcie z deweloperami - w końcu wytykasz im właśnie kolejny błąd w tym tygodniu.

  • Umiejętności analityczne - wnikliwość w szczegóły pozwoli Ci na wymyślanie i sprawdzanie różnych kombinacji przypadków, co jest szczególnie ważne przy pokrywaniu danego obszaru testami i przekłada się na potencjalnie wykrywane później błędy. Ważna jest także umiejętność analizowania wyników testów oraz modyfikowania testów, tak by dostosować je do finalnego scenariusza testowego.
  • Dokładność - przy sprawdzaniu jakości oprogramowania, ważne, żebyśmy byli przy tym skrupulatni. Jest to ważne, ponieważ niewykryte w porę niewielkie problemy mogą doprowadzić do wystąpienia o wiele większego problemu później.
  • Otwartość na zmiany - kontrola jakości oprogramowania to branża, która wymaga elastyczności zarówno w zakresie swoich umiejętności, jak i podejścia. Poznasz wiele nowych technologii oraz narzędzi, które pozwolą Ci na dalszy rozwój i efektywniejsze wykonywanie swojej pracy.
  • Komunikatywność – szczególnie ważna przy dużych projektach. Jako tester będziesz miał na co dzień do czynienia z deweloperami oprogramowania, czy też analitykami. Dlatego osoby, które chcą rozpocząć karierę w testach automatycznych, powinny umieć przekazywać informacje w prosty i łatwy do zrozumienia sposób.

Różnice między deweloperem oprogramowania a testerem automatyzacji

Można zauważyć wyraźny rozdział pomiędzy testerami a deweloperami. Ci, którzy programują aplikacje i ci, którzy programują kod, który ma wytknąć jej błędy. Jak w praktyce wyglądają te różnice? Z perspektywy technicznej nie są one ogromne. Oba stanowiska obejmują zakres umiejętności programowania i kontroli rozwoju kodu przy użyciu zróżnicowanych narzędzi czy języków programowania.

Z perspektywy biznesowej różnice są znacznie wyraźniejsze. Rozwój oprogramowania powoduje wygenerowanie pewnej wartości biznesowej, gdy oprogramowanie zostanie oddane do użytku. Automatyzacja tego oprogramowania redukuje koszty związane z tworzeniem produktu. Testowanie oprogramowania to nie tylko przestrzeganie procedury odtwarzania funkcjonalności, ale także projektowanie eksperymentów w celu sprawdzenia, jak oprogramowanie działa w rzeczywistych warunkach. Rzecz w tym, że napisanie prostego testu jest łatwe – jeśli umiesz programować. Ale sztuka polega na tym, aby napisać test w ograniczonym czasie, który działa i można go z łatwością utrzymać. A to nie jest już takie proste. Automatyzacja testów to nie tylko testy UI, a praca przy niej często wymaga dużej wiedzy programistycznej.

Dla klienta liczba błędów widoczna w produkcie stanowi odzwierciedlenie jakości zakupionego produktu i ludzi, którzy przy nim pracowali. Zbyt duża ich ilość może oznaczać zakończenie współpracy, dlatego tak nierozerwalną częścią tworzenia oprogramowania jest jego dokładne przetestowanie. Inną rzeczą jest oddanie produktu, który jest całkowicie funkcjonalny i w ramach kontynuowania współpracy dodawanie nowych jego funkcji, a inną zaprezentowanie klientowi czegoś, co mogłoby być genialne - gdyby tylko działało.

Dlatego testowanie oprogramowania jest tak integralną częścią jego produkcji, a automatyzacja tych testów przenosi je na wyższy poziom kontroli jakości, co jednoznacznie wpływa na finalny obraz produktu i stopień współpracy klienta z zespołem. Tester oprogramowania pomaga budować zaufanie wobec całego zespołu, natomiast automatyzując testy, oszczędzamy zarówno czas, pieniądze jak i nerwy. Sobie, tak jak i klientowi.

Podsumowanie

Branża testów kwitnie, a wraz z nią nowa era automatyzacji. Wraz z ciągłym ulepszaniem technologii coraz więcej zadań przestaje być wykonywane manualnie, a firmy skupiają się na automatyzacji scenariuszy testowych. Od ręcznych testerów po architektów automatyzacji, nigdy nie brakuje firm, które potrzebują wydajnego testera.

Automatyzacja testów wydaje się być świetnym miejscem na spróbowanie swoich sił, a jeśli ktoś mówi ci, że jest mniej potrzebna niż praca developera, no cóż, niech spróbuje oddać nowy release aplikacji bez przeprowadzonych testów.

Dodaj komentarz

      Adres e-mail nie zostanie opublikowany
            Komentarze
            (0)

              Najczęściej czytane w kategorii Praca w IT