Co to jest test WHITE Box? Techniki, przykłady i Rodzaje

Spisie treści:

Anonim

Testowanie w białej skrzynce

White Box Testing to technika testowania oprogramowania, w ramach której wewnętrzna struktura, projekt i kodowanie oprogramowania są testowane w celu weryfikacji przepływu danych wejściowych i wyjściowych oraz poprawy projektu, użyteczności i bezpieczeństwa. W testach białoskrzynkowych kod jest widoczny dla testerów, więc jest również nazywany testowaniem przezroczystego pudełka, testowaniem otwartego pudełka, testowaniem przezroczystego pudełka, testowaniem opartym na kodzie i testowaniem szklanym pudełkiem.

Jest to jedna z dwóch części podejścia Box Testing do testowania oprogramowania. Jego odpowiednik, testowanie Blackbox, polega na testowaniu z perspektywy typu zewnętrznego lub użytkownika końcowego. Z drugiej strony, testowanie białoskrzynkowe w inżynierii oprogramowania opiera się na wewnętrznym działaniu aplikacji i obraca się wokół testowania wewnętrznego.

Termin „WhiteBox” został użyty ze względu na koncepcję przezroczystego pudełka. Przezroczyste pole lub nazwa WhiteBox symbolizuje możliwość wglądu przez zewnętrzną powłokę (lub „pudełko”) oprogramowania do jego wewnętrznego działania. Podobnie „czarna skrzynka” w „Testowaniu czarnej skrzynki” symbolizuje brak możliwości zobaczenia wewnętrznego działania oprogramowania, tak że można przetestować tylko wrażenia użytkownika końcowego.

W tym samouczku testowym z białą skrzynką nauczysz się:

  • Co to jest testowanie w białej skrzynce?
  • Co weryfikujesz w testach białoskrzynkowych?
  • Jak przeprowadzasz testy White Box?
  • Przykład testowania WhiteBox
  • Techniki testowania białoskrzynkowego
  • Rodzaje testów białoskrzynkowych
  • Narzędzia do testowania w białej skrzynce
  • Zalety testów białoskrzynkowych
  • Wady testowania WhiteBox

Co weryfikujesz w testach białoskrzynkowych?

Testowanie białoskrzynkowe obejmuje testowanie kodu oprogramowania pod kątem:

  • Wewnętrzne luki w zabezpieczeniach
  • Uszkodzone lub źle zorganizowane ścieżki w procesach kodowania
  • Przepływ określonych danych wejściowych przez kod
  • Oczekiwany wynik
  • Funkcjonalność pętli warunkowych
  • Indywidualne testowanie każdego oświadczenia, obiektu i funkcji

Testowanie można przeprowadzić na poziomie systemu, integracji i jednostek tworzenia oprogramowania. Jednym z podstawowych celów testowania whitebox jest weryfikacja przepływu pracy aplikacji. Obejmuje testowanie szeregu predefiniowanych danych wejściowych pod kątem oczekiwanych lub pożądanych wyników, tak że gdy określone dane wejściowe nie dają oczekiwanych wyników, napotkasz błąd.

Kliknij tutaj, jeśli wideo nie jest dostępne

Jak przeprowadzasz testy White Box?

Aby przedstawić uproszczone wyjaśnienie testów białoskrzynkowych, podzieliliśmy je na dwa podstawowe kroki . Oto, co robią testerzy podczas testowania aplikacji przy użyciu techniki testowania białej skrzynki:

KROK 1) ZROZUMIEĆ KOD ŹRÓDŁOWY

Pierwszą rzeczą, którą często robi tester, jest poznanie i zrozumienie kodu źródłowego aplikacji. Ponieważ testowanie białej skrzynki obejmuje testowanie wewnętrznego działania aplikacji, tester musi mieć dużą wiedzę w zakresie języków programowania używanych w testowanych aplikacjach. Ponadto osoba testująca musi być bardzo świadoma praktyk bezpiecznego kodowania. Bezpieczeństwo jest często jednym z głównych celów testowania oprogramowania. Tester powinien być w stanie wykryć problemy z bezpieczeństwem i zapobiegać atakom hakerów i naiwnych użytkowników, którzy mogliby świadomie lub nieświadomie wstrzyknąć złośliwy kod do aplikacji.

Krok 2) UTWÓRZ PRZYPADKI TESTOWE I WYKONAJ

Drugi podstawowy krok do testowania białoskrzynkowego polega na przetestowaniu kodu źródłowego aplikacji pod kątem prawidłowego przepływu i struktury. Jednym ze sposobów jest napisanie większej ilości kodu w celu przetestowania kodu źródłowego aplikacji. Tester opracuje małe testy dla każdego procesu lub serii procesów w aplikacji. Ta metoda wymaga od testera gruntownej znajomości kodu i często jest wykonywana przez programistę. Inne metody obejmują testowanie ręczne, testowanie prób i błędów oraz użycie narzędzi testowych, co wyjaśnimy w dalszej części tego artykułu.

Przykład testowania WhiteBox

Rozważ następujący fragment kodu

Printme (int a, int b) {------------ Printme to funkcjaint wynik = a + b;Jeśli (wynik> 0)Drukuj („Pozytywny”, wynik)JeszczeDrukuj („Negatyw”, wynik)} ----------- Koniec kodu źródłowego 

Celem testów WhiteBox w inżynierii oprogramowania jest weryfikacja wszystkich gałęzi decyzyjnych, pętli, instrukcji w kodzie.

Aby przećwiczyć stwierdzenia w powyższym przykładzie testów białoskrzynkowych, przypadki testowe WhiteBox byłyby

  • A = 1, B = 1
  • A = -1, B = -3

