Podstawy procesu testowania

Podstawową i najkrótszą definicją testowania jest znajdowanie anomalii. Nie rozstrzygamy czym jest anomalia i kto ma stwierdzić czy konkretny przypadek nią jest czy też nie. Pozostawiamy dopasowanie tej definicji do Państwa środowiska i pojmowania testowania.

Podstawy
Definicję możemy rozszerzyć do większego obszaru, na przykład testowaniem jest znajdowanie defektów lub zapewnienie określonej jakości produktu (czy jest to oprogramowanie, czy też urządzenie, nie ma to teraz znaczenia). Testować możemy wszystko co, zostało wytworzone przez człowieka: od igły po odrzutowce, od oprogramowania po budynki. Co więcej, każdy z nas, czy tego chce czy nie jest częściowo testerem. Prosty przykład: wybierając drogę którą pójdziemy do szkoły/pracy/sklepu kierujemy się potrzebami, oraz jakością trasy. Najprawdopodobniej przetestowaliśmy różne opcje i wybieramy tą najkorzystniejszą dla nas.

Kiedy kończy się testowanie?
Choć wielu w to nie wierzy, testowanie produktu nie kończy się nigdy. Trwa od momentu powstania koncepcji po unicestwienie produktu i nigdy nie będzie pełną weryfikacją. Nie możemy powiedzieć, że jakość jest doskonała i nic nie da się już poprawić. Nieprawdą jest, że produkt nie ma żadnego defektu - możemy to zastąpić, że żaden defekt nie został jeszcze znaleziony. Może ocieramy się w tym momencie o Prawo Murphego, ale tak właśnie jest.

Planowanie testów
Jeśli podejmuję decyzję o testowaniu musimy podjąć także decyzję o celach testowania: Do czego dążymy/Co chcemy osiągnąć?
Odpowiedź na to pytanie powinno być zawarte w planach testów.

Inne tematy podjęte przez test plan to:
  • zasięg testowania i ryzyko,
  • założenia testowania: techniki testowania, narzędzia testowe, pokrycie testów, drużyna testowa etc.,
  • zasoby testowe: ludzie, środowisko etc.,
  • implementacja polityki i startegi testowej,
  • plan analizy testów i zajęć projektowych,
  • określenie kryterium zakończenia testów.

 

Kontrolowanie testów
Plan testów musi być sprawdzany w każdym momencie procesu testowania do tego służy proces kontroli. Na bieżąco musimy sprawdzać jak daleko "odchodzimy" od wstępnych założeń.

Podstawowe założenia to:
  • pomiar i analiza rezultatów,
  • monitorowania i dokumentowania postępu, pokrycie testów i kryteria zakończenia testów,
  • inicjowania właściwych reakcji w odpowiedzi na następujące zmiany,
  • podejmowanie decyzji.

 

Projektowanie i analiza testów
Planowanie i analiza testów jest czynnością, podczas której ogólne postanowienia testowe zostają przemienione w namacalne warunki testowe i projektowanie testów.

Analiza i projektowanie testów obejmuje następujące bardzo ważne zadania:
  • przegląd podstaw testów (takich jak wymagania, architektura, projekt, interfejsy)
  • identyfikacja warunków testowych lub wymagań testowych i wymaganych danych testowych bazujących na analizie artefaktów testowych, specyfikacji, zachowań i struktury
  • projektowanie testów
  • sprawdzenie testowalności wymagań systemu
  • projektowanie ustawień środowiska testowego i identyfikacja wymaganej infrastruktury i narzędzi

 

Wdrażanie i wykonywanie testów
Implementacja testów i ich wykonywanie jest czynnością gdzie warunki testów zostają przemienione w przypadki testowe i zbiór artefaktów testowych oraz konfigurację środowiska.

Implementacja testów i ich wykonywanie składa się z następujących zadań:
  • rozwijanie i priorytetyzacja przypadków testowych, tworzenie danych testowych, pisanie procedur testowych i opcjonalnie przygotowanie środowisk symulatorów testowych oraz pisanie skryptów testowych dla automatyzacji.
  • tworzenie zestawów testowych z przypadków testowych dla efektywnego wykonywania testów
  • wykonywanie przypadków testowych ręcznie lub przy użyciu narzędzi automatycznych, zgodnie z zaplanowaną sekwencją
  • zapamiętywanie wyników wykonywanych testów i zapisywanie wersji oprogramowania będącego testowanym i narzędzi testowych
  • porównywanie aktualnych wyników z oczekiwanymi wynikami
  • raportowanie różnic jako przypadków i ich analiza w celu ustalenia ich przyczyn (np. defekt w kodzie, złe dane testowe, błąd w dokumentacji lub złe wykonanie instrukcji testowej)
  • powtarzalnie czynności testowych jako rezultat wykrycia przypadków. Dla przykładu, ponowne wykonanie instrukcji testowej, która poprzednio zwróciła wynik negatywny, dla upewnienia się, że defekt już nie występuje; ponowne wykonie poprawionej instrukcji testowej by upewnić się, że defekt został przypadkowo wprowadzony w poprzednio niezmienianych obszarach lub czy defekt nie odkrył kolejnych defektów (testy regresji).

 

Sprawdzenie kryterium zakończenia testów
Sprawdzanie kryterium zakończenia testów jest czynnością testową względem zdefiniowanych celów. Musi zostać to zrobione na każdym poziomie testów.

Sprawdzanie kryterium składa się z następujących zadań:
  • sprawdzenie zapisów potestowych względem kryterium wyjścia określonego w planach testów
  • testowanie czy więcej testów jest potrzebne lub czy kryterium zakończenia powinno być zmienione
  • napisanie podsumowania testów w postaci raportu dla udziałowców

 

Zakończenie testów
Czynności kończące testy polegają na zbieraniu wszystkich danych ze wszystkich ukończonych czynności testowych dla konsolidacji doświadczenia, artefaktów testowych, faktów i liczb. Dla przykładu, kiedy oprogramowanie zostaje wypuszczone na rynek projekt zostaje zakończony (lub wstrzymany), kamienie milowe projektu zostały osiągnięte lub wersja oprogramowania z uwzględnieniem komentarzy i awarii zgłoszonych przez użytkowników zostało opublikowana.

Na czynności zamykająca aktywności testowe składają się:
  • sprawdzenie, które z zaplanowanych dostaw rzeczywiście zostały zrealizowane, sprawdzenie raportów zamknięcia przypadków testowych,
  • sprawdzenie raportów zgłoszenia zmian dla tych, które pozostały otwarte,
  • sprawdzenie dokumentacji akceptacyjnych systemu,
  • zakończenie i zarchiwizowanie wszystkich artefaktów testowych dla późniejszego, ponownego ich użycia,
  • przejęcie artefaktów testowych przez organizację zajmującą się utrzymaniem produktu,
  • analiza tego czego nauczyliśmy się podczas projektu aby wiedza ta posłużyła nam dla przyszłych projektów i dla poprawy dojrzałości organizacji testowej.

 

Artykuł inspirowany sylabusem ISTQB Poziomu Podstawowego >>

 

Najbliższe terminy szkoleń

 

17-18 listopada - Warszawa weekend!

ISTQB Poziom Podstawowy (Foundation Level)


19-21 listopada - Katowice

ISTQB Poziom Zaawansowany - Techniczny Analityk Testów


19-21 listopada - Warszawa

ISTQB Advanced Level – Test Automation Engineer


22-23 listopada - Kraków

Dobry Tester - Laboratorium

 

Partnerzy

Narzędzia testerskie