1. Strona główna
  2. Sylabus ISTQB – Poziom podstawowy (wersja 2011.1.3)
  3. 3. Statyczne techniki testowania
  4. 3.3 Analiza statyczna przy pomocy narzędzi

3.3 Analiza statyczna przy pomocy narzędzi

Celem analizy statycznej jest wyszukanie usterek w kodzie programu lub w modelach bez uruchamiania oprogramowania, które jest sprawdzane przez narzędzie używane w tym procesie. Miejscem, w którym kod jest wykonywany, są testy dynamiczne. Analiza statyczna może znaleźć usterki, które są trudne do znalezienia podczas testowania dynamicznego. Tak jak to było w przypadku przeglądów, analiza statyczna znajduje usterki, a nie awarie. Narzędzia do analizy statycznej analizują kod oprogramowania (np. przepływ sterowania lub przepływ danych) jak również wygenerowane wyjście w postaci HTMLa lub XMLa.

O wartości analizy statycznej stanowią następujące jej cechy:

  • wczesne wykrywanie usterek, jeszcze przed wykonaniem testów
  • wczesne wykrywanie podejrzanych aspektów kodu lub projektu przez wyliczenie miar, takich jak wysoki stopień złożoności
  • identyfikacja defektów trudnych do wykrycia przez testowanie
  • wykrywanie zależności i niespójności w modelach oprogramowania
  • zwiększenie pielęgnowalności kodu i projektu
  • zapobieganie defektom, jeżeli zastosowane zostają wnioski z analizy procesu rozwoju oprogramowania

Analiza statyczna zwykle wykrywa następujące typy usterek:

  • odwołanie do niezainicjalizowanej zmiennej
  • niespójne interfejsy pomiędzy modułami
  • niewykorzystywane lub niepoprawnie zadeklarowane zmienne
  • martwy kod
  • brakująca albo błędna logika (pętle potencjalnie nieskończone)
  • zbyt skomplikowane konstrukcje
  • naruszenie standardów kodowania
  • słabe punkty zabezpieczeń
  • naruszenie reguł składni kodu i modeli oprogramowania

Narzędzia do analizy statycznej używane są zwykle przez programistów (do sprawdzania zgodności ze zdefiniowanymi regułami lub standardami kodowania) przed lub w trakcie testów modułowych lub integracyjnych lub też podczas wkładania kodu do narzędzia do kontroli wersji (commit). Mogą one też być wykorzystywane przez projektantów podczas modelowania oprogramowania. Narzędzia do analizy statycznej mogą zaraportować dużą liczbę ostrzeżeń, którymi trzeba dobrze zarządzać, żeby uzyskać jak największą skuteczność użycia narzędzia.

Kompilatory wykonują pewne elementy analizy statycznej, w tym obliczanie miar dotyczących kodu źródłowego.