Testování a ladění
Žáci ověří správnost algoritmu, rozliší syntaktické, běhové a logické chyby a program odladí krokováním. Téma patří k testování 2. ročníku, ne k pouhému ověření, že program spustí.
Průvodce tématem Testování a ladění v předmětu Informatika pro II. ročník: co mají žáci zvládnout, na co navázat a kde nejčastěji chybují. K tomu příprava na hodinu, pracovní list nebo písemka, které ScioBot připraví na jedno kliknutí přesně pro tento ročník.
Připravit hodinu Všechny formáty
Klikněte a tvořte
Získejte přípravu zdarma
Vyberte formát. Jedním kliknutím otevřete tvorbu na téma Testování a ladění (II. ročník) — ScioBot ho připraví za vás.
Další formáty na jedno kliknutí
- Vytvořit: Pracovní list
- Vytvořit: Písemka
- Vytvořit: Aktivita
- Vytvořit: Prezentace
- Vytvořit: Kartičky
- Vytvořit: QR hra
Téma i ročník jsou už vyplněné. Nic nepíšete — rovnou tvoříte.
Testování a ladění na gymnáziu v II. ročníku není kontrola, že se program „jen spustí“. Žák má ověřit, že algoritmus řeší zadaný problém pro různé vstupy: najde odchylku od očekávaného chování, určí, zda jde o syntaktickou, běhovou nebo logickou (funkční) chybu, a chybu opraví. Výstup G-INF-02-005 i tematický celek G-INF-02-008 proto spojují ověření správnosti, testování, krokování, ladění a základní pohled na to, jak vstupní data ovlivní spotřebu času a paměti.
Práce navazuje na zápis algoritmu, větvení, cykly, seznamy a funkce v Pythonu. V hodině se střídá ruční kontrola (vstup → očekávaný výstup, mezní hodnoty) s laděním v prostředí: breakpoint, krok dovnitř/přes, sledování proměnných. Optimalizace zde znamená pochopitelnou úpravu po ověřené funkčnosti (zbytečné průchody, zbytečné kopírování), ne honbu za mikrosekundami.
Od testování informačního systému se téma liší tím, že se ladí konkrétní program a algoritmus, ne role uživatelů ani provoz služby. Žák má umět chybu pojmenovat typem, ukázat ji na datech a doložit opravu novým během testů.
Předpoklady
- Zápis algoritmu, jeho vlastnosti a rozklad na kroky, které lze ověřit.
- Větvení a cykly: podmínky, opakování a typická místa, kde vzniká logická chyba.
- Funkce a podprogramy: vstup, výstup a izolované otestování části programu.
- Proměnné a výrazy v Pythonu, aby šlo při krokování číst stav výpočtu.
Klíčové pojmy
- Ověření správnosti algoritmu
- Porovnání výsledku s předem stanoveným očekáváním pro zvolené vstupy; spuštění bez chyby samo o sobě správnost nedokládá.
- Syntaktická chyba
- Porušení pravidel zápisu jazyka (závorky, odsazení, překlep v názvu). Překladač nebo interpret program nepřeloží nebo nespustí, dokud zápis neopravíš.
- Běhová chyba
- Program se spustí, ale během výpočtu selže (dělení nulou, index mimo seznam, čtení neexistujícího klíče). Chyba závisí na průběhu a často na konkrétních datech.
- Logická (funkční) chyba
- Program doběhne, ale výsledek nebo postup neodpovídá zadání (špatná podmínka, off-by-one, prohozené větve). Typicky ji odhalí test, ne hláška interpretu.
- Testovací případ
- Konkrétní vstup, očekávaný výstup a krátký důvod volby (běžný případ, prázdný vstup, hranice cyklu, záporné číslo). Sada případů má pokrýt i data, která program „rád“ pokazí.
- Krokování a ladění
- Řízené zastavení a postup po příkazech se sledováním proměnných; slouží k nalezení místa, kde se stav odchýlí od záměru, ne k hádání podle jedné hlášky na konci.
- Vliv vstupních dat na zdroje
- Stejný algoritmus může při delším vstupu nebo horším rozložení dat spotřebovat výrazně víc času nebo paměti; po funkčních testech se ptáme, co se stane, když data narostou.
Časté miskoncepce
Častá chyba
„Vypsalo to číslo a nespadlo to, takže je to správně.“ Žák odevzdá program po jednom spuštění s vymyšleným vstupem.
Jak na to
Nechat hned vedle sebe tabulku: vstup / očekávaný výstup / skutečný výstup. Doplnit jeden mezní a jeden „záludný“ vstup; neshodu označit jako logickou chybu, ne jako úspěch.
Častá chyba
Špatný součet v cyklu žáci hlásí jako „syntax error“, protože „něco je špatně v kódu“.
Jak na to
Ukázat stejný program: nejdřív úmyslně rozbít závorku (syntaktická), pak dělení nulou (běhová), pak špatnou mez cyklu (logická). U každého říct, kdo chybu ohlásí — interpret, pád, nebo test.
Častá chyba
Při IndexError mažou celý cyklus nebo pole, místo aby zjistili, při kterém indexu to spadlo.
Jak na to
Zapnout debugger, zastavit před přístupem k prvku, vypsat i a len(seznam). Opravit mez nebo podmínku a spustit znovu stejný test, který pád vyvolal.
Častá chyba
Testují jen „šťastnou cestu“ (kladná čísla, neprázdný seznam) a tvrdí, že funkce je hotová.
Jak na to
Zadat povinně tři typy případů: typický, prázdný nebo nula, hranice posledního indexu. Bez zeleného běhu u všech tří se úloha neuzavírá.
Jak učit
2–3 hodiny
- Evokace: ukázat tři krátké programy se stejným zadáním — jeden nejde spustit, jeden spadne, jeden spočítá špatně — a nechat žáky zařadit typ chyby.
- Jádro: žáci sestaví sadu testů, krokováním najdou odchylku stavu proměnných a opraví logickou chybu; krátce porovnají běh na malých a větších datech.
- Reflexe: každý pojmenuje jednu chybu z hodiny typem, vstupem, který ji odhalil, a místem v kódu, kde se stav pokazil.
Nápady na aktivity
- Párová honba na chyby: jeden žák schová do hotové funkce logickou chybu, druhý smí jen psát testy a krokovat, dokud ji nep Pojmenuje a neopraví.
- Společná tabulka testů u jedné úlohy ze seznamů: třída doplní případy, spustí je a u červených řádků rozhodne, zda jde o běh, nebo o špatnou specifikaci očekávání.
Hodnocení
Žák k danému chybnému programu napíše nejméně tři testovací případy, určí typ chyby a po opravě doloží úspěšný běh stejných testů.
Ústně u breakpointu vysvětlí, v kterém kroku se hodnota proměnné odchýlila od záměru algoritmu.
Související témata
- Algoritmus: vlastnosti, zápis a rozklad
- Větvení a cykly
- Funkce a podprogramy
- Nároky algoritmu
- Vývoj a sestavení programu
- Testování a provoz informačního systému
Zdroje
Co pro vás ScioBot připraví k tématu Testování a ladění
Interaktivní aktivity, které žáci spustí na tabletu či tabuli, tisknutelné kartičky a hry pro celou třídu – každý formát na téma Testování a ladění jedním klikem.
Základní materiály
-
Příprava na hodinu
Kompletní příprava s cíli, průběhem a aktivitami.
-
Pracovní list
List s úlohami, klíčem a variantou.
-
Písemka
Časovaná písemka s body a variantami.
-
Aktivita
Aktivita do hodiny, kterou žáci hned spustí.
-
Prezentace
Sada slajdů k výkladu a procvičení.
-
Kartičky
Materiál k tisku (kartičky, plakát, pracovní list).
-
QR hra
Interaktivní hra k procvičení tématu.
Interaktivní aktivity 14
-
Křížovka s tajenkou
Legendová křížovka, kde se ve sloupci skrývá tajenka. Skvělá na opakování pojmů.
10–20 min
-
Kartičky
Sada oboustranných kartiček na učení pojmů a definic. Žáci si je procvičí překlápěním.
5–20 min
-
Pexeso a spojovačka
Dvojice kartiček s obrázky, pojmy nebo příklady. Spojovačka, pexeso i volné třídění – ideální na slovní zásobu i opakování.
10–25 min
-
Rozhodovačka
Rychlé rozhodování mezi možnostmi s okamžitou zpětnou vazbou.
5–12 min
-
Otázky
Sada otázek s výběrem odpovědí; jedna nebo více správných. Okamžitá sebekontrola.
5–15 min
-
Vpisování
Žáci dopisují krátké odpovědi a ihned vidí, zda se trefili.
5–15 min
-
Rozřazovačka
Žáci přetahují kartičky do správných kategorií.
5–15 min
-
Rozbory
Žák přiřazuje značky k částem věty nebo výrazu — větné členy, slovní druhy, větné rozbory. Sebevyhodnocovací procvičování.
10–20 min
-
Označování
Žáci označují správná slova přímo v textu.
5–15 min
-
Doplňování textu
Žáci doplňují chybějící slova přímo do vět nebo krátkého textu.
5–15 min
-
Krok po kroku
Žáci řadí kroky procesu do správného pořadí.
5–15 min
-
Popis obrázku
Diagram s očíslovanými špendlíky. Žáci přiřazují popisky k částem obrázku — biologie, zeměpis, anatomie.
5–15 min
-
Přesouvání
Žáci přetahují kartičky do přesně určených slotů.
5–15 min
-
Čtení s porozuměním
Žáci čtou krátký text a odpovídají na otázky k jeho obsahu.
10–25 min
K tisku a rozstříhání 8
-
Páry
Kartičky se dvěma polovinami, které k sobě patří (např. datum–událost). Žáci je vystřihnou a párovají.
10–20 min
-
Výběr z možností (s tajenkou)
Kartičky s úlohami a třemi možnostmi. Písmena u správných odpovědí složí tajenku — žák si tak řešení zkontroluje sám.
10–20 min
-
Doplňování do vět
Věty s výběrem ze dvou možností uvnitř — žák zakroužkuje správnou.
10–20 min
-
Hra Riskuj
Kvízová hra se třemi podtématy a otázkami různé hodnoty — klasický formát Riskuj / Jeopardy.
15–30 min
-
Hra AZ kvíz
28 otázek na hexagonální hrací pole — cílem je spojit všechny tři strany.
15–35 min
-
Označ správnou možnost
Kartičky s otázkou a čtyřmi možnostmi — žák označí správnou (např. kolíčkem).
10–20 min
-
Já mám, kdo má …?
Kartičky s tvrzením a otázkou — žáci je čtou v kruhu a hledají navazující odpověď.
10–25 min
-
Hádej, kdo jsem
Kartičky s popisem osobnosti, věci nebo zvířete v 1. osobě — žáci tipují, o koho/co jde.
10–25 min
Hry pro celou třídu 4
-
AZ kvíz
28 otázek na hexagonálním hracím poli — cílem je spojit všechny tři strany. Včetně náhradních ANO/NE otázek.
15–35 min
-
Riskuj
Klasická hra se 5 kategoriemi a otázkami za 100–500 bodů — týmy soutěží o nejvyšší skóre.
15–40 min
-
Pexeso
Klasické pexeso s 10 dvojicemi (pojem ↔ popis) — dva týmy se střídají a hledají shody.
10–25 min
-
Šarády
Šarády se 12 úkoly (mluvení, kreslení, pantomima) — dva týmy hádají, kdo uhodne první, dostane bod.
15–30 min
Očekávané výstupy
- G-INF-02-005 žák ověří správnost, najde a opraví případnou chybu v algoritmu, otestuje, odladí a optimalizuje program
- G-INF-02-008 testování, optimalizace – syntaktické, běhové a logické (funkční) chyby, krokování a ladění programu; vliv vstupních dat na spotřebované výpočetní zdroje
Učíte Testování a ladění trochu jinak?
Popište ScioBotu vlastními slovy, co s žáky chcete zvládnout a kolik máte času. Materiál přizpůsobí vašemu ŠVP, třídě i žákům se speciálními vzdělávacími potřebami.
Související témata
-
Algoritmus: vlastnosti, zápis a rozklad
Žáci vysvětlí vlastnosti algoritmu, zapíší ho slovně, diagramem i pseudokódem, rozdělí problém na části a zdůvodní, co řešit algoritmicky. Neopakují blokové programování ze ZŠ.
-
Binární kódování
Žáci zapíší čísla ve dvojkové soustavě, vysvětlí bit, bajt a množství informace podle vyloučených možností a zdůvodní volbu datového typu mimo programovací jazyk.
-
Umělá inteligence
Žáci vysvětlí princip strojového učení, uvedou aplikace umělé inteligence a posoudí její limity, přínosy a rizika při práci s informacemi i ve společnosti.
-
Data a informace
Žáci rozliší data od informace, navrhnou sběr a evidenci údajů, posoudí jejich úplnost a význam pro rozhodnutí a oddělí evidenci od návrhu informačního systému.
-
Proměnné a výrazy v Pythonu
Žáci v Pythonu deklarují proměnné, volí datové typy a sestavují číselné i logické výrazy včetně vstupu a výstupu. Nejde o první seznámení s proměnnými ze ZŠ, ale o přehledný zápis výrazů v programu.
-
Tabulky, klíče a procesy
Žáci navrhnou tabulky s atributy, primárním a cizím klíčem, propojí je relacemi a sladí procesy od sběru po výstup s rolemi, které data mění nebo jen čtou.
-
Větvení a cykly
Žáci programují větvení se složenými podmínkami a cykly for i while, vnořují bloky a řídí tok výpočtu. Rozšiřují řízení výpočtu ze ZŠ o složené podmínky a přehlednou strukturu.
-
Počítačové sítě a internet
Žáci porovnají způsoby propojení počítačů, charakterizují lokální sítě a internet, vysvětlí paketový přenos, web, cloud, bezdrátové sítě a internet věcí.