Strategia testowania

Strategia testowania
Podejście do testowania jest doszczegółowieniem polityki jakości oraz polityki testów w organizacji, jak również stanowi przygotowanie do późniejszego planowania na poziomie projektu

Strategia testów opisuje ogólną metodykę testowania w organizacji. Obejmuje sposób, w jaki testowanie jest wykorzystywane do zarządzania ryzykami produktowymi i projektowymi, podziału procesu testowania na poziomy testów oraz czynności wysokiego poziomu, związanych z testowaniem. Ta sama organizacja może posiadać różne strategie dla różnych sytuacji, takich jak różne cykle wytwarzania oprogramowania, różne poziomy ryzyka lub różne wymagania prawne.

Strategia testów oraz procesy i czynności w niej opisane, powinny być zgodne z polityką testów. Powinna ona przedstawiać ogólne kryteria wejścia i wyjścia testów dla organizacji lub dla programów (jednego bądź kilku). 

Możemy wyróżnić kilka typów strategii, które, w zależności od swoich atrybutów, w różny sposób poprowadzą testowanie:

  • Strategie analityczne, takie jak testowanie oparte na ryzyku, w których zespół testowy analizuje podstawę testów w celu zidentyfikowania warunków testowych, które mają zostać pokryte. Na przykład, w testowaniu opartym na wymaganiach, na etapie analizy testów, warunki testowe wyprowadzane są z wymagań, następnie testy są projektowane i implementowane, aby pokryć te warunki. W dalszej kolejności testy są wykonywane, często przy wykorzystaniu parametru priorytetu danego wymagania pokrytego każdym testem, w celu określenia kolejności wykonywania testów. Wyniki testów są raportowane w kategoriach statusu wymagań, np. wymaganie przetestowane, które przeszło testy pozytywnie, wymaganie przetestowane, które nie przeszło testów, wymaganie jeszcze nie w pełni przetestowane, testowanie wymagania zablokowane itd.
  • Strategie oparte na modelu, takie jak profilowanie operacyjne, w których zespół testowy opracowuje model (oparty na faktycznych lub przewidywanych sytuacjach) środowiska, w którym system istnieje, dane wejściowe i warunki, którym system podlega, a także opisuje, jak system powinien się zachować. Na przykład, w testowaniu wydajnościowym opartym na modelu szybko rozwijającej się aplikacji na urządzenia mobilne, można opracować modele przychodzącego i wychodzącego ruchu sieciowego, aktywnych i nieaktywnych użytkowników oraz wynikającego z tego obciążenia związanego z przetwarzaniem, w oparciu o aktualne użycie i rozwój projektu w miarę upływu czasu. Ponadto, modele można opracowywać biorąc pod uwagę aktualny sprzęt w środowisku produkcyjnym, oprogramowanie, pojemność danych, sieć i infrastrukturę. Modele można również opracowywać dla idealnych oczekiwanych i minimalnych przepustowości, czasów reakcji i alokacji zasobów.
  • Strategie metodyczne, takie jak oparte na cechach jakości, w których zespół testowy wykorzystuje z góry ustalony zestaw warunków testowych, takich jak norma jakości (np. ISO 25010) , lista kontrolna lub zbiór uogólnionych logicznych warunków testowych, które mogą odnosić się do konkretnej dziedziny, aplikacji lub rodzaju testowania (np. testowanie bezpieczeństwa) i wykorzystuje ten zestaw warunków  testowych w każdej kolejnej iteracji lub dla każdego kolejnego wydania. Na przykład w testowaniu pielęgnacyjnym prostej, stabilnej strony handlu elektronicznego, testerzy mogą wykorzystywać listę kontrolną, w której opisano główne funkcje, atrybuty i linki dla każdej strony. Testerzy obejmują testowaniem istotne elementy wspomnianej listy kontrolnej za każdym razem, gdy strona jest modyfikowana.
  • Strategie zgodne z procesem lub normą, takie jak dla systemów medycznych podlegających normom Amerykańskiej Agencji ds. Żywności i Leków. Zespół testowy przestrzega wtedy zestawu procesów zdefiniowanych przez komisję normatywną lub inny panel ekspertów, w którym procesy odnoszą się do dokumentacji, właściwej identyfikacji i wykorzystania podstawy testów i wyroczni testowych oraz organizacji zespołu testowego. Na przykład, w projektach prowadzonych metodyką zarządzania zwinnego Scrum, testerzy w każdej iteracji analizują historyjki użytkownika opisujące poszczególne funkcje, szacują pracochłonność testowania dla każdej funkcji jako część procesu planowania dla iteracji, identyfikują warunki testowe (zwane często kryteriami akceptacji) dla każdej historyjki użytkownika, wykonują testy, które obejmują te warunki i raportują status każdej historyjki użytkownika (nieprzetestowana, testy zaliczone lub niezaliczone) w czasie wykonania testów.
  • Strategie reaktywne, takie jak korzystanie z ataków na podstawie zidentyfikowanych defektów, w których zespół testowy czeka z zaprojektowaniem i wdrożeniem testów do momentu otrzymania oprogramowania, reagując na faktyczne zachowanie systemu poddawanego testowaniu. Na przykład, gdy stosuje się testowanie eksploracyjne aplikacji opartej na menu, można opracować zestaw kart opisów testów, odpowiadających funkcjom, wyborom z menu i ekranom. Każdemu testerowi zostaje przydzielony zestaw kart opisów testów, które później wykorzystuje on do zorganizowania swoich sesji testowania eksploracyjnego. Testerzy okresowo raportują wyniki sesji testowania Kierownikowi Testów, który może zrewidować karty opisu testów w oparciu o te wyniki.
  • Strategie konsultatywne, takie jak testowanie kierowane przez użytkownika, w których zespół testowy, przy identyfikowaniu warunków testowych do pokrycia, polega na danych wejściowych, dostarczonych przez jednego lub więcej kluczowych interesariuszy. Na przykład, w zleconym zewnętrznemu wykonawcy, testowaniu zgodności dla aplikacji internetowej, firma może podać zewnętrznemu dostawcy usług testowych, ułożoną według priorytetów listę wersji przeglądarki, oprogramowania chroniącego przed złośliwym kodem, systemów operacyjnych, rodzajów połączenia i innych opcji konfiguracyjnych, których oceny wymagają wobec swojej aplikacji. Dostawca usług testowych może wtedy do projektowania testów wykorzystać techniki, takie jak testowanie sposobem par (dla opcji o wysokim priorytecie) i klasy równoważności (dla opcji o niższym priorytecie).
  • Strategie testowe minimalizujące regresję, takie jak rozległa automatyzacja, w których zespół testowy wykorzystuje różne techniki do zarządzania ryzykiem regresji, automatyzacji testów, zwłaszcza automatyzacji funkcjonalnych i/lub niefunkcjonalnych testów regresji na jednym lub kilku poziomach. Na przykład, podczas testowania regresji aplikacji internetowej, testerzy mogą korzystać z narzędzia do automatyzacji testów w oparciu o interfejs użytkownika, w celu zautomatyzowania typowych i wyjątkowych przypadków użycia dla aplikacji. Testy te są następnie wykonywane za każdym razem, gdy aplikacja jest modyfikowana. Różne strategie testowe można łączyć ze sobą. Konkretne, wybrane strategie, powinny być odpowiednie do potrzeb i środków organizacji, a organizacje mogą dostosowywać strategie do siebie, aby pasowały do konkretnych operacji i projektów.

