Co to jest testowanie konfiguracji? Przykładowe przypadki testowe

⚡ Inteligentne podsumowanie

Testowanie konfiguracji polega na uruchomieniu aplikacji w różnych kombinacjach oprogramowania i sprzętu, dzięki czemu zespół może potwierdzić, że wszędzie nadal obowiązują wymagania funkcjonalne, a także określić optymalną konfigurację na potrzeby wydania.

  • 🧩 Zakres: OperaSystemy operacyjne, przeglądarki, wersje baz danych, sterowniki, pamięć i urządzenia peryferyjne — wszystkie te elementy liczą się jako konfiguracje.
  • 📐 Dwa typy: Testowanie konfiguracji oprogramowania obejmuje platformy i aktualizacje; testowanie konfiguracji sprzętu obejmuje podłączone urządzenia.
  • 🗂️. Najpierw macierz: Zbuduj macierz kombinacji, a następnie ustal jej priorytety, ponieważ uzyskanie wyczerpującego pokrycia jest nieosiągalne.
  • 🖥️. Maszyny wirtualne: Migawki zastępują powtarzające się cykle instalacji i deinstalacji na fizycznych maszynach testowych.
  • 🏦 Przykład rozwiązania: Przykłady testów sprzętowych przedstawiono na przykładzie aplikacji bankowej i modeli maszyn do liczenia banknotów.
  • 🚨 Celowe niepowodzenie: Celowe usunięcie warunku wstępnego ujawnia defekty, które w pełni wyposażone laboratorium są ukryte.

Testowanie konfiguracji w różnych kombinacjach oprogramowania i sprzętu

Testowanie konfiguracji

Testowanie konfiguracji jest techniką testowania oprogramowania, w której aplikację testuje się przy użyciu wielu kombinacji oprogramowania i sprzętu, w celu oceny wymagań funkcjonalnych i znalezienia optymalnej konfiguracji, w której aplikacja będzie działać bez defektów lub wad.

Konfiguracja to dowolna kombinacja, którą produkt musi obsługiwać: wersja systemu operacyjnego, przeglądarka, wersja bazy danych, sterownik, rozmiar pamięci lub podłączone urządzenie peryferyjne. Warto oddzielić to od testy zgodności, który pyta, czy produkt współistnieje z innym oprogramowaniem i platformami. Testowanie konfiguracji zadaje węższe pytanie: czy ta sama kompilacja nadal zachowuje się poprawnie po zmianie obsługiwanej przez nią konfiguracji?

Przykład testowania konfiguracji

Jako przykład można podać aplikację działającą na komputerze stacjonarnym.

Aplikacje desktopowe są zazwyczaj tworzone w formie dwu- lub trójwarstwowej. Weźmy na przykład aplikację desktopową trójwarstwową opracowaną w ASP.NETskładający się z Klienta, Serwera Logiki Biznesowej i Serwera Bazy Danych, przy czym każdy komponent obsługuje platformy wymienione poniżej.

  • Platforma kliencka – Windows XP Windows 7, Windows 8 i tak dalej
  • Platforma serwerowa – Windows Serwer 2008, Windows Serwer 2008 R2, Windows Serwer 2012 R2
  • Baza danych - SQL Serwer 2008, SQL Server 2008 R2, SQL Server 2012 itd.

Tester musi przetestować klienta, serwer i bazę danych jednocześnie na wszystkich platformach i wersjach bazy danych, aby potwierdzić, że aplikacja działa poprawnie i nie powoduje awarii w żadnej obsługiwanej kombinacji.

Testowanie konfiguracji nie ogranicza się do oprogramowania. Dotyczy również sprzętu, dlatego aspekt sprzętowy nazywa się testowaniem konfiguracji sprzętu: drukarek, skanerów, kamer internetowych i podobnych urządzeń, które testowana aplikacja musi obsługiwać. Poniższa matryca pokazuje, jak te kombinacje są rozmieszczane przed rozpoczęciem testu.

Macierz testowania konfiguracji kombinacji klienta, serwera i bazy danych

Wymagania wstępne dotyczące testowania konfiguracji

Zanim rozpocznie się test konfiguracji w jakimkolwiek projekcie, muszą zostać spełnione trzy warunki wstępne.

  • Utworzenie macierzy zawierającej listę różnych kombinacji konfiguracji oprogramowania i sprzętu
  • Nadawanie priorytetu tym konfiguracjom, ponieważ testowanie każdej z nich nie jest realistyczne
  • Testowanie każdej konfiguracji w kolejności ustalonej przez priorytetyzację

Cele testowania konfiguracji

