Testowanie aplikacji i systemów - Testowanie w procesie wytwarzania oprogramowania

1. Cykl życia oprogramowania składa się z czterech kluczowych faz:
  • 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.


Zalety:
  • 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.