Testy kombinatoryczne
Luty 24, 2020
wprowadzenie:
obecnie systemy oprogramowania są różnorodne, a także złożone i mają wiele możliwych konfiguracji. Te cechy i funkcje w systemach oprogramowania zainaugurował zapotrzebowanie na oprogramowanie i aplikacje, które są wyjątkowo zaprojektowane i mają innowacyjne, a także kreatywne funkcje. Oprócz tego klienci i użytkownicy wymagają również wykładniczej wydajności, funkcjonalności, jakości, skalowalności, efektywności i innych. Aby osiągnąć te cele i spełnić wymagania klientów i konsumentów, inżynierowie oprogramowania wykorzystują różne innowacyjne techniki i metodologie do opracowania produktu, a także przeprowadzają rygorystyczne testy, ponieważ produkty wydane z nieodpowiednimi testami mogą spowodować nieodwracalne szkody i straty dla klienta, a także użytkownika, który instaluje aplikację lub korzysta z oprogramowania. Co więcej, może również powodować uszkodzenia ciała, które mogą prowadzić do dużych strat ekonomicznych lub naruszeń bezpieczeństwa, a także wpływać na jakość codziennego życia. Jednak testerzy oprogramowania często mają ograniczony czas i budżet, co często uniemożliwia wyczerpujące testowanie oprogramowania. Ponadto testerzy często intuicyjnie testują wady, które przewidują, podczas gdy mniej przewidywane wady są pomijane i nie testowane. Najlepszym sposobem na przezwyciężenie takiej sytuacji jest wdrożenie testów kombinatorycznych w oprogramowaniu i aplikacjach. Testowanie kombinatoryczne jest podejściem, które może systematycznie badać ustawienie systemu w kontrolowanej liczbie testów i systematycznie obejmując interakcje T-way. Dlatego tutaj jest wyjaśniona dyskusja na temat testowania kombinatorycznego, aby zdefiniować jego znaczenie, metody i inne główne cechy.
opisywanie testów kombinatorycznych:
testy kombinatoryczne są obecnie praktycznym podejściem, które zapewnia wysoką jakość testów przy niższych kosztach. Rozkłada brutalną siłę na kroki, aby stopniowo zaatakować problem, oddzielając działania analizy i syntezy, które można określić ilościowo i monitorować, a także częściowo wspierać za pomocą narzędzi. Co więcej, Testy kombinatoryczne są niezwykle proste w zastosowaniu. Jako technika oparta na specyfikacji nie wymaga wiedzy na temat testowanej implementacji. Testy kombinatoryczne opierają się na założeniu, że wiele błędów w oprogramowaniu może wynikać tylko z interakcji dwóch lub więcej parametrów. Dlatego testowanie kombinatoryczne jest skuteczną techniką testowania oprogramowania z wieloma parametrami konfiguracyjnymi. Służy głównie do wykrywania błędów interakcji spowodowanych kombinacją parametrów. Rodzaj testu generowanego przez testy kombinatoryczne ma na celu wygenerowanie pokrycia pokrywającego wszystkie kombinacje parametrów t, gdzie ” t ” jest daną wytrzymałością pokrycia. Podstawowe testy kombinatoryczne mogą być stosowane na dwa sposoby, które mogą być stosowane oddzielnie lub jednocześnie. Są to:
- kombinacje wartości konfiguracyjnych lub parametrów, w których tablice pokrywające są używane do wyboru wartości konfigurowalnych parametrów, ewentualnie z Pomocą tych samych testów, które działają przeciwko wszystkim kombinacjom konfiguracyjnym.
- Tablice pokrywające służą do wybierania wartości danych wejściowych, które następnie stają się częścią kompletnych przypadków testowych, tworząc kombinezon testowy dla aplikacji. Zastosowanie tej formy testów kombinatorycznych do oprogramowania w świecie rzeczywistym jest trudne, ponieważ prezentuje wyższy stopień interakcji, dla których mogą być wymagane bardzo duże testy.
metody używane do generowania kombinatorów testowych:
popularność testów kombinatorycznych znacznie wzrosła w ostatnich latach. Ze względu na swoje liczne zalety jest wykorzystywany przez testerów oprogramowania na różnych poziomach testowania. Testerzy wdrażają testy kombinatoryczne, aby uzyskać skuteczne wyniki w opłacalnym tempie, od testów modelowych, jednostkowych, integracyjnych, systemowych i akceptacyjnych po testy czarno-białe, oparte na modelach i inne. Co więcej, aby wygenerować kombinezony testowe do testów kombinatorycznych, inżynierowie oprogramowania używają szerokiej gamy narzędzi, co jeszcze bardziej upraszcza proces testowania oprogramowania. Te kombinatoryczne kombinezony testowe zapewniają wyższe pokrycie T-way, nawet jeśli generowanie tablic o wyższym pokryciu T-way może zużywać znaczne zasoby obliczeniowe i dawać duże wyniki. Dodatkowo, większość algorytmów do testowania kombinatorycznego skupia się na szczególnym przypadku testowania dwukierunkowego. Ponadto, aby skonstruować kombinezon testowy do ręcznego testowania kombinatorycznego, stosuje się trzy metody. Metody te zapewniają różne korzyści testerowi i zapewniają, że wydajność jest tak dokładna, jak to możliwe. Te metody / algorytmy są:
- metoda algebraiczna: oferuje wydajne konstrukcje w odniesieniu do czasu, jednak trudno jest uzyskać dokładne wyniki na szerokiej i ogólnej różnorodności danych wejściowych.
- : Są to dobrze zbadane typy algorytmów do budowy tablic pokrywających, ponieważ okazały się one stosunkowo wydajne pod względem czasu i dokładności.
- Wyszukiwanie heurystyczne: Wyszukiwanie heurystyczne, szczególnie jeśli zastosowanie stymulowanego wyżarzania (SA) zapewniło najdokładniejsze wyniki w kilku przypadkach. Ta lokalna metoda wyszukiwania dostarczyła wiele najmniejszych zestawów testowych dla różnych konfiguracji systemu; jednak kosztem czasu wykonania generowanie zestawów testowych.
:
powszechnie znany jako all-pair testing, pairwise testing jest kombinatoryczną metodą testowania oprogramowania, które dla każdej pary parametrów wejściowych do systemu, testuje wszystkie możliwe dyskretne kombinacje tych parametrów. Jest to technika projektowania testów, która zapewnia stuprocentowe pokrycie testu. Najczęstsze błędy w programie są zwykle znalezione I wywołane przez parametr wejściowy lub interakcję między parą parametrów. Błędy związane z interakcjami pomiędzy trzema lub więcej parametrami są zarówno coraz mniej powszechne, jak i coraz droższe do znalezienia, takie testowanie ma jako swój limit testowanie wszystkich możliwych wejść. W tym przypadku technika kombinatoryczna do wybierania przypadków testowych, takich jak wszystkie pary, jest bardzo użytecznym kompromisem kosztów i korzyści, który umożliwia znaczne zmniejszenie liczby przypadków testowych bez drastycznego pogorszenia pokrycia funkcjonalnego. Dlatego technika testowania parami jest niezwykle przydatna w projektowaniu testów dla aplikacji obejmujących wiele parametrów. Jego kombinezon testowy obejmuje wszystkie kombinacje i dlatego nie jest wyczerpujący, ale bardzo skuteczny w wykrywaniu błędów. Chociaż testowanie w parach może znacznie zmniejszyć kombinacje, nadal pozostaje naprawdę skuteczne pod względem wykrywania usterek i jest rzeczywiście inteligentną techniką projektowania testów, która obiecuje najlepsze wysiłki testowe i wyjątkową skuteczność.
zalety testowania kombinatorycznego:
powyższa dyskusja na temat testowania kombinatorycznego odzwierciedla jego znaczenie, a także użyteczność. Jest to jedna z najbardziej skutecznych technik testowania oprogramowania, ponieważ testuje oprogramowanie z wieloma konfigurowalnymi parametrami. Ponadto za pomocą testów kombinatorycznych można łatwo wykryć błędy interakcji spowodowane kombinacją parametrów. Kolejną zaletą tego typu testów jest to, że zapewnia wysokiej jakości testy w bardzo opłacalnym tempie, co nie tylko pomaga programistom i testerom, ale także przynosi korzyści organizacji, dla której produkt jest opracowywany. Dlatego inne korzyści z tego podejścia to:
- obsługuje kwestie pokrycia podczas definiowania planu testowego.
- pozwala na systematyczne planowanie testu.
- można praktycznie zastosować do dowolnego oprogramowania i na różnych poziomach abstrakcji.
- wyższy zasięg testu z lepszą gwarancją jakości.
- nie wymaga dostępu do wewnętrznego kodu źródłowego SUT.
- maksymalizuje wartość każdego testowanego scenariusza.
- znaczne zmniejszenie liczby testów.
- może kontrolować ryzyko i jest łatwy do przeglądu.
podsumowanie:
systemy oprogramowania są złożone i mogą powodować wykładniczą liczbę możliwych testów. Każdy produkt, który zostanie wydany bez odpowiednich testów, może stanowić poważne zagrożenie dla organizacji, jak również dla użytkownika. Dlatego, aby upewnić się, że taka sytuacja lub problem nie występuje po wydaniu oprogramowania, testerzy oprogramowania przeprowadzają rygorystyczne testy. Co więcej, często używają testów kombinatorycznych na różnych poziomach testowania, ponieważ mogą łatwo testować oprogramowanie z wieloma konfigurowalnymi parametrami. Krótko mówiąc, testy kombinatoryczne są używane do wykrywania błędów interakcji spowodowanych kombinacją parametrów. Kluczowy wgląd leżący u podstaw skuteczności testów kombinatorycznych wynika z serii badań i badań przeprowadzonych przez NIST w latach 1999-2004. Jest to niezwykle użyteczne podejście, które może systematycznie badać ustawienie systemu w łatwej do opanowania liczbie testów. Jest to podejście, które produkuje i wykonuje testy wysokiej jakości w bardzo opłacalnym tempie. Ponadto jest to skuteczna technika planowania testów, która może poradzić sobie z problemami pokrycia tak wcześnie, jak to możliwe. Dlatego, jeśli inżynier oprogramowania chce uzyskać najlepsze wyniki testów, powinien z pewnością wykonać testy kombinatoryczne na wczesnym etapie cyklu życia oprogramowania (SDLC).