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.

Připravit hodinu

Další formáty na jedno kliknutí

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

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

  1. 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.
  2. 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.
  3. 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

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

Interaktivní aktivity 14

K tisku a rozstříhání 8

Hry pro celou třídu 4

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.

Napsat ScioBotu

Související témata