MS Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!

Informace k odevzdávání úloh ke kontrole

V mnoha cvičeních ke kurzům na síti je možnost odevzdat vypracované úlohy dle zadání a nechat si je zkontrolovat, čímž se poté zpřístupní stažení certifikátu.

Jak to funguje

Vše si ukážeme na první úloze ze základů programování v C# .NET. Princip je pak úplně stejný pro všechny jazyky. Úloha vždy obsahuje zadání s ukázkami obrazovky programu, tedy přesně co má udělat se vstupy, které se mu zadají. Zadání úlohy vypadá např. takto:

Jednoduchý příklad

Vytvořte program, který si na vstupu nechá zadat jméno uživatele a poté jeho vlastnost. Nakonec vypíše "jméno je vlastnost", viz obrázek.

Ukázka obrazovky programu:

Konzolová aplikace
Ahoj, jak se jmenuješ?
Bill Gates
Jaký jsi?
hustodémonsky bohatý
Bill Gates je hustodémonsky bohatý

Pod úlohou je následně online editor kódu s nachystanou šablonou kódu, do které se má program vypracovat:

Kód zapsaný do online editoru se odešle na speciální server s běhovým prostředím pro daný jazyk. Tam je poté několikrát spuštěn v rámci různých testů, které mu předávají vstup a kontrolují, zda vypisuje výstup podle zadání. Celé to můžeme chápat tak, že si robotický uživatel na serveru program spustí a zadá do něj vše, co by mělo být potřeba.

Testy

Testů je vždy několik a spouští se postupně za sebou:

  1. První test spustí program a odešle mu přesně ty vstupy, co jsou ukázané v zadaní.
  2. Dalších několik testů předává programu další vstupy. Tyto další testy ověřují, zda program opravdu funguje a není vytvořený tak, aby uměl zpracovat jen ten jediný vstup, který je zrovna ukázaný v zadání. Typicky se zde ověřují další scénáře, které mohou v programu nastat.

Ukázka testů

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Tato konkrétní úloha má 2 testy, které dělají následující:

Test 1 - Zkus zadat osobu z ukázky

Vidíme, že první test již podle názvu ověřuje přesně ten případ, který je popsaný v zadání. Jeho scénář je následující:

  • Zkontroluj, zda je vypsáno: "Ahoj, jak se jmenuješ?"
  • Zadej vstup "Bill Gates"
  • Zkontroluj, zda je vypsáno: "Jaký jsi?"
  • Zadej vstup "hustodémonsky bohatý"
  • Zkontroluj, zda je vypsáno: "Bill Gates je hustodémonsky bohatý"
Test 2 - Zkus zadat jinou osobu

Druhý test pak aplikaci zkouší s dalšími vstupy, které vymyslel autor úlohy/testu a vy je již neznáte. Tyto testy jsou pojmenované tak, abyste v případě jejich selhání tušili, kde je problém. Scénář druhého testu je u této úlohy následující:

  • Zkontroluj, zda je vypsáno: "Ahoj, jak se jmenuješ?"
  • Zadej vstup "Tester Testerovič"
  • Zkontroluj, zda je vypsáno: "Jaký jsi?"
  • Zadej vstup "relativně testovatelný"
  • Zkontroluj, zda je vypsáno: "Tester Testerovič je relativně testovatelný"
Výsledek testů

Pokud proběhnou všechny testy, zde tyto 2, považuje se program za funkční:

Pokud nějaký test nedoběhne a nedojde k nějaké kritické chybě, viz níže, je vám pak vypsán název tohoto testu, např.:

"Zkus zadat osobu z ukázky"

nebo

"Zkus zadat jinou osobu"

Je pak vidět, zda se robotickému uživateli na serveru nepodařilo program rozjet ani pro hodnoty ze zadání, nebo zda jste zapomněli něco ošetřit a program upadne, když se mu zadá něco specifického. U prvního testu podle ukázky ze zadání je vždy navíc přesně vidět, jakou část jeho scénáře se nepodařilo spustit. Zde konkrétně na obrázku test říká, že našel výstup:

Konzolová aplikace
Ahoj,jak se jmenujes

A v zadání je přitom:

Konzolová aplikace
Ahoj, jak se jmenuješ?

Problémy při odevzdávání

Pokud váš program neprojde, je to z 99% proto, že nesplňuje zadání. V chybovém hlášení je vždy umístěna informace o tom, jak dále postupovat, přečtěte si jej celé. Nejčastější problémy jsou tyto.

Jiné texty ve výstupu

Vy jste v roli programátora a dostali jste od zákazníka zadání, kde je přesně udáno:

  • Kdy se má co vypsat
  • Kdy se má co zadat

Pokud vypíšete např. místo "Zadej číslo:" např. "Zadejte cislo", test neprojde. Zadání je třeba splnit přesně na znaky, toleruje se jen diakritika a velká/malá písmena. Interpunkce ovšem musí být dodržena a slova samozřejmě také.

Chybné čekání na vstup

Programu se vždy odešlou vstupy přesně podle zadání. Pokud např. vyžaduje 2 čísla a vy načítáte v svém programu pak ještě třetí nebo tam umístíte něco jako "Zadej cokoli pro ukončení programu", tato hodnota již nikdy zadána nebude a program zůstane na serveru čekat, dokud není násilně ukončen.

Zacyklení

Podobné zaseknutí může nastat, pokud se program zacyklí v nekonečném cyklu. V závislosti na povaze zaseknutí programu server buď program dokáže násilně ukončit sám, o čemž získáte informaci, nebo jej zabije až služba nad ním, což vyústí v obecnější hlášku.


 

Aktivity (3)