Dowiedz się jak Mind Mapping może pomóc Ci w testowaniu oprogramowania.

 

Bez względu na to czym się zajmujesz i jakie stanowisko obejmujesz, z pewnością choć raz przytrafiła Ci się sytuacja, w której czułeś, że mimo ogromnego zaangażowania i koncentracji, tracisz kontrolę nad tym, nad czym pracujesz. Mimo wysiłków i starań, natłok obowiązków, procedur i rzeczy, o których musiałeś pamiętać, zaczynał Cię przytłaczać. Stres, presja czasu i odpowiedzialność, jaka na Tobie ciążyła nie pomagały Ci w opanowaniu sytuacji, a zaległości tylko się nawarstwiały. W takich okolicznościach nietrudno o błąd lub pochopną decyzję, która może nieść za sobą fatalne skutki.

Idealnym rozwiązaniem byłoby spojrzenie na sytuację z szerszej perspektywy, aby móc spokojnie przeanalizować wszelkie zależności i dostrzec problemy, mogące wpływać na przebieg pracy. Następnie podjęcie kroków zaradczych, takich jak optymalizacja poszczególnych procesów w celu zwiększenia wydajności pracy. Jednak w przypadku presji czasu, stresu lub innych negatywnych czynników, takie działania bez odpowiednich narzędzi mogą okazać się bardzo trudne lub nawet niemożliwe do podjęcia.

Powszechnie stosowaną metodą wspomagania pracy jest tworzenie notatek, jednak podczas ich sporządzania w sposób tradycyjny, jak twierdzą brytyjscy naukowcy — Tony i Barry Buzan (“Use Your Memory”), aktywna jest jedynie lewa półkula mózgu, odpowiedzialna za myślenie logiczne, linearność, analizę, słowa i liczby. Tradycyjnie tworzone notatki są z natury monotonne, mało przejrzyste i ciężko przyswajalne szczególnie, gdy ich objętość jest znaczna. Poszukiwanie konkretnych informacji w opasłych notatkach może czasem powodować większą frustrację niż sam problem, którego one dotyczą. Czy jest dla nich jakaś alternatywa?

Mind Mapping — co to takiego?

Alternatywną i pod wieloma względami dużo bardziej skuteczną metodą jest tzw. mapowanie myśli (ang. Mind Mapping). Jej twórcami są wspomniani wcześniej brytyjscy naukowcy Tony i Barry Buzan. Metoda ta ma na celu zwiększenie efektywności pracy i zapamiętywania, a także aktywowanie intuicji, dzięki wykorzystaniu synergicznej współpracy obu półkul mózgowych.

Mapowanie myśli polega na przedstawieniu dowolnej koncepcji, idei, modelu, planu, hierarchii, zespołu cech lub grupy podmiotów wraz z ich powiązaniami i zależnościami w przejrzystej, zrozumiałej i czytelnej formie graficzno-tekstowej.

Dzięki wykorzystaniu nie tylko słów i liczb jak w przypadku notatek tradycyjnych, ale także symboli, kolorów, obrazów, ikon, wektorów oraz efektów wizualnych w tym trójwymiarowości, a czasem nawet dźwięku (w niektórych narzędziach do mind mappingu), uaktywnia się prawa półkula mózgu odpowiedzialna za wyobraźnię, rytm, postrzeganie przestrzenne i kolory, a obie półkule synergicznie ze sobą współpracują.

Mówiąc prościej, Mind Mapping polega na uchwyceniu dowolnego tematu, w czytelnej i zrozumiałej formie wizualnej, tak jak na przykładzie poniżej:

mind-mapa-przykladowa.png

Formy Mind Mappingu

Proces mapowania myśli może odbywać się zarówno w formie pisemnej jak i cyfrowej, a jej wybór powinien zależeć od stopnia złożoności danego zagadnienia czy projektu. Jednak po krótkiej analizie można dojść do wniosku, że praca z mind mapą w formie cyfrowej wydaje się mimo wszystko rozwiązaniem znacznie wygodniejszym. Wszak nie potrzebujemy kolorowych długopisów czy flamastrów, kartek papieru, korektorów, linijek ani szczególnych zdolności artystycznych — wystarczy komputer.

