Jaka jest różnica między testami jednostkowymi a Integracyjnymi? [duplikat]

to pytanie ma już odpowiedzi tutaj : Jaka jest różnica między integracją a testami jednostkowymi? (20 odpowiedzi) Zamknięty 7 lat temu .

Jaka jest różnica między testami jednostkowymi a Integracyjnymi?

Czy są inne nazwy dla tych testów? Jak niektórzy nazywają testy jednostkowe testami funkcjonalnymi itp.?

Author: nbro, 2011-03-18

5 answers

A test jednostkowy jest testem napisanym przez programistę w celu sprawdzenia, czy stosunkowo mały fragment kodu robi to, do czego jest przeznaczony. Mają wąski zakres, powinny być łatwe do napisania i wykonania, a ich skuteczność zależy od tego, co programista uzna za użyteczne. Testy są przeznaczone do użytku programisty, nie są bezpośrednio użyteczne dla nikogo innego, chociaż jeśli wykonują swoją pracę, testerzy i użytkownicy powinni korzystać z mniej błędów.

Częścią bycia testem jednostkowym jest implikacja, że rzeczy spoza testowanego kodu są wyśmiewane lub stubowane. Testy jednostkowe nie powinny mieć zależności od zewnętrznych systemów. Testują wewnętrzną spójność, a nie udowadniają, że dobrze grają z jakimś zewnętrznym systemem.

Test integracyjny jest przeprowadzany w celu wykazania, że różne elementy systemu współpracują ze sobą. Testy integracyjne mogą obejmować całe aplikacje i wymagają znacznie więcej wysiłku, aby je połączyć. Zwykle wymagają przydzielenia zasobów, takich jak instancje bazy danych i sprzęt. Testy integracyjne wykonują bardziej przekonujące zadanie wykazania działania systemu (zwłaszcza dla osób nieprogramujących) niż zestaw testów jednostkowych, przynajmniej w takim stopniu, w jakim środowisko testów integracyjnych przypomina produkcję.

W rzeczywistości "test integracji" jest używany do wielu różnych rzeczy, od pełnych testów systemu przeciwko środowisku stworzonemu w celu przypominania produkcji do dowolnego testu, który używa zasoby (takie jak Baza Danych lub Kolejka), które nie są wyśmiewane. Na dolnym końcu widma test integracyjny może być testem junit, w którym repozytorium jest wykonywane przeciwko bazie danych w pamięci, w górnym końcu może to być test systemu sprawdzający, czy aplikacje mogą wymieniać wiadomości.

 614
Author: Nathan Hughes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-12 20:33:31

Test jednostkowy nie powinien mieć zależności od kodu poza testowaną jednostką. To Ty decydujesz, czym jest urządzenie, szukając najmniejszej części, którą można przetestować. Tam, gdzie istnieją zależności, należy je zastąpić fałszywymi obiektami. Kpimy, kpimy .. Wątek wykonywania testów rozpoczyna się i kończy w najmniejszej testowalnej jednostce.

Gdy fałszywe obiekty są zastępowane obiektami rzeczywistymi i wątek wykonania testów przechodzi do innych testowalnych jednostek, masz test integracji

 101
Author: Dave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-15 06:25:55

Test jednostkowy jest przeprowadzany w (w miarę możliwości) całkowitej izolacji.

Test integracji jest wykonywany, gdy testowany obiekt lub moduł działa tak, jak powinien, z innymi bitami kodu.

 44
Author: The Communist Duck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-18 20:45:56

Test jednostkowy testuje kod, nad którym masz pełną kontrolę, podczas gdy test integracyjny testuje sposób, w jaki twój kod używa lub "integruje się" z innym kodem.

Więc piszesz testy jednostkowe, aby upewnić się, że Twoje biblioteki działają zgodnie z przeznaczeniem, a następnie piszesz testy integracyjne, aby upewnić się, że Twój kod dobrze gra z innym kodem, z którego korzystasz, na przykład biblioteką.

Testy funkcjonalne są związane z testami Integracyjnymi, ale odnoszą się bardziej konkretnie do testów, które testują całą system lub aplikacja z całym kodem działającym razem, prawie super test integracji.

 17
Author: Karl Rosaen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-18 20:45:19

Test jednostkowy jest zwykle wykonywany dla pojedynczej funkcjonalności zaimplementowanej w module oprogramowania. Zakres testów jest w całości w ramach tego modułu oprogramowania. Badanie jednostkowe nigdy nie spełnia ostatecznych wymagań funkcjonalnych. Jest to metoda testowania whitebox..

Podczas gdy test integracji jest wykonywany w celu zapewnienia różnych implementacji modułów SW. Testowanie jest zwykle przeprowadzane po integracji z poziomem modułów w rozwoju oprogramowania.. Test ten obejmuje wymagania funkcjonalne, ale nie wystarczająco, aby zapewnić walidację systemu.

 12
Author: Jeganraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-07 13:54:41