Najczęstsze błędy w testowaniu oprogramowania
styczeń 3, 2024, 9 min czytania

Rozwój umiejętności to również świadomość popełnianych błędów lub możliwości ich popełnienia. W tym artykule opiszemy jakie błędy najczęściej przytrafiają się testerom - tym młodym stażem, jak i doświadczonym. Kto wie, może znajdziesz je u siebie lub kogoś w zespole? A może pozwoli Ci uniknąć pomyłek w projekcie o innej specyfice, niż ten w którym obecnie się znajdujesz?
Typowe błędy początkujących testerów
Niepełne zrozumienie wymagań
Początkujący tester często rozpoczyna testy bez dogłębnego zrozumienia istoty wprowadzanych zmian, zdarza się, że to występuje ze względu na strach o dopytanie innych co mógłby przetestować (przecież to on jest od testów) lub przez skróty myślowe zastosowane przez osobę opisującą zadanie, dla której pewne zachowania są oczywiste. Takie sytuacje doprowadzają do tego, że pokrycie testami jest niepełne lub błędne.
Nieznajomość aplikacji
Naturalnym jest, że osoba która jest testerem od niedawna nie będzie w stanie znać aplikacji tak dobrze, jak jej doświadczeni koledzy i koleżanki z zespołu. Niestety, to może prowadzić do pominięć w testowaniu niektórych przypadków czy obszarów lub potraktowanie feature’a jako buga i odwrotnie.
Niedokładne planowanie testów
Niedbałość przy rozpisywaniu scenariuszy testowych może prowadzić do luk w pokryciu testowym, a to w efekcie do nieznalezienia błędów. Brak dobrze rozpisanych przypadków testowych może również doprowadzić do dublowania pracy testera - w natłoku pracy można zapomnieć się i wykonać te same kroki ponownie.
Nadmierne skupianie się na edge case’ach lub pomijanie ich
Obie te skrajności są złe - zarówno upieranie się, że jakiś bardzo specyficzny przypadek może źle wpłynąć na działanie aplikacji, gdy jest bardzo mała szansa na wystąpienie a jedyny efekt to rzucenie nieobsłużonego błędu (np. użycie emoji w polu wpisywania), jak i sprawdzanie jedynie happy path’ów wokół trzonu zmian, bez poświęcenia uwagi mniej oczywistym błędom (np. przekroczenie stosunkowo wysokiego limitu znaków).
Brak komunikacji
Używanie systemów ticketowych jako jedynej formy komunikacji z resztą zespołu może narazić projekt na nieporozumienia, ponieważ zdarza się, że podczas implementacji pewne założenia musiały ulec zmianie, a zgłoszenie nie zostało zaktualizowane lub zakomunikowane stosownym komentarzem, przez co tester może trzymać się pierwotnej wersji i natrafić na “błędy”, które nimi nie są. Ponadto, nic nie zastąpi dobrej zdzwonki z developerem czy chociaż konwersacji na czacie, by omówić szczegóły napotkanego błędu, zamiast przerzucać ticketami - czasem podczas takiej wspólnej weryfikacji poprawka może nadejść natychmiast.
Ignorowanie aspektów testów niefunkcjonalnych
Nowi testerzy często skupiają się wyłącznie na aspektach funkcjonalnych, ignorując wydajność, użyteczność czy kwestie zabezpieczeń danego rozwiązania.
Nieprawidłowa ocena priorytetów
Niedoświadczeni testerzy mogą nie rozumieć, które ze scenariuszy należy wykonać w pierwszej kolejności by wychwycić błędy jak najwcześniej. Przykładem tego może być pominięcie happy path'a lub w przypadku złożonego zadania skupienie się jedynie na poszczególnym fragmencie dostarczanych zmian, zamiast zacząć od całościowej weryfikacji zachowania.
Poleganie wyłącznie na testach manualnych
Testerzy z krótkim stażem, dla których testy manualne to codzienność, w której rozwijają swoje skrzydła mogą nie mieć zaufania do testów automatycznych, co w ogólnym rozrachunku jest złym podejściem, ponieważ są one sojusznikiem testerów, a nie ich przeciwnikiem - po co marnować czas na powtarzalne kwestie, skoro może zrobić to za nas automat?
Niepoprawne opisy zgłaszanych błędów
Początkujący testerzy mogą mieć tendencję do niedostarczania odpowiedniej ilości szczegółów podczas raportowania błędów lub zaciemniania ich poprzez nadmierną szczegółowość. Obie opcje prowadzą do tego, że utrudnia to developerom zrozumienie czy reprodukcję błędu, w efekcie czego również naprawę.
Typowe błędy doświadczonych testerów
Nadmierna pewność siebie w ocenie pokrycia testami
Testerzy z długim stażem mogą być przekonani, że nic ich już nie zaskoczy i że widzieli już wszystko, przez co ich przypadki testowe są doskonałe, podczas gdy wraz z rozwojem aplikacji, np. wykorzystanie nowych bibliotek czy technologii mogą pojawić się nowe lub nietypowe błędy.
Unikanie nowych podejść testowania
Doświadczeni testerzy mogą trzymać się utartych ścieżek w kontekście narzędzi czy metodologii, co może wpływać na ich wydajność czy skuteczność.
Zaniedbywanie roli mentora
Rolą każdego doświadczonego członka zespołu jest również wspieranie tych z mniejszym stażem - a więc najczęściej stażystów czy juniorów. Dotyczy to również testerów, ponieważ pomoc w rozwoju nowym osobom w przyszłości zaowocuje - zespół zyska wartościowego testera, zamiast prowadzić go wiecznie za rękę po aplikacji.
Zbyt duża wiara pokładana w testy automatyczne
Wraz z dużym pokryciem testami automatycznymi, niektórzy testerzy mogą uważać, że testy manualne są tylko dodatkiem i to niewiele znaczącym. Niestety, takie myślenie jest błędne, ponieważ automaty są pomocne, ale wykonują w kółko te same instrukcje, podczas gdy testy manualne pozwalają wyjść poza schemat i dostrzec błędy tam, gdzie niekoniecznie ich się spodziewamy.
Ignorowanie tzw. umiejętności miękkich
Komunikacja międzyludzka oraz praca zespołowa są kluczowymi aspektami w projekcie, choć niektórzy doświadczeni testerzy mogą uznać, że znają aplikację najlepiej, przez co wymądrzać się na jej temat. A to nie tędy droga…
Brak testów całości systemu
Skupianie się na poszczególnych komponentach aplikacji bez spojrzenia na nią w szerszej perspektywie może powodować opłakane skutki - problemy z integracją między modułami czy błędy regresji w innej, z pozoru niezwiązanej części aplikacji.
Nieuważność lub nieobecność na sesjach refinementu
Brak zaangażowania doświadczonych testerów podczas omawiania kolejnych feature'ów może prowadzić do kłopotów podczas implementacji nowych rozwiązań. Aktywne uczestnictwo testerów podczas refinementu może pomóc w identyfikacji potencjalnych błędów już we wczesnej fazie, co pozwala na efektywne wytworzenie oprogramowania.
Podsumowanie
To byłoby na tyle, jeśli chodzi o błędy jakie przydarzają się testerom przy pracy, zarówno tym z krótkim jak i długim stażem pracy, przy czym pamiętajmy, że błędy juniora mogą być popełniane przez doświadczonych testerów i odwrotnie. Oczywiście, to nie jest pełna lista możliwości, w tym wpisie wyciągnęliśmy na światło dzienne te najistotniejsze lub najciekawsze w naszej ocenie. Wierzymy, że taka znajomość potencjalnych problemów pozwali ich uniknąć w przyszłości, jednak należy mieć świadomość, że testerzy też są ludźmi, więc popełnianie błędów leży w naszej naturze.
Porady jak uniknąć lub rozwiązać większość opisanych tu problemów znajdą się w kursach dostarczonych na testslayer.pl