Ciemna strona testowania automatyzacji & dlaczego testowanie manualne nadal ma znaczenie

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Testowanie automatyczne stało się tak integralną częścią niektórych procedur, że niektórzy testerzy zastanawiają się, czy całkowicie zastąpi testowanie manualne.  Nie w najbliższym czasie.  Kiedy zespół Tesli projektował Model 3, jednym ze sposobów na zwiększenie tempa produkcji miało być stworzenie w pełni zautomatyzowanej linii montażowej. AI miałaby montować samochód przy niemal żadnym nadzorze ze strony ludzi.  […]

Testowanie automatyczne stało się tak integralną częścią niektórych procedur, że niektórzy testerzy zastanawiają się, czy całkowicie zastąpi testowanie manualne. 

Nie w najbliższym czasie. 

Kiedy zespół Tesli projektował Model 3, jednym ze sposobów na zwiększenie tempa produkcji miało być stworzenie w pełni zautomatyzowanej linii montażowej. AI miałaby montować samochód przy niemal żadnym nadzorze ze strony ludzi. 

Plan zakończył się katastrofalną porażką.

Samochody zderzały się ze sobą, drzwi były wiercone w szybach, a opony nie chciały prawidłowo wejść na felgi. 

Co się stało? Cóż, okazało się, że roboty nie widzą zbyt dobrze. AI odpowiedzialne za montaż Modelu 3 nie potrafiło dostosować się do nieoczekiwanych komplikacji ani niewielkich przesunięć. Jeśli wszystko nie było idealnie wyrównane, popełniało katastrofalne błędy. 

To samo dotyczy testowania automatycznego w obszarze QA. Niektóre formy testowania obejmują zbyt wiele zmiennych i wymagają od testera manualnego umiejętności korygowania przebiegu oraz rozwiązywania problemów na bieżąco. 

Czym jest testowanie automatyczne?

Testowanie automatyczne oznacza, że tester QA używa narzędzia do wykonania przypadku testowego. W cyklu tworzenia oprogramowania ten sam przypadek testowy będzie testowany wielokrotnie.

Niektóre przypadki testowe, których ręczne przeprowadzenie zajęłoby zespołowi testerów QA wiele godzin, można wykonać za pomocą narzędzia do automatyzacji w ciągu kilku minut. Kilka narzędzi do testowania automatycznego stało się standardem branżowym. 

Ciemna strona testowania automatycznego

Inne branże, rzemiosła i zawody musiały zmierzyć się z wprowadzeniem automatyzacji w swojej dziedzinie. Za każdym razem, gdy do tego dochodziło — niezależnie od tego, czy chodziło o lotnictwo z autopilotem, tkanie dywanów czy testowanie — pracownicy danej dziedziny tracili zrozumienie „dlaczego” wykonują swoją pracę.

To zjawisko zauważył u testerów specjalista QA, Jan Jaap Cannegieter. Jego największą obawą jest to, że łatwość testowania automatycznego oraz rosnąca presja na automatyzację znacznej części procesu testowania doprowadzą do powstania pokolenia testerów, którzy wiedzą, jakie działania wykonać, ale nie rozumieją, dlaczego. 

Wielu testerów wie wszystko o określonych narzędziach lub językach programowania, ale nie potrafi mi powiedzieć, co testuje ani dlaczego to testuje. A to jest złe.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Przykłady nieprawidłowego testowania automatycznego

Wielu testerów QA dostrzega ten sam potencjał w testowaniu automatycznym. Zazwyczaj oznacza to, że istnieją możliwe do zaobserwowania trendy i typowe błędy, które może popełnić tester QA. Oto kilka typowych przykładów nieprawidłowego testowania automatycznego. 

Zagnieżdżanie testów automatycznych

Zagnieżdżanie testów automatycznych ma miejsce wtedy, gdy kilka testów automatycznych uruchamia się jeden na drugim.  W takiej sytuacji trudno ustalić, co poszło nie tak, gdy pojawi się błąd. 

W krótkiej perspektywie większość przypadków testowania automatycznego przynosi pozytywne rezultaty. Tester QA używa właściwego narzędzia i uruchamia je poprawnie. 

Wiele przykładów nieprawidłowego testowania automatycznego staje się problemem dopiero sześć miesięcy później, gdy testy automatyczne zostają zagnieżdżone w innych testach automatycznych, które z kolei znajdują się w jeszcze innych testach automatycznych. 

Testowanie automatyczne interfejsu użytkownika bez nadzoru

