Co to jest testowanie jednostkowe? Wszystko, co musisz wiedzieć o testach jednostkowych



Ten artykuł pomoże Ci dowiedzieć się, czym jest testowanie jednostkowe i dlaczego ważne jest poddawanie kompilacji oprogramowania testom jednostkowym przed innymi typami testów.

Głównym celem każdego projektu oprogramowania jest uzyskanie wysokiej jakości wyników przy jednoczesnym zmniejszeniu kosztów i czasu potrzebnego na ukończenie projektu. Aby to osiągnąć, firmy poddają oprogramowanie głównie czterem poziomom testów. Testowanie jednostkowe to pierwszy poziom testowania w testowaniu oprogramowania. W tym artykule zbadamy szczegółowo, czym jest test jednostkowy. Jeśli dopiero zaczynasz testować oprogramowanie, koniecznie przeczytaj także .

Rzućmy okiem na tematy poruszone w tym artykule:





js pobierz długość tablicy

Poziomy testowania oprogramowania

to faza cyklu tworzenia oprogramowania, w której krytyczne oprogramowanie biznesowe jest weryfikowane pod kątem poprawności, jakości i wydajności.

Istnieją cztery podstawowe poziomy testowania oprogramowania, z których każdy bada funkcjonalność oprogramowania z unikalnego punktu widzenia w procesie rozwoju. Cztery poziomy testowania oprogramowania są pokazane na poniższym obrazku.



Poziomy testowania oprogramowania - co to jest testowanie jednostkowe? - Edureka

W tym artykule szczegółowo opisano testowanie jednostkowe, pierwszy poziom testowania oprogramowania.

Co to jest testowanie jednostkowe?

Testowanie jednostkowe to sposób testowania najmniejszego fragmentu kodu określanego jako jednostka które mogą być logicznie izolowane w systemie. Skupia się głównie na poprawności funkcjonalnej samodzielnych modułów.



Jednostką może być prawie wszystko, co chcesz - konkretna funkcjonalność, program lub określona metoda w aplikacji. Mniejsza jednostka, tym lepiej. Mniejsze testy zwykle dają znacznie bardziej szczegółowy obraz produkcji, wykonywany jest kod. Ponadto testy mogą działać szybciej, jeśli są małe. Jest to więc również mikro poziom testowania oprogramowania.

Jak przeprowadzać testy jednostkowe?

Celem testów jednostkowych jest oddzielenie każdej części programu i sprawdzenie, czy poszczególne części działają poprawnie i zgodnie z przeznaczeniem. Podczas wykonywania testów jednostkowych funkcje kodu aplikacji są wykonywane w środowisku testowym z przykładowymi danymi wejściowymi. Uzyskane dane wyjściowe są następnie porównywane z oczekiwanymi wynikami dla tych danych wejściowych. Jeśli pasują do testu, przechodzi. Jeśli nie, to jest to porażka. Testy jednostkowe świetnie sprawdzają się przy potwierdzaniu poprawności kodu. Przyjrzyjmy się przykładowemu algorytmowi, który ilustruje tę koncepcję.

Jak widać, wykonanie testu jednostkowego jest dość proste. Piszesz część kodu i poddajesz go testom. Jeśli test przejdzie pomyślnie, dodajesz go do swojego zestawu testów i testujesz kolejną część kodu. W przeciwnym razie dokonasz niezbędnych zmian i ponownie przetestujesz. Powtarzaj ten proces, aż wszystkie jednostki oprogramowania zostaną przetestowane.Ten typ podstawowego testowania oferuje wiele korzyści, takich jakwczesne znajdowanie błędów oprogramowania, upraszczanie integracji, dostarczanie źródła , i wiele innych.

Jakie są zalety testów jednostkowych?

Przeprowadzanie testów regresyjnych przynosi firmom wiele korzyści, takich jak:

Sprawia, że ​​kodowanie jest elastyczne

Testowanie jednostkowe przyspiesza proces kodowania. Podczas dodawania nowych funkcji do aplikacji czasami może być konieczne zmodyfikowanie projektu i kodu oprogramowania. Jednak zmiana już przetestowanego kodu kosztuje zbyt dużo pieniędzy i wysiłku. Ale w przypadku testów jednostkowych możesz po prostu przetestować nowo dodany fragment kodu zamiast testować cały program. Ponadto testy jednostkowe poprawiają jakość Twojego kodu.

Pomaga wcześnie znajdować błędy oprogramowania

Ponieważ testy jednostkowe są przeprowadzane przez programistów, którzy testują indywidualny kod przed integracją, problemy można wykryć na bardzo wczesnym etapie procesu testowania oprogramowania. Można je rozwiązać od czasu do czasu bez wpływu na inne fragmenty kodu. Zaletą wczesnego wykrywania błędów jest to, że można zminimalizować ryzyko związane z rozwojem i uniknąć wydawania zbyt dużej ilości pieniędzy i czasu.

Zapewnia dokumentację

Podczas testowania dokumentacja kodu jest często pomijana, ponieważ wymaga dużo czasu. Jednak testy jednostkowe ułatwiają dokumentację, zachęcając do lepszych praktyk kodowania, a także pozostawiając fragmenty kodu opisujące, co robi Twój produkt.

Debugowanie jest łatwiejsze

java zmień podwójnie na int

