Paradoks pestycydów
W testerskim świecie funkcjonuje pojęcie paradoksu pestycydów. Ale co zabijanie robactwa ma do testowania oprogramowania?
Z pojęciem paradoksu pestycydów możecie się zetknąć podczas nauki o przypadkach testowych. Jeśli jednak nie mieliście jeszcze z nimi styczności, śpieszę z szybkim wytłumaczeniem. Przypadek testowy możemy określić jako odpowiedź na dwa pytania - co należy przetestować i jak należy to zrobić? Idąc dalej - przypadek testowy jest listą czynności, listą kroków do wykonania w celu przetestowania danej funkcjonalności oprogramowania. Przykładowo - poniżej widzicie przypadek testowy logowania na stronie saucedemo.com:
Ale dlaczego pestycydy?
Pojęcie paradoksu pestycydów zaczerpnięto od pestycydów stosowanych do pozbywania się szkodników z pól uprawnych. Wielokrotne używanie tych samych środków sprawia, że owady uoadparniają się na dane substancje. Podobne zjawisko można zaobserwować w przypadku ciągłego wykonywania niezmienionych testów.
Przekonanie o braku błędów w aplikacji
Stosowanie przestarzałych (czyli nieaktualizowanych po wprowadzeniu zmian w oprogramowaniu) przypadków testowych prowadzi do niebezpiecznego przekonania o braku błędów w aplikacji. Stale używany zestaw testów może doprowadzić do NIEwykrycia nowych błędów. Niezwykle istotne jest więc bieżące aktualizowanie przypadków testowych. Każda zmiana w oprogramowaniu powinna być równoznaczna z przejrzeniem przypadków testowych i dostosowaniem ich do nowych funkcjonalności. Dobrą praktyką jest też cykliczne przeprowadzanie testów eksploracyjnych. Testowanie aplikacji bez konkretnego celu często odkrywa nieznane wcześniej ścieżki czy pozwala znaleźć nowe błędy. To wszystko pokazuje, że klasyczne przypadki to nie zawsze najlepsze rozwiązanie.
Wysokopoziomowe przypadki testowe
W walce z paradoksem pestycydów pomocna jest też zmiana podejścia do przypadków testowych. Będąc świadomym wad stosowania klasycznych, szczegółowo opisanych (czyli mówiąc bardziej technicznie - niskopoziomowych) testów, owocnym posunięciem może być przejście na wysokopoziomowe przypadki testowe. Zamiast szeroko nakreślonego testu logowania - wraz z warunkami wstępnymi, krokami, oczekiwanym rezultatem i innymi elementami przypadku testowego - spróbujcie zdefiniować test jednym hasłem.
Wysokopoziomowe przypadki testowe opierają się na kreatywności testera. Nikt nie jest tu prowadzony za rękę, a wszelkie kroki czy warunki wstępne muszą być samodzielnie określone przez osobę testującą. To od testera zależy, w jaki sposób przetestuje formularz logowania. Oczywiście, konieczne jest tu zaufanie (zakładamy, że najważniejsze funkcje zostały przetestowane), więc strategia wykazuje szczególną skuteczność, gdy tester ma już za sobą nieco doświadczenia.
Dziękuję, że czytasz mojego bloga!
Masz jakieś pytania? Z chęcią odpowiem :)