Techniki testowania 2.0

Techniki testowania 2.0
Obecna klasyfikacja technik testowania jest tak niezrozumiała, że wymaga kompletnego przebudowania. Oto propozycja zmian.

Obecny podział kategorii technik wydaje się być niespójny. 
Pierwszym problemem,z wielu innych, jest sztuczny podział na techniki statyczne i dynamiczne oraz to, że w wielu miejsach się przenikają.

Podział technik w materiałach Adama Romana:

techniki-testowania-oprogramowania

Póżniej jest już tylko gorzej. Stosowanie podziału technik dynamicznych bazujących na strukturze, specyfikacji i doświadczeniu jest nieintuicyjne i ciężkie do wyjaśnienia początkującym testerom. Przykładowo, techniki bazujące na strukturze dotyczą kodu źródłowego. Czy to oznacza, że kodu nie da się testować bazując na doświadczeniu lub weryfikując specyfikację kodową?

Podział technik testowania wg standardu ISO/IEC/IEEE 29119-4:

techniki-testowania-oprogramowania

Stąd też moja propozycja podziału technik w strukturze, gdzie głównym obiektem spinającym będzie aplikacja, składająca się z dokumentacji, kodu, danych aplikacji oraz zestawu ogólnych funkcji i logiki oprogramowania, dostępnych w interfejsie. W wersji zaawansowanej, dla bardziej złożonych aplikacji, można zastanowić się jeszcze nad rozszerzeniem klasyfikacji o elementy architektury. Nowa struktura technik dla aplikacji / API, prezentuje następujące techniki:

  1. Testujące dokumentację
  • nieformalne przejrzenia,
  • przejście,
  • przegląd techniczny,
  • inspekcja.
  1. Testujące dane
  • klasy równoważności,
  • wartości brzegowe,
  • metody kombinatoryczne,
  • drzewa klasyfikacji
  • tablice ortogonalne
  1. Testujące funkcje
  • pokrycie specyfikacji
    • pokrycie wymagań,
    • pokrycie przypadków użycia,
    • pokrycie historii użytkownika,
  • przejścia między stanami
  • tablice decyzyjne
  • grafy przyczynowo - skutkowe
  • testowanie losowe
  • atak usterek
  1. Testujące kod
  • przepływ danych,
  • testowanie warunków,
  • pokrycie instrukcji,
  • testowanie ścieżek,
  • testowanie mutacyjne,
  • przepływ sterowania,
  • grafy wywołań.

Dodatkowo, w tej strukturze techniki znajdujące się na górze mogą być stosowane do tych, które są poniżej. Przykładowo, technika "przegląd techniczny" może być stosowana do funkcji aplikacji, jak i do kodu źródłowego, a techniki testowania danych nadają się do stosowania w testach funkcji.

Wizualizacja technik:

techniki-testowania-oprogramowania

Jestem ciekaw opinii, czy taki podział technik jest czytelniejszy i łatwiejszy w zrozumieniu?

To powinno Cię zainteresować