Testy dwóch róż – czyli Lancasterowie i Yorkowie poznają psychologię testowania

aromanWystąpienie złożone będzie z 3 zasadniczych części. W części pierwszej omówię kilka mechanizmów psychologicznych o  niezwykle silnych implikacjach praktycznych dla pracy testerów. Pokażę z jakich zasad psychologicznych (!) wynika efektywność formalnych technik projektowania testów. Postaram się również uzasadnić empirycznie, dlaczego tak ważne jest porozumiewanie się z klientem w języku biznesu. Zobaczymy również dlaczego jedną z kluczowych cech testera musi być kreatywność, nieszablonowe myślenie i znajomość… logiki!

W trakcie prezentacji przeprowadzę na słuchaczach kilka prostych eksperymentów, które (mam nadzieję, że z sukcesem) stanowić będą praktyczne potwierdzenie głoszonych tez. Wyniki eksperymentów pozwolą na sformułowanie kilku reguł postępowania, wspomagających analityczne podejście testera do rozwiązywania problemów. Zobaczymy jak wiele korzyści może przynieść stosowanie tych reguł w praktyce, poprzez analizę rzeczywistego zagadnienia testowego.

Inspiracją dla problemu jest tzw. wojna dwóch róż, czyli 30-letnia walka o władzę prowadzona w XV wieku w Anglii przez dwa potężne rody – Lancasterów i Yorków. Przyczyn tej wojny szukać można o wiele wcześniej, w XIV wieku, kiedy to Henryk IV zgłosił (skutecznie) pretensje do korony, choć wcale nie był prawowitym następcą tronu.

W drugiej części prelekcji rozważymy zatem tzw. problem sukcesji, czyli zagadnienie polegające na wskazaniu następcy tronu na podstawie drzewa genealogicznego. Na przykładzie tego zadania zobaczymy jak wspomniane wcześniej mechanizmy psychologiczne oraz wykorzystanie formalnych technik projektowania testów może nam pomóc w profesjonalnym tworzeniu efektywnych przypadków testowych. Przeanalizujemy zalety i wady takiego podejścia oraz zastanowimy się, w jakich okolicznościach może być ono skuteczne, a w jakich przyniesie więcej szkody, niż pożytku.

Podczas prezentacji będę chciał pokazać metodyczne podejście do problemu, przy okazji ilustrując jak może wyglądać podejście analityczne „w praktyce”. Zobaczymy jak sensownie zabrać się do rozwiązania dosyć skomplikowanego koncepcyjnie zadania tak, by z jednej strony nie pominąć żadnych istotnych szczegółów i stworzyć efektywny zbiór testów, a z drugiej – nie pogubić się w gąszczu wymagań, warunków i ograniczeń. Mam nadzieję, że przekonam również słuchaczy, iż znajomość (i umiejętność wykorzystania) różnego rodzaju mniej lub bardziej formalnych narzędzi może być bardzo przydatna dla testera i znacznie ułatwić mu życie.

W trzeciej, ostatniej części prezentacji zobaczymy ciekawą metodę wykorzystania białoskrzynkowych technik pokrycia. Zwykle techniki te kojarzymy z pracą deweloperów, którzy mierzą pokrycie kodu testami jednostkowymi. Zobaczymy jednak, że techniki białoskrzynkowe z powodzeniem można stosować również w „prawdziwych”, wysokopoziomowych testach (np. systemowych). W naszym przypadku pokrycie nie będzie dotyczyło kodu źródłowego, lecz modelu działania algorytmu. Pokażę, jak techniki białoskrzynkowe mogą być pomocne w testowaniu opartym na modelu. Technika ta jest wciąż mało znana, choć z powodzeniem stosowana np. w przemyśle motoryzacyjnym, gdzie stała się de facto standardem w zakresie podejścia do testów.

W trakcie prelekcji nie będę odwoływał się do żadnych konkretnych aplikacji czy języków programowania. Skupię się na abstrakcyjnym problemie i sposobie jego rozwiązania. Celem prezentacji nie jest bowiem opisanie konkretnego rozwiązania technologicznego, lecz coś moim zdaniem o wiele ważniejszego i ponadczasowego – pokazanie potęgi racjonalnego testerskiego myślenia.


Tagged under:
TwitterFacebookLinkedInGoogle+