Testowanie aplikacji i systemów - Testowanie w procesie wytwarzania oprogramowania
1. Cykl życia oprogramowania składa się z czterech kluczowych faz:
6. Model V prezentuje weryfikację i walidację modelu. Podobnie jak w modelu wodospadu, cykl życia jest sekwencyjną ścieżką realizacji procesów. Każdy etap musi być zakończony przed rozpoczęciem kolejnej fazy. Testowanie produktu planowane jest równolegle z odpowiednim etapie rozwoju.
- planowanie (określamy po co ma zostać utworzone dane oprogramowanie, oraz jak ono powstanie)
- analiza (ustala się kto będzie używał systemu, co system ma robić, oraz gdzie i kiedy będzie używany)
- projektowanie (określa się jak system ma realizować wymagania użytkownika;)
- implementacja (powstanie projekty implementacji, kodu, instalacja oraz testy oprogramowania; opracowywany jest plan wsparcia, zarządzania oraz rozwoju)
2. Czarna skrzynka to system opisany wymaganiami w fazie analizy.
3. Metodologie tworzenia oprogramowania:
- strukturalne (metody wodospadowa, równoległa, etapowa)
- szybkie metody wytwarzania oprogramowania (RAD, metoda etapowa, prototypowanie, odrzucane prototypy)
- metody zwinne (Agile, programowanie ekstremalne)
4. Model wodospadowy - wzór cyklu życia liniowego sekwencyjnego. W modelu wodospadowym, każdy etap musi być całkowicie zrealizowany przed rozpoczęciem kolejnego etapu. Ten typ modelu jest w zasadzie wykorzystywany do projektów, które są małe i nie mają żadnych niepewnych wymagania. Na koniec każdej fazy, odbywa się ocena w celu ustalenia czy projekt jest na dobrej drodze i czy należy kontynuować, czy odrzucić projekt. W tym modelu testowanie rozpoczyna się dopiero po zakończeniu rozwoju.
- wymagania muszą być dokładnie opracowane na długo przed implementacją
- minimalizacja zmian wymagań w trakcie procesu implementacji
Wady:
- długi proces wytwarzania
- wymaga bardzo dużej dokumentacji
- wprowadzenie zmian wymaga cofnięcia się do początku procesu
5. Model równoległy - względem modelu wodospadowego jest to próba skrócenia całego procesu poprzez podział wymagań na odrębne niezależne podsystemy. Wymaga to dwóch dodatkowych etapów: wstępnego projektu w celu podzielenia systemu na podsystsemy oraz integracji na zakończenie całości.
6. Model V prezentuje weryfikację i walidację modelu. Podobnie jak w modelu wodospadu, cykl życia jest sekwencyjną ścieżką realizacji procesów. Każdy etap musi być zakończony przed rozpoczęciem kolejnej fazy. Testowanie produktu planowane jest równolegle z odpowiednim etapie rozwoju.
Etapy V-modelu są następujące:
- Wymagania biznesowe i oprogramowania: na tym etapie określa się cele i zakres projektu oraz zbiera się wymagania od klienta lub użytkownika końcowego. Na podstawie wymagań tworzy się plan testów akceptacyjnych, które mają sprawdzić, czy oprogramowanie spełnia oczekiwania klienta.
- Projekt wysokiego poziomu: na tym etapie definiuje się architekturę systemu i projektuje się główne komponenty oprogramowania. Na podstawie projektu wysokiego poziomu tworzy się plan testów systemowych, które mają sprawdzić, czy oprogramowanie działa poprawnie jako całość.
- Projekt niskiego poziomu: na tym etapie projektuje się szczegółowo poszczególne moduły oprogramowania i określa się ich interfejsy i zależności. Na podstawie projektu niskiego poziomu tworzy się plan testów integracyjnych, które mają sprawdzić, czy moduły oprogramowania współpracują ze sobą zgodnie z założeniami.
- Faza realizacji: na tym etapie realizowana jest implementacja. Po zakończeniu kodowania, ścieżka realizacji kieruje się na prawą stronę V, gdzie znajdują się opracowane wcześniej plany testowe, które teraz są oddane do użytku.
- Kodowanie: na tym etapie programiści implementują moduły oprogramowania zgodnie ze specyfikacją i standardami kodowania. Na podstawie kodu źródłowego tworzy się plan testów modułowych, które mają sprawdzić, czy moduły oprogramowania działają poprawnie w izolacji.
7. Model etapowy cechuje się opracowaniem kompletnej funkcjonalności na samym początku pracy i jak najszybszym dostarczeniem produktu, realizującego tę funkcjonalność. Wszelkie zmiany wymagań lub odkryte wymagania w trakcie trwania procesu (niewykryte na etapie analizy, źle opracowane) silnie podnoszą koszty gdyż cofają projekt niemalże do początku.
8. W modelu prototypowym tworzony jest prototyp oprogramowania, który jest modyfikowany na podstawie zmian zgłaszanych przez właściciela projektu lub użytkownika. Po zakończeniu analizy i implementacji prototyp staje się docelowym produktem. Wadą tego modelu jest to, że ostateczny punkt jest zlepkiem pośrednich pomysłów. Zaletą tej metodologii jest bardzo szybki czas dostarczania najważniej-szych
funkcjonalności, a wymagania są weryfikowane na bieżąco.
9. Testowanie ma na celu zapewnienie poprawności i jakości oprogramowania oraz wykrycie błędów jak najwcześniej. Koszty naprawy błędów rosną wraz z czasem i mogą być bardzo wysokie, jeśli błędy zostaną wykryte dopiero w systemie produkcyjnym.