Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00694 007571 13829466 na godz. na dobę w sumie
Dane testowe. Teoria i Praktyka - książka
Dane testowe. Teoria i Praktyka - książka
Autor: , Liczba stron: 122
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-246-2520-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).

Książka, której nie może zabraknąć w biblioteczce ambitnego programisty!

Programowanie nierzadko uchodzi za sztukę magiczną, jednak nawet najbardziej pomysłowa aplikacja okaże się bezużyteczna, gdy znajdzie się w niej choć jeden poważny błąd - powodujący, że działanie programu będzie niezgodne z oczekiwaniami twórców i użytkowników. Dlatego nie mniej istotną kwestią jest należyte sprawdzenie poprawności oprogramowania. Takie działanie pozwoli nam zyskać pewność, że otrzymane za jego pomocą wyniki będą w pełni pokrywały się z przyjętymi założeniami. Zadanie to nie jest wcale tak banalne, jak mogłoby się wydawać, a zlekceważenie etapu testów może kosztować znacznie więcej, niż gotowi jesteśmy zapłacić.


Niestety, tematyce tej nie poświęca się zwykle odpowiednio dużo uwagi, co można łatwo stwierdzić, przeglądając dostępne na rynku opracowania dotyczące testowania aplikacji. Chlubnym wyjątkiem jest tu książka 'Dane testowe. Teoria i praktyka', w całości poświęcona metodologii przygotowywania i praktycznego wykorzystywania danych testowych, które zapewniają maksymalną niezawodność oraz bezpieczeństwo działania programów. Autor wprowadza Czytelnika w teoretyczne podstawy definiowania i generowania tego rodzaju danych, lecz prezentuje również przykłady i możliwości zastosowania opisywanych technik w praktyce. Dzięki temu każdy programista i tester będzie mógł skrócić czas sprawdzania poprawności działania aplikacji i uniknie szeregu typowych błędów oraz zaniechań, popełnianych zwykle w tym nierzadko bardzo skomplikowanym procesie.


Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Dane testowe. Teoria i Praktyka Autor: Radosław Smilgin, Anna Piaskowy ISBN: 978-83-246-2520-8 Format: 158×235, stron: 122 Książka, której nie może zabraknąć w biblioteczce ambitnego programisty! Programowanie nierzadko uchodzi za sztukę magiczną, jednak nawet najbardziej pomysłowa aplikacja okaże się bezużyteczna, gdy znajdzie się w niej choć jeden poważny błąd – powodujący, że działanie programu będzie niezgodne z oczekiwaniami twórców i użytkowników. Dlatego nie mniej istotną kwestią jest należyte sprawdzenie poprawności oprogramowania. Takie działanie pozwoli nam zyskać pewność, że otrzymane za jego pomocą wyniki będą w pełni pokrywały się z przyjętymi założeniami. Zadanie to nie jest wcale tak banalne, jak mogłoby się wydawać, a zlekceważenie etapu testów może kosztować znacznie więcej, niż gotowi jesteśmy zapłacić. Niestety, tematyce tej nie poświęca się zwykle odpowiednio dużo uwagi, co można łatwo stwierdzić, przeglądając dostępne na rynku opracowania dotyczące testowania aplikacji. Chlubnym wyjątkiem jest tu książka „Dane testowe. Teoria i praktyka”, w całości poświęcona metodologii przygotowywania i praktycznego wykorzystywania danych testowych, które zapewniają maksymalną niezawodność oraz bezpieczeństwo działania programów. Autor wprowadza Czytelnika w teoretyczne podstawy definiowania i generowania tego rodzaju danych, lecz prezentuje również przykłady i możliwości zastosowania opisywanych technik w praktyce. Dzięki temu każdy programista i tester będzie mógł skrócić czas sprawdzania poprawności działania aplikacji i uniknie szeregu typowych błędów oraz zaniechań, popełnianych zwykle w tym nierzadko bardzo skomplikowanym procesie. • Podstawowe typy danych i związane z nimi błędy • Techniki projektowania testów • Definiowanie danych testowych • Zarządzanie danymi i rozwiązywanie problemów • Praktyczne przykłady danych testowych i ich wykorzystanie • Sposoby pozyskiwania rzeczywistych danych • Samodzielne generowanie danych testowych Idź do • Spis treści • Przykładowy rozdział Katalog książek • Katalog online • Zamów drukowany katalog Twój koszyk • Dodaj do koszyka Cennik i informacje • Zamów informacje o nowościach • Zamów cennik Czytelnia • Fragmenty książek online Kontakt Helion SA ul. Kościuszki 1c 44-100 Gliwice tel. 32 230 98 63 e-mail: helion@helion.pl © Helion 1991–2010 Spis treĈci Wstöp .............................................................................................. 7 Rozdziaä 1. Komu potrzebne sñ dane testowe? ................................................... 9 Rozdziaä 2. Testowanie i dane .......................................................................... 13 2.1. Dane wymagane oraz niewymagane ........................................................................ 13 2.1.1. Oznaczenie pól wymaganych ........................................................................ 13 2.1.2. Walidacja danych .......................................................................................... 14 2.1.3. Zagadnienia związane z wprowadzaniem danych ......................................... 17 2.2. Dane a przypadek testowy ....................................................................................... 19 2.3. Wybrane techniki projektowania przypadków testowych ........................................ 20 2.3.1. Techniki programistyczne ............................................................................. 20 2.3.2. Techniki testerskie ........................................................................................ 21 2.3.3. Techniki oparte na doĞwiadczeniu ................................................................ 25 2.4. Proces definiowania danych .................................................................................... 26 2.5. Testowanie oparte na danych (Data Driven Testing) ............................................... 28 2.6. Zarządzanie danymi ................................................................................................. 29 2.6.1. Dane testowe w procesie wytwarzania i testowania oprogramowania .......... 29 2.6.2. Dane testowe dla róĪnych typów testów ....................................................... 31 2.6.3. Dane testowe dla róĪnych typów aplikacji .................................................... 32 2.6.4. Dane testowe a testowanie w oparciu o ryzyko ............................................. 33 2.6.5. Zarządzanie konfiguracją danych .................................................................. 34 2.7. Defekty danych ........................................................................................................ 35 Rozdziaä 3. Dane w przykäadach ....................................................................... 37 3.1. ImiĊ .......................................................................................................................... 37 3.1.1. Analiza .......................................................................................................... 37 3.1.2. Regulacje prawne .......................................................................................... 38 3.1.3. Przypadki testowe ......................................................................................... 39 3.2. Nazwisko ................................................................................................................. 40 3.2.1. Analiza .......................................................................................................... 40 3.2.2. Regulacje prawne .......................................................................................... 41 3.2.3. Przypadki testowe ......................................................................................... 42 3.3. Domeny internetowe ................................................................................................ 42 3.3.1. Analiza .......................................................................................................... 42 3.3.2. Regulacje ....................................................................................................... 43 3.3.3. Przypadki testowe ......................................................................................... 43 4 Dane testowe. Teoria i Praktyka 3.4. Polski adres poczty elektronicznej ........................................................................... 45 3.4.1. Analiza .......................................................................................................... 45 3.4.2. Regulacje ....................................................................................................... 45 3.4.3. Przypadki testowe ......................................................................................... 46 3.5. Numer telefonu stacjonarnego ................................................................................. 47 3.5.1. Analiza .......................................................................................................... 47 3.5.2. Regulacje ....................................................................................................... 48 3.5.3. Przypadki testowe ......................................................................................... 48 3.6. Numer telefonu komórkowego ................................................................................ 49 3.6.1. Analiza .......................................................................................................... 49 3.6.2. Regulacje ....................................................................................................... 49 3.6.3. Przypadki testowe ......................................................................................... 49 3.7. Wyksztaácenie .......................................................................................................... 50 3.7.1. Analiza .......................................................................................................... 50 3.7.2. Regulacje ....................................................................................................... 50 3.7.3. Przypadki testowe ......................................................................................... 51 3.8. PaĔstwo ................................................................................................................... 51 3.8.1. Analiza .......................................................................................................... 51 3.8.2. Regulacje ....................................................................................................... 52 3.8.3. Przypadki testowe ......................................................................................... 52 3.9. Województwo .......................................................................................................... 52 3.9.1. Analiza .......................................................................................................... 52 3.9.2. Regulacje ....................................................................................................... 53 3.9.3. Przypadki testowe ......................................................................................... 53 3.10. Powiat ...................................................................................................................... 53 3.10.1. Analiza ........................................................................................................ 53 3.10.2. Regulacje ..................................................................................................... 54 3.10.3. Przypadki testowe ....................................................................................... 54 3.11. Gmina ...................................................................................................................... 55 3.11.1. Analiza ........................................................................................................ 55 3.11.2. Regulacje ..................................................................................................... 55 3.11.3. Przypadki testowe ....................................................................................... 55 3.12. MiejscowoĞü ............................................................................................................ 56 3.12.1. Analiza ........................................................................................................ 56 3.12.2. Regulacje ..................................................................................................... 56 3.12.3. Przypadki testowe ....................................................................................... 56 3.13. Ulica ........................................................................................................................ 57 3.13.1. Analiza ........................................................................................................ 57 3.13.2. Regulacje ..................................................................................................... 57 3.13.3. Przypadki testowe ....................................................................................... 57 3.14. Kod pocztowy .......................................................................................................... 58 3.14.1. Analiza ........................................................................................................ 58 3.14.2. Regulacje ..................................................................................................... 58 3.14.3. Przypadki testowe ....................................................................................... 58 3.15. Data ......................................................................................................................... 59 3.15.1. Analiza ........................................................................................................ 59 3.15.2. Regulacje ..................................................................................................... 59 3.15.3. Przypadki testowe ....................................................................................... 59 3.16. PESEL ..................................................................................................................... 60 3.16.1. Analiza ........................................................................................................ 60 3.16.2. Regulacje ..................................................................................................... 61 3.16.3. Przypadki testowe ....................................................................................... 61 Spis treĈci 5 3.17. NIP .......................................................................................................................... 62 3.17.1. Analiza ........................................................................................................ 62 3.17.2. Regulacje ..................................................................................................... 63 3.17.3. Przypadki testowe ....................................................................................... 63 3.18. REGON ................................................................................................................... 64 3.18.1. Analiza ........................................................................................................ 64 3.18.2. Regulacje ..................................................................................................... 64 3.18.3. Przypadki testowe ....................................................................................... 64 3.19. IBAN ....................................................................................................................... 66 3.19.1. Analiza ........................................................................................................ 66 3.19.2. Regulacje ..................................................................................................... 66 3.19.3. Przypadki testowe ....................................................................................... 66 3.20. Hasáo ....................................................................................................................... 67 3.20.1. Analiza ........................................................................................................ 67 3.20.2. Regulacje ..................................................................................................... 67 3.20.3. Przypadki testowe ....................................................................................... 67 Rozdziaä 4. Dane generowane a dane rzeczywiste ............................................. 69 4.1. Dane rzeczywiste ..................................................................................................... 69 4.1.1. Pozyskiwanie danych rzeczywistych ............................................................. 69 4.1.2. Powiązania miĊdzy danymi rzeczywistymi ................................................... 71 4.2. Generacja danych .................................................................................................... 71 4.2.1. Generacja danych w oparciu o funkcjĊ random ............................................. 71 4.2.2. Generacja danych z kodu .............................................................................. 73 4.2.3. Generacja danych z dokumentacji ................................................................. 73 4.2.4. Generacja danych w oparciu o wyroczniĊ ..................................................... 74 4.3. Generowane czy rzeczywiste? ................................................................................. 75 Rozdziaä 5. Podsumowanie ............................................................................... 77 Dodatek A Generator danych testowych .......................................................... 79 A.1. Interfejs aplikacji .................................................................................................... 79 A.1.2. Menu Plik ..................................................................................................... 80 A.1.3. Menu Projekt ................................................................................................ 81 A.1.4. Menu NarzĊdzia ........................................................................................... 82 A.1.5. Menu Pomoc ................................................................................................ 83 A.1.6. Pasek narzĊdzi .............................................................................................. 83 A.1.7. Pasek boczny ................................................................................................ 84 A.1.8. Lista elementów projektu ............................................................................. 84 A.2. Edytor baz danych .................................................................................................. 85 A.2.1. Menu Baza danych ....................................................................................... 86 A.2.2. Menu Rekordy .............................................................................................. 87 A.2.3. Pasek narzĊdzi .............................................................................................. 87 A.2.4. Pasek boczny ................................................................................................ 88 A.2.5. Lista rekordów bazy danych ......................................................................... 88 A.3. Generacja danych .................................................................................................... 88 A.3.1. Menu ............................................................................................................ 89 A.3.2. Pasek narzĊdzi .............................................................................................. 90 A.3.3. Lista rezultatów generowania ....................................................................... 90 A.4. Generowanie danych .............................................................................................. 90 A.4.1. Tryby generowania danych .......................................................................... 91 A.4.2. Typy danych ................................................................................................. 92 A.5. Umowa licencyjna .................................................................................................. 98 A.5.1. Udzielenie licencji ........................................................................................ 99 A.5.2. Opis innych uprawnieĔ i ograniczeĔ ............................................................ 99 6 Dane testowe. Teoria i Praktyka A.5.3. Uaktualnienia („upgrade”) .......................................................................... 100 A.5.4. Prawa autorskie .......................................................................................... 100 A.5.5. Podwójne noĞniki oprogramowania ........................................................... 101 A.5.6. Ograniczenia odpowiedzialnoĞci za szkodĊ ............................................... 101 A.6. Instalacja oprogramowania ................................................................................... 101 A.7. Deinstalacja oprogramowania ............................................................................... 105 A.8. Tworzenie projektu ............................................................................................... 105 Säownik ........................................................................................ 113 Bibliografia .................................................................................. 115 Skorowidz ................................................................................... 117 Rozdziaä 4. Dane generowane a dane rzeczywiste 4.1. Dane rzeczywiste Najskuteczniejsze jako pozytywne dane testowe okazują siĊ dane rzeczywiste. Nic tak nie sprawdzi systemu jak prawdziwe przypadki rodem z produkcji. I tak pierwsza rzecz, jaką wykonujemy podczas testowania, to sprawdzenie nowego systemu pod kątem jego wspóápracy z poprzednio zgromadzonymi danymi. To z kolei ma szcze- gólne znaczenie dla testów przygotowujących system do migracji danych ze starego systemu — jeĪeli chcemy mieü pewnoĞü, Īe dane skopiowane z poprzedniej wersji systemu bĊdą poprawnie dziaáaáy w jego nowej odsáonie. 4.1.1. Pozyskiwanie danych rzeczywistych Dane pozyskuje siĊ poprzez ich skopiowanie z istniejących systemów, przez wyszu- kanie ich w sieci lub poprzez zakup na rynku. 4.1.1.1. Kopiowanie danych rzeczywistych W przypadku kopiowania danych testowych naleĪy mieü na uwadze, Īe powinny byü one przechowywane z taką samą uwagą i poziomem bezpieczeĔstwa jak w przypadku zwykáych danych produkcyjnych. NagáoĞniony przez media przypadek, kiedy to z serwe- ra testowego wykop.pl wyciekáy nazwy i hasáa tysiĊcy uĪytkowników, wymusiá nie tylko zmiany haseá w samym serwisie, ale równieĪ w innych serwisach, takich jak nasza-klasa.pl czy allegro.pl. Pokazuje to równieĪ, czym moĪe siĊ zakoĔczyü brak dbaáoĞci o bezpieczeĔstwo danych testowych. Popularną metodą zabezpieczenia jest czĊĞciowe kopiowanie danych, tak aby przypadkowy báąd nie spowodowaá nieodwra- calnych skutków. CzĊsto kopiowany jest jedynie fragment danych, a resztĊ uzupeánia 70 Dane testowe. Teoria i Praktyka siĊ ustalonym wczeĞniej lub pseudolosowym ciągiem znaków. Przykáadowy adres e-mail jan.kowalski@gmail.com moĪna zamieniü na jan.kowalski@adresemail.com lub na nazwa.uzytkownika@gmail.com. DziĊki takim technikom Jan Kowalski posiadający konto w Gmail nie bĊdzie naraĪony na otrzymanie przypadkowo wysáanej wiadomoĞci z serwera testowego. Przy wydosta- niu siĊ danych na zewnątrz nie bĊdzie równieĪ powiązania miĊdzy nazwą uĪytkowni- ka a przypisanym do niego hasáem. Dziaáania takie mają na celu ochronĊ prywatnoĞci uĪytkowników. Dane wraĪliwe dla organizacji mogą byü dodatkowo maskowane. DziĊki algorytmom kryptograficznym mogą byü szyfrowane w procesie kopiowania z produkcji do baz danych testowych. CzĊĞü danych nie powinna byü w ogóle kopiowana z serwerów produkcyjnych, aby nie naraĪaü firmy lub jej pracowników na trudne sytuacje lub nawet niebezpieczeĔ- stwo. WyobraĨmy sobie, Īe z korporacji wyciekają dane pracowników wraz z ich ad- resami i zarobkami. MoĪe to wywoáaü zazdroĞü wĞród wspóápracowników w firmie lub teĪ naraziü pracowników na zainteresowanie Ğwiatka przestĊpczego. CzĊsto nie ma koniecznoĞci kopiowania wszystkich danych, szczególnie jeĞli dane rzeczywiste moĪna áatwo wygenerowaü. JeĞli wiemy, Īe najniĪsza pensja w firmie wynosi X, a najwyĪsza Y, to na potrzeby testów moĪemy wygenerowaü losowe wartoĞci z przedziaáu X; Y i przypisaü je do rzeczywistych pracowników. 4.1.1.2. Szukanie danych rzeczywistych w internecie Dla Ğrednio zaawansowanych uĪytkowników internetu znalezienie danych w sieci nie powinno byü káopotem. Internet to wielki Ğmietnik, w którym moĪna znaleĨü wszyst- ko. Wystarczy odpowiednio szukaü. Istnieje wiele serwerów, które przechowują dane lub nawet udostĊpniają je za darmo. Pozyskując dane, naleĪy jednak mieü na wzglĊ- dzie prawa autorskie ich twórców oraz ochronĊ danych osobowych. Istnieje pokusa, aby kopiowaü z internetu, chociaĪby dostĊpne tam adresy e-mailowe. NaleĪy jednak pamiĊtaü, Īe są to dane, których bez zgody posiadaczy nie moĪna przechowywaü ani tym bardziej przetwarzaü. 4.1.1.3. Kupowanie danych rzeczywistych Dane rzeczywiste są przechowywane przez róĪne instytucje i to od nich powinniĞmy je pozyskiwaü. Na rynku istnieje tylko kilka firm, które oferują takie dane. Komercyjne podmioty mają prawa do handlu danymi teleadresowymi czy demograficznymi. W za- leĪnoĞci od naszych potrzeb naleĪy zdefiniowaü typ danych, jakie chcemy pozyskaü, i okreĞliü ich dostawcĊ. CzĊĞü danych jest chroniona ustawą o ochronie danych oso- bowych i musimy siĊ upewniü, Īe firmy oferujące takie dane mają do tego odpowied- nie uprawnienia. Kupując tą ksiąĪkĊ, zakupili PaĔstwo równieĪ bazy danych rzeczywistych typowych dla Polski. Nie są to wszystkie dane, a jedynie takie, które nie podlegają ochronie danych osobowych. Są one czĊĞcią doáączonego do ksiąĪki generatora danych testowych. Rozdziaä 4. i Dane generowane a dane rzeczywiste 71 4.1.2. Powiñzania miödzy danymi rzeczywistymi Istnieją powiązania pomiĊdzy niektórymi danymi rzeczywistymi. ZaleĪnoĞci te mogą byü silne lub jedynie iluzoryczne (tabela 4.1). Data urodzenia ma wpáyw na PESEL, jaki otrzymuje dana osoba, i jest to przykáad silnej zaleĪnoĞü miĊdzy danymi. Z drugiej strony istnieje moĪliwe powiązanie miĊdzy danymi nie na poziomie regulacji, a na poziomie statystyki. Okazuje siĊ np., Īe ulubione hasáo w systemach informatycznych to imiĊ uĪytkownika. MoĪna wiĊc powiedzieü, Īe istnieje sáabe powiązanie miĊdzy imieniem a hasáem. 4.2. Generacja danych W zaleĪnoĞci od dostĊpnych narzĊdzi, aplikacji, form zapisu wymagaĔ czy teĪ tech- nik budowania interfejsu moĪemy zastosowaü róĪne rozwiązania w zakresie generacji danych testowych. 4.2.1. Generacja danych w oparciu o funkcjö random Dane zazwyczaj tworzone są w oparciu o popularną i wystĊpującą w wielu jĊzykach programowania funkcjĊ — random. UmoĪliwia ona generowanie losowych znaków i (lub) wartoĞci w okreĞlonych formatach i o odpowiedniej dáugoĞci. UĪycie tej funkcji staáo siĊ juĪ podstawą wielu narzĊdzi do budowania danych testowych. DostĊpne w Polsce rozwiązania do produkcji danych nie są w 100 adekwatne do lo- kalnych warunków. W wiĊkszoĞci przypadków funkcjonują wewnĊtrzne rozwiązania firmowe, pisane przez programistów lub testerów. W internecie moĪna znaleĨü setki rozwiązaĔ sáuĪących do generowania danych w forma- tach typowych dla krajów anglosaskich. Popularnym przykáadem takiego rozwiązania jest skrypt wyprodukowany przez Black Sheep Web Software o nazwie GenerateData. Skrypt w wersji spolszczonej dostĊpny jest na stronie http://generatordanych.testerzy.pl. Przewagą tego rozwiązania nad innymi jest jego dostĊpnoĞü z poziomu przeglądarki. Najpopularniejsze funkcje generowania danych testowych to:  Generacja plików wynikowych w róĪnych formatach, takich jak HTML, Excel, XML, CSV, SQL.  Generacja róĪnych typów danych:  Dane ludzi: nazwa uĪytkownika, adres, numer telefonu, adres e-mail itp.  Dane tekstowe: losowe sáowa. 72 Dane testowe. Teoria i Praktyka i m y t s i w y z c e z r i m y n a d y z d Ċ i m e j c a l e R . 1 . 4 a e b a T l Rozdziaä 4. i Dane generowane a dane rzeczywiste 73  Dane definiowane przez uĪytkowników:  dane przyrostowe,  zakres numerów,  ciągi alfanumeryczne.  MoĪliwoĞü zapisu wáasnych formatów danych itd. Generacja umoĪliwia produkcjĊ zróĪnicowanych danych testowych. Przy duĪej iloĞci czasu moĪe to pozwoliü na obciąĪenie aplikacji róĪnego typu danymi. Przy wytwarzaniu danych testowych istnieje powaĪne ryzyko redundancji testów. Losowy dobór danych nie daje nam pewnoĞci, Īe aplikacja zostaáa sprawdzona przez kaĪdą waĪną informacjĊ wejĞciową. Nie wiemy, czy zostaáa pokryta kaĪda klasa równowaĪ- noĞci i kaĪda granica. Tracimy tylko czas na testowanie za pomocą danych tego sa- mego lub pokrewnego typu. 4.2.2. Generacja danych z kodu Niektóre aplikacje generują dane testowe automatycznie w oparciu o kod Ĩródáowy. Analiza statyczna kodu umoĪliwia odpowiednim skryptom okreĞlenie, jakie wartoĞci moĪe przyjmowaü zmienna. Przykáadowo w jĊzyku C zadeklarowanie zmiennej jako signed char powoduje, Īe moĪe ona przyjąü wartoĞü od –128 do 127. DziĊki temu znamy wartoĞci graniczne dla zmiennej i moĪemy w áatwy sposób pokryü wszystkie klasy równowaĪnoĞci oraz sprawdziü dziaáanie funkcji na granicach. Sáabą stroną generacji z kodu jest to, Īe nie jesteĞmy w stanie automatycznie wykryü, czy programista dobraá poprawny typ zmiennej dla okreĞlonej wartoĞci. Przykáad Ciekawe rozwiązanie oferuje firma Parasoft, która w swoim JTest generuje testy kompo- nentowe w oparciu o monitorowanie pracy aplikacji. DziĊki temu rejestrowane są dane uĪyte podczas pracy z aplikacją i tworzy siĊ z nich bazy danych testowych. 4.2.3. Generacja danych z dokumentacji Zdarza siĊ, Īe dokumenty projektowe, takie jak wymagania czy wytyczne dotyczące pracy aplikacji, zapisane są w jĊzyku maszynowym lub teĪ zamodelowane w sposób umoĪliwiający przetwarzanie ich przez komputer. Istnieją równieĪ aplikacje umoĪli- wiające okreĞlenie na bazie takiej dokumentacji wytycznych do danych testowych lub nawet bezpoĞrednio je generujące. JĊzykiem modelowania, który idealnie siĊ do tego nadaje, jest np. UML (ang. Unified Modelling Language). Skáada siĊ on z szeregu dia- gramów, za pomocą których moĪna zapisywaü miĊdzy innymi zachowanie aplikacji i przepáyw danych przez nią. 74 Dane testowe. Teoria i Praktyka 4.2.4. Generacja danych w oparciu o wyroczniö W testowaniu znana jest technika generowania danych w oparciu o wyroczniĊ testową. Jest to metoda uĪywana przede wszystkim do generowania oczekiwanego rezultatu, ale uĪywa siĊ jej równieĪ do generacji danych testowych. Wyrocznia jest oprogramo- waniem lub — jeĞli wolimy — sprzĊtem, który jest w stanie wygenerowaü na wyjĞciu poprawny, oczekiwany rezultat. W praktyce wyroczniami są zazwyczaj poprzednie wersje oprogramowania lub teĪ specjalnie spreparowane ukáady logiczne (rysunek 4.1). Rysunek 4.1. ĝrodowisko pracy wyroczni testowej Na wejĞciu wyroczni i testowanego systemu podaje siĊ te same informacje i sprawdza siĊ je na wyjĞciu. JeĞli informacje są identyczne, to komparator klasyfikuje je jako poprawne zachowanie testowanej aplikacji. W przypadku róĪnicy miĊdzy wyjĞciem wyroczni i testowanego systemu komparator klasyfikuje je jako potencjalny báąd. Gdy uĪywamy wyroczni do generowania danych testowych, zakáadamy, Īe system ten dziaáa dokáadnie tak, jak powinien dziaáaü tworzony przez nas system. Podając na wejĞciu wyroczni zestaw danych, otrzymujemy na wyjĞciu ich akceptacjĊ lub teĪ ko- munikaty o báĊdach. W zaleĪnoĞci od informacji zwrotnych z aplikacji dane klasyfi- kujemy jako pozytywne lub negatywne. MoĪemy je równieĪ podzieliü na klasy równo- waĪnoĞci odpowiadające wyjĞciowemu sygnaáowi z aplikacji. Rozdziaä 4. i Dane generowane a dane rzeczywiste 75 4.3. Generowane czy rzeczywiste? Firma Grid-Tools przeprowadziáa badania mające na celu wykazanie, jakie dane testowe dają najwiĊksze pokrycie w testach. Przy tym samym zestawie przypadków testowych przebadano kilka zestawów danych testowych i w rezultacie otrzymano nastĊpujące wyniki pokrycia:  Dane produkcyjne — 18 pokrycia.  Bazy danych testowych — 21 pokrycia.  Bazy danych testowych w narzĊdziu QTP Load Runner — 24 pokrycia. Okazaáo siĊ, Īe przydatnoĞü standardowych danych jest (delikatnie mówiąc) nieza- dowalająca. Dane te są zazwyczaj nadmiarowe i zawierają duĪą liczbĊ powtarzających siĊ przypadków. Potrzebne są wiĊc generatory danych dopasowanych do konkretnego projektu lub teĪ odpowiednio spreparowane dane. W teorii dane rzeczywiste są podzbiorem danych generowanych. Istnieje niewielkie prawdopodobieĔstwo wygenerowania danych rzeczywistych przy wystarczająco duĪej liczbie prób. W skoĔczonym czasie, jaki mamy na przetestowanie oprogramowania, nie moĪemy sobie pozwoliü na ryzyko testów w oparciu jedynie o dane generowane. Tabela 4.2 prezentuje róĪnice i podobieĔstwa miĊdzy omawianymi danymi. Tabela 4.2. Dane rzeczywiste i generowane — róĪnice i podobieĔstwa Rzeczywiste Dane wystĊpujące w realnej pracy z aplikacją Zbiór skoĔczony — istnieje skoĔczona iloĞü danych testowych Dane pozytywne Wysoka skutecznoĞü walidowania wymagaĔ klienta Podstawa testów funkcjonalnych i wydajnoĞciowych Dane uĪywane zazwyczaj w testach akceptacyjnych aplikacji Generowane Losowe, przypadkowe, niesystematyczne Zbiór nieskoĔczony — istnieje moĪliwoĞü nieskoĔczonej generacji danych testowych Dane pozytywne oraz dane negatywne Wysoka skutecznoĞü walidowania zabezpieczeĔ w miejscach wprowadzania danych przez uĪytkownika Podstawa testów funkcjonalnych, wydajnoĞciowych i uĪytecznoĞciowych Dane uĪywane zazwyczaj w testach eksploracyjnych aplikacji W praktyce testy warto rozpocząü od danych rzeczywistych, gdyĪ pomagają one wy- kryü podstawowe báĊdy funkcjonalnoĞci. WiĊkszoĞü danych wprowadzanych przez uĪytkowników to wáaĞnie dane rzeczywiste. Warto je zastosowaü, poniewaĪ gwarantują najwyĪsze prawdopodobieĔstwo wykrycia defektów, które mogą ujawniü siĊ uĪytkowni- kom. Ma tu zastosowanie zasada Pareto, zgodnie z którą 80 uĪytkowników uĪywa 20 funkcjonalnoĞci aplikacji. Oznacza to, Īe wiĊkszoĞü z nich bĊdzie wykonywaáa jedynie podstawowe operacje z aplikacją i nie bĊdzie zmuszaáa jej do popisów ekwi- librystycznych. W uĪyciu bĊdą przede wszystkim te dane, które są powszechne i po- pularne. 76 Dane testowe. Teoria i Praktyka DuĪe znaczenie ma równieĪ grupa odbiorców. Aplikacje pisane dla urzĊdów zazwyczaj bĊdą traktowane z niewiarą i dystansem. Dane bĊdą wprowadzane do systemu techni- ką jednego lub dwóch palców i z uwagą, na jaką taka technika pozwala. Obserwacje uĪytkowników pokazują, Īe báĊdy aplikacji traktują oni jako swoją pomyákĊ i nie szukają alternatywnych rozwiązaĔ. Dobitnie pokazuje to przykáad pewnej urzĊdniczki z ZUS-u, która, obsáugując aplikacjĊ naliczającą emerytury, znalazáa báąd związany z nietypowym przypadkiem jej uĪycia. W uproszczeniu polegaáo to na nieuwzglĊdnieniu w reguáach kalkulowania emerytur wytycznych dotyczących pewnej wąskiej grupy emerytów. Pomimo Īe báąd zostaá znaleziony, nie zostaá zgáoszony do dziaáu informatycznego. Wypáaty byáy kalkulowane rĊcznie, poza systemem informatycznym. Ten typ aplikacji i rodzaj odbiorców wymusza przede wszystkim testy z danymi rzeczywistymi w wielu moĪliwych kombinacjach. Z kolei oprogramowanie dedykowane specjalistom-informatykom bĊdzie na pewno dokáadnie sprawdzone. Pola aplikacji zostaną z duĪym prawdopodobieĔstwem zweryfi- kowane pod kątem wszelkich moĪliwych kombinacji znaków, cyfr i liczb. W naturze doĞwiadczonych uĪytkowników leĪy konstruktywny pesymizm poáączony z chĊcią udowodnienia, Īe aplikacja nie dziaáa tak, jak powinna. Widaü to chociaĪby w gorli- woĞci, z jaką punktowany jest Microsoft za kaĪdy báąd w swoim flagowym produkcie — Windowsie. DoĞcigniĊcie fantazji uĪytkowników wymaga w tym przypadku gene- rowania danych testowych. Jedynie maszyna jest bowiem w stanie przygotowaü dane, które mogą zasymulowaü ich inwencjĊ.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Dane testowe. Teoria i Praktyka
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: