Studenci sztuki testowania, czyli jak uczyć testowania przez kontekst

Studenci sztuki testowania, czyli jak uczyć testowania przez kontekst
"Edukacja studentów na uczelniach daje olbrzymią satysfakcję zawsze, gdy ci teoretycznie niedoświadczeni testerzy pokazują umiejętności i wiedzę zarezerwowaną dla ich doświadczonych kolegów" - Radek Smilgin podsumowuje wrażenia po zajęciach ze studentami testowania oprogramowania.
 

Podczas studiów często mamy do czynienia z osobami nie mającymi żadnego praktycznego doświadczenia w testowaniu i których dopiero mamy wszystkiego nauczyć. Osobiście na swoich zajęciach próbuję pokazać im szeroką perspektywę testowania, nieograniczoną tylko wykonaniem testów. Wspólnie próbujemy zrozumieć współczesny świat IT, modele wytwórcze i wpasowanie do tego testowania. Można pokazać teoretyczny model wytwarzania oprogramowania, ale można również pokazać jego zastosowanie.

 

 

 

Dla mnie ważną umiejętnością każdego testera jest zrozumienie kontekstu, w jakim pracuje. Przedstawiając procesy testowania zawsze podkreślam, że są one bardzo podobne, a główne różnice są w szczegółach, takich jak techniki czy kolejność wykonania operacji. Często takie same działania po prostu nazywają się inaczej, a podobne produkty mają zupełnie niepodobne nazwy. Procesy są jednak niczym bez wpasowania ich w modele wytwarzania oprogramowania. Na moich zajęciach każdy student musi zrozumieć, że dobre testowanie jest nierozerwalnie związane z dopasowaniem do modelu wytwórczego. Jednym z kluczowych i bardzo trudnych zadań jest zastosowanie teorii procesów testowych w realnym modelu. Moje podejście do edukacji w tym obszarze ewoluowało przez dotychczasowe zajęcia i wydaje mi się, że osiągnęło finalną formę podczas ostatnich zajęć na Uniwersytecie Jagiellońskim. Po krótkim wprowadzeniu teoretycznym poprosiłem studentów o dopasowanie testowania do wybranego modelu wytwórczego. Większość wybrała DevOps.

 

 

Wizualizacja DevOps z Wikipedii

 

Co ważne nie opowiadam czym jest DevOps, nie mówię o teorii modelu wytwarzania, bo specyfika danej organizacji i projektu w większości przypadków modyfikuje model wytwórczy do potrzeb konkretnego produktu. Nie ma więc sensu opowiadać o teorii, a jedynie skoncentrować się na odnalezieniu w tej prostej wizualizacji modelu czynności testowania. Nie odbieram studentom prawa do posługiwania się Internetem i poszukiwania źródeł. Jeśli nie wiedzą, czym są poszczególne działania i zadają pytania, co dzieje się w konkretnych fazach, chętnie udzielam odpowiedzi. Nie oczekuję, że proces testowy, jaki wysnują z modelu będzie doskonale poprawny. Bazują na szczątkowych informacjach i mają prawo popełniać błędy. Kolejna iteracja analizy modelu da im więcej informacji i dokładniejszy (zgodny z teorią) proces. Poniżej prezentuję wynik około 30-minutowej, samodzielnej pracy, której celem było wpisanie w DevOps testowania. Na model zostały naniesione czynności i produkty testowania.


PLAN

Czynności:

  • testowanie wymagań
  • wstępne przygotowanie przypadków testowych
  • tworzenie/konsultacja wymagań do testów

Produkt:

  • zgłoszenia poprawek do wymagań
  • wymagania do testów
  • Definition of done


CREATE

Czynności:

  • przygotowanie przypadków, środowisk oraz danych testowych
  • unit testy
  • automatyczne testy regresyjne

Produkt:

  • plan testów
  • procedury testowe
  • przypadki i dane testowe


VERIFY (na środowisku testowym)

Czynności:

  • wykonanie testów w oparciu o przygotowane przypadki
  • testy akceptacyjne
  • testy regresyjne (automatyczne/manualne)

Produkt:

  • zgłoszenia bugów
  • raport z testów


PACKAGE (pre-prod)

Czynności:

  • testy regresyjne automatyczne

Produkt:

  • raport


RELEASE (produkcja; możliwy rollback do poprzedniej wersji)

Czynności:

  • testy poinstalacyjne


MONITOR (produkcja; możliwy rollback do poprzedniej wersji)

Czynności:

  • testy hot fixów
  • pen testy
  • testy wydajnościowe

Produkt:

  • raport


Wejście w kolejny etap planowania powinno być poprzedzone retrospekcją poprzednich działań i wyciągnięciem z nich wniosków co do usprawnień i praktyk, które chcemy  wdrożyć przed kolejną iteracją/sprintem.

 

Z olbrzymią satysfakcją czytam wynik tej pracy, ponieważ mam wewnętrzne przekonanie, że udało mi się tych studentów czegoś nauczyć, a może po prostu odkryć potencjał, który posiadali. W wynikach widać duże zrozumienie dla procesu testowego oraz umiejętne przeniesienie go na SDLC. Edukacja studencka w tym wypadku jest jak zapisywanie białej karty. Ludzie z praktycznie zerowym doświadczeniem wykonują zadania, które my - doświadczeni testerzy - wykonujemy (lub powinniśmy wykonywać) przy każdym kolejnym projekcie. Mam przekonanie, że tak nabyte umiejętności pozostaną na długo w ich głowach i przełożą się na lepsze świadczenie usługi testowania w projektach.



Radek Smilgin

 

 

 

To powinno Cię zainteresować