Testowanie interfejsu użytkownika gwarantuje, że użytkownik nie może wykonać w interfejsie żadnej czynności, która spowoduje awarię programu lub jego nieprawidłowe działanie. W przypadku testowania manualnego może to wymagać dużej liczby testerów i znacznych nakładów pracy. Szczerze mówiąc, testowanie w ten sposób jest nieefektywne, zwłaszcza gdy program się rozrasta i trzeba testować coraz więcej funkcji. 

Dzięki testowaniu automatycznemu proces przebiega szybciej, ale nadal może wymagać pełnej mocy komputera testera QA przez cały dzień. Aby sobie z tym poradzić, testerzy QA uruchamiają test pod koniec dnia, pozwalają mu działać przez noc, a następnego ranka wracają do pracy i znajdują gotowe wyniki. Ma to sens, prawda? 

Na pierwszy rzut oka wydaje się to rozsądnym rozwiązaniem. Tester QA używa w ciągu dnia swojego komputera do testowania innych programów, a następnie w nocy uruchamia testowanie automatyczne interfejsu użytkownika.

To właśnie dlatego, że ma to intuicyjny sens, jest to częsty błąd. Wiele rzeczy może pójść nie tak, gdy testowanie automatyczne odbywa się bez nadzoru.

Jeśli coś pójdzie nie tak na wczesnym etapie, pozostałe wyniki będą błędne. Cały dzień testów nie przyniósł żadnych użytecznych informacji z powodu błędu, który można było łatwo wykryć i skorygować, gdyby ktoś był obecny i sprawdził, czy test automatyzacji działa prawidłowo.

Chociaż testowanie automatyczne może czasami prowadzić do wyników fałszywie pozytywnych, wybór odpowiednich narzędzi do automatyzacji kontroli jakości może znacznie ograniczyć liczbę takich przypadków. 

Automatyzowanie niewłaściwych rzeczy

Przygotowanie testów automatycznych zajmuje czas. Dział QA musi upewnić się, że narzędzia do automatyzacji są odpowiednie dla projektu oraz że testerzy QA wiedzą, jak prawidłowo z nich korzystać. 

Wszystko to wymaga dużej ilości czasu i organizacji, a jeśli efektem końcowym jest automatyzacja testu, który zwykle uruchamia się raz w miesiącu, wysiłek nie jest tego wart. Zanim rozpoczniesz testowanie automatyczne, upewnij się, że automatyzacja tego, co zamierzasz zautomatyzować, pozwoli testerom QA zaoszczędzić wymierną ilość czasu.

Nie tylko można automatyzować zadania, które występują zbyt rzadko, aby wysiłek był opłacalny — niektórych zadań po prostu nie da się łatwo zautomatyzować.

Zastępowanie testowania manualnego

Testowanie automatyczne może wykryć tylko to, czego zostało nauczone szukać. Jeśli czcionki na stronie internetowej wyglądają dziwnie, ale test sprawdzał wyłącznie, czy wszystkie odnośniki w witrynie działają, rozwiąże jeden problem (odnośniki), ale nie wykryje, że z drugim problemem (czcionkami) jest coś nie tak. 

Testowanie manualne może wykryć problemy wykraczające poza początkowy zakres testu. Metoda testowania eksploracyjnego została opracowana po to, aby tester QA miał przestrzeń do znajdowania nieoczekiwanych błędów w miarę ich pojawiania się, nawet jeśli początkowo nie szukał właśnie ich. Skupione na jednym zadaniu testowanie automatyczne może być dokładne. Nie może jednak być wszechstronne. 

Przykłady dobrego testowania automatycznego

Automatyzację testów stosuje się w celu minimalizowania ryzyka. Gdy tester QA może ograniczyć ryzyko i zmaksymalizować wydajność, zdecydowanie należy przeprowadzić testowanie automatyczne.  Nie ma powodu, aby tester QA spędzał godziny na ręcznym sprawdzaniu odnośników w witrynie, skoro robot indeksujący może wykonać tę samą czynność w krótszym czasie i z mniejszym prawdopodobieństwem popełnienia błędu.

Dobrą praktyczną zasadą przy podejmowaniu decyzji, kiedy zamiast testowania manualnego zastosować testowanie automatyczne, jest zadanie sobie pytania, czy test będzie szybki lub ciągły. Jeśli test ma być uruchamiany w sposób ciągły, najlepszym rozwiązaniem jest testowanie automatyczne. 

