Home > Software > 110% pokrycia kodu

110% pokrycia kodu

February 23rd, 2009

Cóż, zdarzają się ludzie, którzy wierzą, że pokrycie testami 100% kodu wystarczy,
aby stwierdzić, że w projekcie są prawidłowe testy.

Osiągnięcie takiego wyniku przy niebanalnym projekcie jest sprawą niełatwą
i czapki z głów przed tymi, którzy to osiągną, ale jednak pokrycie testami kodu mierzy
nic innego niż, cóż, pokrycie testami kodu…

Jeśli ktoś uważa, że pokrycie testami 100% kodu to wszystko co jest potrzebne,
to jest w sporym błędzie. To, że masz pewność, że wykonana została każda linijka
kodu, nie oznacza w ogóle, że kod spełnia wymagania i że zadziała w każdej
z przewidzianych w projekcie sytuacji. Pomijając już kwestie testowania rozmaitych
zakresów parametrów wejściowych lub interakcji z innymi częściami systemu,
może też zdarzyć się, że testami pokryty jest też kod, który w ogóle nie jest potrzebny.

Przytrafiło mi się, że przeglądałem pewien kawałek kodu i po jakimś czasie doszedłem
do wniosku, że część z tego kodu nie jest potrzebna, po prostu tego kodu nie powinno
w ogóle być. Nie robił niczego złego w tym sensie, że projektowana funkcjonalność
była realizowana, a od strony pokrycia kodu wszystko było w porządku, kod wykonywał
się. Szkopuł jednak w tym, że sporo linijek mogłem spokojnie usunąć i funkcjonalność
była nadal zachowana. Miałem więc zmierzone pokrycie kodu, który nie powinien
istnieć. Po pewnym czasie wyszło też, że kod ten wykonywał 4 niepotrzebne SELECT-y,
więc de facto był bugiem. A bugi się ubija :-) .

Wynikają z tego przynajmniej dwie kwestie

  • mierzenie pokrycia kodu to jeszcze nie wszystko co można zrobić
  • przeglądy kodu to bardzo dobra rzecz

@fourthrealm

Share
Categories: Software Tags:
Comments are closed.