1. Strona główna
  2. Sylabus dla poziomu zaawansowanego – Techniczny analityk testowy (wersja z 19.10.2012)
  3. 3. Techniki analityczne
  4. 3.2 Analiza statyczna
  5. 3.2.1 Analiza przepływu sterowania

3.2.1 Analiza przepływu sterowania

Analiza przepływu sterowania to technika statyczna, w której przepływ sterowania w programie jest analizowany przy użyciu diagramu przepływu sterowania lub odpowiedniego narzędzia. Istnieją różne rodzaje anomalii, które można wykryć w systemie za pomocą tej techniki. To m.in. źle zaprojektowane pętle (np. pętle z wieloma punktami wejścia), niejednoznaczne obiekty docelowe wywołań funkcji w pewnych językach (np. Scheme) oraz niepoprawna kolejność wykonywanych operacji.

Jednym z najczęstszych powodów stosowania analizy przepływu sterowania jest określenie złożoności cyklomatycznej. Złożoność cyklomatyczna to dodatnia liczba całkowita określająca liczbę niezależnych ścieżek w silnie spójnym grafie, przy czym pętle i iteracje traktowane są jako pojedyncze przejście. Każda niezależna ścieżka, od punktu wejścia do punktu wyjścia, reprezentuje unikalną ścieżkę w module. Każda z takich ścieżek powinna zostać przetestowana.

Wartość złożoności cyklomatycznej jest na ogół wykorzystywana do określenia ogólnej złożoności modułu. Według teorii przedstawionej przez Thomasa McCabe’a [McCabe 76], im bardziej złożony jest system, tym więcej zawiera defektów i tym trudniejsza jest jego pielęgnacja. W wielu pracach opublikowanych w kolejnych latach zauważono tego typu korelację między złożonością i liczbą defektów. Według rekomendacji National Institute of Standards and Technology (NIST), najwyższa dopuszczalna wartość złożoności wynosi 10. Moduł, który odznacza się większym stopniem złożoności, prawdopodobnie powinien zostać podzielony na wiele modułów.