Do księgarń trafił właśnie polski przekład książki o testowaniu oprogramowania dla dzieci i nastolatków „Smoki, fora ze dwora! Książka o smokach, rycerzach i testowaniu oprogramowania” Kari Kakkonena. Publikacja Wydawnictwa Naukowego PWN w zabawny sposób opowiada o testowaniu oprogramowania poprzez historie o smokach i rycerzach. Jest to świetna pozycja do samodzielnego korzystania przez dzieci, wspólnie z rodzicami lub jako lektura dodatkowa w szkołach. Zapraszamy do lektury fragmentu książki.


Fragment książki: „Smoki, fora ze dwora! Książka o smokach, rycerzach i testowaniu oprogramowania”, Kari Kakkonen, przeł. Firma KONTEKST, Wydawnictwo Naukowe PWN, 2022:

Dawno, dawno temu była sobie mała wioska o nazwie Owcza Dolina, której mieszkańcy wiedli spokojne życie pośród pięknych górskich zboczy. Dni upływały im w spokoju i radości. Wszyscy wstawali rankiem, o wschodzie słońca, i jedli sycące śniadanie. W ciągu dnia zajmowali się wypasem krów i owiec na pobliskich łąkach wykorzystywanych jako pastwiska. Wieczorem gromadzili się w głównym budynku, by wspólnie biesiadować. Niektórzy snuli wtedy opowieści o odległych krainach i wspaniałych przygodach.

W świecie informatyki naszą wioską jest oprogramowanie, na przykład gra uruchamiana na smartfonie lub komputerze. Oprogramowanie czasami nazywamy po prostu programem. Komputer przechowuje taką grę w swojej pamięci. Owce w tej historii symbolizują pamięć komputera.

Pewnego pięknego dnia wydarzyło się coś niezwykłego… Dziewczynka imieniem Laura pasła swoje owce na odległej łące. Wróciła do wioski wieczorem, później niż zwykle. Powiedziała, że nie mogła odnaleźć jednej owcy. Do tej pory wszystkie posłusznie wracały do pasterki, kiedy głośno gwizdała. Tym razem było inaczej… Laura rano jak zwykle policzyła zwierzęta, a potem zrobiła to samo wieczorem. Brakowało jednej owcy! Laura przeszukała wszystkie skrawki lasu otaczające pastwiska, ale niczego tam nie znalazła. Słońce było już coraz niżej, więc musiała wrócić do wsi z resztą stada. Ludzie biesiadujący wspólnie doszli do wniosku, że owca musiała potknąć się o kamień i wpaść do głębokiego jaru. Laurę ogarnęły jednak wątpliwości: przecież owce rzadko wpadają do wąwozów, bo to bardzo zwinne zwierzęta! Cóż, może tym razem rzeczywiście zdarzył się wypadek…

W następnych dniach Laura wracała do wioski, przynosząc niepokojące wieści. Dwa dni później zaginęła kolejna owca, następnego dnia jeszcze jedna. Minęły dwa dni i Laura znów nie mogła doliczyć się jednego zwierzęcia. Zaczęła podejrzewać, że chodzi o coś groźniejszego niż skaliste wąwozy. Pozostali mieszkańcy wioski też zaczęli się niepokoić. Karol, sympatyczny rolnik, pożyczył dziewczynce swojego owczarka noszącego imię Kumpel, żeby pomógł jej pilnować stada. Może ten mądry długowłosy pies pasterski będzie umiał ochronić zwierzęta przed wpadnięciem do niebezpiecznych jarów? Tak, to był dobry pomysł! Owce przestały znikać. Laura bardzo zaprzyjaźniła się z Kumplem. Zapytała Karola, czy może zatrzymać go na stałe. Uwielbiała drapać pieska za uszami i czochrać jego długą, miękką sierść. Kumpel bardzo jej pomagał na pastwisku, codzienne zadania stały się znacznie łatwiejsze. Kiedy przybiegał do niej i kiedy głaskała go po grzbiecie, zawsze z radością lizał jej dłoń. Rolnik zgodził się oddać Kumpla dziewczynce, ponieważ miał wiele innych psów.

Jeśli w kodzie gry znajduje się wyciek pamięci, zaczyna ona używać coraz większej ilości zasobów, aż w końcu pamięć się wyczerpie. Smartfon zaczyna się wtedy dziwnie zachowywać. Wszystko działa wolniej, gra może się na chwilę zablokować, a w końcu smartfon w ogóle się wyłączy. W naszej opowieści w niewytłumaczalny sposób znikają kolejne owce – podobnie w oprogramowaniu zawierającym usterki bez wyraźnego powodu zaczyna ubywać pamięci.

W następnym tygodniu Jonatan – chłopiec, który wypasał swoje stado po drugiej stronie wioski – wrócił do domu ze złą nowiną. Nie mógł nigdzie odnaleźć jednej owcy, chociaż przeszukał wszystkie zakamarki w zaroślach. W kolejnych dniach ginęły kolejne zwierzęta. Kiedy Laura dowiedziała się o kłopotach Jonatana, poradziła mu, żeby skorzystał z pomocy psa pasterskiego. Udało się! Owce przestały znikać.

Wieczorami mieszkańcy wioski, zebrani w głównym budynku, toczyli ożywione dyskusje na temat ostatnich wydarzeń. Wszyscy zastanawiali się, z jakiego powodu giną owce. Przecież nie mogły wszystkie powpadać do wąwozów! To sprytne stworzenia, dobrze sobie radzą na zboczach gór! Może trzeba poprosić mieszkańców sąsiedniej wioski o wypożyczenie kolejnych psów, aby żadne pastwisko nie pozostało bez ochrony? A może są jakieś inne rozwiązania? Może pilnowaniem owiec powinni zająć się wszyscy mieszkańcy, młodzi i starzy? Laura była zdania, że każdy pasterz musi mieć psa. Jeśli po łące biegał owczarek, nie było żadnych problemów.

W następnych tygodniach owce coraz częściej znikały z pastwisk. Początkowo wyłącznie z tych, na których pasterzowi nie towarzyszył pies. Potem także z tych, na których pilnowaniem stada zajmował się czworonożny przyjaciel. Czasami jedno ze zwierząt oddalało się od stada i zmierzało do lasu w poszukiwaniu smaczniejszej trawy. Pasterze, którzy wyruszali na ich poszukiwanie, opowiadali straszne historie o jakimś wielkim stworze przemykającym między drzewami. I żadnemu z nich nie udało się odnaleźć zagubionej owieczki… Podobno ten potwór był czarny – niektórzy mówili, że czerwony – i miał błyszczącą skórę. Jeden chłopiec twierdził, że zwierz miał wielkie skrzydła, ale nie wzbijał się w powietrze. Laura nie widziała niczego podobnego, kiedy ginęły jej owieczki. Uznała jednak, że to prawdopodobne: rzeczywiście mógł je pożreć nieznany potwór. Przecież na pewno nie powpadały do wąwozów! Nikt z wioski ich tam nie znalazł.

Na początku wyciek pamięci powoduje dziwne zjawiska, które z czasem przybierają na sile. Powodem wycieku pamięci jest zwykle defekt w kodzie: program rezerwuje pamięć, ale nie zwalnia jej po wykorzystaniu. Jeśli tak się dzieje, następuje przepełnienie pamięci urządzenia, które nie może już normalnie działać i w pewnym momencie zostaje wyłączone. Niektóre języki programowania są bardziej podatne na usterki tego rodzaju.

Opowieści pasterzy były coraz dziwniejsze. W końcu stary Aleksy powiedział głośno to, o czym wielu mieszkańców myślało od dawna: to smok! To smok zjada nasze owce! Nie ma innej możliwości! Ludzie pamiętali również baśnie, w których ze smokami walczyli dzielni rycerze. Może trzeba poszukać w pobliskim Górogrodzie jakiegoś śmiałka, który pomógłby rozwiązać problem? Mieszkańcy postanowili wysłać do miasta wójta wioski, Amandę, żeby poprosiła o pomoc rycerza.

Czerwony smok z opowieści to defekt, który jest przyczyną wycieku pamięci. Wyciek pamięci powoduje awarię w działaniu oprogramowania. Zatem defekt w kodzie powoduje tę awarię. Programista popełnił błąd i dlatego powstała usterka. Może ją usunąć, poprawiając kod, podobnie jak rycerz może pokonać lub zabić smoka w walce. Niektórzy nazywają defekty „pluskwami”.

Następnego dnia wczesnym rankiem Amanda wyruszyła w towarzystwie kilku mężczyzn. Była sędziwą, szanowaną przez wszystkich osobą, która już od dziesięciu lat nosiła zaszczytny tytuł wójta. Kiedy stanęła u wrót zamku w Górogrodzie, od razu zażądała rozmowy z księciem Walterem. Opowiedziała mu o znikających owcach i podejrzeniach, że pojawił się groźny smok. Walter przyznał, że jego rycerze od czasu do czasu musieli walczyć z tymi stworami. Zatem smoki istniały! Były groźne, a czasami przerażające. Książę świetnie rozumiał obawy mieszkańców Owczej Doliny. Obiecał, że wyśle do wioski swojego najdzielniejszego rycerza, zwanego Żółtobrodym, by pomógł jej mieszkańcom. Żółtobrody przybył na miejsce kilka dni później. Poprosił pasterzy o wskazanie miejsc, w których zniknęły owce. Laura zgłosiła się pierwsza. Zaprowadziła rycerza na pastwisko. Żółtobrody przespacerował się po okolicznych lasach i odkrył kilka miejsc, w których leżały osmalone kamienie i kości zwierząt. Pokazał je Laurze. Żółtobrody był doświadczonym wojownikiem, potrafi ł tropić groźne stwory. Domyślił się, że porwane owce musiał pożreć smok, i to taki, który zionie ogniem – skoro na kamieniach zostały ślady płomieni, a nikt nie rozpalał tu ogniska.

Do wioski na zaproszenie jej mieszkańców przybył rycerz. Podobnie, jeśli w programie występują błędy, powiadamia się o nich programistę odpowiedzialnego za kod. W tym wypadku autorem kodu jest inna osoba. Jednak wiadomo, że potrafi ona usuwać defekty, więc nadaje się do tego zadania. Programista usuwa defekt, a w naszej historii rycerz pokonuje smoka. Rycerz nie jest mieszkańcem wioski, przybył z pobliskiego zamku. Programiści również nie pracują zwykle w miejscu, w którym użytkownicy korzystają z oprogramowania. Firma, w której zatrudniony jest programista, sprzedaje oprogramowanie klientom – pojedynczym osobom i innym przedsiębiorstwom. Użytkownicy mogą wykryć defekt podczas korzystania z oprogramowania. Usterka związana z wyciekiem pamięci często pozostaje niezauważona przez autorów programu. Takie defekty są trudne do wykrycia i zespół wytwórczy nie zawsze znajduje je w trakcie testów przeprowadzanych podczas wytwarzania oprogramowania.

Żółtobrody sporządził mapę pastwisk i zaznaczył miejsca, w których pojawił się smok. Następnego dnia udał się z pastuszkiem Kubą na łąkę, której potwór na razie nie odwiedził, chociaż widziano go w pobliżu. Rycerz chciał zobaczyć smoka na własne oczy. Przywdział zbroję i chwycił miecz oraz długą, ostrą włócznię. Zatrzymał się na skraju lasu u stóp wysokiego drzewa.

Programista może wykryć wyciek, mierząc ilość pamięci używanej podczas korzystania z oprogramowania. Jeśli ta ilość ciągle rośnie, zapewne w kodzie występuje wyciek pamięci. Można uruchomić program, wykonując jedna po drugiej kolejne linie kodu i ustalić, w której z nich rezerwowana jest pamięć bez późniejszego zwalniania. To miejsce, w którym powstaje defekt, który trzeba usunąć.

Tego dnia Żółtobrody nie zobaczył smoka. Stwór pojawił się dopiero na drugi dzień. O zachodzie słońca coś poruszyło się między drzewami, tam gdzie akurat pasł się baranek, który odłączył się od stada. Rycerz ostrożnie podszedł bliżej i ujrzał smoka porywającego przerażone zwierzę! Smok był nieduży, nie większy od krowy, ale szybko sobie poradził z barankiem. Miał czarne skrzydła, a jego grzbiet był pokryty czerwonymi łuskami. W paszczy lśniły przerażające zębiska. Żółtobrody zbliżył się cicho do potwora, nie spuszczając go z oka. Kiedy smok go w końcu zauważył, stanął na tylnych łapach i głośno zaryczał. Bez chwili wahania rycerz stanął naprzeciwko niego. Z całej siły pchnął włócznię w bok smoka – tam gdzie jego skóra wydawała się najcieńsza. Ostrze wbiło się głęboko w ciało stwora, który padł na ziemię. Z jego paszczy wydobyły się jeszcze nikłe języki ognia, lecz nie przestraszyło to dzielnego rycerza. Po chwili smok wyzionął ducha.

W trakcie testów programista znajduje miejsce wycieku pamięci, korzystając z odpowiednich narzędzi do pomiaru jej wykorzystania (w naszej opowieści rycerz rysuje mapę) i lokalizuje defekt (dostrzega smoka). Potem może wprowadzić poprawkę w odpowiedniej linii kodu, czyli zabić smoka. Program można poprawić na wiele sposobów, to samo dotyczy walki ze smokami: w tej historii najskuteczniejszą bronią okazała się włócznia. Poszukiwanie defektów nazywamy testowaniem. Znajdowanie defektów i ich usuwanie nazywamy debugowaniem. Zazwyczaj za testowanie i debugowanie odpowiada programista. W opowieści do pokonania smoka potrzebny był tylko jeden rycerz.

Żółtobrody opowiedział mieszkańcom wioski o tym, jak udało mu się wytropić i zabić smoka. Laura była zachwycona: przecież smok pojawił się także na jej pastwisku, a rycerz właśnie zabił smoka! Od tej pory już nie będzie uprzykrzać jej życia. Wieczorem mieszkańcy wyprawili ucztę na cześć dzielnego rycerza. Dzięki niemu owce przestaną znikać w tajemniczy sposób, a oni będą mogli wreszcie odetchnąć z ulgą! Amanda wygłosiła przemowę, w której z całego serca podziękowała Żółtobrodemu. Laura, Jonatan, Kuba i inne dzieci długo wznosiły radosne okrzyki. Gdyby smok był większy, mógłby wyrządzić więcej szkód. Mógłby zjeść wszystkie owce i krowy hodowane w wiosce!

1 Shares:
Może zainteresować Cię także