Po co używać phpunit, gdy można zastosować tradycyjne ręczne testowanie

14

Kiedy tworzę aplikację internetową, testuję swoją pracę w przeglądarce, aby sprawdzić, czy występują błędy i je naprawić. Zrobiłem złożone aplikacje, a testowanie w ten sposób było łatwe i szybkie. Obejrzałem wiele filmów na youtube dotyczących phpunit i nie mogę znaleźć dla tego celu. Dlaczego ta biblioteka jest przydatna? Czy phpunit jest bardziej przeznaczony do tworzenia ramek php, takich jak cakephp lub zend? Nie używam żadnego frameworku, po prostu rdzenia php. Czy phpunit byłby dla mnie przydatny? Jeśli tak to jak?

Istnieje również xdebug, ale nie jestem pewien, czy się odnosi.

Sarmen B.
źródło
5
Ile czasu zajmuje ponowne sprawdzenie złożonej aplikacji w każdym rogu?
@ user1249, phpUnit nadal nie jest w stanie przeprowadzić automatycznych testów funkcjonalnych. Wykonuje tylko automatyczne testy jednostkowe.
Pacerier

Odpowiedzi:

12

Czy phpunit byłby dla mnie przydatny? Jeśli tak to jak?

Tak, zdecydowanie.

phpunit należy do rodziny bibliotek testowych xUnit . Tych bibliotek używa się do tworzenia automatycznie wykonywalnych testów, które weryfikują zachowanie aplikacji. Jest to ważne, aby między innymi upewnić się, że wprowadzone zmiany nie psują istniejącej funkcjonalności.

Wymienienie wszystkich powodów automatycznego testowania, różnych rodzajów i technologii byłoby zbyt wiele. Sprawdź poniższe linki, aby przeczytać o:

BenR
źródło
jak na ironię, pierwszy link z o'reilly 404'd
Félix Gagnon-Grenier
6

Powiedzmy, że chciałeś ręcznie przetestować aplikację za każdym razem, gdy ją wdrażasz. Jak byś to zrobił?

Na początek możesz sporządzić listę wszystkich rzeczy, które chcesz przetestować, abyś nie zapomniał przetestować czegoś później. Następnie prawdopodobnie napiszesz kroki dla każdego testu, aby upewnić się, że wykonałeś je w ten sam sposób za każdym razem. Jeśli nie upewnisz się, że zastosowany proces testowania był spójny, wyniki nie byłyby spójne.

Teraz, gdy masz już listę testów, które musisz wykonać, otwórz przeglądarkę, przeczytaj kroki pierwszego testu, wykonaj je i zanotuj wynik. Powtórzyłbyś ten proces dla każdego testu na liście.

Liczba przeprowadzanych testów będzie rosła wraz z rozwojem aplikacji i wykrywaniem nowych błędów. Oczywiście ograniczyłbyś się do wykonywania tych testów z ludzką prędkością, co czyni je raczej powolnymi.

Ironia polega na tym, że mechanicznie przeglądając listę operacji, wykonujesz obliczenia. Robisz to po prostu wolniej niż, powiedzmy, komputer.

To, między innymi z wielu dobrych powodów, dlatego piszemy testy jednostkowe: pozwalają komputerowi wykonywać obliczenia, więc nie musisz.

Potrafię uruchomić kompleksowy pakiet testów jednostkowych wystarczająco szybko, aby używać go często podczas programowania, a nie tylko raz w tygodniu przed wdrożeniem. Pozwala mi to szybciej wykrywać błędy, oszczędzając czas i pieniądze.

Mogę nawet pisać testy, które przewidują zachowanie systemu, a następnie zapisywać to zachowanie (które już wiem, że jest poprawne, ponieważ właśnie go przetestowałem), proces znany pod nazwą Test Driven Development.

Rein Henrichs
źródło
5

Testowanie ręczne (tj. Klikanie aplikacji w przeglądarce) nazywa się testowaniem funkcjonalnym. Testy funkcjonalne i testy jednostkowe to dwie różne metody stosowane w kontroli jakości. Jak myślisz, dlaczego nie możesz używać ich obu?

Testowanie jednostkowe służy do sprawdzania, czy kod działa zgodnie z oczekiwaniami (np. Czy usługa internetowa odpowiednio obsługuje błąd lub zwraca wyniki zgodnie z oczekiwaniami).

Po kliknięciu aplikacji testujesz jej funkcjonalność .

Czy phpunit byłby dla mnie przydatny? Jeśli tak to jak?

Testowanie jednostkowe ma wiele zalet - może być bardzo przydatnym narzędziem podczas refaktoryzacji, ponieważ można potwierdzić, że kod działa zgodnie z oczekiwaniami. Ponadto, gdy ktoś czyta Twój kod, bardzo pomocne może być zobaczenie zamierzonego użycia kodu w testach jednostkowych.

Christian P.
źródło
Testy jednostkowe sprawdzają również zachowanie. Tworzysz fałszywą dychotomię.
Rein Henrichs,
@ReinHenrichs, Testy funkcjonalne są wykonywane przez Selenium, a nie PHPUnit.
Pacerier
1

Tak!

Tak. Zdecydowanie tak.

Właściwie to wymaga kwalifikacji. Frameworki do testów jednostkowych, takie jak PHPunit, są przydatne, jeśli piszesz i zarządzasz aplikacją, z której inni ludzie powinni korzystać.

Powody, dla których użyteczne jest testowanie jednostkowe, obejmują

  • Testowanie regresji dla określonych błędów, które zostały ujawnione, oraz

  • Uruchamianie testów jednostkowych jest znacznie szybsze niż testy ręczne, a zatem może być o wiele dokładniejsze.

W firmie, w której pracuję, piszemy testy jednostkowe, zanim napiszemy kod, który je zalicza. Pomaga nam to tworzyć rozsądne, testowalne projekty (ponieważ musimy pomyśleć o tym, co napiszemy, zanim to zrobimy!) I zapewnia łatwy sposób zapewnienia, że ​​nasz kod spełnia wymagania użytkownika.


źródło