Jak zespoły piszą testy i co o tym myślę cz. 1

September 15, 2022

Awans testera na osobę odpowiedzialną za rozwój testów

Większość z nas ma już jakieś wyobrażenia lub wyrobione zdanie na te temat, również łącznie ze mną. Postanowiłem jednak napisać ten post, aby podsumować swoją wiedzę i sprawdzić, czy moje założenia są jeszcze poprawne.

Czasami testerzy manualni lub inne osoby postanawiają wpłynąć na swoją przyszłość i przekonują swojego szefa, lidera lub kogokolwiek odpowiedzialnego za tę część, że mogą zacząć automatyzować. Aby było jasne, nie ma nic złego w chęci zmiany, jak najbardziej popieram takie inicjatywy. Uważam jednak, mając świadomość, że istnieją od tej zasady wyjątki, że niektóre z tych osób mogą być członkami zespołu automatyzującego, zazwyczaj jednak nie są to odpowiednie osoby do budowania fundamentów testów w organizacji. Na początku taki zespół dokona znacznego progresu, jednak poziom skomplikowania, problemy z utrzymaniem i konserwacją rosną z czasem. Następnie zaś narastające problemy prowadzą do utraty miarodajności testów.

Niejednokrotnie podczas pisania testów automatycznych napotykamy się na problemy, które nie występują z jasnego powodu. Mogą to być niedeterministyczne wyniki testów, problemy na serwerze CI, a co za tym idzie problemy z siecią, uprawnieniami oraz wiele innych. W takiej sytuacji można najpierw obwinić narzędzie, sieć lub pomyśleć, że mamy gorszy dzień i spróbować ponownie uruchomić test. Ewentualnie, może to być problem z timingiem operacji. W każdej takiej sytuacji czas naprawy przedłuża się, a przyczyna nie jest do końca znana. Wkrótce, poza faktem, że testy będą powolne, ich stabilność ulegnie pogorszeniu i trudno będzie określić pierwotną przyczynę niepowodzeń. W tym przypadku tracimy wartość, jaką powinniśmy zyskać dzięki automatyzacji testów, ponieważ ani QA, ani programiści nie mogą stwierdzić, czy awaria jest błędem w produkcie, czy w automatyzacji. Prowadzi to do utraty zaufania w wyniki testów.

Kolejnym problemem, który często dotyka tę grupę, jest dzielenie obowiązków pomiędzy automatyzację i testy manualne. Poświęcanie określonego procentu swojej pracy na jedną czynność, a drugiej części na inną, prawie nigdy nie jest praktyczne. Ponadto bardzo ciężko to zmierzyć, aby rzeczywiście mieć nad tym kontrolę. Automatyzacja to nie tylko pisanie testów. Absolutne minimum to sprawdzanie ich wyników. A co jeżeli wynik testów jest negatywny? Musimy się nimi zająć. W ten sposób działamy bardzo niewydajnie.

Podsumowanie

Osoby z pewną wiedzą na temat programowania, czy bez doświadczenia w automatyzacji mogą stać się w tym skuteczne, ale potrzebują lidera w tym zakresie. Potrzeba czasu, pracy i poświęcenia, aby stać się w tym dobrym i dlatego nie można tego zrobić “przy okazji”.