Dane oryginału

Authorized translation from the English language edition, entitled Dragons out! A book about dragons, knights and software testing, by Kari Kakkonen, Copyright © 2021 by Kari Kakkonen.

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior permission of the publishers.

Polish language edition published by Polish Scientific Publishers PWN, Copyright © 2022.

Patron główny wydania:

Stowarzyszenie Jakości Systemów Informatycznych

Przekład: KONTEKST

Projekt okładki polskiego wydania na podstawie oryginału: INT-MEDIA Alicja Żarowska-Mazur

Wydawca: Wioleta Szczygielska-Dybciak

Redaktor prowadzący: Monika Zabrocka-Kutera

Redaktor: Agnieszka Mańko

Koordynator produkcji: Anna Bączkowska

Skład wersji elektronicznej na zlecenie Wydawnictwo Naukowe PWN S.A.
Michał Latusek

Konsultacja merytoryczna: Monika Petri-Starego, Lucjan Stapp, Stowarzyszenie Jakości Systemów Informatycznych

Zastrzeżonych nazw firm i produktów użyto w książce wyłącznie w celu identyfikacji.

Książka, którą nabyłeś, jest dziełem twórcy i wydawcy. Prosimy, abyś przestrzegał praw, jakie im przysługują. Jej zawartość możesz udostępnić nieodpłatnie osobom bliskim lub osobiście znanym. Ale nie publikuj jej w internecie. Jeśli cytujesz jej fragmenty, nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. A kopiując jej część, rób to jedynie na użytek osobisty.

Szanujmy cudzą własność i prawo

Więcej na www.legalnakultura.pl

Polska Izba Książki

Copyright © for the Polish edition by Wydawnictwo Naukowe PWN SA

Warszawa 2022

ISBN: 978-83-01-22284-0

eBook został przygotowany na podstawie wydania papierowego z 2022r. (Wydanie I)

Warszawa 2022

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl, reklama@pwn.pl

www.pwn.pl

Bezpłatny fragment

Przedmowa

Podziękowania

Jak czytać tę książkę

Czym jest testowanie oprogramowania?

Smoki

MAPA

1. Irytujący czerwony smok (wyciek pamięci)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

2. Szary smok łupieżca (poważny defekt funkcjonalności)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

3. Mały zielony smok (niewielki defekt)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

4. Złośliwy czarny smok (defekt związany z zabezpieczeniami)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

5. Szybki purpurowy smok (defekt związany z wydajnością)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

6. Uciążliwy zielony smok (defekt związany z użytecznością)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

7. Okazały zielony smok (widoczny, ale niegroźny defekt funkcjonalności)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

8. Brązowy smok podziemny (defekt sprzętowy)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

9. Znikający szary smok i łagodny zielony smok (defekt związany z testowaniem i posiew usterek)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

Charakterystyka postaci

10. Uparty szary smok (defekt związany z kontrolą wersji)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

11. Sprytny zielony smok (niewielki, ale nieoczywisty defekt funkcjonalny)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

12. Skołowany zielony smok (defekt związany z dokumentacją)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

13. Dwugłowy szary smok (bardzo poważny defekt)

Ćwiczenia

Odpowiedzi do ćwiczeń

Charakterystyka postaci

Co dalej?

Słowniczek

Przypisy

Przedmowa

Kari napisał opowieść o smokach,

książkę dla dzieci… I dorosłych? O, tak!

Ja srogich smoków się boję, nic w tym dziwnego,

ale testowanie – cóż to takiego?!

W tej baśni jest wszystko, powiem ci szczerze:

czyhające smoki i mali rycerze.

Do krainy testów śmiało z nimi idź

w mroczne zakamarki, których nie zna nikt.

Oprócz smoków dobrych są też smoki złe,

w ciekawej historii dużo dzieje się,

zło można pokonać wśród wichrów i burz…

Chcesz wiedzieć coś więcej? Zacznij czytać już!

Czym jest testowanie? – spytać pewnie chcesz…

To daleka podróż pełna trudnych miejsc,

niezwykła wyprawa, droga w nieznane,

ważna, gdy tworzysz oprogramowanie.

Książka, którą czytasz, to historie dwie,

na jej kartach ciągle przeplatają się,

dowiesz się z niej dużo, wszystko pojmiesz w lot,

polując na smoki, przetestujesz kod…

Czytaj zatem prędko, nim cię pożre smok!

Paul Gerrard, dyrektor firmy Gerrard Consulting,
obiecujący poeta;
Macclesfield (Wielka Brytania)

