Prezentacja AADays 2016: Bartłomiej Bugajny - Jak efektywnie implementować piramidę testów?

 

Jeszcze przed przewagą zwinnych metodyk takich jak Scrum, wiedzieliśmy że powinniśmy automatyzować nasze testy – ale tego nie robiliśmy. Testy automatyczne zostały uznane za drogie w pisaniu i często powstawały miesiącami a nawet w niektórych przypadkach parę lat po tym jak dana funkcjonalność została zaimplementowana. Skuteczna strategia automatyzacji testów wymaga automatyzacji na trzech różnych poziomach – unit, integration, UI.
Koncepcja zakłada, że będziemy tworzyć jak najwięcej testów jednostkowych, mniej testów integracyjnch i web serwisów, a najmniej testów na warstwie UI (end to end). Zdecydowaliśmy się na to podejście przede wszystkim po to, by poprawiać jakość naszych aplikacji, skrócić czas uzyskania informacji zwrotnej o tym czy kod działa prawidłowo oraz zmniejszyć ilość testów manualnych. Ponadto chcemy się wzajemnie uczyć dostarczać aplikacje lepszej jakości – dzięki temu deweloperzy zrozumieją lepiej pracę testerską, a testerzy dowiedzą się od programistów co może zostać przetestowane np. w unit testach czy web serwisach. Jakie zmiany niesie ona ze sobą? Przede wszystkim kładziemy większy nacisk na komunikację w zespole pomiędzy programistą, testerem i analitykiem. Po wspólnym przejrzeniu przypadków testowych, decydujemy o tym na których poziomach piramidy testów chcemy umieścić testy – możliwie jak najniżej: Unit>Integration>UI tests. Wszelkie ustalenia ze spotkań staramy się trzymać w jednym miejscu: w opisie historyjek użytkownika, gdzie każdy je widzi i może zmieniać kiedy zauważy, że scenariusz biznesowy nie został pokryty testem. Większy nacisk na testy automatyczne (pisane przez deweloperow i testerów) z podejściem piramidy powoduje, że wykrywamy mniej błędów po skończonej historyjce użytkownika. W konsekwencji testy regresji trwają o wiele szybciej, dzięki czemu szybciej dostarczamy klientowi oprogramowanie wysokiej jakości. Stosujemy piramidę testów w projekach od zera oraz w projektach gdzie stosunek testów jednostkowych, integracyjnych i systemowych miał niewłaściwe proporcje.

Podczas prezentacji chciałbym przeprowadzić słuchaczy przez „case study” jednego z toczonych obecnie projektów, pokazać jak krok po kroku „budowaliśmy piramidę”. Pokażę czego się nauczyliśmy, jakie błędy popełniliśmy oraz jak to w obecnej sytuacji działa i czy daje wartość.

O autorze: Bartłomiej Bugajny to ekspert testowania, który od 2013 r. wspiera swoim doświadczeniem zespoły w Objectivity. Jak sam mówi: Quality Engineering to nie jego zawód, ale życiowa pasja, gdzie najwiekszą satysfakcję daje mu skrupulatna dbałość o jakość dostarczanego produktu. Bartek specjalizuje się w testach aplikacji webowych oraz desktopowych; a oprócz manualnych wykonuje także testy automatyczne z wykorzystaniem Selenium Web Driver oraz testów BDD (SpecFlow). Jego umiejętności techniczne potwierdza m.in. certyfikat ISTQB Advanced Level Test Manager. W Objectivity jest głównym testerem w programie składającym się z ponad 50 osób. Jego profesjonalna postawa i umiejętności społeczne uczyniły go dodatkowo reprezentantem zespołu w kontakcie z Klientem – w tej roli Bartek odpowiada za ułożenie procesów testerskich i równoważenie potrzeb Klienta oraz zespołu wedle firmowej filozofii Win-Win.

Od 2014 r. Bartek aktywnie współtworzy społeczność testerską angażując się w konferencje i inne wydarzenia branżowe. Do tej pory wystąpił m.in. na TestingCup 2014 (temat Współpraca egzotycznych ról, czyli jak na barkach BA, UX i QE oprzeć powodzenie projektu agile’owego, TestingCup 2015 (temat Od zera do bohatera), TestingCup 2016 (temat Applying Lean to Software Testing) oraz w 2015 r. na Agile & Automation Days z prezentacją How to automate Visual Testing.