Testowanie konfiguracji ma na celu osiągnięcie następujących celów.

  • Sprawdź, czy aplikacja spełnia wymagania dotyczące konfigurowalności
  • Celowo wywołuj awarie, aby ujawnić wady, których nie da się wykryć podczas zwykłego testowania, np. poprzez zmianę ustawień regionalnych, takich jak strefa czasowa, język lub format daty.
  • Określ optymalną konfigurację testowanej aplikacji
  • Analizuj wydajność systemu podczas zmiany zasobów sprzętowych, np. poprzez dodawanie modułów równoważenia obciążenia, zwiększanie lub zmniejszanie pamięci lub podłączanie różnych modeli drukarek
  • Przeanalizuj wydajność systemu w odniesieniu do priorytetów, oceniając, jak dobrze testy wykorzystały dostępne zasoby, aby osiągnąć optymalną konfigurację.
  • Zweryfikuj system w środowisku rozproszonym geograficznie, na przykład z serwerem w jednej lokalizacji i klientami w innej, gdzie system powinien działać niezależnie od lokalnych ustawień systemowych
  • Sprawdź, jak łatwo defekty się odtwarzają po zmianie konfiguracji
  • Potwierdź, że elementy aplikacji pozostają tracmożliwe dzięki odpowiedniej dokumentacji i wyraźnie identyfikowalnym zapisom wersji
  • Potwierdź, że elementy aplikacji pozostają możliwe do zarządzania przez cały czas cykl życia oprogramowania

Jak przeprowadzić testowanie konfiguracji

Strategia zależy od tego, który z dwóch typów testowania konfiguracji jest objęty zakresem.

  • Testowanie konfiguracji oprogramowania
  • Testowanie konfiguracji sprzętowej

Testowanie konfiguracji oprogramowania

Testowanie konfiguracji oprogramowania polega na uruchomieniu testowanej aplikacji w wielu systemach operacyjnych, z wieloma aktualizacjami oprogramowania i wersjami zależności. Jest to czasochłonne, ponieważ każda runda wiąże się z koniecznością instalacji i deinstalacji oprogramowania.

Powszechnym sposobem na obniżenie tych kosztów jest testowanie wirtualne maszynyMaszyna wirtualna to środowisko zainstalowane w oprogramowaniu, które zachowuje się jak sprzęt fizyczny, dzięki czemu tester pracuje tak, jakby pracował na prawdziwej maszynie, a sama konfiguracja jest jednorazowa. Maszyny wirtualne symulują rzeczywiste konfiguracje na tyle wiernie, że umożliwiają przeprowadzenie większości testów funkcjonalnych.

Zamiast instalować i odinstalowywać aplikację na kilku maszynach fizycznych, aplikacja jest instalowana na maszynie wirtualnej, a testowanie jest kontynuowane od tego momentu. Równoległe uruchomienie kilku maszyn wirtualnych, z których każda została przywrócona z migawki, znacznie upraszcza pracę.

Testowanie konfiguracji oprogramowania można zazwyczaj rozpocząć, kiedy

  • Określono wymagania dotyczące konfigurowalności, które należy przetestować
  • Środowisko testowe jest gotowy
  • Zespół testujący jest przeszkolony w zakresie testowania konfiguracji
  • Wydana wersja przeszła testy jednostkowe i integracyjne

Typowy strategia testowania polega na uruchomieniu zestawu testów funkcjonalnych dla każdej konfiguracji oprogramowania i sprawdzeniu, czy aplikacja działa zgodnie z przeznaczeniem, bez wad i błędów. Drugą strategią jest celowe zaliczanie niepowodzeń testów i sprawdzanie, jak sprawnie system sobie z nimi radzi.

Przykład:

Weźmy aplikację bankową, którą trzeba przetestować w wielu przeglądarkach. Hostowana w środowisku, w którym spełnione są wszystkie wymagania wstępne, może z powodzeniem przejść testy jednostkowe i testy integracyjne w laboratorium testowym.

Zainstalowana u klienta ta sama aplikacja może ulec awarii, ponieważ na tych komputerach brakuje aktualizacji oprogramowania lub wersji zależności, od których aplikacja korzysta bezpośrednio lub pośrednio. Celowe niezaliczenie testów poprzez usunięcie niektórych wymagań dotyczących konfigurowalności, a następnie ponowne przeprowadzenie testów, ujawnia ten typ defektu, zanim klient go wykryje. Poniższy zrzut ekranu przedstawia reprodukcję takiej awarii zależnej od konfiguracji w kontrolowanym środowisku.

Aplikacja bankowa nie działa na komputerze klienckim z powodu braku wymagań wstępnych

Testowanie konfiguracji sprzętowej

