Badanie pokrycia kodu (Code Coverage)

Pokrycie kodu jest najzwyklejszą miarą statystyczną – pokazuje ona jaka część kodu została wykonana podczas uruchomienia testów/aplikacji. Czyli uruchamiasz testy/aplikację a narzędzie do badania pokrycia kodu sprawdza, które linie kodu zostały wykonane, a które nie. Jest to przydatna miara, jeśli chcemy na przykład wiedzieć jaka część kodu została pokryta testami.

Miary

Zwykłe pokrycie kodu wydaje się być zbyt prymitywnym podejściem, stąd powstały różne miary, dzięki którym dostajemy lepszy wgląd w nasz kod.

Pokrycie instrukcji

Jest to miara pokazują, które instrukcje zostały uruchomione. Przez instrukcję rozumie się każdą linię kodu która reprezentuje jakąś akcję (pomijane są na przykład linie zawierające same nawiasy klamrowe).

\text{Pokrycie instrukcji} = \frac{\text{liczba uruchomionych instrukcji}}{\text{liczba wszystkich instrukcji}} * 100\%

Pokrycie rozgałęzień

Jest to miara pokazująca procent pokrycia rozgałęzień. Przez rozgałęzienia rozumie się takie miejsca jak instrukcje warunkowe (if-else) czy też instrukcje switch. Chodzi o to, żeby zbadać czy wszystkie możliwości wykonania kodu zostały uruchomione.

\text{Pokrycie rozgałęzień} = \frac{\text{liczba uruchomionych rozgałęzień}}{\text{liczba wszystkich możliwych rozgałęzień}} * 100\%

Pokrycie funkcji, metod, klas…

Jest to miara określająca procent pokrycia funkcji, metod, klas. Jest to po prostu sprawdzenie procentu uruchomionych odpowiednio funkcji, metod czy klas w stosunku do wszystkich istniejących.

\text{Pokrycie funkcji, metod, klas} = \frac{\text{liczba uruchomionych}}{\text{liczba wszystkich możliwych}} * 100\%

Narzędzia

Na rynku istnieje wiele dostępnych rozwiązań. Przykładowe to:

  1. Pokrycie kodu JavaScript – Istanbul – https://istanbul.js.org/
  2. Pokrycie kodu Java – narzędzia osadzone w IDE

Warto zajrzeć

  1. https://www.baeldung.com/cs/code-coverage