Testowanie statyczne i dynamiczne w ISTQB

Testowanie statyczne i dynamiczne w ISTQB
Podczas naszych szkoleń z zakresu ISTQB Poziomu Podstawowego zauważyliśmy, że uczestnicy nie mogą do końca znaleźć czytelnego rozróżnienia między testami statycznymi i dynamicznymi. Bierze się to przede wszystkim z nieprecyzyjnych definicji, niespójnych źródeł i wielu interpretacji dla tych dwóch typów testów.


Słownik wyrażeń związanych z testowaniem podaje następującą definicję testowania statycznego:

testowanie modułu lub systemu na poziomie specyfikacji lub implementacji bez wykonywania tego oprogramowania, np. przeglądy lub analiza statyczna kodu.

Czyli głównym założeniem jest testowanie bez uruchomienia aplikacji. Podstawowe techniki testów statycznych to techniki przeglądowe oraz analiza statyczna. Z kolei definicja testowania dynamicznego brzmi:

testowanie, podczas którego wykonywany jest kod modułu lub systemu.

Podkreśla to również sylabus poziomu podstawowego, w którym znajdziemy następujące sformułowanie:

W przeciwieństwie do technik dynamicznych, które wymagają uruchomienia oprogramowania, techniki statyczne polegają na sprawdzeniu ręcznym (przeglądy) lub analizie automatycznej (analiza statyczna) kodu lub innych dokumentów projektowych bez uruchamiania kodu.


Wiele źródeł powołując się na ISTQB podaje, że testowanie dynamiczne dzieli się na testowanie funkcjonalne i niefunkcjonalne. Jest to nieporozumienie dlatego, że nie uwględnia się, że w ramach charakterystyk niefunkcjonalnych pojawia się np. użyteczność z tzw. oceną heurystyczną, definiowaną jako "technika statycznego testowania użyteczności mającą na celu określenie zgodności interfejsu użytkownika z uznanymi zasadami użyteczności (tzw. "heurystykami")". Nie można również zapomnieć o pielęgnowalności, czyli "[łatwości], z którą oprogramowanie może być modyfikowane w celu naprawy defektów, dostosowania do nowych wymagań, modyfikowane w celu ułatwienia przyszłego utrzymania lub dostosowania do zmian zachodzących w jego środowisku". Norma ISO 9126 zakłada, że jedną z miar pielęgnowalności jest zliczenie ilości komentarzy na ilość linii kodu. W związku z tym jest to miara statyczna, a nie dynamiczna. W sylabusie poziomu podstawowego znajdziemy również następujące sformułowanie:

Do typowych usterek, które łatwiej wykryć w testach statycznych niż dynamicznych należą: [...] niedostateczna pielęgnowalność [...].

 

Podstawowe cechy testowania statycznego i dynamicznego.

TESTOWANIE STATYCZNE TESTOWANIE DYNAMICZNE
nie wymaga uruchomienia oprogramowania wymaga uruchomienia oprogramowania
wspiera przede wszystkim weryfikację wspiera przede wszystkim walidację
raczej wyszukuje defekty raczej wyszukuje awarie
wymaga list kontrolnych i procesów wymaga przypadków testowych
wykonywane przed kompilacją wykonywane po kompilacji
koszt znajdywania i naprawy defektów jest niższy koszt znajdywania i naprawy defektów jest wyższy




Definicje słownikowe za http://edu.ittraining.pl/material/Slownik-terminow-testowych-ISTQB

To powinno Cię zainteresować