Obecna sytuacja zweryfikowała nasze dążenia do chęci posiadania nadmiaru dóbr materialnych. Niemniej jednak nurt minimalizmu jest niezmiennie oazą wytchnienia od ciągłego „więcej”. Będąc zwolenniczką życia wystarczająco dobrego i posiadania tyle, ile potrzeba, zaczęłam zastanawiać się, czy minimalizm mogę wdrożyć także w swoim życiu zawodowym. Sądzę, że może to nieść za sobą wiele korzyści. Ale czy minimalizm w testach jest dla każdego?

Przypadki testowe

Jedną z podstawowych czynności testerskich jest tworzenie przypadków testowych w oparciu o zdefiniowane wymagania, co do wytwarzanego oprogramowania. Według definicji przypadek testowy (ang. test case) to: „Zbiór danych wejściowych, wstępnych warunków wykonania, oczekiwanych rezultatów i końcowych warunków wykonania, opracowany w celu zweryfikowania zgodności działania programu z oczekiwanym rezultatem lub sprawdzenia warunku testowego”.

Przypadki testowe mogą mieć charakter ogólny bądź bardziej szczegółowy.

  • Przypadki testowe wysokiego poziomu

Te pierwsze to przypadki testowe wysokiego poziomu i są tworzone bez konkretnych wartości wejściowych czy oczekiwanych rezultatów. Zazwyczaj stosowane są, gdy wartości oczekiwane nie są jeszcze dostępne dla testera na etapie tworzenia przypadków lub wymagania są niedodefiniowane czy też podane w sposób ogólny. Są także przydatne, gdy w zespole jest doświadczony tester i chce zachować swobodę wykonywania testów, ponieważ pozwalają na większą kreatywność przy ich wykonywaniu, co też zapewnia większy stopień pokrycia.

  • Przypadki testowe niskiego poziomu

Przypadki testowe niskiego poziomu zawsze zawierają konkretne wartości wejściowe i oczekiwane wyniki. Taki rodzaj przypadków testowych dobrze jest stosować w sytuacji, kiedy tester jest niedoświadczony. Albo kiedy testy wykonuje ekspert w danej dziedzinie, który zna doskonale system, ale nie posiada wiedzy z zakresu testowania oprogramowania. Dodatkowo, przypadki testowe niskiego poziomu są idealne, gdy proces testowania jest poddawany zewnętrznej weryfikacji takiej jak audyt.

Zobacz: Testowanie w zespołach zwinnych

Z czego składa się przypadek testowy?

Klasyczny przypadek testowy powinien zawierać poszczególne składowe jakimi są:

  • identyfikator – to nic innego, jak unikalne oznaczenie przypadku, aby móc do niego w razie potrzeby bez problemu powrócić,
  • cel – opisuje przyczynę stworzenia i przeprowadzenia testu,
  • warunki wstępne – opisują kryteria, jakie mają być spełnione przez środowiska i system, zanim test będzie mógł być wykonany,
  • dane testowe (dotyczy przypadków niskiego poziomu),
  • oczekiwany wynik,
  • warunki wyjściowe – czyli stan środowiska lub systemu po przeprowadzeniu testu.

Czasami dostarczenie tych wszystkich składowych i zawarcie ich w jednym przypadku testowym może być nie lada wyzwaniem dla testera. Zwłaszcza jeśli sam zajmuje się przygotowywaniem danych testowych do późniejszych przypadków testowych. Wszystkie te aktywności mogą zabierać sporo czasu. Wiadomo, że dziś czas to pieniądz, a więc w tym rozumieniu tworzenie przypadków testowych może być pojmowane jako waste. Jak więc zastosować ideę „zero waste” w testach? Jak tworzyć przypadki testowe, które będą dobrej jakości, ale ich przygotowanie nie będzie zabierało dużo czasu?

Testy: mniej znaczy więcej?

Jak posiadać tylko to, co najbardziej potrzebne i odróżniać potrzebę od zachcianki? Z pomocą przychodzi koncepcja minimalizmu. Kierując się nią także w testach, spróbujmy ze składowych klasycznego przypadku testowego wyłuskać tylko te części, które są najbardziej potrzebne do przeprowadzenia testu. Moim zdaniem z wyżej wymienionych składników pozostałyby tylko takie części jak identyfikator oraz oczekiwany rezultat. Dlaczego właśnie te? Identyfikator to zazwyczaj numer – ale czasami może być to też tytuł – po którym możemy do danego przypadku wrócić w celu jego ponownego wykonania czy też utrzymania. Natomiast najbardziej potrzebną i istotną częścią przypadku testowego jest oczekiwany rezultat testu. Znając wynik, jaki miałby dać test, jesteśmy w stanie jasno stwierdzić, czy zastane zachowanie oprogramowania po poprawnie wykonanym teście jest błędem, czy nie, i zgłosić to do poprawy.

Jak szybko tworzyć przypadki wysokiego poziomu?