Testowanie konfiguracji sprzętu przeprowadza się zazwyczaj w laboratorium, w którym znajdują się fizyczne maszyny z podłączonymi do nich różnymi urządzeniami.

Za każdym razem, gdy udostępniana jest nowa wersja oprogramowania, oprogramowanie jest instalowane na każdym z tych komputerów, a na każdym z nich uruchamiany jest zestaw testów w celu potwierdzenia, że ​​aplikacja działa z podłączonym urządzeniem.

To zadanie wymaga znacznego wysiłku: należy zainstalować oprogramowanie na każdym komputerze, podłączyć sprzęt, a następnie uruchomić pakiet ręcznie lub najpierw zautomatyzować tę czynność.

Należy również określić rodzaj testowanego sprzętu. Sprzęt komputerowy i urządzenia peryferyjne są tak różnorodne, że uwzględnienie ich wszystkich jest niemożliwe, dlatego tester analizuje, z których urządzeń faktycznie korzystają użytkownicy i przeprowadza testy zgodnie z tą priorytetyzacją.

Przykładowe przypadki testowe

Rozważmy scenariusz bankowy testowany pod kątem kompatybilności sprzętowej. Aplikacja bankowa połączona z liczarką banknotów musi współpracować z kilkoma modelami, takimi jak Rolex, Strob, Maxsell i StoK.

Próba przypadki testowe dla maszyny do liczenia banknotów obejmują następujące elementy.

  • Sprawdź połączenie między aplikacją a modelem Rolex, jeśli wymagania wstępne NIE są zainstalowane
  • Sprawdź połączenie między aplikacją a modelem Rolex, gdy zainstalowane są wymagania wstępne
  • Sprawdź, czy system prawidłowo liczy banknoty
  • Sprawdź, w jaki sposób system raportuje błędne liczenie
  • Zweryfikuj sposób postępowania z banknotami zmanipulowanymi
  • Sprawdź czasy reakcji
  • Sprawdź, czy wykrywane są fałszywe notatki

Te przypadki dotyczą pojedynczego modelu, a każdy pozostały model na rynku musi zostać skonfigurowany w laboratorium testowym i przetestowany w ten sam sposób, co rzadko jest praktyczne w przypadku firmy. Zlecenie testowania konfiguracji sprzętu organizacji specjalizującej się w tym zakresie jest często bardziej realistyczną opcją.

FAQ

Testowanie konfiguracji zmienia obsługiwane przez produkt ustawienia — system operacyjny, wersję bazy danych, podłączone urządzenie — i ponownie uruchamia pakiet. Testowanie zgodności sprawdza, czy produkt współistnieje z zewnętrznym oprogramowaniem, platformami i przeglądarkami, z którymi musi współpracować.

Tyle, ile uzasadnia ryzyko. Analiza użytkowania decyduje o kolejności: najpierw uwzględniane są kombinacje platformy, przeglądarki i urządzenia, z których korzysta większość użytkowników, a następnie minimalne obsługiwane specyfikacje.

Zazwyczaj zespół ds. zapewnienia jakości (QA), wspierany przez administratorów systemów, którzy zapewniają środowiska. W przypadku produktów o dużym zapotrzebowaniu na sprzęt, za obsługę urządzeń fizycznych odpowiada dedykowany zespół laboratoryjny lub specjalista zewnętrzny.

Platformy maszyn wirtualnych i kontenerów do instalacji oprogramowania, laboratoriów urządzeń lub farm urządzeń w chmurze do sprzętu i przeglądarek oraz automatyzacja testów framework umożliwiający odtwarzanie tego samego pakietu w każdej konfiguracji.

Eksplozja kombinatoryczna, koszt licencji i urządzeń fizycznych, powolne wdrażanie środowiska oraz defekty reprodukujące się tylko w jednej konfiguracji. Priorytetyzacja i wirtualizacja rozwiązują większość z tych problemów.

Po zakończeniu testów jednostkowych i integracyjnych, a zazwyczaj równolegle z testami systemowymi, powtarza się je przed każdym głównym wydaniem, ponieważ nowa wersja systemu operacyjnego lub sterownika może unieważnić wcześniejsze wyniki.

Modele klasyfikują kombinacje konfiguracji według rzeczywistego użycia i historycznych danych o defektach, dzięki czemu macierz jest ograniczana do wierszy o najwyższym ryzyku. Grupują również awarie, aby pokazać, które z nich mają wspólną przyczynę konfiguracji.

Tak. Tworzy sparametryzowane rusztowania testowe, skrypty provisioningu środowiska i definicje zadań CI, które uruchamiają jeden pakiet w wielu konfiguracjach. Sama macierz musi nadal pochodzić z listy obsługiwanych platform.

Podsumuj ten post następująco: