Wprowadzenie do testowania białych skrzynek

Testowanie jest jedną z ważnych części tworzenia oprogramowania, zapewnia, że ​​wszystkie błędy zostaną rozwiązane, a program działa tak, jak powinien. Testowanie oprogramowania może składać się z wielu kroków i procedur. W tym artykule przyjrzymy się jednemu z ważnych podejść do procesu testowania, testowaniu w białej skrzynce.

Co to jest testowanie białych skrzynek?

Testowanie białych skrzynek jest również nazywane testowaniem podstawowych kodów, testowaniem czystych skrzynek, testowaniem otwartych skrzynek i testami strukturalnymi. Podstawową ideą tego podejścia do testowania oprogramowania jest przyjrzenie się projektowi struktury wewnętrznej i kodowi programu, aby to przetestować.

Podczas testowania w białej skrzynce tester widzi cały kod programu i ma za zadanie zweryfikować przebieg działania wejść i wyjść w programie. W przeciwieństwie do testowania czarnej skrzynki, która bardziej skupia się na testowaniu funkcjonalności programu, White Box Testing dotyczy testowania wewnętrznych struktur programu. Spojrzenie na program w ten sposób pozwala nam pracować nad ulepszeniem projektu, użyteczności i zwiększeniem bezpieczeństwa produktu.

Jak można się domyślić, nazywa się to testowaniem białego pudełka lub szklanego pudełka, ponieważ tester może zobaczyć kod i inne części programu.

Co odróżnia testy białych skrzynek od testów czarnych skrzynek

Jeśli w przeszłości przechylałeś palce podczas testowania, jestem pewien, że natknąłeś się na testowanie czarnej skrzynki. Największą różnicą między testowaniem białej skrzynki i testowaniem czarnej skrzynki jest to, że w przeciwieństwie do testowania czarnej skrzynki, która jest przeprowadzana z punktu widzenia użytkownika, testowanie białej skrzynki odbywa się z punktu widzenia dewelopera.

Innymi słowy, zamiast patrzeć na program z zewnątrz, podejście White Box Testing widzi wewnętrzny kod i testuje go.

Jak przeprowadzane są testy białych skrzynek?

Możemy podzielić proces testowania białej skrzynki na dwa główne etapy.

1. Zrozumienie podanego kodu

Na początku tester w White Box Testing będzie musiał nauczyć się kodu aplikacji. Biorąc pod uwagę fakt, że testy w White Box polegają na zrozumieniu i przetestowaniu całego wewnętrznego kodu programu, każdy, kto ma za zadanie przetestować kod, powinien nie tylko dobrze znać programowanie, ale będzie też potrzebował dobrej znajomości języka kodu źródłowego.

Bezpieczeństwo jest jednym z ważnych aspektów Testowania Białej Skrzynki, więc tester musi również być dobry w bezpiecznych praktykach kodowania.

2. Tworzenie przypadków testowych i ich wykonywanie

Po zbadaniu kodu przez zespół testujący, mogą rozpocząć testowanie kodu w celu sprawdzenia jego prawidłowego przepływu i struktury. Aby to zrobić, testerzy napiszą kod dla niektórych przypadków testowych, które spróbują przejść przez wszystkie linie kodu obecne w programie.

Można to również zrobić w testowaniu ręcznym, które obejmuje próby i błędy. Testerzy mogą również korzystać z niektórych zautomatyzowanych narzędzi testujących, takich jak JUnit i NUnit.

Przykład testowania białej skrzynki

Aby lepiej zrozumieć koncepcję testów białych skrzynek, spójrz na poniższy kod:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Jak omówiliśmy wcześniej, celem White Box Testing jest przejście przez wszystkie gałęzie, pętle i instrukcje, które są obecne w kodzie. Biorąc to pod uwagę, możemy wykonać 2 przypadki testowe, jeden, w którym oba dane wejściowe są dodatnie, a drugi, gdzie oba dane wejściowe są liczbami całkowitymi ujemnymi.

Przykład:

  • A = 10 i B = 20
  • A = -10 i B = -20

Techniki testowania białych skrzynek

Jedna z najpopularniejszych technik testowania do białych skrzynek nazywa się analizą pokrycia kodu, ta technika próbuje wyeliminować wszelkie luki w zestawie przypadków testowych i identyfikuje sekcje aplikacji, które nie są używane przez przypadki testowe. Po znalezieniu tych luk możemy utworzyć przypadki, aby zobaczyć i zweryfikować części kodu, które nie zostały przetestowane, co skutkuje bardziej dopracowanym produktem na końcu.

Oto niektóre techniki analizy zasięgu:

  • Zakres instrukcji: W tej metodzie próbujemy przynajmniej raz przejrzeć wszystkie instrukcje w kodzie. Zapewnia to, że cały kod jest testowany.
  • Zasięg gałęzi: Ta metoda jest planowana do przejścia przez każdą gałąź punktów decyzyjnych w kodzie. Dzięki temu wszystkie decyzje są przynajmniej raz testowane.

Istnieje również kilka innych technik testowania, oto tylko kilka:

  • Pokrycie warunków: W tej technice testowania upewniamy się, że wszystkie warunki są objęte kodem, na przykład:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Jak widać, tutaj mamy 2 warunki: A == 0 i B == 0. Teraz te warunki otrzymują PRAWDA i FAŁSZ jako wartości. Jednym z możliwych przykładów może być:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Pokrycie wielu warunków: Jest to nieco bardziej zaawansowany niż poprzedni. Jak można się domyślić, co najmniej raz testujemy wszystkie możliwe kombinacje i wszystkie możliwe wyniki. Oto porządny przykład:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

W związku z tym. Wymagamy 4 przypadków testowych dla 2 warunków.

Dlatego jeśli jest n warunków, będziemy wymagać 2 n przypadków testowych.

  • Podstawowe testowanie ścieżek: W tej technice testowania białej skrzynki tworzymy kontrolny wykres przepływu, a następnie obliczamy jego cykliczną złożoność, która jest liczbą niezależnych ścieżek. Korzystając z cyklicznej złożoności, możemy znaleźć minimalną liczbę przypadków testowych, które możemy zaprojektować dla każdej niezależnej ścieżki wykresu przepływu.
  • Testowanie pętli: Pętle są jednym z najczęściej używanych narzędzi w uzbrojeniu programisty. Ponieważ są one podstawą wielu algorytmów, sensowna jest tylko technika testowania oparta na pętlach. Mogą występować 3 rodzaje pętli: prosta, zagnieżdżona i połączona. Przyjrzyjmy się, jak tester poradzi sobie z technologią tego typu:

1. Proste pętle: w przypadku pętli, która jest prosta w konstrukcji i ma rozmiar n, możemy zaprojektować kilka przypadków testowych, które wykonują następujące czynności:

  • Pomiń tę pętlę.
  • Przemierzaj pętlę tylko raz.
  • Posiadaj 2 podania
  • Mają dowolną liczbę przebiegów, która jest mniejsza niż jej wielkość.
  • n-1 i n + 1 przechodzą przez pętlę.

2. Zagnieżdżone pętle: W przypadku kodu z zagnieżdżonymi pętlami zaczynamy od wewnętrznej pętli, a następnie wychodzimy na zewnątrz, aż możemy dotrzeć do najbardziej zewnętrznej pętli.

3. Połączone pętle: w przypadku tych pętli. Używamy prostego testu pętli jeden po drugim i na wypadek, gdyby połączona pętla nie była niezależna, możemy sobie z tym poradzić, podobnie jak w przypadku pętli zagnieżdżonych.

Zalety

Teraz, gdy widzieliśmy, czym jest ta metoda testowania i jak działa. Rzućmy okiem na niektóre z zalet tego.

  • Testowanie w białej skrzynce ma proste i jasne zasady, aby poinformować testera, kiedy test zostanie zakończony.
  • Techniki testowania w White Box są łatwe do zautomatyzowania, co powoduje, że programista musi zatrudnić mniej testerów i zmniejszyć wydatki.
  • Pokazuje wąskie gardła, co znacznie ułatwia programistom optymalizację.
  • Zespół testujący może rozpocząć pracę bez konieczności oczekiwania na ukończenie rozwoju interfejsu użytkownika przez zespół programistów.
  • Ponieważ w większości przypadków wszystkie ścieżki kodu są objęte kodem, testowanie kodu jest bardziej zaawansowane.
  • Pomaga w usuwaniu części kodu, które nie są niezbędne do działania programu.

Niedogodności

  • To dość obciąża zasoby. Aby wykonać testowanie, potrzebujesz kogoś, kto zna Twój kod bardzo dobrze, aby należeć do zespołu testującego i który jest dobrym programistą. Ten rodzaj poziomu umiejętności zwiększa koszty testowania.
  • W wielu przypadkach możliwość przetestowania każdego możliwego warunku w kodzie nie jest możliwa ze względu na ograniczenia czasowe lub ograniczenia budżetowe.
  • Ponieważ testy białych pól polegają na sprawdzeniu funkcjonalności istniejącego kodu, nie można znaleźć brakującej funkcjonalności w programie.
  • Jeśli jakakolwiek część kodu zostanie przeprojektowana i przepisana, testerzy muszą ponownie napisać przypadki testowe.

Narzędzia do testowania białych skrzynek

Teraz, gdy znasz już zalety, wady i techniki testowania białych skrzynek, możemy rzucić okiem na niektóre popularne narzędzia, których testerzy mogą używać do przeprowadzania testów białych skrzynek.

  • JSUnit.net

To narzędzie do testowania JavaScript. JSUnit jest częścią Junit i jest platformą testowania jednostek typu open source, której można użyć do testowania White Box. JSUnit jest całkowicie otwartym oprogramowaniem na licencji GNU Public License 2.0, co oznacza, że ​​nawet do celów komercyjnych deweloper nie musi ponosić żadnych opłat licencyjnych.

  • CppUnit

Podobnie jak JSUnit, CppUnit jest również uważany za część JUnit. Narzędzie może generować dane wyjściowe w postaci zwykłego tekstu lub XML, w zależności od potrzeb testera i może tworzyć testy jednostkowe z własnymi klasami. CppUnit jest licencjonowany na licencji LGPL.

  • Veracode

Chociaż nie jest darmowy, Veracode ma kilka potężnych narzędzi, które można wykorzystać do testowania .NET, C ++, Java i niektórych innych języków. Testy w White Box mogą być wykonane również dla aplikacji komputerowych, internetowych i mobilnych.

  • NUnit

Jest to framework do testowania jednostkowego i został napisany w języku C #. Narzędzie obsługuje wszystkie dostępne języki .Net i obsługuje test oparty na danych. Jeśli chodzi o funkcjonalność, może on działać zarówno w trybie równoległym, jak i współbieżnym, a także może zapewniać ramy klasowe i aplikacje do uruchamiania testów. Jedną z godnych uwagi cech NUnit, że jest dość łatwy w użyciu.

  • JUnit

Jak można się domyślić po jego nazwie, JUnit to narzędzie do automatyzacji testów jednostkowych w Javie. JUnit van można łatwo zintegrować z IDE, takimi jak eclipse, Macen ACT itp. Jest w stanie wspierać rozwój oparty na testach i może zsynchronizować istniejące testy z nowo utworzonymi raz. JUnit jest całkowicie otwartym oprogramowaniem i można go używać do dowolnego programowania Java.

  • CSUnit

CSUnit, podobnie jak Nunit, jest zbudowany do obsługi testów jednostkowych w .Net Framework. Obsługuje języki takie jak C # i VB.Net. CSUnit ma wbudowane wsparcie dla praktyki faktoringowej i innych rodzajów praktyk stosowanych w zwinnym podejściu programistycznym SDLC.

Wniosek

Testowanie zajmuje bardzo ważne miejsce w procesie tworzenia oprogramowania, a testowanie w białej skrzynce jest cennym podejściem do jego wykonania. Chociaż takie podejście do testowania może być kosztowne i czasochłonne, testowanie w białej skrzynce pozostaje jedynym sposobem na upewnienie się, że wszystkie części kodu zostały objęte procesem testowania.

Najważniejszą częścią testów White Box jest znajomość kodu przez testera. Ktoś, kto ma za zadanie przetestować podejście WBT, a który nie ma dobrej znajomości kodu źródłowego i używanego języka programowania, spowoduje wiele problemów. Ponadto, zależnie tylko od testów White Box, nie jest dobrym pomysłem, ponieważ nie obejmuje brakujących funkcji. Aby uzyskać bardziej szczegółowe podejście do rozwoju, należy wykonać zarówno testy białej skrzynki, jak i czarnej skrzynki, ponieważ będą one obejmować maksymalną liczbę błędów, wad i pozostałych funkcji, które należy dodać przed wysłaniem produktu.

Polecane artykuły

To był przewodnik po testach w White Box. Tutaj omawialiśmy, w jaki sposób wykonuje się testy białej skrzynki za pomocą przykładów i różnych technik testowania białej skrzynki za pomocą narzędzi. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Pytania do wywiadu dotyczącego testowania oprogramowania
  2. Kariery w testowaniu oprogramowania
  3. Pytania do wywiadu podczas testowania gry
  4. Pytania do wywiadu testowego ETL
  5. Zakres kodu a zakres testu | 4 najważniejsze różnice do nauczenia się
  6. Narzędzia pokrycia kodu | Top 6 narzędzi pokrycia kodu