Wykorzystując jedynie identyfikator i oczekiwany rezultat, można szybko tworzyć przypadki testowe wysokiego poziomu, które nie zawierają zbędnych szczegółów. Ich przygotowanie zajmuje o wiele mniej czasu, ponieważ nie podajemy wszystkich szczegółowych danych. Taki typ przypadków testowych może być spisany w dowolnej formie, jeśli tylko wymagania projektowe na to pozwalają.

  • Mapy myśli

Bardzo szybkim i efektywnym sposobem spisywania takich przypadków testowych jest tworzenie mapy myśli, która doskonale się w tych okolicznościach sprawdza. Dodatkowo metoda mapy myśli pobudza kreatywność, która jest bardzo ważna w pracy testera. Może więc przynieść dodatkową korzyść w postaci różnorodnych i lepszej jakości przypadków testowych niż te spisane tradycyjnymi sposobami.

  • Checklisty

Kolejnym sposobem na szybkie spisanie przypadków wysokiego poziomu mogą być wszelkiego rodzaju listy kontrolne (ang. checklist). Taka lista kontrolna to jedno z najważniejszych narzędzi w pracy testera. Siła listy tkwi w prostocie, ponieważ do jej stworzenia potrzeba tylko kartki i długopisu. Swoim zasięgiem może objąć każdy rodzaj testów, od testów wymagań po testy akceptacyjne. Należy tylko pamiętać, aby na liście kontrolnej umieszczać jedynie najważniejsze przypadki testowe. W myśl minimalizmu – lista kontrolna ma nas przecież chronić przed zrobieniem więcej niż potrzeba. I tu pojawia się pokusa, jeśli chodzi o ograniczanie czasu spędzonego na przygotowywaniu przypadków testowych: dlaczego by nie pójść o krok dalej i nie przygotowywać ich wcale?

  • Metodyki zwinne

Projekty prowadzone wedle zwinnych metodyk są idealnym polem do wspomnianego wyżej eksperymentu. W momencie kiedy tester jest zaangażowany od samego początku w proces powstawania kryteriów akceptacji danego zadania, jest w stanie później na ich podstawie przeprowadzić testy. Co prawda testowanie w oparciu o warunki akceptacji charakteryzuje się tym, iż kryteria powinny być bezwarunkowo spełnione, a prawdziwe testy zaczynają się dopiero później, ale doświadczony tester bez większych problemów jest w stanie zapewnić pokrycie testowe dla alternatywnych ścieżek niż te opisane w kryteriach akceptacji. A tym samym sprawdzić różne scenariusze, nie tylko te opisane w wymaganiach. Jednak, aby móc sobie pozwolić na taki minimalizm w testowaniu, osoba testująca powinna mieć już spore doświadczenia z przeróżnych projektów, a także dobrze wykształcony zmysł testerski. W innym wypadku istnieje spore ryzyko, że zadanie nie zostanie pokryte wystarczającą ilością testów, a tym samym jakość dostarczanego oprogramowania może być niższa.

Podsumowanie: czy minimalizm w testach jest dla każdego?

Czy minimalizm w testowaniu jest dla każdego? Ostatnie zdania poprzedniego akapitu zdają się być kluczowe w odpowiedzi na to pytanie. Testowanie bez przypadków testowych, a w oparciu o kryteria akceptacji lub z wykorzystaniem przypadków wysokiego poziomu jest niebywale ryzykowne. Wymaga to dużego doświadczenia testera. Takie minimalistyczne praktyki testowe wymagają ugruntowanej wiedzy z zakresu testowania oprogramowania, dobrej znajomości testowanego produktu, jego charakterystyki, słabych punktów i ścieżek krytycznych dla użytkowników. W innym przypadku taki minimalizm może przynieść więcej szkód niż pożytku. Nie znaczy to jednak, że nie zachęcam do eksperymentów z minimalizmem w pracy – wręcz przeciwnie! Warto od czasu do czasu wyjść ze swojej strefy komfortu i spróbować celowo ograniczyć swoje potrzeby. Choćby po to, żeby sprawdzić, czy rzeczywiście potrzeba aż tak wiele. Często okazuje się, że nie. Ale sprawdźcie sami!

Czytaj również: Testuj albo giń

Autorem wpisu jest:
Magdalena Pastuszka

Testerka oprogramowania, której główną dewizą w pracy jest „Ufaj, ale sprawdzaj”. Testowanie to dla niej bycie rzetelnym na każdym etapie powstawania oprogramowania, natomiast najważniejszym czynnikiem w zespole jest komunikacja. Od początku swojej kariery związana z testami manualnymi aplikacji webowych, ale po 7 latach nadszedł czas na zmiany, bo pokochała testowanie mobilne i to z nim zamierza spędzić kilka najbliższych lat. Prywatnie pasjonatka motoryzacji i szczęśliwa posiadaczka Hondy CRX z '89 roku.

Dodaj komentarz

Komentarze:

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.