Techniki testowania białoskrzynkowego

Główną techniką testowania białoskrzynkowego jest analiza pokrycia kodu. Analiza pokrycia kodu eliminuje luki w zestawie przypadków testowych. Identyfikuje obszary programu, które nie są wykonywane przez zestaw przypadków testowych. Po zidentyfikowaniu luk tworzysz przypadki testowe w celu weryfikacji nieprzetestowanych części kodu, zwiększając w ten sposób jakość oprogramowania

Dostępne są zautomatyzowane narzędzia do przeprowadzania analizy pokrycia kodu. Poniżej znajduje się kilka technik analizy pokrycia, z których może skorzystać tester pudełkowy:

Pokrycie instrukcji : - Ta technika wymaga, aby każde możliwe stwierdzenie w kodzie zostało przetestowane przynajmniej raz podczas procesu testowania inżynierii oprogramowania.

Pokrycie gałęzi - ta technika sprawdza każdą możliwą ścieżkę (if-else i inne pętle warunkowe) aplikacji oprogramowania.

Oprócz powyższego istnieje wiele typów pokrycia, takich jak pokrycie warunkowe, pokrycie wielu warunków, pokrycie ścieżki, pokrycie funkcji itp. Każda technika ma swoje zalety i próbuje przetestować (pokryć) wszystkie części kodu oprogramowania. Korzystając z pokrycia instrukcji i gałęzi, generalnie uzyskuje się wystarczające pokrycie kodu 80-90%. Poniżej przedstawiono ważne techniki testowania WhiteBox:

  • Zakres oświadczenia
  • Zakres decyzji
  • Pokrycie oddziałów
  • Pokrycie stanu
  • Pokrycie wielu warunków
  • Pokrycie maszyny skończonej
  • Pokrycie ścieżki
  • Testowanie przepływu kontrolnego
  • Testowanie przepływu danych

Zapoznaj się z tym artykułem, aby dowiedzieć się więcej szczegółów https://www.guru99.com/code-coverage.html

Rodzaje testów białoskrzynkowych

Testowanie białoskrzynkowe obejmuje kilka typów testów używanych do oceny użyteczności aplikacji, bloku kodu lub określonego pakietu oprogramowania. Poniżej wymieniono -

  • Testowanie jednostkowe: często jest to pierwszy rodzaj testów wykonywanych na aplikacji. Testy jednostkowe są przeprowadzane na każdej jednostce lub bloku kodu w miarę ich opracowywania. Testowanie jednostkowe jest zasadniczo wykonywane przez programistę. Jako programista opracowujesz kilka wierszy kodu, pojedynczą funkcję lub obiekt i testujesz go, aby upewnić się, że działa, zanim kontynuujesz testy jednostkowe, które pomogą zidentyfikować większość błędów na wczesnym etapie cyklu rozwoju oprogramowania. Błędy zidentyfikowane na tym etapie są tańsze i łatwe do naprawienia.

  • Testowanie wycieków pamięci : Wycieki pamięci są głównymi przyczynami wolniej działających aplikacji. Specjalista ds. Kontroli jakości, który ma doświadczenie w wykrywaniu wycieków pamięci, jest niezbędny w przypadkach, gdy masz wolno działającą aplikację.

Oprócz powyższego, kilka typów testów jest częścią zarówno testów czarnoskrzynkowych, jak i białoskrzynkowych. Są one wymienione poniżej

  • White Box Penetration Testing: W tym teście tester / programista ma pełne informacje o kodzie źródłowym aplikacji, szczegółowe informacje o sieci, adresy IP i wszystkie informacje o serwerze, na którym działa aplikacja. Celem jest zaatakowanie kodu z kilku stron w celu ujawnienia zagrożeń bezpieczeństwa
  • White Box Mutation Testing : Testowanie mutacji jest często używane do odkrywania najlepszych technik kodowania do wykorzystania w celu rozszerzenia rozwiązania programowego.

Narzędzia do testowania w białej skrzynce

Poniżej znajduje się lista najlepszych narzędzi do testowania w białej skrzynce.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Zalety testów białoskrzynkowych

  • Optymalizacja kodu poprzez znajdowanie ukrytych błędów.
  • Przypadki testów białoskrzynkowych można łatwo zautomatyzować.
  • Testowanie jest dokładniejsze, ponieważ zwykle obejmuje wszystkie ścieżki kodu.
  • Testowanie może rozpocząć się wcześnie w SDLC, nawet jeśli GUI nie jest dostępne.

Wady testowania WhiteBox

  • Testowanie białoskrzynkowe może być dość złożone i kosztowne.
  • Deweloperzy, którzy zazwyczaj wykonują testy typu white box, nie znoszą tego. Testowanie białych skrzynek przez programistów nie jest szczegółowe może prowadzić do błędów produkcyjnych.
  • Testowanie białoskrzynkowe wymaga profesjonalnych zasobów ze szczegółowym zrozumieniem programowania i wdrażania.
  • Testowanie białoskrzynkowe jest czasochłonne, a pełne przetestowanie większych aplikacji wymaga czasu.

Uwagi końcowe:

  • Testowanie białoskrzynkowe może być dość złożone. Związana z tym złożoność ma wiele wspólnego z testowaną aplikacją. Mała aplikacja, która wykonuje pojedynczą prostą operację, może zostać przetestowana w białej skrzynce w kilka minut, podczas gdy większe aplikacje programistyczne potrzebują dni, tygodni, a nawet dłużej, aby w pełni przetestować.
  • Testowanie białoskrzynkowe w testowaniu oprogramowania powinno być przeprowadzane na aplikacji oprogramowania w trakcie jej tworzenia po jej napisaniu i ponownie po każdej modyfikacji