NIE są one absolutną dokumentacją referencyjną
Pamiętaj, że wiele z poniższych uwag dotyczy również komentarzy, ponieważ mogą one zsynchronizować się z kodem, na przykład testy (choć jest to mniej egzekwowalne).
Ostatecznie najlepszym sposobem na zrozumienie kodu jest posiadanie czytelnego działającego kodu .
Jeśli w ogóle możliwe i nie pisanie na stałe sekcji kodu niskiego poziomu lub szczególnie trudne warunki byłyby konieczne, dodatkowa dokumentacja będzie miała kluczowe znaczenie.
- Testy mogą być niekompletne:
- Interfejs API zmienił się i nie był testowany,
- Osoba, która napisała kod, najpierw napisała testy najłatwiejszych metod testowania zamiast najważniejszych metod testowania, a następnie nie miała czasu na zakończenie.
- Testy mogą być przestarzałe.
- Testy mogą być zwierane w nieoczywisty sposób i faktycznie nie być wykonywane.
ALE WCIĄŻ SĄ POMOCNYM Uzupełnieniem dokumentacji
Jednakże, gdy masz wątpliwości co do tego, co robi konkretna klasa, zwłaszcza jeśli są dość długie, niejasne i brakuje komentarzy (znasz tego rodzaju ...), szybko próbuję znaleźć klasy testowe i sprawdzam:
- co tak naprawdę próbują sprawdzić (daje podpowiedź na temat najważniejszych ciekawostek, z wyjątkiem sytuacji, gdy programista popełnił błąd, o którym mowa powyżej, polegający tylko na wdrożeniu „łatwych” testów),
- a jeśli są przypadki narożne.
Ponadto, jeśli zostały napisane w stylu BDD , stanowią raczej dobrą definicję kontraktu klasy . Otwórz IDE (lub użyj grep), aby zobaczyć tylko nazwy metod i tada: masz listę zachowań.
Regresje i błędy też wymagają testów
Dobrą praktyką jest także pisanie testów regresji i raportów błędów: naprawiasz coś, piszesz test w celu odtworzenia sprawy. Patrząc na nie, jest to dobry sposób, aby znaleźć odpowiedni raport o błędzie i na przykład wszystkie szczegóły dotyczące starego problemu.
Powiedziałbym, że są dobrym uzupełnieniem prawdziwej dokumentacji i przynajmniej cennym zasobem w tym zakresie. To dobre narzędzie, jeśli jest właściwie używane. Jeśli zaczniesz testować na wczesnym etapie projektu i staniesz się nawykiem, MUSI to być bardzo dobra dokumentacja referencyjna. W przypadku istniejącego projektu o złych nawykach programistycznych, które już przywierają do podstawy kodu, należy postępować z nimi ostrożnie.