Historia pytania
Metoda "szarego pudełka" powstała jako kompromis między "czarnym" a "białym" pudełkiem, aby wyeliminować ograniczenia tych metod. Zakłada częściową znajomość wewnętrznej struktury systemu podczas sprawdzania danych wejściowych i wyjściowych, czerpiąc korzyści z obu technik.
Problem
Często zadania wymagają wiedzy, która wykracza poza możliwości interfejsów użytkownika, ale dostęp do pełnego kodu źródłowego jest niedostępny. Ryzyko — nieprzetestowanie ważnych scenariuszy związanych z wewnętrznymi mechanizmami, ale jednocześnie nie zgłębianie szczegółów architektury, jak w przypadku "białego pudełka".
Rozwiązanie
Stosuje się, gdy istnieje częściowy dostęp do dokumentacji, architektury, API lub usług. Pozwala to na zidentyfikowanie błędów na styku frontu i backu oraz na zbadanie przetwarzania danych wewnątrz modułów.
Kluczowe cechy:
Czy można przeprowadzać testowanie metodą "szarego pudełka", jeśli nie masz w ogóle dostępu do dokumentacji lub kodu?
Nie. Metoda "szarego pudełka" zakłada, że tester ma przynajmniej częściowe informacje o wewnętrznej strukturze aplikacji. Jeśli pracujesz całkowicie "na ślepo", stosuje się raczej metodę "czarnego pudełka".
Czy przeglądanie logów jest formą testowania metodą "szarego pudełka"?
Tak, jeśli analizujesz logi, aby zrozumieć, jak dokładnie system przetwarza dane wejściowe, można to uznać za element podejścia "szarego pudełka", ponieważ nie ograniczasz się jedynie do interfejsu użytkownika.
Czy można stosować metodę "szarego pudełka" w testowaniu jednostkowym?
Nie. Testowanie jednostkowe to typowo obszar "białego pudełka", gdzie potrzebny jest pełny dostęp do kodu, a testerzy pracują na poziomie wewnętrznych funkcji.
Tester próbował zastosować "szare pudełko", opierając się tylko na przypuszczeniach i testowaniu interfejsu użytkownika, nie analizując API i nie żądając schematów architektonicznych.
Zalety:
Wady:
Przed testowaniem scenariuszy integracyjnych tester poprosił zespół o schematy architektoniczne, zbadał punkty końcowe API, przeprowadził analizę logów i zdołał wykryć problem na warstwie interakcji między backiem a frontem.
Zalety:
Wady: