NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

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. Podívejme se, jak si lze kód nejprve vyzkoušet a pak odevzdat ke kontrole na server:

🔍 1 - Jak to funguje

Vše si ukážeme na první úloze ze základů programování v Javě. 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í:

Pokud u nás studujete rekvalifikaci, váš referent uvidí, jak se vám plnění úloh daří a případně vám může dále poradit.

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:

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

Předpřipravený kód

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

Šablona kódu - Další vývojové nástroje pro tvorbu aplikací

📜 2 - Práce s předpřipraveným kódem

Podívejme se, jak se s předpřipraveným kódem pracuje:

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

Šablona kódu - Další vývojové nástroje pro tvorbu aplikací

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.

🌟 3 - Speciální typy příkladů

Níže následují ukázky speciálních typů příkladů, se kterými se v kurzu setkáte.

Příklady s variabilním počtem vstupů

U některých komplexnějších příkladů server s běhovým prostředím pro daný jazyk nedokáže takový kód správně zpracovat. Taková cvičení lze potom pouze odevzdat ke kontrole. Ve videu níže je podrobný návod, jak takové cvičení správně odevzdat:

Příklady, které nemají možnost odevzdání

U některých cvičení možnost odevzdat kód chybí. Je tomu tak nejčastěji z důvodu, že cvičení je poměrně komplexní. Server s běhovým prostředím pro daný jazyk nemusí být schopný takto náročné interakce:

Příklady s více soubory

Některé příklady mají více souborů se zdrojovými kódy. Typicky jde o cvičení v kurzu objektově orientovaného programování. Podívejme se, jak si snadno online vyzkoušet a odevzdat ke zhodnocení řešení, složené z více souborů:

🏆 4 - Úspěšné odevzdání příkladů

Podívejme se, jak vypadá úspěšné odevzdání příkladů. 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.

Ve videu také popisujeme, jak poznat, které úlohy už máme odevzdané, a které zatím ne:

💡 5 - Využití nápovědy

Pokud si nevíme rady při řešení některé úlohy, máme k dispozici vzorové řešení. Podívejme se, jak ho můžeme využít:

📝 6 - Ukázka testů

Představme si konkrétní úlohu, například již použitou s Billem Gatesem. Tato úloha má dva 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 dva, považuje se program za funkční:

Test prošel - Další vývojové nástroje pro tvorbu aplikací

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"

Test neprošel - Další vývojové nástroje pro tvorbu aplikací

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.

✗ Špatně

Zde konkrétně na obrázku test říká, že našel výstup:

Konzolová aplikace
Ahoj,jak se jmenujes

✓ Správně

A v zadání je přitom:

Konzolová aplikace
Ahoj, jak se jmenuješ?

🔧 7 - Nejčastější chyby a jejich oprava

Podívejme se nyní, jak využít informace, které nám chybový výstup poskytuje.

Překlep

Častou chybou je překlep v textu, případně špatná interpunkce:

Desetinná čísla

Problémy dělají také desetinná čísla. Pěknou neplechu umí udělat třeba desetinná čárka místo tečky:

Mezery

Správný počet mezer bývá častým zdrojem problémů:

Odřádkování

Častou chybou je nevěnování pozornosti zadání při odřádkování textu nebo při načítání proměnných:

Další 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