Rozmawiałem z kierownikiem ds. Testów na temat roli testów jednostkowych i integracyjnych. Poprosiła programistów o zgłoszenie tego, co przetestowali w jednostkach i integracji oraz jak. Moim zdaniem testy jednostkowe i integracyjne są częścią procesu rozwoju, a nie procesu testowania. Poza semantyką mam na myśli to, że testy jednostkowe i integracyjne nie powinny być uwzględniane w raportach z testów, a testerzy systemów nie powinni się nimi przejmować. Moje rozumowanie opiera się na dwóch rzeczach.
Testy jednostkowe i integracyjne są zawsze planowane i przeprowadzane w odniesieniu do interfejsu i umowy. Niezależnie od tego, czy korzystasz ze sformalizowanych umów, nadal testujesz, co np. Ma zrobić metoda, tj. Umowa.
W testach integracyjnych testujesz interfejs między dwoma odrębnymi modułami. Interfejs i umowa określić, kiedy testy przechodzi. Ale zawsze testujesz ograniczoną część całego systemu. Z drugiej strony testy systemów są planowane i przeprowadzane zgodnie ze specyfikacjami systemu. Specyfikacja określa, kiedy test się powiedzie.
Nie widzę żadnej wartości w przekazywaniu szerokości i głębokości testów jednostkowych i integracyjnych testerowi (systemowemu). Załóżmy, że piszę raport, w którym wyszczególniono, jakie testy jednostkowe są wykonywane na określonej klasie warstw biznesowych. Co on / ona ma od tego zabrać?
Ocena, co powinno, a czego nie powinno być testowane na podstawie tego, jest fałszywym wnioskiem, ponieważ system może nadal nie działać tak, jak wymagają tego specyfikacje, mimo że wszystkie testy jednostkowe i integracyjne przebiegają pomyślnie.
Może się to wydawać bezużyteczną dyskusją akademicką, ale jeśli pracujesz w ściśle formalnym środowisku, tak jak ja, to tak naprawdę jest to ważne przy określaniu, jak to robimy. W każdym razie, czy całkowicie się mylę?