Podziękowania

Pragnę podziękować mojej żonie Tainie i mojemu synowi Nooa, którzy w trakcie naszego urlopu i po jego zakończeniu pomogli mi znaleźć czas na napisanie tej książki. Kocham was!

Podziękowania należą się wszystkim pierwszym czytelnikom. Wam, drogie dzieci, bo wasze opinie zachęciły mnie do kontynuowania pracy nad książką. Moim koleżankom i kolegom zajmującym się testowaniem – dzięki waszej pomocy mogłem poprawić jakość fragmentów dotyczących tego obszaru, a tekst stał się bardziej spójny. Moim znajomym reprezentującym różne dziedziny, w szczególności nauczycielom – dzięki wam udało mi się dostosować treść książki do potrzeb różnych grup odbiorców. Na szczególne uznanie zasługują Marko Rytkönen, Minna Aalto i Debra Friedenberg.

Specjalne podziękowania należą się mojej ilustratorce Adri, która dołączyła do naszej wyprawy i stworzyła świat smoków, wykazując się niezwykłą kreatywnością. Serdecznie dziękuję również mojemu przyjacielowi Artsiemu, który wspomagał mnie słowami zachęty i udzielił cennych porad związanych z rozwojem koncepcji tej książki.

Dziękuję wszystkim, którzy wzięli udział w kampanii crowdfundingowej w serwisie Indiegogo i udostępnili informacje innym osobom, społecznościom oraz czasopismom. Wasza pomoc sprawiła, że powstał produkt o znacznie wyższej jakości. Wsparcie finansowe jest potrzebne w przypadku tworzenia każdego tekstu i zawsze warto reklamować przedsięwzięcia realizowane w szczytnym celu.

Dziękuję też mojemu pracodawcy, firmie Knowit, ponieważ wykazała się elastycznym podejściem, dzięki czemu miałem możliwość napisania tej książki. Wyrazy wdzięczności należą się także moim współpracownikom z FSTB i ISTQB®, którzy przez cały czas mnie wspierali. Wszystkie zaangażowane osoby postanowiły podjąć wyzwanie i poprzez wspieranie wydania tej książki oraz jej zakup przyczynić się, jako przedstawiciele branży informatycznej, do rozpowszechnienia koncepcji testowania w szkołach i wśród młodych czytelników. To wyjątkowe, że zechcieliście pomóc w realizacji tego ważnego projektu.

Niezmiernie dziękuję kolegom z SJSI (Lucjanowi Stappowi i Monice Petri-Starego) za przygotowanie fantastycznego przekładu na język polski i za udzieloną pomoc.

Chciałbym również przekazać podziękowania mojemu wydawcy, Wydawnictwu Naukowemu PWN, za wyruszenie ze mną w tę podróż.

Dziękuję wszystkim, którzy dodawali mi otuchy. Jest was tak wielu, że z całą pewnością zapomniałem kogoś wymienić. Serdecznie wszystkim dziękuję!

Kari Kakkonen

Helsinki

Jak czytać tę książkę

W książce, którą trzymasz w rękach, przeplatają się dwa równoległe wątki. Pierwszy z nich zawiera opowieści o smokach i rycerzach, w drugim znajdują się fragmenty mówiące o testowaniu oprogramowania, które zawsze wiążą się z przedstawioną baśniową (smoczą) historią. Takie wyjaśnienia są prezentowane obok podstawowego tekstu. Czytelnicy mogą skupić się wyłącznie na fantastycznej fabule i opowieściach o pojedynkach smoków z rycerzami. Głównymi bohaterami tych przygód są dzieci. Jeśli ktoś pragnie dowiedzieć się czegoś więcej, czyli poznać i zrozumieć koncepcje związane z testowaniem oprogramowania, może czytać także dodatkowe fragmenty z objaśnieniami. Mimo to nawet sekcje wyjaśniające upraszczają rzeczywistość, aby była ona zrozumiała. W przypadku wielu przedstawionych zagadnień mogą występować wyjątki i szczególne okoliczności, jednak nie omawiam wszystkich takich sytuacji.

Opowieści o smokach zostały opracowane w taki sposób, by odpowiadały konkretnym problemom z dziedziny testowania oprogramowania. Na przykład treść rozmowy między pasterką a dzielnym rycerzem może dać czytelnikowi pewien obraz interakcji między użytkownikiem oprogramowania a testerem. Historie o smokach zawierają wiele odniesień i stanowią analogie do rzeczywistego testowania oprogramowania.

