5
SPIS TREŚCI
O książce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1. Podstawy testowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.1. Konieczność testowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2. Kontekst systemów informatycznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.3. Przyczyny usterek w oprogramowaniu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.4. Rola testowania w rozwoju, utrzymaniu i użytkowaniu oprogramowania . . . . . . . . . . . 1.1.5. Testowanie a jakość . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.6. Jak dużo testowania jest potrzebne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Czym jest testowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3. Ogólne zasady testowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Zasada 1 – testowanie ujawnia usterki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2. Zasada 2 – testowanie gruntowne jest niewykonalne . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.3. Zasada 3 – wczesne testowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.4. Zasada 4 – kumulowanie się błędów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.5. Zasada 5 – paradoks pestycydów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.6. Zasada 6 – testowanie zależy od kontekstu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.7. Zasada 7 – mylne przekonanie o braku błędów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Podstawowy proces testowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2. Planowanie i nadzór nad testami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.3. Analiza i projektowanie testów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.4. Implementacja i wykonanie testów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.5. Ocena spełnienia kryteriów zakończenia i raportowanie . . . . . . . . . . . . . . . . . . . . . . . . 1.4.6. Czynności zamykające testy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5. Psychologia testowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.6. Przykładowe pytania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 15 15 16 18 19 19 20 23 23 24 24 25 25 25 26 26 26 27 29 31 33 33 34 36
2. Testowanie w cyklu życia oprogramowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
2.1. Modele wytwarzania oprogramowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2. Modele sekwencyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3. Modele iteracyjno-przyrostowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.4. Testowanie w cyklu życia oprogramowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Poziomy testów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Testy modułowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Testy integracyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. Testy systemowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5. Testy akceptacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43 43 44 46 49 50 50 52 54 56 59