Co to jest testowanie systemu? Typy z przykładem
Co to jest testowanie systemu?
Testowanie systemu to poziom testowania, który sprawdza kompletne i w pełni zintegrowane oprogramowanie. Celem testu systemu jest ocena kompleksowych specyfikacji systemu. Zwykle oprogramowanie jest tylko jednym z elementów większego systemu komputerowego. Ostatecznie oprogramowanie jest połączone z innymi systemami oprogramowania/sprzętu. Testowanie systemu definiuje się jako serię różnych testów, których jedynym celem jest sprawdzenie pełnego systemu komputerowego.
Objaśnienie wideo dotyczące testowania systemu
Kliknij tutaj jeśli film nie jest dostępny
Testowanie systemu jest metodą Blackbox
Dwie kategorie testowania oprogramowania
- Czarny Box Testowanie
- Biały Box Testowanie
Test systemu podlega testy czarnej skrzynki kategoria Testowanie oprogramowania.
Testowanie białoskrzynkowe to testowanie wewnętrznego działania lub kodu aplikacji. W przeciwieństwie, czarna skrzynka lub Testowanie systemu jest odwrotnością. Test systemu obejmuje zewnętrzne działanie oprogramowania z perspektywy użytkownika.
Co sprawdzasz w testach systemu?
Testowanie systemowe polega na testowaniu kodu oprogramowania pod kątem następujących kwestii:
- Testowanie w pełni zintegrowanych aplikacji, w tym zewnętrznych urządzeń peryferyjnych, w celu sprawdzenia, jak komponenty współdziałają ze sobą oraz z systemem jako całością. Nazywa się to również scenariuszem testowania kompleksowego.
- Zweryfikuj dokładne testowanie każdego wejścia w aplikacji, aby sprawdzić pożądane wyniki.
- Testowanie doświadczeń użytkownika z aplikacją.
To bardzo prosty opis tego, co obejmuje testowanie systemu. Musisz zbudować szczegółowe przypadki testowe i zestawy testów, które testują każdy aspekt aplikacji widziany z zewnątrz, bez patrzenia na rzeczywisty kod źródłowy. Aby dowiedzieć się więcej na temat kompleksowego podejścia do tego procesu, rozważ przeczytanie nt testy end-to-end.
Hierarchia testowania oprogramowania
Podobnie jak w przypadku niemal każdego procesu inżynierii oprogramowania, testowanie oprogramowania ma ustaloną kolejność, w jakiej należy wykonywać czynności. Poniżej znajduje się lista kategorii testowania oprogramowania ułożona w kolejności chronologicznej. Oto kroki podejmowane w celu pełnego przetestowania nowego oprogramowania w przygotowaniu do jego wprowadzenia na rynek:
- Testy jednostkowe przeprowadzane na każdym module lub bloku kodu podczas programowania. Testów jednostkowych zwykle robi to programista piszący kod.
- Testy integracyjne przeprowadzane przed, w trakcie i po integracji nowego modułu z głównym pakietem oprogramowania. Obejmuje to testowanie każdego pojedynczego modułu kodu. Jedno oprogramowanie może zawierać kilka modułów, które często są tworzone przez kilku różnych programistów. Kluczowe jest przetestowanie wpływu każdego modułu na cały model programu.
- Testowanie systemu wykonane przez profesjonalnego agenta testującego na gotowym oprogramowaniu przed jego wprowadzeniem na rynek.
- Testy akceptacyjne – beta testy produktu przeprowadzane przez rzeczywistych użytkowników końcowych.
Rodzaje testowania systemu
Istnieje ponad 50 rodzajów testów systemowych. Aby uzyskać wyczerpującą listę typów testowania oprogramowania kliknij tutaj. Poniżej wymieniliśmy typy testów systemowych, z których zazwyczaj korzysta duża firma zajmująca się tworzeniem oprogramowania
- Test użyteczności - skupia się głównie na łatwości obsługi aplikacji przez użytkownika, elastyczności w obsłudze kontrolek i zdolności systemu do realizacji swoich celów
- Testowanie obciążenia - trzeba wiedzieć, że rozwiązanie programowe będzie działać pod rzeczywistymi obciążeniami.
- Testy regresji - obejmuje testy przeprowadzane w celu upewnienia się, że żadne zmiany wprowadzone w trakcie procesu programowania nie spowodowały nowych błędów. Zapewnia również, że z czasem dodawanie nowych modułów oprogramowania nie spowoduje pojawienia się starych błędów.
- Testowanie odzyskiwania - ma to na celu wykazanie, że rozwiązanie programowe jest niezawodne, godne zaufania i może skutecznie naprawić ewentualne awarie.
- Testowanie migracji – ma to na celu zapewnienie możliwości przeniesienia oprogramowania ze starszych infrastruktur systemowych do obecnych infrastruktur systemowych bez żadnych problemów.
- Testy funkcjonalności - Znane również jako testowanie kompletności funkcjonalnej, Testy funkcjonalne polega na próbie wymyślenia wszelkich możliwych brakujących funkcji. Testerzy mogą sporządzić listę dodatkowych funkcjonalności, które produkt może posiadać, aby go ulepszyć podczas testów funkcjonalnych.
- Testowanie sprzętu/oprogramowania – IBM odnosi się do testowania sprzętu/oprogramowania jako „testowania sprzętu/oprogramowania”. Dzieje się tak, gdy tester podczas testowania systemu skupia swoją uwagę na interakcjach pomiędzy sprzętem i oprogramowaniem.
Jakie rodzaje testów systemowych powinni stosować testerzy?
Istnieje ponad 50 różnych typów testów systemowych. Konkretne typy używane przez testera zależą od kilku zmiennych. Zmienne te obejmują:
- Dla kogo pracuje tester – jest to główny czynnik decydujący o rodzaju testów systemowych, z których będzie korzystał tester. Metody stosowane w dużych firmach różnią się od metod stosowanych w firmach średnich i małych.
- Czas dostępny na testowanie – ostatecznie można zastosować wszystkie 50 typów testów. Czas jest często tym, co ogranicza nas do używania tylko typów, które są najbardziej odpowiednie dla projektu oprogramowania.
- Zasoby dostępne dla testera – oczywiście niektórzy testerzy nie będą mieli zasobów niezbędnych do przeprowadzenia danego typu testów. Na przykład, jeśli jesteś testerem pracującym dla dużej firmy zajmującej się tworzeniem oprogramowania, prawdopodobnie będziesz mieć drogie oprogramowanie zautomatyzowane testowanie oprogramowanie niedostępne dla innych.
- Edukacja testera oprogramowania — dla każdego rodzaju testowania oprogramowania istnieje pewna krzywa uczenia się. Aby móc korzystać z części oprogramowania, tester musi nauczyć się z niego korzystać.
- Budżet testowy – pieniądze stają się czynnikiem nie tylko dla mniejszych firm i indywidualnych twórców oprogramowania, ale także dużych firm.