Ludzie wypadają gorzej niż maszyny, jeśli chodzi o konsekwentne wykonywanie powtarzalnych zadań na wysokim poziomie. Pragniemy nowości i mentalnie tracimy zaangażowanie, gdy przez zbyt długi czas robimy to samo. W efekcie błędy mogą pozostać niezauważone. 

Właśnie wtedy tester QA zda sobie sprawę, że: a) poświęcił więcej czasu, niż gdyby przeprowadził testowanie automatyczne, oraz b) wykonał gorszą pracę i spowodował więcej problemów w późniejszym czasie. 

Jason Huggins, twórca popularnego narzędzia do testowania automatycznego Selenium, opracował ten program, ponieważ zauważył, że wiele jego dni pracy testera upływało na wykonywaniu tych samych zadań — zadań, które uważał za na tyle proste i nieskomplikowane, że mógłby je wykonywać nawet robot. Opracował więc skrypt, który automatycznie testował za niego funkcjonalność przeglądarki. Odniósł on natychmiastowy sukces i szybko stał się standardem branżowym. 

Nawet specjaliści QA sceptycznie nastawieni do testowania automatycznego wiedzą, że w wielu przypadkach pełni ono określoną funkcję. 

Dlaczego testowanie manualne nigdy nie zniknie

Omówiliśmy dobre, złe i bardzo złe aspekty AT. Wiemy, w jakich sytuacjach sprawdza się ono dobrze, a także kiedy powoduje, że na liniach montażowych opony samochodowe są przerzucane po całej fabryce. Przyjrzyjmy się przez chwilę testowaniu manualnemu i temu, dlaczego nadal jest ono tak ważne dla testerów QA. 

Testowanie automatyczne wymaga nadzoru

Jak wspomniano powyżej, w związku z problemem Muska dotyczącym Modelu 3 oraz ryzykiem związanym z uruchamianiem testowania automatycznego przez noc, pozostawienie narzędzi do automatyzacji bez nadzoru może prowadzić do poważnych problemów. 

Testowanie automatyczne wymaga nadzoru — GIF

Największe korzyści z testowania automatycznego pojawiają się wtedy, gdy jest ono przeprowadzane wraz z testowaniem manualnym lub pod nadzorem testera QA. Już z tego powodu testerzy QA mogą spokojnie oczekiwać, że AT nie przejmie ich ról w dającej się przewidzieć przyszłości. 

More Articles

Testy manualne wykorzystują testy eksploracyjne

Gdy tester przeprowadza test eksploracyjny, bada oprogramowanie bez wcześniej przygotowanego planu. Jest to jedna z najpopularniejszych form testowania w zapewnianiu jakości.

Testy eksploracyjne można przeprowadzać wyłącznie ręcznie. 

Zaletą testów eksploracyjnych jest to, że pozwalają testerowi na bieżąco dostosowywać działania do poczynionych ustaleń, bez konieczności pisania kolejnego przypadku testowego. 

Testy eksploracyjne umożliwiają również bieżącą współpracę, tworzenie teorii i współpracę. 

W miarę jak zwinna teoria rozwoju zyskiwała na znaczeniu, rosło również znaczenie testów eksploracyjnych. 

Automatyzacja testów nie zapewnia elastyczności i kreatywności niezbędnych do tego, by testy eksploracyjne były wystarczająco zwinne. Najlepiej sprawdza się w sztywnym środowisku, w którym dokładnie wiadomo, czego szukać. Testy eksploracyjne są całkowitym przeciwieństwem tego podejścia — tester QA otrzymuje instrukcję, by działać w dowolnym wybranym przez siebie kierunku. 

Co o tym sądzisz?

Niektórzy są gorącymi zwolennikami automatyzacji testów, podczas gdy inni nadal uważają, że najlepszym rozwiązaniem są testy manualne. Jak sądzisz, w jaki sposób zespoły QA mogą maksymalnie wykorzystać automatyzację testów? Czy uważasz, że jesteśmy gotowi na sztuczną inteligencję w testowaniu?

Subskrybuj biuletyn The CTO Club  i otrzymuj najnowsze artykuły oraz aktualności od ekspertów branżowych.

Jason Boog
Over his 15-year career, Jason Boog has worked as a QA tester, QA analyst, and Senior QA Analyst on video games, commercial sites, and interactive web applications. He spent more than a decade building out the QA team and process as Director of Quality & Client Support at a full-service digital agency.
Follow the author:

You may also like