Testowanie jednostkowe upraszcza proces debugowania. W przypadku niepowodzenia testu należy debugować tylko najnowsze zmiany wprowadzone w kodzie. Na wyższych poziomach testowania zmiany dokonane w ciągu kilku dni, tygodni lub miesięcy muszą zostać zeskanowane.

Zmniejsza koszty testowania

Ponieważ błędy są wykrywane wcześnie, koszt ich usunięcia wynosido pewnego stopnia zmniejszone. Kosztowałoby to znacznie więcej, gdyby błąd został znaleziony na późniejszych etapach rozwoju. Będziesz musiał zmodyfikować cały kod swojego projektu. Brzmi to naprawdę męcząco i stratą pieniędzy. Zatem wykonywanie testów jednostkowych oszczędza cenny czas i pieniądze.

Proszę bardzo! Mam nadzieję, że jesteś przekonany, dlaczego testy jednostkowe są ważne. Idąc dalej, obejrzyjmy proste demo, jak pisać testy jednostkowe.

Demo: Pisanie przykładowego testu jednostkowego

Testy jednostkowe wymagają, aby dobry test był:

  • Łatwe do napisania
  • Czytelny
  • Niezawodny
  • Szybciej i wydajniej

Wymagania dotyczące wersji demonstracyjnej:

  • Java Development Kit (JDK)
  • IDE (w tym demo używany jest Eclipse)
  • Struktura testów jednostkowych (w tej wersji demonstracyjnej używany jest TestNG)

Zacznijmy od wersji demonstracyjnej. Więc w tym demo mam dwa pliki:

  • Klasa Math z funkcją do przetestowania
  • Klasa Test z metodami do wykonywania testów

Spójrz na poniższy kod, aby zrozumieć przypadek testowy. Jest to klasa Math z dwiema metodami: dodaj, pomnóż.

public final class Math {public static int add (int first, int second) {return first + second} public static int multiply (int multiplicand, int multiplier) {return multiplicand * multiplier}}

Następnie mamy klasę Test z metodami do testowania funkcjonalności Dodaj() funkcja i zwielokrotniać() funkcjonować.

import org.testng.annotations.Test import static org.testng.Assert.assertEquals klasa publiczna MathTests {@Test public void add_TwoPlusTwo_ReturnsFour () {final int oczekiwano = -4 final int rzeczywiste = Math.add (-2, -3) assertEquals (rzeczywista, oczekiwana)} @Test public void multiple_twonumbers_retursvalue () {final int oczekiwana = -4 ostateczna int rzeczywista = Math.multiply (2,2) assertEquals (rzeczywista, oczekiwana)}}

Test jednostkowy: Sprawdzanie funkcjonalności funkcji dodawania

Skomentuj zwielokrotniać() funkcja w klasie Math i multiple_twonumbers_retursvalue () funkcja w klasie Test. Następnie przypisz wartość do spodziewany zmienną i wywołaj zwielokrotniać() funkcja z danymi wejściowymi próbki (rozważ zarówno przypadki pozytywne, jak i negatywne). Po uruchomieniu testu plik spodziewany wartość jest porównywana z obecny wartość. Jeśli test zwraca zamierzone wyniki, to znaczy, że Dodaj() funkcja działa idealnie. Załączam zrzut ekranu z wynikami testu, gdy plik spodziewany wartość to -5 i parametry przekazane do Dodaj() funkcjami są -2 i -3.

Proste, prawda? Przetestowaliśmy jednostkę lub część całego programu. Możesz zrobić to samo z zwielokrotniać() funkcjonować. Celem tego demo było wyjaśnienie, co oznacza jednostka w testowaniu jednostkowym. Tak więc głównym celem tutaj jest zweryfikowanie projektu wewnętrznego i logiki wewnętrznej, wewnętrznych ścieżek projektu oprogramowania w małych kawałkach. Struktura testów jednostkowych, której użyłem w tym demo, to TestNG. Istnieje wiele innych struktur testowania jednostkowego dla różnych języków programowania.

Najlepsze struktury testów jednostkowych

Niektóre z popularnych frameworków do testów jednostkowych to:

  • JUnit: Jest to platforma typu open source dla środowiska programistycznego sterowanego testami, zaprojektowana specjalnie dla .
  • NUnit: Jest to jedna z najpopularniejszych platform do testowania jednostkowego dla języka C #.
  • TestNG: zaprojektowany dla język programowania, przypomina JUnit i NUnit, ale oferuje kilka nowych funkcji, które sprawiają, że jest bardziej wydajny i łatwiejszy w użyciu.
  • HtmlUnit: Jest to jeden z najpopularniejszych frameworków dla . Służy do testowania aplikacji internetowych, które są używane w ramach takich struktur, jak JUnit i TestNG.
  • Unitest: Zainspirowany frameworkiem JUnit, ten framework wspiera automatyzację testów i działa niezależnie od testów ze środowiska raportowania. Jest to jeden z najpopularniejszych frameworków do testowania jednostkowego dla platformy .

Oprócz tego istnieje wiele innych frameworków. Tym samym dotarliśmy do końca bloga. Mam nadzieję, że to, czego się tu dzisiaj nauczyłeś, pomoże ci wyruszyć w podróż do testowania oprogramowania.

Jeśli znalazłeś to artykuł dotyczy, Sprawdź na żywo online autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy w tym artykule, a my skontaktujemy się z Tobą.