Oczywiście, tworzenie map myśli za pomocą Painta byłoby dość karkołomnym wyzwaniem ze względu na brak odpowiednich funkcji w tym programie. Na szczęście w internecie znaleźć można wiele narzędzi do Mind Mappingu — zarówno płatnych jak i bezpłatnych. Oferują one cały szereg  przydatnych funkcji, które w intuicyjny, zrozumiały i wydajny sposób pomagają tworzyć mapy myśli.

Elementy mind mapy

To w jaki sposób wygląda mapa myśli zależy przede wszystkim od specyfiki tematu, którego dotyczy, jego złożoności oraz oczywiście inwencji autora i narzędzi, za pomocą których została stworzona. Jednak w dużym uproszczeniu można powiedzieć, że mind mapa ma zazwyczaj strukturę drzewiastą lub sieć neuronową. Kluczową rolę pełnią przedstawione na niej relacje i zależności pomiędzy poszczególnymi elementami. Mogą one posiadać również elementy nadrzędne, podrzędne jak i bliźniacze na tym samym poziomie lub nie posiadać ich wcale. Mogą reprezentować, różnego rodzaju funkcje, cechy, stany itd.

Poniżej przykładowa, trywialna mind mapa, stworzona na potrzeby wyjazdu na wakacje. W tym przypadku pełni ona rolę checklisty rzeczy do zabrania na wakacyjny wyjazd:

mind-mapping-w-testowaniu.png

Jakie funkcje oferują narzędzia do Mind Mappingu?

W zależności od użytego programu, zestawy oferowanych narzędzi mogą się od siebie różnić. Ja skupię się na najciekawszych rozwiązaniach, które znalazłem w programie XMind 2020 (dawniej XMind: Zen), którego używam niemal na co dzień.

Podstawową, ale niezwykle pomocną funkcją jest tworzenie kolejnych elementów mapy za pomocą skrótów klawiszowych (TAB — element podrzędny, ENTER — element tego samego poziomu), dzięki czemu stworzenie nawet dużej sieci relacji i powiązań zajmuje dosłownie kilka sekund. Dla każdego elementu mapy dostępny jest pełen wachlarz opcji customizacji wliczając w to kolorystykę, kształt, tło, obramowanie, styl połączeń z innymi elementami, rodzaj struktury elementów podrzędnych, rodzaj i wielkość czcionek, możliwość dodawania opisów, podsumowań, ikon czy załączników (dokumentów, grafik czy plików audio). Oprócz customizacji poszczególnych elementów, mamy możliwość dostosowania stylu całej mapy pod kątem kolorystyki, sposobu rozmieszczenia elementów czy typu architektury.

Ponadto dostępny jest także tryb “Outliner”, w którym, za pomocą hierarchicznego edytora tekstu możemy edytować wszystkie wartości znajdujące się na naszej mapie. Ciekawym rozwiązaniem jest także możliwość zwijania (ukrywania) poszczególnych gałęzi mapy, które w danym momencie nie są nam potrzebne lub eksport tylko wybranej gałęzi zamiast całej mapy. Szczególną zaletą programu jest również świetna integracja ze schowkiem do, którego kopiujemy różne elementy. Przykładowo, jeśli mamy kilkanaście słów w osobnych liniach w notatniku, wystarczy skopiować je do schowka, a następnie wkleić do jednego z elementów mapy, aby utworzyć “pod nim” elementy podrzędne. Na podobnej zasadzie działa kopiowanie i wklejanie istniejących już podgałęzi.

Oczywiście program oferuje znacznie więcej narzędzi i funkcji, których nie sposób wymienić w tym artykule.

Kto i kiedy powinien stosować Mind Mapping?

Przykładów zastosowań map myśli może być setki, a nawet tysiące. Ograniczeniem jest tu tylko wyobraźnia. Niezależnie od tego czy jesteś testerem, developerem, designerem, Scrum Masterem, managerem, analitykiem czy kierownikiem wyższego szczebla, zbierasz znaczki, planujesz remont, wyjazd na wakacje lub budujesz wehikuł czasu — mapa myśli znajdzie zastosowanie również w Twoim przypadku.

