DociekAI
1/5
0%
LEKCJA06

Testowanie i poprawianie programu

Znajdź błąd w cudzym programie i wytłumacz, dlaczego twój działa.

25–30 min5 bloków

Dziury w dętce nie znajduje się wzrokiem. Zanurza się ją w wodzie i patrzy, skąd lecą bąbelki — bo usterka sama z siebie nie jest widoczna, widoczny jest dopiero jej skutek, i to w dobrze dobranych warunkach.

Program ma tak samo. Prawie każdy działa przy danych, które wymyślił jego autor, i prawie każdy psuje się gdzie indziej. Ta lekcja jest o czterech rzeczach: jak powiedzieć z góry, co ma się stać; jak dobrać dane, żeby program pękł; jak znaleźć miejsce usterki, gdy już pęknie; i jak wytłumaczyć, dlaczego twój własny program działa.

Okrągła dętka rowerowa zanurzona w płaskiej cynkowej balii z wodą; z jednego miejsca na gumie unosi się w górę wąski sznurek małych bąbelków powietrza, a na powierzchni rozchodzą się wokół nich kółka

Plan tej lekcji

  1. 01Haczyk5 min
  2. 02Ćwiczenie5 min
  3. 03Debugowanie6 min
  4. 04Wyjaśnienie5 min
  5. 05Zadanie praktyczne8 min
Haczyk5 min

Powiedz, co ma się stać

Gruby okrągły plaster pnia drzewa oparty o deski starej stodoły, z narysowanym kredą jasnym kołem pośrodku; jedna strzała z pierzastymi lotkami tkwi w drewnie wyraźnie poza tym kołem, blisko krawędzi

Koło narysowano przed strzałem. Dlatego nie da się powiedzieć „no przecież o to mi chodziło”.

Z programem jest tak samo. Jeżeli powiesz, co ma się stać, dopiero po uruchomieniu, twoja głowa dopasuje oczekiwanie do tego, co zobaczyła. W tym bloku najpierw postawisz swój cel na scenie, a dopiero potem klikniesz flagę.

Program 1 z 3 — Rozgrzewka

postaw bladego kota tam, gdzie skończy

Zamiar autora: Kot ma przejść kawałek w prawo, przystanąć i przejść jeszcze raz tyle samo.

stuknij w scenę
Kot
kiedy kliknięto zieloną flagę
przesuń o 100 kroków
czekaj 1 s
przesuń o 100 kroków

Przeczytaj klocki i powiedz z góry, gdzie kot stanie na końcu. Blady kot na scenie to twoja odpowiedź — możesz go przestawiać, dopóki nie uruchomisz programu.

Ćwiczenie5 min

Złam ten program

Autor tego programu mówi: „u mnie działa”. Jego obietnica brzmi: kot przechodzi dokładnie tyle kroków, ile wpiszesz, i melduje, że jest na miejscu. Sprawdził to na stu krokach i uznał, że skończył.

Twoje zadanie jest odwrotne niż zwykle: złam ten program. Znajdź 2 różne liczby, przy których obietnica przestaje być prawdziwa.

scena
Kot
kiedy kliknięto zieloną flagę
wróć na start
przesuń o 140 kroków
powiedz jestem na miejscu

Tabela testów

krokimiał stanąćstanąłzgadza się?
100autorx: -50x: -50 tak

Złamane obietnice: 0 z 2.

Debugowanie6 min

Gdzie siedzi usterka

Z daleka widać tylko tyle, że coś jest nie tak. Żeby wskazać, która żarówka zawiniła, trzeba przejść sznur lampka po lampce. Program da się przejść dokładnie tak samo — klocek po klocku, z zatrzymaniem po każdym. Tylko że w programie jest coś jeszcze: zmiany, po których na scenie nie widać nic.

Długi sznur starych szklanych lampek leżący luźno zwinięty na drewnianym stole; wszystkie żarówki świecą ciepłym żółtym światłem oprócz jednej pośrodku, szarej i zgaszonej

Usterka 1 z 2 — Kot na głowie

nie poprawiaj — najpierw znajdź

Plan autora: Kot ma przejść w prawo, zawrócić i pójść w lewo — i przez cały czas iść normalnie, na łapach.

klocek 0
Kot

x

-150

y

0

kierunek

90

styl obrotu

lewo-prawo

krok 1 z 8

kiedy kliknięto zieloną flagę
ustaw styl obrotu dowolny
wróć na start
przesuń o 120 kroków
czekaj 1 s
ustaw kierunek na -90
przesuń o 200 kroków
powiedz koniec

Przewijaj program klocek po klocku i po każdym porównuj scenę z planem. Zatrzymaj się w pierwszym miejscu, w którym coś się nie zgadza.

Wyjaśnienie5 min

Po co jest ten klocek

Wieża zbudowana z małych, niepomalowanych drewnianych klocków stojąca na stole; jeden klocek w dolnej części wieży jest do połowy wysunięty na bok, a wieża nad nim lekko się przechyla

Jest tylko jeden pewny sposób, żeby sprawdzić, czy klocek trzyma wieżę.

Wyjąć go i popatrzeć. W programie to kosztuje jeszcze mniej niż tutaj — zawsze możesz wstawić klocek z powrotem. A odpowiedź, którą dostajesz, jest dokładnie tą, o którą pyta nauczyciel, mówiąc „wytłumacz, jak działa twój program”.

Ten skrypt działa. Kot chodzi tam i z powrotem po scenie i nic mu nie dolega. Pytanie brzmi inaczej: skąd wiesz, po co jest w nim każdy klocek?

Jest na to sposób, z którego programiści korzystają codziennie: wyjmij jeden klocek i zobacz, co przestanie działać. Niżej są trzy obietnice tego programu — udowodnij każdą z nich, łamiąc ją.

scena
Kot
kiedy kliknięto zieloną flagę
wróć na start
ustaw kierunek na 90
ustaw styl obrotu lewo-prawo
powtórz 10 razy
przesuń o 45 kroków
jeżeli na brzegu, odbij się
powiedz koniec

wyjęty klocek

pusto

Stuknij w klocek, żeby go wyjąć — jeden na raz. Doświadczenie, w którym zmieniło się kilka rzeczy naraz, nie mówi, która z nich zawiniła.

Trzy obietnice tego programu

  • Kot zawraca przy krawędzi sceny, zamiast się o nią oprzeć.

    jeszcze nie udowodnione
  • Kot nigdy nie idzie głową w dół.

    jeszcze nie udowodnione
  • Po każdym kliknięciu flagi kot zaczyna tak samo: z tego samego miejsca i zwrócony w tę samą stronę.

    jeszcze nie udowodnione
Zadanie praktyczne8 min

Zadanie: program, który działa za każdym razem

Świeże jajko leży na dnie, stare staje na sztorc. Jeden prosty test, jedna jasna odpowiedź — i każde jajko sprawdza się osobno. Twoje zamówienie ma sześć takich testów. Dostajesz je z góry, bo tak właśnie wygląda uczciwa umowa: wiesz, z czym twój program będzie porównany, zanim zaczniesz go budować.

Szeroka przezroczysta szklana misa z wodą, a w niej trzy brązowe jajka: dwa leżą płasko na dnie, a trzecie stoi pionowo na węższym końcu i wystaje ponad lustro wody
01Zlecenie

Zrób kota-listonosza. Po kliknięciu zielonej flagi kot rusza z lewej strony sceny, przechodzi na prawą — tak, żeby było widać, jak idzie — i na koniec się melduje, że dotarł.

I jeden warunek, o który chodzi w całej lekcji: ma to zrobić tak samo za każdym razem. Za pierwszym kliknięciem flagi, za drugim i za dziesiątym.

Nie podaję ci gotowego skryptu — klocki dobierz sam/sama. Podaję coś innego: testy, które twój program ma przejść. Uruchomię go u ciebie dwa razy pod rząd i porównam oba przebiegi.

Scena
Kot

Naciśnij flagę dwa razy — tak ma to wyglądać.

Liczba kroków i słowa w dymku będą u ciebie własne. Liczy się to, że za drugim razem jest identycznie jak za pierwszym.

Czego będę szukać w twojej pracy

  • Test 1: jest skrypt pod zieloną flagą, a w nim ruch kota
  • Test 2: pierwszy klocek skryptu ustawia miejsce startu
  • Test 3: kot przechodzi na drugą stronę sceny
  • Test 4: widać, jak idzie — droga nie jest jednym przeskokiem
  • Test 5: po ostatnim kroku kot się odzywa — melduje, że dotarł
  • Test 6: drugie uruchomienie kończy się tak samo jak pierwsze
02Warsztat

Ułóż skrypt i uruchom go zieloną flagą. Potem kliknij flagę jeszcze raz — bez stawiania kota na starcie — i sprawdź sam/sama, czy za drugim razem wyszło to samo.

kiedy kliknięto zieloną flagę

Przeciągnij klocek do skryptu albo kliknij — dołączy na końcu.

Pusto. Każdy skrypt zaczyna się kapeluszem z zieloną flagą.

Scena
Kot

kot stoi w x: -150, y: 0

03Odbiór

Zrobione: 0 z 5 bloków

Przejdź wszystkie bloki i zrób to, co w nich jest do zrobienia — pasek u góry pokaże 100%.