Sztuka_testowania_oprogramowania_artteo.pdf

(432 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Sztuka testowania
oprogramowania
Autor: Glenford J. Myers, Corey Sandler,
Tom Badgett, Todd M. Thomas
T³umaczenie: Andrzej Gra¿yñski
ISBN: 83-7361-894-5
Tytu³ orygina³u:
The Art of Software Testing, Second Edition
Format: B5, stron: 272
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Testowanie to ostatni i niestety czasem pomijany element procesu tworzenia
oprogramowania. Tymczasem ten w³a nie etap powinien byæ niezwykle znacz¹c¹
czê ci¹ projektu. Znaczenie testowania dostrzegano ju¿ w pocz¹tkowym okresie
dynamicznego rozwoju technologii tworzenia oprogramowania, jednak nadal trudno
jest znale æ jasny i czytelny zbiór regu³ testowania i metodyki, w oparciu o które
proces ten nale¿y przeprowadzaæ. Testy oprogramowania czêsto przeprowadzane s¹
przez jego twórców lub osoby przypadkowe, co zdecydowanie nie zdaje egzaminu.
„Sztuka testowania oprogramowania” to ksi¹¿ka traktuj¹ca wy³¹cznie o testowaniu
oprogramowania. Przedstawia zasady testowania kodu ród³owego, pojedynczych
modu³ów programu oraz ca³ej aplikacji. Zawiera cenne wskazówki dla testerów
dotycz¹ce przygotowywania przypadków testowych i metodologii testowania.
Autorzy opisali w niej równie¿ metodykê testowania ekstremalnego i sposoby
testowania aplikacji internetowych.
• Podstawowe zasady testowania programów
• Inspekcja kodu ród³owego
• Przypadki testowe
• Testowanie pojedynczych modu³ów aplikacji
• Testowanie funkcjonalne, systemowe, akceptacyjne i instalacyjne
• Usuwanie b³êdów
• Regu³y testowania ekstremalnego
• Testowanie aplikacji internetowych
Zadbaj o to, aby tworzone przez Ciebie programy by³y pozbawione b³êdów.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Przedmowa
Wprowadzenie
1. Samoocena zdolności testera
7
9
13
2. Psychologiczne i ekonomiczne aspekty testowania programów 19
Psychologia testowania ...............................................................................20
Ekonomika testowania ..............................................................................23
Test „czarnej skrzynki” .........................................................................24
Test „białej skrzynki” ............................................................................26
Zasady testowania programów .................................................................29
Podsumowanie ............................................................................................36
3. Inspekcja programów, wędrówka po kodzie źródłowym
i przegląd kodu
39
Inspekcje i wędrówki po kodzie ................................................................40
Inspekcja kodu ............................................................................................42
Lista kontrolna błędów programistycznych na użytek inspekcji kodu .....45
Błędy w odwołaniach do danych .........................................................45
Błędy w deklaracjach danych ...............................................................48
Błędy obliczeniowe ................................................................................50
Błędy porównywania ............................................................................. 51
Błędy przepływu sterowania .................................................................53
Błędy interfejsu .......................................................................................55
Błędy wejścia-wyjścia ..............................................................................56
Inne błędy ...............................................................................................57
Wędrówki po kodzie ..................................................................................60
Kontrola przy biurku ................................................................................. 61
4
S
ZTUKA
TESTOWANIA OPROGRAMOWANIA
Wzajemna ocena .........................................................................................62
Podsumowanie ............................................................................................63
4. Projektowanie przypadków testowych
65
Przypadki testowe dla testów „białej skrzynki” ......................................67
Testowanie pokrycia kodu ....................................................................67
Podział na klasy równoważności .........................................................75
Przykład ...................................................................................................79
Analiza wartości granicznych ..............................................................83
Grafy przyczynowo-skutkowe .............................................................. 91
Zgadywanie błędów ...................................................................................113
Strategia ...................................................................................................... 115
5. Testowanie modułów (jednostek)
117
Projektowanie przypadków testowych ................................................... 118
Testowanie przyrostowe ........................................................................... 132
Testowanie zstępujące a testowanie wstępujące .................................... 138
Testowanie zstępujące ......................................................................... 138
Testowanie wstępujące ........................................................................ 145
Porównanie ...........................................................................................147
Przeprowadzanie testów ...........................................................................149
6. Testowanie wysokopoziomowe
151
Testowanie funkcjonalne ......................................................................... 157
Testowanie systemowe .............................................................................. 158
Testowanie możliwości ....................................................................... 161
Testowanie objętościowe ..................................................................... 161
Testowanie przeciążeń ......................................................................... 162
Testowanie użyteczności ..................................................................... 164
Testowanie ochrony danych .............................................................. 166
Testowanie efektywności ..................................................................... 166
Testowanie pamięci ............................................................................. 167
Testowanie konfiguracji ...................................................................... 167
Testowanie zgodności i konwersji ..................................................... 168
Testowanie procedury instalacyjnej .................................................. 168
Testowanie niezawodności ................................................................. 168
Testowanie funkcji ratunkowych ......................................................170
Testowanie możliwości obsługi ......................................................... 171
Testowanie dokumentacji ................................................................... 171
Testowanie procedur ...........................................................................172
Przeprowadzanie testów ......................................................................172
S
PIS
TREŚCI
5
Testowanie akceptacyjne .......................................................................... 173
Testowanie instalacyjne ...........................................................................174
Planowanie i kontrolowanie testów ....................................................... 175
Kryteria zakończenia testu ......................................................................178
Niezależne agencje testujące .................................................................... 185
7. Debugowanie
187
Debugowanie „na siłę” ............................................................................189
Debugowanie przez indukcję .................................................................. 191
Debugowanie przez dedukcję ................................................................. 195
Debugowanie przez nawracanie ............................................................ 200
Debugowanie przez testowanie ...............................................................201
Reguły debugowania ................................................................................201
Reguły lokalizowania błędów ........................................................... 202
Techniki poprawiania błędów ...........................................................203
Analiza błędów ..........................................................................................205
8. Testowanie ekstremalne
209
Podstawy programowania ekstremalnego .............................................210
Testowanie ekstremalne — koncepcja ................................................... 216
Ekstremalne testowanie jednostek .................................................... 216
Testowanie akceptacyjne ....................................................................218
Testowanie ekstremalne — praktyka .................................................... 220
Projektowanie przypadków testowych ..............................................221
Aplikacja i jej sterownik testowy ....................................................... 224
Podsumowanie ..........................................................................................225
9. Testowanie aplikacji internetowych
227
Podstawowa architektura aplikacji e-commerce .................................. 229
Wyzwania związane z testowaniem ........................................................ 231
Strategie testowania ..................................................................................235
Testowanie warstwy prezentacji .........................................................237
Testowanie warstwy biznesowej .........................................................241
Testowanie warstwy danych .............................................................. 244
A Przykładowa aplikacja do testowania ekstremalnego
B Liczby pierwsze mniejsze niż 1000
Słownik
Skorowidz
249
255
257
263
Inspekcja programów,
wędrówka
po kodzie źródłowym
i przegląd kodu
Przez wiele lat powszechne było wśród programistów przekonanie,
że program przeznaczony jest wyłącznie do wykonywania przez kom-
puter, nie do czytania przez człowieka, a więc testowanie programu
nie może odbywać się inaczej, jak tylko przez uruchamianie go na
komputerze. Mniej więcej we wczesnych latach 70. ubiegłego wieku
programiści zaczęli jednak stopniowo doceniać także znaczenie
„bezkomputerowego” czytania kodu jako integralnej części wszech-
stronnego procesu testowania.
Co prawda nie wszyscy programiści zwykli studiować kody źró-
dłowe w poszukiwaniu błędów, sama jednak koncepcja takiego czy-
tania zyskała sobie ogólnie przychylne przyjęcie. Jej praktyczna re-
alizacja uwarunkowana jest kilkoma czynnikami, między innymi
rozmiarem i złożonością programu, rygoryzmem harmonogramów,
liczebnością zespołu testującego, kwalifikacjami jego członków itp.
Przed przystąpieniem do omawiania tradycyjnych, „maszyno-
wych” technik testowania poświęcimy nieco uwagi testowaniu bez-
komputerowemu. Okazuje się ono zadziwiająco efektywne pod wzglę-
dem wykrywania błędów — efektywne tak dalece, że przy realizacji
3
Zgłoś jeśli naruszono regulamin