PODOBAŁ CI SIĘ TEN ARTYKUŁ?
Sprawdź inne teksty
Tworzenie zgłoszeń defektów jest nieodzownym elementem pracy testerskiej, nic więc dziwnego, że pytanie jak go poprawnie stworzyć nie przestaje padać z ust osób aspirujących na stanowisko testera. W tym wpisie zamierzam omówić wspominane w tytule informacje, które wciąż bywają pomijane przez kandydatów podczas rozmowy kwalifikacyjnej. W tym wpisie poznasz również dodatkowe miary szacowania jak Wpływ i Prawdopodobieństwo. Nauczysz się dobrze interpretować wagi defektu oraz poprawnie je przypisywać. Na koniec stworzysz pełne zgłoszenie błędu na specjalnie przygotowanym formularzu.
Jednym z często pojawiających się pytań na rozmowie rekrutacyjnej jest "Jak zgłosisz następujący defekt". Do zadania załączony jest wybrany wyjątek z aplikacji, który jednoznacznie wskazuje na zupełne przerwanie działania aplikacji. Kandydat jest dobrze przygotowany z samej struktury przypadku testowego i słychać, że wie o czym mówi podając:
W porządku. Ale całkowicie pomija przy tym priorytet, o ważności już nie wspominając! Zgłaszając defekt pamięta, jak dobrze go udokumentować i wyczerpująco opisać, a zapomina o najważniejszym aspekcie - sklasyfikowaniu jego priorytetu wykonania. Jednak z rozmowy jasno wynika, że tester pracuje w projekcie w którym używa się narzędzi do zarządzania testowaniem ze skonfigurowanymi priorytetami.
Moim zdaniem wynika to z tego, że szacowanie priorytetów w projektach bardzo często wykonuje się "na wyczucie" i bez odpowiedniego przeszkolenia pracownika. Albo w projekcie istnieje zwyczaj pytania starszych doświadczeniem kolegów, jaki priorytet może mieć zagadnienie. Tester po pracy w takim projekcie przychodzi na rozmowę rekrutacyjną i jeżeli już zna priorytety, to działa intencjonalnie zamiast rozważyć problem zgodnie z praktyką.
Wyobraź sobie następującą sytuację. Jesteś testerem, który dopiero rozpoczął pracę w projekcie, a w aplikacji właśnie zaczął się cykl testów eksploracyjnych. Z pewnością znajdziesz całe mnóstwo błędów do zgłoszenia. Na początku wszystkie będą wydawały się kluczowe do naprawienia, w końcu aplikacja ewidentnie sypie się na Twoich oczach.
Załóżmy teraz, że z każdym przyrostem aplikacji następuje zwiększenie pokrycia testami i projekt rozwija się zgodnie z planem. W kolejnych cyklach zagęszczenie błędów znacząco maleje, a Ty zaczynasz sprawdzać mniej używane komponenty aplikacji, znajdując przy tym więcej corner case'ów (przypadków brzegowych), kosmetycznych niedociągnięć i literówek. Jak nad tym wszystkim zapanować i wyczuć, które zagadnienie ma jaką wagę?
Priorytet staje się podstawową miarą, skupiając się na biznesowej stronie aplikacji. Są to te wszystkie funkcjonalności, których działanie jest kluczowe dla klienta. Znalezione w tych obszarach defekty mogą zagrażać biznesowemu powodzeniu projektu. Odpowiada na pytanie "Jak szybko musimy to naprawić". Z reguły waży się go następująco:
P1. Krytyczny/Bloker - Blokuje biznesowy proces aplikacji i powinien być zrealizowany w pierwszej kolejności.
P2. Wysoki - Defekt jest istotny, należy go monitorować i podjąć działania ograniczające możliwość wystąpienia w przyszłości.
P3. Średni - Do naprawienia w najbliższym możliwym czasie.
P4. Niski - Defektem można się zająć, kiedy nie będzie zadań w iteracji.
Następnym czynnikiem jest Ważność. Ta jest często utożsamiana z priorytetem i w wielu projektach zastępuje go swoją skalą. Tymczasem skupia się ona zupełnie na innym aspekcie, tj. jak znaleziony defekt wpływa na testowany system pomijając biznesową stronę zagadnienia. Odpowiada na pytanie "Jak szkodliwy jest ten defekt". Jest to więc bardziej techniczny czynnik. W moich projektach ważność stopniuje się następująco:
S1. Krytyczny/Blokujący - Defekt całkowicie uniemożliwia dalsze testowanie funkcjonalności. Z reguły wpływa na kluczowe procesy biznesowe i zagraża dostarczeniu funkcjonalności.
S2. Bardzo wysoki - Defekt wpływa na kluczowe procesy biznesowe i zagraża dostarczeniu funkcjonalności, jednak możliwe jest obejście przy pomocy zastosowania ścieżki alternatywnej .
S3. Wysoki - Defekt wpływa na jeden lub więcej komponent aplikacji. Uniemożliwia przy tym jego testowanie, jednak możliwe jest obejście przy pomocy zastosowania ścieżki alternatywnej.
S4. Średni - Defekt nie dotyczy kluczowych procesów, możliwe jest dalsze testowanie, a w razie problemu również obejście przy pomocy zastosowania ścieżki alternatywnej.
S5. Niski/Trywialny - Defekt o minimalnym wpływie na testowany system.
Mając wiedzę na temat tych dwóch czynników jesteś w stanie bardziej kompleksowo podejść do problemu. Jeżeli rozrysowalibyśmy problem na macierzy, np. wykresie X (Ważność) Y (Priorytet) można podzielić go na:
Zrozumienie ww. korelacji może znacząco zwiększyć Twoje szanse podczas rozmowy technicznej!
Poznanie dwóch dodatkowych czynników pozwoli Ci jeszcze szerzej spojrzeć na zagadnienie. Są częścią pracy Kierowników Testów i służą do analizy i oceny ryzyka. To Wpływ i Prawdopodobieństwo.
Wpływ jest to potencjalna szkoda, jaką może wyrządzić defekt, kiedy już wystąpi. Jest to tak naprawdę zapis ważności w konkretnym, zdefiniowanym stopniowaniu. Używając tak zadeklarowanego stopniowania pozwala oszacować plan działania dla testowanego komponentu oraz, jeśli to możliwe podjąć działania ograniczające wystąpienie defektu w przyszłości.
Prawdopodobieństwo wraz z wpływem pozwala obliczyć poziom ryzyka, jaki może wywołać dany defekt. Biorąc pod uwagę wpływ i prawdopodobieństwo można użyć metody analizy ryzyka PRisMa. Podobnie jak w przypadku Priorytetu i Ważności, podzieli Wpływ i Prawdopodobieństwo na:
Takie informacje nie będą zawarte w zgłoszeniu defektu, jednak ich wyliczenia opierają się na wcześniej zdefiniowanej w testowanym zagadnieniu ważności. Pokazuje więc istotne połączenie między tymi podejściami pozwalające Kierownikom Testów prawidłowo szacować pracę w projekcie, a następnie podejmowanie odpowiednich działań.
Zauważam tendencję do częstego nadużywania tego pytania celem "zagięcia" kogoś w dyskusji. Jest co najmniej kilka opcji realizacji tego problemu i tak naprawdę w każdym projekcie może to wyglądać inaczej. Sposoby z jakimi ja się spotkałem to:
Wszystkie wymienione wyżej podejścia mogą wciąż budzić wiele kontrowersji, ponieważ role zarządzające jakością w projekcie potrafią mieć różne nazwy. Dobrą praktyką będzie oprzeć się na teorii ISTQB i podczas rozmowy rekrutacyjnej odpowiedzieć na to pytanie poprzez wskazanie roli "Kierownika Testów".
Poznając zagadnienie Priorytetu i Ważności prawidłowo zważysz zgłoszone defekty. Rozwijając swoją wiedzę poprzez poznanie metody analizy i identyfikacji ryzyka zobaczysz jak można spojrzeć na zagadnienie z szerszej perspektywy. Mam nadzieję, że artykuł pomoże Ci lepiej ważyć zagadnienia z uwzględnieniem okoliczności wystąpienia defektu oraz na jakie obszary wpłynął.
Mając powyższą wiedzę można ją wykorzystać do zbudowania szczegółowego zgłoszenia znalezionego defektu. Liczne narzędzia ułatwiają ten proces poprzez domyślne definiowanie pól, jednak dobrze jest nauczyć się i zapamiętać najważniejsze informacje, które powinny znaleźć się w każdym zgłoszeniu defektu. A są to:
A na koniec zadanie dla Ciebie :) Wyobraź sobie, że testujesz aplikację, która po rejestracji użytkownika umożliwia odbieranie kodów rabatowych na wybrane artykuły. Podczas testowania formularza rejestracji wyskakuje następujący błąd:
Stwórz poprawne zgłoszenie defektu używając poniższego formularza. Jeśli chcesz, wyślij do mnie wypełniony przez siebie formularz, a chętnie go sprawdzę!
REMIGIUSZ BEDNARCZYK
Znajdź mnie na mediach społecznościowych