Rzeszów, 2007 rok
„Organizacja projektów informatycznych”
Wykład 9 – Testowanie systemu i jakość
oprogramowania
Mariusz Poręba
Kierownik
I Działu Zapewnienia
Jakości
Agenda
Wstęp
Środowisko testowe
Techniki testowania
Zasady testowania oprogramowania
Raportowanie wyników testów
Pomiar procesu testowego
Podsumowanie
Etapy procesu KONTRAKT
Określenie wymagań klienta
Przygotowanie oferty
Przygotowanie umowy
Inicjowanie kontraktu
Planowanie kontraktu
Realizacja kontraktu
Zamknięcie kontraktu
Produkcja oprogramowania w etapie
realizacji KONTRAKTU
Szczegółowa analiza wymagań
Projekt rozwiązania
Kodowanie
Przeglądy kodu i testy modułowe
Testy integracyjne (kontrola jakości)
Instalacja i szkolenie klienta
Testy akceptacyjne (klient)
Serwis oprogramowania (help- desk, gwarancja)
Środowisko testowe
W celu właściwego przetestowania oprogramowania
należy zadbać o środowisko, które będzie najbardziej
zbliżone do warunków docelowych klienta. Parametry
środowisk powinny być uzgodnione z klientem.
Środowisko testowe
Znaczące parametry środowiska testowego (przykłady):
Rodzaj serwera (Sun, HP...)
System operacyjny (SunOS, AIX, HP-UX…)
Baza danych (Oracle 9.2.08…)
Serwer aplikacyjny (OAS, JBoss, WebSphere…)
Serwer www (SunONE…)
Przeglądarka internetowa (IE, Netscape,
Firefox…)
Techniki testowania
Testy „czarnej skrzynki”
Testy oparte o traktowanie testowanego programu
jako „czarnej skrzynki”, której wewnętrzna struktura
programu pozostaje nieznana. Ważny jest jedynie
aspekt funkcjonalny, czyli wyniki otrzymywane jako
„odpowiedź” na określone dane wejściowe.
Techniki testowania
Testy „białej skrzynki”
Podstawą projektowania przypadków testowych jest
znajomość wewnętrznej struktury programu
„Zgadywanie” błędów
Metoda oparta na intuicji i doświadczeniu nabytych
podczas praktykowania formalnych metod
Zasady testowania oprogramowania
Testowane oprogramowanie zawiera błędy
Dla każdego przypadku testowego należy
koniecznie określić spodziewany wynik
Oprogramowanie powinno być testowane przez
osoby inne niż autorzy kodu
Testowanie oprogramowania powinno się odbywać
w wyodrębnionych działach
Zasady testowania oprogramowania
Przypadki testowe powinny uwzględniać zarówno
dane wejściowe poprawne jak i niepoprawne,
nieoczekiwane przez program
Wyniki każdego testu powinny być starannie
analizowane,
Zasady testowania oprogramowania
Prawdopodobieństwo wykrycia kolejnego błędu w
testowanym fragmencie programu jest
proporcjonalne do liczby błędów już wykrytych w tym
fragmencie
Testowanie oprogramowania jest czynnością w
ogromnym stopniu twórczą i stanowi niezwykłe
wyzwanie intelektualne
Raportowanie błędów
Raport zgłoszonych błędów powinien zawierać:
–
Krótki opis błędu (tak aby nie wnikając w szczegóły
można określić rodzaj problemu)
–
Status zgłoszenia (błąd krytyczny, błąd, usterka)
–
Planowaną datę poprawy błędu
–
Etap na którym znajduje się zgłoszony błąd (czeka
na poprawę, poprawiony, poprawka przekazana do
testów, poprawka do zgłoszenia zweryfikowana w
testach)
Raportowanie błędów
Raport błędów - przykład
Pomiar procesu testowego
Stan realizacji projektu testowego
Pomiar procesu testowego
Skuteczność zespołów testowych w wykrywaniu błędów
144
200
116
149
129
208
130
128
SOK
Liczba błędów razem
6,25%
7,50%
16,38%
12,75%
21,71%
21,63%
25,38%
16,41%
SOK
% błędów od klientów
9
15
19
19
28
45
33
21
SOK
Liczba błędów od klientów
17,36%
29,50%
31,90%
34,23%
28,68%
20,67%
20,00%
25,00%
SOK
% błędów DJK
25
59
37
51
37
43
26
32
SOK
Liczba błędów DJK
76,39%
63,00%
51,72%
53,02%
49,61%
57,69%
54,62%
58,59%
SOK
% błędów wewn.
110
126
60
79
64
120
71
75
SOK
Liczba błędów wewn.
SOK
Kwiecień
Marzec
Luty
Styczeń
Grudzień
Listopad
Październik
Wrzesień
Skrót
Współczynnik
System
2006
2006
2006
2006
2005
2005
2005
2005
Zbiorczy raport testów za rok 2005 i 2006
Pomiar procesu testowego
Wykres prezentujący „% błędów od klientów”
% błędów od klientów
0%
10%
20%
30%
40%
50%
60%
Styczeń
Luty
Marzec
Kwiecień
Maj
Czerwiec
Lipiec
Sierpień
Wrzesień
Październik
Listopad
Grudzień
Styczeń
Luty
Marzec
Kwiecień
2005 2006
SOK
Podsumowanie
Środowisko testowe
Techniki testowania
Zasady testowania oprogramowania
Raportowanie wyników testów
Pomiar procesu testowego
Dziękuję za uwagę