Tester eXperience (TX)

Tester eXperience (TX)
TX to budowanie przyjaznego środowiska, w którym tester oprogramowania zdobywa doświadczenie związane z testowanym oprogramowaniem. Jest to przestrzeń zbliżona do tego, w jakich warunkach aplikacja jest „doświadczana” przez użytkowników (UX) i deweloperów (DX).

Testowanie jest ciągle istotną czynnością w cyklu rozwoju oprogramowania. Jest to akt uruchomienia oprogramowania w celu sprawdzenia, czy zachowuje się ono zgodnie z przeznaczeniem i zidentyfikowania możliwych usterek. Badania wykazują, że testowanie stanowi ponad 50% kosztów rozwoju produktu. Poza tym wiele wysiłku i nacisku położono obecnie na zadania związane z automatyzacją w celu obniżenia kosztów i udziału czynnika ludzkiego w działaniach testowania oprogramowania.

Testowanie jest jednak nadal czynnością w dużej mierze opartą na umiejętnościach człowieka. Dlatego też efektywne sposoby testowania produktów oprogramowania w celu zapewnienia jakości będą wymagały lepszego i bardziej wszechstronnego zrozumienia odczuć, percepcji i motywacji testerów określanych czasami jako doświadczenie testera (ang. Tester eXeprience - TX). Zatem im lepsze doświadczenie testera w trakcie procesu testowania oprogramowania, tym lepszy wynik. TX można zdefiniować jako sposób uchwycenia tego, jak testerzy myślą i czują w związku ze swoimi działaniami w środowisku testowania oprogramowania, przy założeniu, że poprawa doświadczenia testera ma pozytywny wpływ na kontrolę jakości. 

Oczywiście postulat istnienia specyficznego TX wynika wprost z ewolucji doświadczenia użytkownika (UX), a skoro zapuszczamy się już w takie rejony, to musimy do równania dołączyć również doświadczenia programisty (DX).

User Experience (UX) – bada wszystkie aspekty interakcji osoby z danym systemem IT; często koncentruje się na interfejsie użytkownika i powiązanych koncepcjach; projektowanie wizualne, projektowanie interakcji itd.

Doświadczenie programisty (DX) – można postrzegać jako podzbiór UX (programiści to też użytkownicy) skupiający się na obniżeniu bariery dla programistów w integracji z danym systemem: dokumentacja, metadane, dostosowanie techniczne itd.

Doświadczenie testera (TX) – ma na celu zapewnienie testerom jak najlepszych wrażeń podczas testowania/debugowania systemu.

Nic dziwnego, że te trzy elementy w pewnym stopniu się pokrywają.

ux-tx-dx.pngMusimy doprecyzować jeszcze aspekt samych kompetencji testerskich. Oczywiście doświadczenia testowanego produktu to jedno, ale ważnym aspektem jest również głębsze od standardowego użytkownika zrozumienie działania systemu. Testerzy często potrzebują wglądu w system „zza kulis”, którego zewnętrzni użytkownicy nie potrzebują i często nie powinni mieć.

Testerzy są (miejmy nadzieję) częścią podstawowego procesu i zespołu programistycznego i mają pełny wgląd w to, co testują od pierwszego dnia. Testerzy muszą oceniać wymagania biznesowe i techniczne zarówno z perspektywy użytkownika końcowego, jak i z perspektywy testowalności; tzn. często nie tylko oceniają jakość UX i DX systemu, ale również są od nich zależni w swojej własnej pracy.

Jako testowalność rozumiemy łatwość testowania produktu i można odwołać to do cech oprogramowania jak: 

  • modułowość - dobrze zmodularyzowany system pozwala na testowanie każdego modułu osobno – z możliwym mockingiem/stubbingiem zewnętrznych zależności
  • transparentność - posiadanie wglądu w system i jego architektury jest kluczowe dla zrozumienia, jak działa i gdzie mogą leżeć potencjalne problemy
  • obserwowalność - uzyskiwanie ciągłych informacji o stanie systemu podczas testowania jest kluczowe dla możliwości oceny wyników i warunków występowania defektów
  • powtarzalność - możliwość niezawodnego odtworzenia zachowania zidentyfikowanego podczas testowania jest kluczowa dla raportowania i rozwiązywania problemów.

Istnieją też inne aspekty TX, które należy wziąć pod uwagę, na przykład:

  • włączenie testerów i QA w cały cykl życia produktu: wymagania, architektura/rozwój i operacje
  • umożliwienie testerom poświęcenia szczególnej uwagi wymaganiom
  • jasne zdefiniowanie głównej persony (grupę użytkowników docelowych) i oczekiwane wykorzystanie systemu – pozwalając testerom zrozumieć, dla kogo przeznaczona jest aplikacja i kwestionować, czy ten cel zostanie osiągnięty
  • pełny dostęp do kluczowych osób w zespole
  • istnienie dedykowanych środowisk testowych.

Zauważmy, że wszędzie tam, gdzie zastępujemy TX przez narzędzia automatyzacji lub analizy statycznej i dynamicznej obniżamy szanse na wykrycie w procesie problemów, które mogą pojawić się później w ramach UX.

Można założyć, że zbudowanie poprawnego środowiska dla TX to zwiększenie szans na lepsze testowanie oprogramowania, a co za tym idzie pozytywne oceny w ramach UX. 

To powinno Cię zainteresować