Na końcu książki umieszczono słowniczek terminologii, w którym przedstawiono wszystkie najważniejsze pojęcia związane z testowaniem. Wyjaśniono tam na przykład, czym jest oprogramowanie i jak rozumiemy termin „technika testowania”. Słowniczek może ci się przydać w trakcie czytania fragmentów z objaśnieniami, gdy pojawi się nowe określenie, którego znaczenie zechcesz poznać.

Na końcu każdego rozdziału znajdują się ćwiczenia – niektóre z nich są łatwe, niektóre nieco bardziej skomplikowane. Nawet jeśli któreś z nich wyda ci się zbyt trudne, warto zapoznać się z przykładowymi odpowiedziami. Ćwiczenia i przykładowe odpowiedzi stanowią uzupełnienie części książki wyjaśniającej testowanie. Ostatnie zadanie w danym rozdziale to okazja do zabawy – polega na stworzeniu rysunku albo rozegraniu pewnej gry.

Na samym początku przedstawiono krótki opis zagadnień związanych z testowaniem oprogramowania. Być może warto się z nim zapoznać przed rozpoczęciem lektury właściwej opowieści. Jednak jeśli chcesz, możesz od razu do niej przejść.

Każdy może czytać tę książkę w inny sposób, młodsze osoby zapewne skupią się na czymś innym niż starsze. Możesz wielokrotnie wracać do tej opowieści, gdy zdobędziesz już nieco więcej doświadczenia. Mam nadzieję, że moja książka zadowoli zarówno miłośników fantasy, jak i osoby zainteresowane testowaniem oprogramowania. Ja uwielbiam i jedno, i drugie, dlatego mam nadzieję, że mój entuzjazm udzieli się czytelnikom.

Czym jest testowanie oprogramowania?

Ta książka opowiada nie tylko o smokach, ale także o testowaniu oprogramowania. Dlatego zaczniemy od krótkiego wprowadzenia do tematu – dzięki temu treść objaśnień dotyczących testowania, zamieszczonych pomiędzy fragmentami fantastycznych historii, stanie się dla was bardziej zrozumiała.

Na co dzień mamy do czynienia z prawdziwymi cudami techniki. Przyjrzyjmy się smartfonom – używamy tych urządzeń do prowadzenia rozmów telefonicznych, ale także do oglądania filmów w serwisie YouTube albo na Netfliksie. Produkty technologii informatycznych składają się zwykle z dwóch części: po pierwsze, z samego urządzenia, a po drugie, z oprogramowania, które na takim urządzeniu działa. Oprogramowanie możemy dziś znaleźć także na sprzęcie, który do niedawna go nie zawierał. Chociażby dzwonek elektryczny do drzwi – wcześniej było to tylko urządzenie z przyciskiem, a po jego naciśnięciu rozlegał się dźwięk. Obecnie dzwonek może mieć wbudowane proste oprogramowanie, które pozwala wybrać odtwarzany sygnał. Nie zawsze od razu widać, że korzystamy z technologii informacyjnej. Na przykład zatrzymanie samochodu jest procesem, który angażuje wiele programów. Po naciśnięciu pedału hamulca następuje połączenie z komputerem, który przekazuje do hamulców instrukcje umożliwiające zmniejszenie prędkości pojazdu.

Jeśli oprogramowanie służy do czegoś więcej niż sterowanie jednym urządzeniem, mówimy o systemach informatycznych (albo po prostu o systemach). Rozwiązania tego typu znajdują się częściowo w innym miejscu niż użytkownik systemu, ale zwykle miejsce ich instalacji nie ma dla użytkownika znaczenia. System informatyczny działa niezależnie od tego, gdzie się znajduje. W praktyce oznacza to, że system jest zainstalowany na jakimś serwerze stojącym w bezpiecznym centrum przetwarzania danych, czasami mieszczącym się głęboko pod ziemią. Użytkownicy łączą się z systemami za pomocą swoich urządzeń, na przykład smartfonów albo laptopów. Połączenia nawiązywane są przez sieć. Dobrym przykładem systemu jest internetowy sklep spożywczy. Na stronie sklepu można kupić różne produkty, podobnie jak w normalnym supermarkecie. Klienci łączą się ze sklepem za pomocą smartfonu, wrzucają towary do koszyka i wybierają miejsce odbioru zamówienia.

Skąd się biorą systemy informatyczne i oprogramowanie? No cóż, ktoś musi je wytworzyć! Tworzenie oprogramowania polega na jego projektowaniu (zastanawiamy się, jak ma działać), kodowaniu (czyli właściwym pisaniu kodu w odpowiednim języku programowania) i testowaniu (sprawdzamy, czy oprogramowanie działa poprawnie i czy nie pojawiają się jakieś usterki). Oprogramowanie to zatem coś, dzięki czemu komputer robi to, czego od niego oczekujemy. Jeśli chcemy tworzyć oprogramowanie, musimy zebrać grupę osób o odpowiednich umiejętnościach, które będą w stanie wykonać wszystkie niezbędne zadania. Testowanie jest jednym z podstawowych zadań w procesie wytwarzania oprogramowania. Wymaga wielu umiejętności. Oczywiście niektóre osoby specjalizują się wyłącznie w tej dziedzinie, jednak w procesie wytwarzania oprogramowania w testowaniu biorą udział wszyscy członkowie zespołu wytwórczego. Jedna osoba nie jest w stanie przetestować całego systemu.

Testowanie to proces, w którym sprawdzamy różne aspekty działania oprogramowania. Czy oprogramowanie robi to, do czego zostało zaprojektowane? Czy robi coś, czego robić nie powinno? A może działa niepoprawnie albo zbyt wolno? Czy jest łatwe w użyciu, czy skomplikowane? Problem, który odkryje osoba testująca, nazywamy usterką albo defektem. Testowanie oprogramowania polega właśnie na wykrywaniu jego defektów. Cieszymy się, gdy takie defekty uda się zidentyfikować w trakcie wytwarzania oprogramowania. Można je wtedy usunąć, zanim oprogramowanie trafi do właściwych użytkowników. Testerzy nie zawsze wykrywają usterki – czasami okazuje się, że oprogramowanie działa zgodnie z założeniami. To idealna sytuacja! Jednak kiedy defekty występują, koniecznie trzeba je znaleźć. Jeśli zespołowi wytwórczemu nie uda się tego zrobić, najprawdopodobniej po pewnym czasie błąd zostanie zauważony przed jednego z użytkowników. Być może dojdzie on wtedy do wniosku, że oprogramowanie jest niskiej jakości i trzeba skorzystać z innego produktu. Warto też pamiętać, że usunięcie usterki w końcowych etapach procesu wytwórczego jest znacznie trudniejsze i bardziej kosztowne. Właśnie dlatego należy prowadzić dużo testów już w trakcie tworzenia oprogramowania.

Dodatkowe informacje można znaleźć na stronie www.dragonsout.com – udostępniono tam materiały dotyczące testowania, rysunki wykonane przez czytelników oraz pomocniczą prezentację przygotowaną w programie PowerPoint przeznaczoną dla nauczycieli[1].

Smoki

Znamy wiele rodzajów smoków. Są na przykład wielobarwne olbrzymy, są też niewielkie, zionące ogniem, płomienne jaszczury. Niektóre z nich są szybkimi, przebiegłymi stworami, które potrafią dotrzeć w każde miejsce. Prześladują mieszkańców małych wiosek i wielkich miast. Walką z tymi groźnymi stworami zajmują się dzielni rycerze. Odziani w stalowe zbroje nie boją się zmierzyć ze smokami, by pokonać je siłą oręża lub sprytem. Czasami zdarza się nawet, że trzeba skorzystać z pomocy jakiegoś smoka, żeby schwytać innego smoka. Z kolei w świecie informatyki występują defekty, które są dla oprogramowania utrapieniem równie uciążliwym jak stwory pustoszące wioski. Można nauczyć się wykrywać usterki, ale w tym celu trzeba zdobyć odpowiednią wiedzę. Testerzy i programiści polujący na defekty są w tym świecie rycerzami. Ta książka zawiera opowieści o smokach i rycerzach, dzięki którym poznasz tajniki testowania. Czytelniczki i czytelnicy, którzy już co nieco wiedzą o komputerach i tworzeniu kodu, będą mogli łatwiej zrozumieć niektóre zagadnienia. Starałem się jednak opisywać poszczególne tematy w sposób zrozumiały dla wszystkich odbiorców – dzieci, młodzieży i dorosłych. Zapraszam do lektury. Dowiedz się, jak testować oprogramowanie, dobrze się przy tym bawiąc!

Przypisy

[1] Polska wersja tej prezentacji jest dostępna tu: https://sjsi.org/dla-nauczycieli/