Mind Mapping może nie tylko pomóc Ci w lepszym zrozumieniu tego, nad czym aktualnie pracujesz, ale także odkryć nowe pomysły lub inspiracje, dostrzec obszary, w których mogą wystąpić potencjalne problemy lub stworzyć świetną dokumentację projektu, a nawet wycenę dla klienta.

Przykłady zastosowań mind mapy w życiu testera

Przygotowanie scenariuszy i przypadków testowych. Wyobraźmy sobie sytuację, w której mamy do przetestowania sklep internetowy oraz przygotowanie dla klienta scenariuszy i przypadków testowych, ale nie otrzymaliśmy od niego żadnej dokumentacji.

Pierwszym krokiem jaki podejmujemy jest wstępne rozeznanie, podczas którego sprawdzamy z jakich głównych modułów/obszarów/funkcjonalności składa się serwis.

Następnie do głównego elementu mind mapy (nazwijmy go “Sklep”) dodajemy podgałęzie odpowiadające zaobserwowanym składowym serwisu, np. strona główna, wyszukiwarka, karta kategorii, karta produktu, koszyk, karta płatności, rejestracja, logowanie, profil użytkownika itd.

Następnie do poszczególnych obszarów dodajemy kolejne elementy podrzędne powiązane z danym obszarem, np. dla profilu użytkownika mogą to być: dane użytkownika, adresy dostaw, historia zamówień, kody rabatowe, ustawienia itd. Oczywiście nie ma potrzeby odzwierciedlania  co do joty całego serwisu na mind mapie — wystarczy kierować się zdrowym rozsądkiem. Gdy uznamy, że poziom dokładności naszej mapy jest wystarczający, przechodzimy do kolejnego kroku.

Tym razem do każdego niskopoziomowego elementu dodajemy proste pytania pomocnicze. Przykład:

Formularz rejestracji:

  • Czy walidowany jest poprawny format adresu email?
  • Czy wymagania dotyczące złożoności hasła są faktycznie walidowane?
  • Czy wymagane pola z gwiazdką są rzeczywiście wymagane?
  • Czy wyświetlają się komunikaty o błędach w formularzu? 
    Czy komunikaty o błędach są zrozumiałe dla użytkownika? 
  • Czy ustalony jest limit znaków dla pól formularzy?
  • Czy wymagane jest powtórzenie hasła?

Zadanie może wydawać się trywialne, ale metoda ta sprawdza się znakomicie! Wiem co mówię, ponieważ sam niejednokrotnie się o tym przekonałem. Podchodząc do tematu w ten sposób, pobudzasz i stymulujesz swoją kreatywność i wyobraźnię! Jedno pytanie rodzi następne i następne. Nim się obejrzysz, stworzysz dziesiątki a nawet setki pytań, które w łatwy sposób zamienisz w scenariusze i przypadki testowe.

Aby zobaczyć poniższe grafiki w dużym rozmiarze najlepiej kliknąć je prawym przyciskiem myszy i wybrać opcję „Otwórz grafikę w nowej karcie".

 

mind-mapa-testowanie-oprogramowania.png

Wycena i estymacja projektu pod kątem testów funkcjonalnych. Mind mapa z powyższego przykładu może pomóc Ci nie tylko przy tworzeniu nieszablonowych i pomysłowych scenariuszy i przypadków testowych, ale również w przygotowaniu estymacji i wyceny projektu. Ciężko bowiem byłoby oszacować ile czasu potrzebowałbyś na przetestowanie dużego serwisu patrząc na niego jak na jedną wielką całość.

Dzięki przygotowanej wcześniej mind mapie, na której rozłożyłeś serwis na mniejsze części, jesteś w stanie w łatwy sposób oszacować ile czasu będziesz potrzebował na przetestowanie poszczególnych modułów. Na koniec wystarczy zsumować oszacowany czas i, voilà, estymacja gotowa. Ponadto, w razie potrzeby masz możliwość wyestymowania i wycenienia tylko wybranych części serwisu

Wykonywanie testów na podstawie mind mapy. Kolejnym przykładem może być wykonywanie testów na podstawie kolekcji przypadków testowych, stworzonej w mind mapie.

