Perl_Testowanie_Zapiski_programisty_pertes.pdf

(322 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Perl. Testowanie.
SPIS TREŒCI
Zapiski programisty
KATALOG KSI¥¯EK
Autorzy: Ian Langworth, chromatic
T³umaczenie: Maja Królikowska
ISBN: 83-246-0240-2
Format: B5, stron: 240
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Testowanie aplikacji to temat najczêœciej pomijany przez programistów. Testowanie
nie jest tak pasjonuj¹ce jak tworzenie programów czy poznawanie nowych narzêdzi.
Jest jednak niezbêdne. Prawid³owo przeprowadzony proces testowania mo¿e znacznie
poprawiæ wydajnoœæ, podnieœæ jakoœæ projektu i kodu, zmniejszyæ obci¹¿enia
wynikaj¹ce z konserwacji kodu i pomóc lepiej zaspokoiæ wymagania klientów,
wspó³pracowników i kierownictwa. W powszechnie uznanych metodykach
projektowych testowanie, szczególnie za pomoc¹ testów automatycznych,
jest niezwykle istotnym procesem.
Ksi¹¿ka „Perl. Testowanie. Zapiski programisty” to praktyczny przewodnik dla
programistów Perla, którzy chc¹ poprawiæ jakoœæ i wydajnoœæ tworzonych przez
siebie programów. Opisuje metody tworzenia testów automatycznych, stosowania ich
i interpretowania ich wyników. Przedstawia sposoby testowania pojedynczych
modu³ów, ca³ych aplikacji, witryn WWW, baz danych, a nawet programów stworzonych
w innych jêzykach programowania. Zawiera równie¿ informacje o tym, jak dostosowaæ
podstawowe narzêdzia testuj¹ce do w³asnego œrodowiska i projektów.
Instalowanie modu³ów testuj¹cych
Pisanie testów
Automatyzacja uruchamiania testów
Analiza wyników testów
Dystrybucja testów
Testy jednostkowe
Testowanie baz danych
Testowanie witryn WWW i kodu HTML
Dziêki wiadomoœciom zawartym w tej ksi¹¿ce mo¿na zredukowaæ d³ugoœæ cyklu
tworzenia oprogramowania i zdecydowanie u³atwiæ konserwacjê gotowych systemów.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOŒ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
1098281965.397.png 1098281965.408.png 1098281965.419.png 1098281965.430.png 1098281965.001.png 1098281965.012.png 1098281965.023.png 1098281965.034.png 1098281965.044.png 1098281965.055.png 1098281965.066.png 1098281965.077.png 1098281965.088.png 1098281965.099.png 1098281965.110.png 1098281965.121.png 1098281965.132.png 1098281965.143.png
 
Spis treści
Seria „Zapiski programisty” ..................................................................... 7
Przedmowa .......................................................................................... 13
Rozdział 1. Początki testowania .......................................................... 21
Instalowanie modułów testujących ...................................................... 21
Uruchamianie testów .......................................................................... 25
Interpretacja wyników testów ............................................................. 28
Pisanie pierwszego testu ..................................................................... 31
Wczytywanie modułów ....................................................................... 34
Ulepszanie porównań w testach .......................................................... 38
Rozdział 2. Pisanie testów ................................................................... 43
Pomijanie testów ................................................................................. 43
Pomijanie wszystkich testów .............................................................. 46
Oznaczanie testów jako „do zrobienia” ................................................ 48
Porównywanie prostych struktur danych ............................................ 51
Złożone struktury danych ................................................................... 56
Testowanie ostrzeżeń .......................................................................... 60
Testowanie wyjątków .......................................................................... 63
3
1098281965.163.png 1098281965.174.png 1098281965.185.png 1098281965.196.png 1098281965.207.png 1098281965.218.png 1098281965.229.png 1098281965.240.png 1098281965.251.png 1098281965.262.png 1098281965.272.png 1098281965.283.png 1098281965.294.png 1098281965.305.png 1098281965.316.png 1098281965.327.png 1098281965.338.png 1098281965.349.png 1098281965.360.png 1098281965.371.png 1098281965.382.png 1098281965.383.png 1098281965.384.png 1098281965.385.png 1098281965.386.png 1098281965.387.png 1098281965.388.png 1098281965.389.png 1098281965.390.png 1098281965.391.png 1098281965.392.png 1098281965.393.png 1098281965.394.png 1098281965.395.png 1098281965.396.png 1098281965.398.png 1098281965.399.png 1098281965.400.png 1098281965.401.png 1098281965.402.png 1098281965.403.png 1098281965.404.png 1098281965.405.png 1098281965.406.png 1098281965.407.png 1098281965.409.png 1098281965.410.png 1098281965.411.png 1098281965.412.png 1098281965.413.png 1098281965.414.png 1098281965.415.png 1098281965.416.png 1098281965.417.png 1098281965.418.png 1098281965.420.png 1098281965.421.png 1098281965.422.png 1098281965.423.png 1098281965.424.png 1098281965.425.png 1098281965.426.png 1098281965.427.png 1098281965.428.png 1098281965.429.png 1098281965.431.png 1098281965.432.png 1098281965.433.png 1098281965.434.png 1098281965.435.png 1098281965.436.png 1098281965.437.png 1098281965.438.png 1098281965.439.png 1098281965.440.png 1098281965.002.png 1098281965.003.png 1098281965.004.png 1098281965.005.png 1098281965.006.png 1098281965.007.png 1098281965.008.png 1098281965.009.png 1098281965.010.png 1098281965.011.png 1098281965.013.png 1098281965.014.png 1098281965.015.png 1098281965.016.png 1098281965.017.png 1098281965.018.png 1098281965.019.png 1098281965.020.png 1098281965.021.png 1098281965.022.png 1098281965.024.png 1098281965.025.png 1098281965.026.png 1098281965.027.png 1098281965.028.png 1098281965.029.png 1098281965.030.png 1098281965.031.png 1098281965.032.png 1098281965.033.png 1098281965.035.png
 
Rozdział 3. Zarządzanie testami .......................................................... 67
Organizowanie testów ..........................................................................67
Sprawdzanie pokrycia kodu ................................................................71
Pisanie biblioteki testującej ..................................................................78
Testowanie biblioteki testującej ............................................................81
Pisanie systemu uruchamiania z testowaniem ...................................84
Testowanie w sieci ..............................................................................86
Automatyzacja uruchamiania testów ..................................................88
Rozdział 4. Dystrybuowanie testów (i kodu) ........................................ 93
Testowanie plików POD .......................................................................93
Testowanie pokrycia dokumentacją .....................................................95
Podpisywanie dystrybucji ....................................................................98
Testowanie całych dystrybucji ...........................................................101
Pozwól użytkownikowi decydować ....................................................103
Pozwól użytkownikowi decydować (ciąg dalszy) ...............................106
Umieszczanie testów w dystrybucji modułów ...................................107
Pobieranie wyników testów ...............................................................110
Sprawdzanie poprawności Kwalitee ..................................................114
Rozdział 5. Testowanie nietestowalnego kodu .................................. 117
Zastępowanie operatorów i funkcji wbudowanych .............................118
Imitowanie modułów .........................................................................123
Imitowanie obiektów ..........................................................................127
Częściowe imitowanie obiektów .........................................................133
Zastępowanie kodu ............................................................................138
Zastępowanie operatorów ..................................................................142
Rozdział 6. Testowanie baz danych ................................................... 147
Dostarczanie testowych baz danych ..................................................147
Testowanie danych w bazie danych ..................................................151
Używanie tymczasowych baz danych ...............................................156
Imitowanie baz danych ......................................................................161
4
Spis treści
1098281965.036.png 1098281965.037.png 1098281965.038.png 1098281965.039.png 1098281965.040.png 1098281965.041.png 1098281965.042.png 1098281965.043.png 1098281965.045.png 1098281965.046.png 1098281965.047.png 1098281965.048.png 1098281965.049.png 1098281965.050.png 1098281965.051.png 1098281965.052.png 1098281965.053.png 1098281965.054.png 1098281965.056.png 1098281965.057.png 1098281965.058.png 1098281965.059.png 1098281965.060.png 1098281965.061.png 1098281965.062.png 1098281965.063.png 1098281965.064.png 1098281965.065.png 1098281965.067.png 1098281965.068.png 1098281965.069.png 1098281965.070.png 1098281965.071.png 1098281965.072.png 1098281965.073.png 1098281965.074.png 1098281965.075.png 1098281965.076.png 1098281965.078.png 1098281965.079.png 1098281965.080.png 1098281965.081.png 1098281965.082.png 1098281965.083.png 1098281965.084.png 1098281965.085.png 1098281965.086.png 1098281965.087.png 1098281965.089.png 1098281965.090.png 1098281965.091.png 1098281965.092.png 1098281965.093.png 1098281965.094.png 1098281965.095.png 1098281965.096.png 1098281965.097.png 1098281965.098.png 1098281965.100.png 1098281965.101.png 1098281965.102.png 1098281965.103.png 1098281965.104.png 1098281965.105.png 1098281965.106.png 1098281965.107.png 1098281965.108.png 1098281965.109.png 1098281965.111.png 1098281965.112.png 1098281965.113.png 1098281965.114.png 1098281965.115.png 1098281965.116.png 1098281965.117.png 1098281965.118.png 1098281965.119.png 1098281965.120.png 1098281965.122.png 1098281965.123.png 1098281965.124.png 1098281965.125.png 1098281965.126.png 1098281965.127.png 1098281965.128.png 1098281965.129.png 1098281965.130.png 1098281965.131.png 1098281965.133.png 1098281965.134.png 1098281965.135.png 1098281965.136.png 1098281965.137.png 1098281965.138.png 1098281965.139.png 1098281965.140.png 1098281965.141.png 1098281965.142.png 1098281965.144.png 1098281965.145.png 1098281965.146.png 1098281965.147.png 1098281965.148.png 1098281965.149.png 1098281965.150.png
 
Rozdział 7. Testowanie witryn WWW ................................................. 167
Testowanie zaplecza aplikacji ........................................................... 167
Testowanie widocznej części aplikacji ............................................... 173
Nagrywanie i odtwarzanie sesji przeglądarki ................................... 176
Testowanie poprawności HTML ........................................................ 180
Uruchamianie własnego serwera Apache ......................................... 182
Testowanie za pomocą Apache-Test ................................................. 185
Dystrybuowanie modułów z Apache-Test ......................................... 191
Rozdział 8. Testy jednostkowe przeprowadzane za pomocą
Test::Class ....................................................................... 195
Pisanie przypadków testowych ......................................................... 196
Tworzenie środowiska testu .............................................................. 200
Dziedziczenie testów ......................................................................... 203
Pomijanie testów przy użyciu Test::Class ......................................... 206
Oznaczanie testów jako „do zrobienia” przy użyciu Test::Class ......... 208
Rozdział 9. Testowanie całej reszty ................................................... 211
Pisanie testowalnych programów ..................................................... 211
Testowanie programów ..................................................................... 215
Testowanie programów interaktywnych ........................................... 218
Testowanie bibliotek współdzielonych ............................................... 221
Skorowidz .......................................................................................... 225
Spis treści
5
1098281965.151.png 1098281965.152.png 1098281965.153.png 1098281965.154.png 1098281965.155.png 1098281965.156.png 1098281965.157.png 1098281965.158.png 1098281965.159.png 1098281965.160.png 1098281965.161.png 1098281965.162.png 1098281965.164.png 1098281965.165.png 1098281965.166.png 1098281965.167.png 1098281965.168.png 1098281965.169.png 1098281965.170.png 1098281965.171.png 1098281965.172.png 1098281965.173.png 1098281965.175.png 1098281965.176.png 1098281965.177.png 1098281965.178.png 1098281965.179.png 1098281965.180.png 1098281965.181.png 1098281965.182.png 1098281965.183.png 1098281965.184.png 1098281965.186.png 1098281965.187.png 1098281965.188.png 1098281965.189.png 1098281965.190.png 1098281965.191.png 1098281965.192.png 1098281965.193.png 1098281965.194.png 1098281965.195.png 1098281965.197.png 1098281965.198.png 1098281965.199.png 1098281965.200.png 1098281965.201.png 1098281965.202.png 1098281965.203.png 1098281965.204.png 1098281965.205.png 1098281965.206.png 1098281965.208.png 1098281965.209.png 1098281965.210.png 1098281965.211.png 1098281965.212.png 1098281965.213.png 1098281965.214.png 1098281965.215.png 1098281965.216.png 1098281965.217.png 1098281965.219.png 1098281965.220.png 1098281965.221.png 1098281965.222.png 1098281965.223.png 1098281965.224.png 1098281965.225.png 1098281965.226.png 1098281965.227.png 1098281965.228.png 1098281965.230.png 1098281965.231.png 1098281965.232.png 1098281965.233.png 1098281965.234.png 1098281965.235.png 1098281965.236.png 1098281965.237.png 1098281965.238.png 1098281965.239.png 1098281965.241.png 1098281965.242.png 1098281965.243.png 1098281965.244.png 1098281965.245.png 1098281965.246.png 1098281965.247.png 1098281965.248.png 1098281965.249.png 1098281965.250.png 1098281965.252.png 1098281965.253.png 1098281965.254.png 1098281965.255.png 1098281965.256.png 1098281965.257.png 1098281965.258.png 1098281965.259.png 1098281965.260.png 1098281965.261.png 1098281965.263.png 1098281965.264.png 1098281965.265.png
 
ROZDZIAŁ 2.
Pisanie testów
Perl ma bardzo bogatą składnię, ale wiele rzeczy daje się zrobić, wyko-
rzystując tylko ułamek jego możliwości. Przykładowo: Perl oferuje ciągle
zwiększającą się liczbę modułów do testowania, a także najlepszych prak-
tyk w tym zakresie, ale wszystko to zbudowano wokół funkcji ok() opisa-
nej w poprzednim rozdziale.
Ćwiczenia przedstawione w niniejszym rozdziale prowadzą przez zaawan-
sowane funkcje Test::More i innych często używanych modułów testu-
jących. Nauczymy się tutaj, jak i w jakim celu kontrolować uruchamianie
testów oraz jak efektywnie porównywać dane wynikowe z oczekiwa-
nymi i jak testować warunki wyjątkowe. Są to bardzo istotne techniki —
budulec pozwalający na pisanie wszechstronnych zestawów narzędzi do
testowania.
Pomijanie testów
Niektóre testy powinny być uruchamiane tylko w szczególnych przypad-
kach. Przykładem może być test połączenia z zewnętrzną usługą, bo ma
on sens tylko wtedy, gdy komputer jest podłączony do internetu, lub test,
który zależy od systemu operacyjnego. Poniższe ćwiczenie pokazuje, jak
pominąć testy, o których wiadomo, że się nie powiodą.
43
1098281965.266.png 1098281965.267.png 1098281965.268.png 1098281965.269.png 1098281965.270.png 1098281965.271.png 1098281965.273.png 1098281965.274.png 1098281965.275.png 1098281965.276.png 1098281965.277.png 1098281965.278.png 1098281965.279.png 1098281965.280.png 1098281965.281.png 1098281965.282.png 1098281965.284.png 1098281965.285.png 1098281965.286.png 1098281965.287.png 1098281965.288.png 1098281965.289.png 1098281965.290.png 1098281965.291.png 1098281965.292.png 1098281965.293.png 1098281965.295.png 1098281965.296.png 1098281965.297.png 1098281965.298.png 1098281965.299.png 1098281965.300.png 1098281965.301.png 1098281965.302.png 1098281965.303.png 1098281965.304.png 1098281965.306.png 1098281965.307.png 1098281965.308.png 1098281965.309.png 1098281965.310.png 1098281965.311.png 1098281965.312.png 1098281965.313.png 1098281965.314.png 1098281965.315.png 1098281965.317.png 1098281965.318.png 1098281965.319.png 1098281965.320.png 1098281965.321.png 1098281965.322.png 1098281965.323.png 1098281965.324.png 1098281965.325.png 1098281965.326.png 1098281965.328.png 1098281965.329.png 1098281965.330.png 1098281965.331.png 1098281965.332.png 1098281965.333.png 1098281965.334.png 1098281965.335.png 1098281965.336.png 1098281965.337.png 1098281965.339.png 1098281965.340.png 1098281965.341.png 1098281965.342.png 1098281965.343.png 1098281965.344.png 1098281965.345.png 1098281965.346.png 1098281965.347.png 1098281965.348.png 1098281965.350.png 1098281965.351.png 1098281965.352.png 1098281965.353.png 1098281965.354.png 1098281965.355.png 1098281965.356.png 1098281965.357.png 1098281965.358.png 1098281965.359.png 1098281965.361.png 1098281965.362.png 1098281965.363.png 1098281965.364.png 1098281965.365.png 1098281965.366.png 1098281965.367.png 1098281965.368.png 1098281965.369.png 1098281965.370.png 1098281965.372.png 1098281965.373.png 1098281965.374.png 1098281965.375.png 1098281965.376.png 1098281965.377.png 1098281965.378.png 1098281965.379.png 1098281965.380.png 1098281965.381.png
 
Zgłoś jeśli naruszono regulamin