Strategia testów jako dokument może opisywać poziomy testów, które mają zostać wykonane. W takim przypadku w dokumencie tym, powinny być podane wskazówki dotyczące kryteriów wejścia i wyjścia dla każdego poziomu testów i związków między tymi poziomami (np. podział celów pokrycia testami). Strategia testów może również zawierać opis następujących kwestii:

  • procedury integracyjne,
  • techniki specyfikacji testów,
  • niezależność testowania, która może się zmieniać zależnie od poziomu,
  • normy obowiązkowe i opcjonalne,
  • środowiska testowe,
  • automatyzację testów,
  • narzędzia testowe,
  • możliwość wielokrotnego użycia produktów oprogramowania i produktów testowania,
  • testowanie potwierdzające (retesty) oraz testowanie regresji,
  • kontrolę testów i raportowanie,
  • pomiary testów i metryki,
  • zarządzanie defektami,
  • podejście do zarządzania konfiguracją testaliów,
  • role i obowiązki.

Konieczne może okazać się stosowanie różnych krótko- i długoterminowych strategii testowania. Różne strategie testowania są odpowiednie dla różnych organizacji i projektów. Na przykład, gdy chodzi o aplikacje krytyczne ze względów bezpieczeństwa, bardziej pracochłonna strategia może być bardziej odpowiednia niż w innych przypadkach. Ponadto, strategia testowania różni się również dla różnych modeli wytwarzania oprogramowania.
 
Publikacja bazuje na materiałach „ISTQB® Poziom Zaawansowany - Kierownik Testów”.
 
Zapraszamy na szkolenia dla liderów i kierowników testów, gdzie szeroko omawiany jest aspekt strategii.

Źródła:
http://edu.ittraining.pl/material/Sylabus-ISTQB-Poziomu-Zaawansowanego-Kierownik-Testow-PL

To powinno Cię zainteresować