Z pozostałych odpowiedzi jasno wynika, że 100% pokrycia kodu w testach nie oznacza 100% poprawności kodu, ani nawet że wszystkie błędy, które można znaleźć podczas testowania, zostaną znalezione (nie wspominając o błędach, których żaden test nie może wyłapać).
Innym sposobem odpowiedzi na to pytanie jest praktyka:
W prawdziwym świecie, a nawet na własnym komputerze, jest wiele programów, które są opracowywane przy użyciu zestawu testów, które zapewniają 100% pokrycia, a które nadal zawierają błędy, w tym błędy, które można by lepiej zidentyfikować.
W związku z tym powstaje pytanie:
Jaki jest sens narzędzi pokrycia kodu?
Narzędzia pokrycia kodu pomagają zidentyfikować obszary, których testowanie zostało zaniedbane. To może być w porządku (kod jest wyraźnie poprawny nawet bez testowania), może być niemożliwe do rozwiązania (z jakiegoś powodu nie można trafić na ścieżkę), lub może być lokalizacją wielkiego śmierdzącego błędu albo teraz, albo po przyszłych modyfikacjach.
Pod pewnymi względami sprawdzanie pisowni jest porównywalne: Coś może „przejść” sprawdzanie pisowni i zostać błędnie napisane w taki sposób, aby pasowało do słowa w słowniku. Lub może „zawieść”, ponieważ poprawnych słów nie ma w słowniku. Lub może przejść i być kompletnym nonsensem. Sprawdzanie pisowni to narzędzie, które pomaga zidentyfikować miejsca, które mogły zostać pominięte podczas korekty, ale podobnie jak nie może zagwarantować pełnego i prawidłowego odczytu, tak więc pokrycie kodu nie może zagwarantować pełnego i poprawnego testowania.
I oczywiście niewłaściwy sposób użycia sprawdzania pisowni jest znany z każdej sugestii, jaką sugeruje owca morska, więc sytuacja kaczki staje się gorsza niż wtedy, gdy zostawiamy pożyczkę.
Z pokryciem kodu może być kuszące, zwłaszcza jeśli masz prawie idealne 98%, wypełnianie skrzynek, tak aby pozostałe ścieżki zostały trafione.
Jest to odpowiednik wyrównywania za pomocą sprawdzania pisowni, że wszystkie słowa to pogoda lub węzeł to wszystkie odpowiednie słowa. Rezultatem jest bałaganiarski bałagan.
Jeśli jednak zastanowisz się, jakie testy naprawdę nieobjęte ścieżki naprawdę potrzebują, narzędzie do pokrywania kodu wykona swoje zadanie; nie obiecując ci poprawności, ale wskazując niektóre prace, które należało wykonać.