Co powinniśmy zapamiętać
Techniki projektowania testów
Wyróżnia się trzy główne podejścia: techniki czarnej skrzynki, techniki białoskrzynkowe oraz techniki oparte na doświadczeniu.
Czarna skrzynka: testowanie bez znajomości kodu, oparte na specyfikacji i zachowaniach systemu. Stosuje się klasy równoważności, wartości graniczne i tablice decyzyjne. Kluczowe są przypadki testowe oraz macierze pokrycia.
Biała skrzynka: testowanie oparte na analizie kodu – obejmuje pokrycie instrukcji, gałęzi, ścieżek i analizę statyczną. Umożliwia kontrolę poprawności wewnętrznej logiki aplikacji.
Techniki oparte na doświadczeniu:
Testowanie eksploracyjne – dynamiczne, intuicyjne, bez sztywnego planu.
Testowanie eksperckie – oparte na wiedzy domenowej i praktyce.
Testowanie heurystyczne – wykorzystujące ogólne zasady i wzorce błędów.
Automatyzacja testów
Cel automatyzacji: zwiększenie efektywności, powtarzalności i szybkości testów (zwłaszcza regresyjnych, API i wydajnościowych).
Korzyści: skrócenie czasu testowania, poprawa dokładności, eliminacja błędów ludzkich, lepsze pokrycie kodu.
Wyzwania: koszty wdrożenia, potrzeba aktualizacji skryptów, zarządzanie środowiskiem testowym.
Narzędzia i frameworki:
Różnice między rozwiązaniami open-source (np. Selenium, JMeter) a komercyjnymi (np. TestComplete).
Dobór zależy od technologii, języka programowania i integracji z CI/CD.
Przygotowanie środowiska testowego: powinno być zbliżone do produkcyjnego, odizolowane, zawierać realistyczne dane testowe i być zintegrowane z narzędziami CI (np. Jenkins, Git, JIRA).