Perspektywa
W dzisiejszej inżynierii programowania, jak nigdy wcześniej, testy zaczęły odgrywać kluczową rolę. Stabilność i funkcjonalność oprogramowania stoi teraz w centrum procesu produkcji oprogramowania. Metodyki, jak np. TDD (Test Driven Development) czy BDD (Behaviour Driven Development) pokazują wyraźnie kierunek dalszego rozwoju inżynierii programowania.
Testy można podzielić na wiele różnych typów, w zależności od ich przeznaczenia, sposobu budowy aplikacji, czasu wykonywania testu czy sposobu wykonywania. W związku z powyższym można sobie wyobrazić test, który z jednej strony będzie testem funkcjonalnym, z drugiej strony częścią testu akceptacyjnego, a dla części producentów oprogramowania będzie też elementem testu regresji.
Nazewnictwo testów determinuje ich konstrukcję i logikę. Test powinien być nade wszystko narzędziem pozwalającym na stworzenie, utrzymanie i wykorzystanie coraz lepszego jakościowo systemu.
Ujęcia
Testy w ujęciu ze względu na czas wytworzenia testowanych fragmentów aplikacji:
- Testy manualne w odniesieniu do nowo wytworzonej części systemu - obejmujące zarówno testy funkcjonalne,
jak i niefunkcjonalne, integracyjne itd. w obszarze aktualnego sprintu/ewolucji/prototypu/iteracji
- Automatyczne testy regresji w odniesieniu do części systemu wytworzonych w poprzednich sprintach/ewolucjach/prototypach/iteracjach przetestowane w sposób manualny w poprzednich cyklach.
Wykonujemy testy:
- Funkcjonalne testy blackbox z poziomu interfejsu użytkownika (WWW)
- Strukturalne testy white-box
- Testy integracyjne
- Testy wydajnościowe.
Procedura testowania
Cykliczna procedura testowania wygląda najczęściej w następujący sposób:
- Tworzenie scenariuszy testowych
- Dostarczenie usługi Continuous Testing realizowanej za pomocą testów automatycznych
- Powtórny proces testów automatycznych (testy regresji) po zakończeniu danego fragmentu produkcji oprogramowania
- Testy manualne w oparciu o zdefiniowanie wcześniej scenariusze testowe
- Wyznaczenie scenariuszy testowych do automatyzacji
- Implementacja scenariuszy testowych jako elementu automatycznych testów regresji w kolejnym przebiegu testów.