black box testing an depth tutorial with examples
W tym samouczku, korzystając z mojego przemysłowego doświadczenia w testowaniu oprogramowania, zapoznajmy się z typami i technikami testowania czarnoskrzynkowego wraz z jego procesem, zaletami i wadami oraz niektórymi narzędziami automatyzacji do testowania innych niż testowanie ręczne.
Dowiemy się również o różnicach między testami białoskrzynkowymi a testami czarnoskrzynkowymi.
Lista samouczków „Techniki testowania czarnej skrzynki”:
Samouczek nr 1: Co to jest testowanie czarnoskrzynkowe
Samouczek nr 2: Co to jest testowanie w białej skrzynce
Samouczek nr 3: Uproszczone testy funkcjonalne
Samouczek nr 4: Co to jest testowanie przypadków użycia
Samouczek nr 5 : Technika testowania tablicy ortogonalnej
Techniki
Samouczek nr 6: Analiza wartości brzegowych i podział równoważności
Samouczek nr 7: Testowanie tabeli decyzyjnej
Samouczek nr 8: Testowanie przejść między stanami
Samouczek nr 9 : Zgadywanie błędów
Samouczek nr 10: Metody testowania oparte na wykresach
Prawie każdy z nas codziennie przeprowadza testy czarnoskrzynkowe!
Niezależnie od tego, czy się tego nauczyliśmy, czy nie, wszyscy wielokrotnie wykonywaliśmy i przeprowadzaliśmy testy czarnoskrzynkowe w naszym codziennym życiu !!
Z samej nazwy można prawdopodobnie zrozumieć, że implikuje ona interakcję z systemem, że testujesz jako tajemnicze pudełko. Oznacza to, że nie masz wystarczającej wiedzy na temat wewnętrznego działania systemu, ale wiesz, jak powinien on zachowywać się.
Jeśli weźmiemy przykład aby przetestować nasz samochód lub rower, zawsze jeździmy nim, aby upewnić się, że nie zachowuje się w nietypowy sposób. Widzieć? Zrobiliśmy już testy czarnej skrzynki.
Czego się nauczysz:
- Co to jest testowanie czarnoskrzynkowe?
- Rodzaje testów czarnoskrzynkowych
- Narzędzia do testowania czarnej skrzynki
- Techniki testowania czarnoskrzynkowego
- Jak to zrobić krok po kroku?
- Zalety i wady
- Różnica między testami białoskrzynkowymi a testami czarnoskrzynkowymi
- Wniosek
- rekomendowane lektury
Co to jest testowanie czarnoskrzynkowe?
Testy czarnoskrzynkowe są również znane jako testy behawioralne, testy nieprzezroczyste, testy zamknięte, testy oparte na specyfikacji lub testy oko w oko.
Jest to metoda testowania oprogramowania, która analizuje funkcjonalność oprogramowania / aplikacji, nie wiedząc zbyt wiele o wewnętrznej strukturze / projekcie testowanego elementu i porównuje wartość wejściową z wartością wyjściową.
W testach czarnoskrzynkowych główny nacisk kładzie się na funkcjonalność całego systemu. Termin „Testowanie behawioralne” jest również używany do testów czarnoskrzynkowych. Projekt testu behawioralnego różni się nieco od projektu testu czarnoskrzynkowego, ponieważ korzystanie z wiedzy wewnętrznej nie jest surowo zabronione, ale nadal jest odradzane.
jak pisać przypadki testowe dla aplikacji internetowych
Każda metoda testowania ma swoje zalety i wady. Istnieje kilka błędów, których nie można znaleźć za pomocą jedynej techniki czarnej skrzynki lub tylko techniki białej skrzynki.
Większość aplikacji testowana jest metodą Black Box. Musimy uwzględnić większość przypadków testowych, aby większość błędów została wykryta przez plik Czarna skrzynka metoda.
Testowanie to odbywa się przez cały cykl tworzenia oprogramowania i testowania, tj. Na etapach testów jednostkowych, integracyjnych, systemowych, akceptacyjnych i regresyjnych.
Może to być zarówno funkcjonalne, jak i niefunkcjonalne.
Rodzaje testów czarnoskrzynkowych
Praktycznie istnieje kilka typów testów czarnoskrzynkowych, które są możliwe, ale jeśli weźmiemy pod uwagę jego główny wariant, to poniżej wymienione są dwa podstawowe.
# 1) Testowanie funkcjonalne
Ten typ dotyczy wymagań funkcjonalnych lub specyfikacji aplikacji. Tutaj testowane są różne działania lub funkcje systemu, dostarczając dane wejściowe i porównując rzeczywiste dane wyjściowe z oczekiwanymi.
Na przykład ,kiedy testujemy listę rozwijaną, klikamy na nią i sprawdzamy, czy się rozwija, a wszystkie oczekiwane wartości są wyświetlane na liście.
Kilka głównych typów testów funkcjonalnych to:
- Testowanie dymu
- Testowanie poczytalności
- Testy integracyjne
- Testowanie systemu
- Testowanie regresji
- Testy akceptacyjne użytkowników
=> Przeczytaj więcej Testy funkcjonalności .
# 2) Testowanie niefunkcjonalne
Oprócz funkcjonalności wymagań istnieje również kilka aspektów niefunkcjonalnych, które należy przetestować w celu poprawy jakości i wydajności aplikacji.
Kilka głównych typów testów niefunkcjonalnych obejmuje:
- Test użyteczności
- Testowanie obciążenia
- Test wydajności
- Testowanie zgodności
- Test naprężeń
- Testowanie skalowalności
=> Przeczytaj więcej Testy niefunkcjonalne .
Narzędzia do testowania czarnej skrzynki
Narzędzia Black Box Testing to głównie narzędzia do nagrywania i odtwarzania. Te narzędzia są używane do testowania regresji, aby sprawdzić, czy nowa kompilacja spowodowała błąd w poprzedniej działającej funkcjonalności aplikacji.
Te narzędzia do nagrywania i odtwarzania rejestrują przypadki testowe w postaci niektórych skryptów, takich jak TSL, skrypt VB, JavaScript, Perl itp.
Techniki testowania czarnoskrzynkowego
Aby systematycznie testować zestaw funkcji, konieczne jest zaprojektowanie przypadków testowych. Testerzy mogą tworzyć przypadki testowe z dokumentu specyfikacji wymagań, korzystając z następujących technik testowania czarnoskrzynkowego.
- Partycjonowanie równoważności
- Analiza wartości brzegowych
- Testowanie tabeli decyzyjnej
- Testowanie przejść między stanami
- Zgadywanie błędów
- Metody testowania oparte na wykresach
- Testowanie porównawcze
Przyjrzyjmy się szczegółowo każdej technice.
1) Partycjonowanie równoważności
Technika ta jest również znana jako partycjonowanie klas równoważności (ECP). W tej technice wartości wejściowe do systemu lub aplikacji są dzielone na różne klasy lub grupy na podstawie ich podobieństwa w wyniku.
Dlatego zamiast używać każdej wartości wejściowej, możemy teraz użyć dowolnej wartości z grupy / klasy do przetestowania wyniku. W ten sposób możemy utrzymać pokrycie testowe, jednocześnie zmniejszając wiele poprawek i, co najważniejsze, poświęcony czas.
dobry program do pobierania muzyki dla Androida
Na przykład:
Jak pokazano na powyższym obrazku, pole tekstowe „WIEK” akceptuje tylko liczby od 18 do 60. Będą trzy zestawy klas lub grup.
Dwie niepoprawne klasy to:
a) mniejsze lub równe 17.
b) większe lub równe 61.
Jedna ważna klasa to od 18 do 60 lat.
W ten sposób ograniczyliśmy przypadki testowe do tylko 3 przypadków testowych w oparciu o utworzone klasy, tym samym obejmując wszystkie możliwości. Zatem przetestowanie dowolnej wartości z każdego zestawu klasy jest wystarczające do przetestowania powyższego scenariusza.
=> Zalecana lektura - Co to jest partycjonowanie równoważne?
# 2) Analiza wartości brzegowych
Z samej nazwy możemy zrozumieć, że w tej technice skupiamy się na wartościach na granicach, ponieważ okazuje się, że wiele aplikacji ma dużą liczbę problemów na granicach.
Granica oznacza wartości bliskie granicy, przy których zmienia się zachowanie systemu. W analizie wartości granicznych testowane są zarówno prawidłowe, jak i nieprawidłowe dane wejściowe, aby zweryfikować problemy.
Na przykład:
Jeśli chcemy przetestować pole, w którym powinny być akceptowane wartości od 1 do 100, wybieramy wartości graniczne: 1-1, 1, 1 + 1, 100-1, 100 i 100 + 1. Zamiast używać wszystkich wartości od 1 do 100, używamy po prostu 0, 1, 2, 99, 100 i 101.
# 3) Testowanie tabeli decyzyjnej
Jak sama nazwa wskazuje, wszędzie tam, gdzie istnieją logiczne relacje, takie jak:
Jeśli
{
(Warunek = Prawda)
następnie action1;
}
else akcja2; / * (warunek = Fałsz) * /
Następnie tester zidentyfikuje dwa wyjścia (działanie 1 i działanie 2) dla dwóch warunków (prawda i fałsz). Tak więc w oparciu o prawdopodobne scenariusze rzeźbiona jest tabela decyzyjna w celu przygotowania zestawu przypadków testowych.
Na przykład:
Weźmy na przykład bank XYZ, który podaje stopę procentową dla seniora płci męskiej na poziomie 10%, a dla reszty społeczeństwa 9%.
W tym przykładowym warunku C1 ma dwie wartości jako prawda i fałsz, warunek C2 ma również dwie wartości jako prawda i fałsz. Całkowita liczba możliwych kombinacji wyniosłaby wówczas cztery. W ten sposób możemy wyprowadzić przypadki testowe przy użyciu tabeli decyzyjnej.
# 4) Testowanie przejść między stanami
Testowanie przejść między stanami to technika używana do testowania różnych stanów testowanego systemu. Stan systemu zmienia się w zależności od warunków lub zdarzeń. Zdarzenia wyzwalają stany, które stają się scenariuszami i tester musi je przetestować.
najlepsze oprogramowanie do tworzenia schematów blokowych
Diagram systematycznych przejść stanów daje jasny obraz zmian stanu, ale jest skuteczny w przypadku prostszych zastosowań. Bardziej złożone projekty mogą prowadzić do bardziej złożonych diagramów przejść, przez co są mniej skuteczne.
Na przykład:
# 5) Zgadywanie błędów
To jest klasyczny przykład testowania opartego na doświadczeniu.
W tej technice tester może wykorzystać swoje doświadczenie w zachowaniu i funkcjach aplikacji, aby odgadnąć obszary podatne na błędy. Wiele defektów można znaleźć za pomocą zgadywania błędów, gdzie większość programistów zwykle popełnia błędy.
Kilka typowych błędów, z którymi programiści zwykle zapominają:
- Dzielony przez zero.
- Obsługa wartości null w polach tekstowych.
- Zaakceptowanie przycisku Prześlij bez wartości.
- Przesyłanie pliku bez załącznika.
- Przesyłanie pliku o rozmiarze mniejszym lub większym niż limit.
# 6) Metody testowania oparte na grafach
Każda aplikacja składa się z kilku obiektów. Wszystkie takie obiekty są identyfikowane i przygotowywany jest wykres. Na podstawie tego wykresu obiektów identyfikowane są wszystkie relacje między obiektami, a przypadki testowe są odpowiednio zapisywane, aby wykryć błędy.
# 7) Testowanie porównawcze
Różne niezależne wersje tego samego oprogramowania są używane do porównywania między sobą w celu testowania w tej metodzie.
Jak to zrobić krok po kroku?
Ogólnie rzecz biorąc, gdy w celu przetestowania projektu / aplikacji stosuje się systematyczny proces, jakość jest utrzymywana i jest przydatna na dłuższą metę dla dalszych rund testowania.
- Najważniejszym krokiem jest zrozumienie specyfikacji wymagań aplikacji. Powinien istnieć odpowiednio udokumentowany SRS (specyfikacja wymagań oprogramowania).
- Korzystając z wyżej wymienionych technik testowania czarnoskrzynkowego, takich jak analiza wartości brzegowych, partycjonowanie równoważności itp., Zestawy ważnych i nieprawidłowych danych wejściowych są identyfikowane z ich pożądanymi danymi wyjściowymi, a przypadki testowe są projektowane na tej podstawie.
- Zaprojektowane przypadki testowe są wykonywane w celu sprawdzenia, czy powiodły się, czy nie, poprzez weryfikację rzeczywistych wyników z oczekiwanymi wynikami.
- Przypadki zakończonych niepowodzeniem testów są zgłaszane jako Wady / Błędy i kierowane do zespołu programistów, aby je naprawić.
- Ponadto, w oparciu o naprawione usterki, tester ponownie testuje usterki, aby sprawdzić, czy się powtarzają, czy nie.
Zalety i wady
Zalety
- Tester nie musi mieć przygotowania technicznego. Ważne jest, aby testować, będąc na miejscu użytkownika i myśląc z punktu widzenia użytkownika.
- Testowanie można rozpocząć po zakończeniu tworzenia projektu / aplikacji. Zarówno testerzy, jak i programiści pracują niezależnie, nie ingerując w swoją przestrzeń.
- Jest bardziej skuteczny w przypadku dużych i złożonych aplikacji.
- Wady i niespójności można zidentyfikować na wczesnym etapie testowania.
Niedogodności
- Bez wiedzy technicznej lub programistycznej istnieje szansa na zignorowanie ewentualnych warunków testowanego scenariusza.
- W określonym czasie istnieje możliwość mniejszego testowania i pomijania wszystkich możliwych wejść i testowania ich wyjścia.
- Pełne pokrycie testów nie jest możliwe w przypadku dużych i złożonych projektów.
Różnica między testami białoskrzynkowymi a testami czarnoskrzynkowymi
Poniżej podano kilka różnic między nimi:
Testowanie czarnoskrzynkowe | Testowanie w białej skrzynce |
---|---|
Jest to metoda testowa bez znajomości faktycznego kodu lub wewnętrznej struktury aplikacji | Jest to metoda testowa posiadająca wiedzę o rzeczywistym kodzie i wewnętrznej strukturze aplikacji |
Są to testy wyższego poziomu, takie jak testy funkcjonalne. | Ten typ testów jest wykonywany na niższym poziomie testów, takich jak testy jednostkowe, testy integracyjne |
Koncentruje się na funkcjonalności testowanego systemu | Koncentruje się na rzeczywistym kodzie - programie i jego składni |
Testowanie czarnoskrzynkowe wymaga do przetestowania specyfikacji wymagań | Testowanie White Box wymaga dokumentów projektowych z diagramami przepływu danych, schematami blokowymi itp. |
Testowanie czarnoskrzynkowe jest wykonywane przez testerów | Testy białoskrzynkowe są wykonywane przez programistów lub testerów posiadających wiedzę programistyczną. |
Wniosek
Oto niektóre z podstawowych punktów dotyczących testowania czarnoskrzynkowego oraz przegląd jego technik i metod.
Ponieważ nie da się przetestować wszystkiego przy udziale człowieka ze stuprocentową dokładnością, efektywne wykorzystanie powyższych technik i metod zdecydowanie poprawi jakość systemu.
Podsumowując, jest to bardzo pomocna metoda weryfikacji funkcjonalności systemu i identyfikacji większości usterek.
Mam nadzieję, że zdobyłbyś dogłębną wiedzę na temat techniki testowania czarnej skrzynki.
rekomendowane lektury
- Kluczowe różnice między testami czarnoskrzynkowymi a białoskrzynkowymi
- Najlepsze narzędzia do testowania oprogramowania 2021 [Narzędzia do automatyzacji testów QA]
- Testy funkcjonalne a testy niefunkcjonalne
- Testowanie w parach lub samouczek testowania we wszystkich parach z narzędziami i przykładami
- Testowanie białoskrzynkowe: kompletny przewodnik z technikami, przykładami i narzędziami
- Samouczek dotyczący testowania objętościowego: przykłady i narzędzia do testowania objętościowego
- Samouczek testowania konfiguracji z przykładami
- Testing Primer Pobierz eBook