Testy jednostkowe (Unittest), oszczędność czy strata?
Efektywność Testów jednostkowych, przykład praktyczny przy budowie modułowej aplikacji
Contents
Przykłady, use case
- w duzym systemie jest tylko integracyjny test
- wystapil blad przy aktualizacji danch
- Przyzcza bylo blad w zewnetrznym module odpowiedzialnym za usuwanie i zapisywanie danch w tablicach
Gdyby zewnetrzny moduł byl przetestowany wedle UniTTestu, ten problem nie wystapił by w żadnej aplikacji, ktora go uzywa
korzysci stosowania Unit Testów
Unit Test jest dobrym rozwiazaniem przy wielomodulowych aplikacjach,
gdzie kazda mala czesc moze byc sprawdzana pod wzgledem funkcjonowania.
w takiej sytuacji mozna przyjac, ze cala aplikacja wykorzystujaca te moduly bedzie rowniez poprawnie funkcjonowala.
Brak testów jednostkowych, oszczędność czy strata?
Bez testow jednostkowych brak pokrycia w kodzie pozwala na luki, ktore potem wychodza nie bezposrednio. tylko posrednio.
koszt wyszukania usterek jest wieloktrontnie wyzsyz, gdyz nie wynika z zalozen aplikacji a jest problemem zenweztrznym ktory przy zalozeniu wykorzystania zewnetrznbego modulu nie bierzemy pod uwage dopoki nie wykluczymy wlasnych wewnetrznych bledow.
Z tego wzgledu jak na ironie warto rowniez we wlasnej pliakcji stosowac unit testy, gdyz dziala na malym polu tylko w e fragmencie i naprawa jest ograniczona do malego bloku kodu a wiec nie trzeba poswiecic tyle czasu.
Istota stosowania
Gdy osoba kierująca proejekt mówi żeby nie ’tracic’ czasu na unitetesty w modułach, sugerując, że ten czas można lepiej wykorzystać, np. na budowę Core aplikacji, może to doprowadzić do innej sytuacji:
że sporo czasu poświęcimy na szukanie rozwiązań problemow w aplikacji core, które pochodzą z modułów.
- Czy warto dzieciczyć czyjeś błędy?
- czy warto brać na siebie rolę testera nieswoich modułów?
Warto poświęcić czas na wyjaśnienie funkcjonowania malych modułow aplikacji, by poźniej miec pewność że kazdy element działa wedle przyjętych standardów i założeń.
Przy okazji warto robić update na wypadki nowe, ktore dopiero zauwyżylismy w trakcie tworzenia aplikacji wykorzystującej moduł, tak by zadbac o logike dzialania i bezpieczenstwo jej funkcjonowania w każdych warunkach.