Wyobraźmy sobie sytuację, w której mamy do przetestowania procesy rezerwacyjne w aplikacji do wynajmowania jachtów. Kroki do przejścia całego procesu rezerwacyjnego są bardzo podobne więc nie mamy potrzeby opisywania ich w każdym przypadku testowym. Jednak pewne parametry i czynniki dotyczące wynajmu mają bezpośredni wpływ na finalny koszt wynajęcia jachtu.

Kluczowe są tutaj:

  • typ subskrypcji (dla przykładu trzy rodzaje kont użytkowników),
  • rodzaj jachtu (wielkość, udogodnienia),
  • lokalizacja jachtu (różne stawki podatkowe oraz różne waluty),
  • sezon (wysoki, średni lub niski), okres wypożyczenia (cztery zakresy stawek cenowych),
  • godzina odebrania i zwrócenia jachtu,
  • metoda płatności
  • itd.

Mając tak wiele czynników, które trzeba wziąć pod uwagę podczas testów, nie jesteśmy w stanie przeprowadzić ich metodą eksploracyjną. To znaczy: możemy próbować, ale czy będą to solidne testy z dużym odsetkiem pokrycia? Raczej nie.

Dlatego potrzebna jest nam pewna grupa reprezentatywna (nie jesteśmy w stanie przetestować ponad trzystu jachtów), którą rozpiszemy sobie na mind mapie z uwzględnieniem wszystkich wspomnianych wyżej czynników. Podczas dobierania dat, musimy pamiętać również m.in o wartościach brzegowych pomiędzy sezonami. Trzeba przyznać, że zadanie nie jest proste i wymaga sporo koncentracji i cierpliwości, ale raz stworzona w ten sposób mapa, zaoszczędzi nam dziesiątek godzin podczas testów regresji. Wiem, co mówię! Poniżej przykładowa mind mapa zawierająca 396 przypadków testowych. Podczas wykonywania testów wystarczyło dodać przy każdym test case’ie odpowiednią etykietkę “Passed” lub “Failed”.

Aby zobaczyć poniższą grafikę w dużym rozmiarze najlepiej kliknąć ją prawym przyciskiem myszy i wybrać opcję „Otwórz grafikę w nowej karcie".

Flow aplikacji. Innym przykładem wykorzystania mind mapy jest przedstawienie przepływów (ang. flow) lub, jak kto woli, przejść między poszczególnymi stanami aplikacji. Dzięki takiemu zastosowaniu mamy pełny obraz wszystkich ścieżek, którymi może poruszać się użytkownik. Posiadając taką wiedzę możemy z większym pokryciem przeprowadzić testy jak również lepiej zrozumieć testowaną aplikację. Poniżej prosta mind mapa pokazująca proces rejestracji:

mind-mapy-testowanie.png

Podsumowanie

Być może przedstawione przeze mnie w tym artykule argumenty, przemawiające za tym by wykorzystywać Mind Mapping w codziennej pracy, nauki lub stymulowania swojej kreatywności nie przekonają części z Was. Jednak gorąco zachęcam, abyście dali szansę tej metodzie — mi osobiście bardzo pomogła w pracy testera oprogramowania.

Na zakończenie dodam jeszcze jeden argument. Nawet jeśli mimo wszystko, z jakiegoś powodu nie sprawdzi się u Ciebie, drogi czytelniku, to zastanów się, czy przedstawienie choćby podsumowania Twojej pracy (np. testów eksploracyjnych) w przejrzystej, zrozumiałej, jasnej i klarownej, ale przede wszystkim ciekawej formie — nie byłoby dla Twojego klienta sporą wartością dodaną i miłym gestem, który wywarłby na nim dobre wrażenie?

Bardzo mi miło, jeśli dotarłeś do tego miejsca i zaciekawił Cię Mind Mapping. Oczywiście ten artykuł nie wyczerpuje tematu mapowania myśli. Jest raczej przedsmakiem i zajawką przygody, jaką możesz przeżyć korzystając z tego narzędzia w codziennym życiu. Zachęcam do zgłębienia tematu i przestudiowania dostępnej w sieci fachowej literatury. W szczególności publikacji twórców Mind Mappingu — Tonnego i Barrego Buzan’a.