W grupie procesów, odpowiedzialnych za przejście z etapu projektowania i wytwarzania do etapu eksploatacji usługi IT, jest w ITIL nowy proces zarządzania walidacją i testowaniem usług IT. Nie jest to nowa dziedzina, bo samo testowanie oprogramowania ma długą historię i jest samodzielnym obszarem. Ponieważ jest on bardzo ważny w dostarczaniu poprawnie działających usług, warto zastanowić się, jakie są jego najważniejsze elementy i na co trzeba zwrócić uwagę. Uważam, że proces ten nie jest właściwie doceniany i wykorzystywany, a konsekwencje tego widzimy w działaniu usług IT na produkcji.
Konsekwencje
Czy na co dzień zastanawiamy się, jaka jest różnica pomiędzy walidacją a testowaniem?
Walidacja to sprawdzenie, czy usługa spełnia zdefiniowane wymagania biznesu a testowanie, ma za zadanie, wykrycie wszystkich błędów w działaniu usługi.
Jakie są konsekwencje, niewystarczającej i źle przeprowadzonej walidacji i testowania usługi?
- Występują incydenty, wynikające z błędów lub niewłaściwego zrealizowania wymagań biznesu
- Wymagane jest większe wsparcie Service Desk w wyjaśnieniu i tłumaczeniu, niewłaściwie działających usług
- Trudniej zdiagnozować i wykryć błędy i problemy w funkcjonowaniu usługi
- Mamy większe koszty, związane z naprawą błędów na produkcji, zamiast podczas etapu testowania rozwiązania
- Dajemy mniejszą wartość usługi dla klienta, z powodu jej nieefektywnego działania
Cele
Głównym celem procesu walidacji i testowania usługi jest zapewnienie, że nowe lub zmienione usługi IT, spełniają wymagania projektowe i odpowiadają na potrzeby biznesu.
Ważnymi elementami procesu są również:
- Zagwarantować, że wydanie zawiera nową lub zmienioną usługę, która przyniesie oczekiwane rezultaty i wartość dla klienta w ustalonych kosztach, zasobach i warunkach brzegowych.
- Zapewnić odpowiednią jakość wydaniu i wszystkim elementom wchodzącym w jego skład
- Sprawdzić, że usługa spełnia wymagania funkcjonalne biznesu i dostarcza oczekiwaną użyteczność
- Zweryfikować, że usługa spełnia wymagania niefunkcjonalne takie jak: dostępność, wydajność, niezawodność, bezpieczeństwo
- Potwierdzić, że wymagania klienta dla nowych lub zmienionych usług są poprawnie zdefiniowane oraz podjęte zostały działania aby wyeliminować błędy przed wdrożeniem na produkcję
- Zaprojektować i wdrożyć, dobrze zorganizowany proces walidacji i testowania, który dostarczy wiarygodnych dowodów, że zostały spełnione wymagania funkcjonalne i niefunkcjonalne dla usługi
- Wykryć, ocenić i zaadresować zagadnienia, błędy i ryzyka na etapie wdrożenia (przejścia)
Zakres
Proces walidacji i testowania jest wykorzystywany do:
- Oceny jakości wszystkich aspektów związanych z usługą i jej dostawcą
- Weryfikacji usług dostarczanych przez wewnętrzne zespoły, jak i dostawcę zewnętrznego.
- Nowych usług, jak i dla zmian wprowadzanych w usługach lub ich komponentach.
- Wykonania weryfikacji w środowisku biznesowym i sprawdzenia wszystkich aspektów, związanych z działaniem usługi, w tym takich, które nie zależą od dostawcy usługi np. sieć publiczną (Internet), zasoby klienta.
Testowanie bardzo mocno związane jest z procesem zarządzania wydaniem i wdrożeniem i wspiera go bezpośrednio, na różnych etapach.
Wyniki testów wykorzystywane są przez proces zarządzania zmianą, podczas oceny zmiany i ryzyka jej wprowadzenia na produkcję.
Korzyści
Jakie korzyści daje dobrze funkcjonujący proces walidacji i testowania:
- Zadowolony biznes, klient i użytkownik, z dostarczenia usługi spełniającej wymagania funkcjonalne i niefunkcjonalne
- Mniej błędów na środowisku produkcyjnym zgłaszanych przez użytkowników
- Większą dostępność usług dla użytkowników, związaną z mniejszą liczbą awarii
- Mniejsze koszty świadczenia usługi, wynikające z napraw na etapie testowania zamiast na produkcji
- Listę znanych błędów, wykrytych na etapie testowania, które nie zostały naprawione i wymagają obsługi na etapie utrzymania
Rodzaje testów
Ile mamy rodzajów testów?
- Testy funkcjonalne, nazywane również testami użyteczności, które powinny zawierać
- Sprawdzenie dostępu do usługi (logowanie, zmiana hasła itp)
- Weryfikację działania procesów biznesowych i wymaganych procedur
- Przekazanie wiedzy i kompetencji
- Kompatybilność i współdziałanie z innymi usługami i komponentami
- Sprawdzenie dokumentacji
- Testy wydajnościowe, sprawdzające pojemność usługi
- Testy dostępności, weryfikujące wymagania związane z wysoką dostępnością
- Testy kopii zapasowej i odtwarzania z backupu
- Testy ciągłości działania
- Testy bezpieczeństwa, sprawdzające wszystkie aspekty związane z bezpieczeństwem
- Testy konfiguracji, tworzenia i instalacji wydania na produkcji
- Testy mierzenia i raportowania SLA dla usługi
- Testy procedur i instrukcji związanych z utrzymaniem usługi
W przypadku procesu walidacji i testowania, sprawdza się dobrze znana zasada z wojska: im więcej potu na ćwiczeniach tym mniej krwi i ofiar w walce i boju. Im więcej czasu, energii i zasobów poświęcimy na rzetelne przetestowanie usługi przed wdrożeniem, tym mniej problemów będziemy mieli, z działaniem tej usługi na produkcji. Oczywiście jak wszędzie musimy znaleźć złoty środek, aby etap testów nie sparaliżował nam cyklu wprowadzania zmian. Z drugiej strony nie możemy sobie pozwolić aby niewystarczająco przetestowane usługi, były implementowane na środowisku produkcyjnym i zaburzały prawidłowe działanie tej lub innych usług. Pamiętajmy, że koszt usunięcia błędów na etapie testowania jest mniejszy, niż gdy musimy je rozwiązywać na działającym środowisku produkcyjnym.
Pytanie: Których rodzajów testów nie wykonujesz i dlaczego?
Discover more from Mariusz Siek
Subscribe to get the latest posts sent to your email.