9. Ladění a testování programů. booleovský výraz



Podobné dokumenty
Semin aˇr Java N astroje Radek Koˇc ı Fakulta informaˇcn ıch technologi ı VUT Bˇrezen 2012 Radek Koˇc ı Semin aˇr Java n astroje 1/ 42

Testování, ladění a dokumentace programů

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

1 Návod na instalaci prostředí LeJOS-NXJ a přehrání firmwaru NXT kostky

Specifikace. Odevzdání do

JAVA Unit testing Java, zimní semestr

Úvod. Leden Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 22

1. Programování proti rozhraní

3. Základy programovacího jazyka Java

Automatické testování GUI

Testování. Zadání příkladu. Vytvoření kostry třídy. Obsah:

Úvod. Únor Fakulta informačních technologií VUT. Radek Kočí Seminář Java Úvod 1/ 23

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

Maturitní otázky z předmětu PROGRAMOVÁNÍ

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

11. Přehled prog. jazyků

Implementace LMS MOODLE. na Windows 2003 Server a IIS 6.0

Uživatelský manuál služby edrivesoft společnosti Audit Alliance spol. s r.o. - Vložení nového dokumentu

Obsah. Předmluva Začínáme: překlad, spuštění a ladění 27

Program. Organizace semináře Základní principy OOP Úvod do programovacího jazyka Java Distribuce

Vývojové nástroje jazyka Java

Podpora skriptování v Audacity

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Správa projektů a testování

ALGORITMIZACE A PROGRAMOVÁNÍ

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Úvod do programovacího jazyka Python

Pragmatická filozofie Můj zdrojový kód snědla kočka 20 Přijímání odpovědnosti Entropie softwaru 21 Být schopen uhasit požár 22

Jan Kratochvíl, F 3 MOD. 15. února 2004

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

Instalace TEX Live 2007 pro Windows

Vytvoření bootovatelného média

Vývoj aplikací řízený testy. Miroslav Beneš

Zadání soutěžních úloh

Po přihlášení do Osobní administrativy v Technologie a jejich správa vybereme položku Certifikáty bezdrátové sítě (Eduroam).

AIDA64 Extreme. Příručka k nastavení. v

IBRIDGE 1.0 UŽIVATELSKÝ MANUÁL

Instalace pluginů pro formuláře na eportálu ČSSZ

ŠKOLENÍ PROGRAMOVACÍHO JAZYKA JAVA JAVA - ZÁKLADY

Algoritmizace a programování

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014

Nastavení Java pro aplikaci G-Client Str. 1/8

Artlingua Translation API

faktura, LaTeX, open source, freeware, Python, multiplatformní program

Postup instalace umožňující el. podpis v IS KP14+ pro webové prohlížeče Google Chrome a Firefox.

ČSOB Business Connector instalační příručka

1. Projekt Kalkulačka

Po přihlášení do Osobní administrativy v Technologie a jejich správa vybereme položku Certifikáty bezdrátové sítě (Eduroam).

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Nastavení klientských stanic pro webové aplikace PilsCom s.r.o.

EPLAN Electric P8 2.7 s databázemi na SQL serveru

ČÁST 1. Základy 32bitového programování ve Windows

Testovací metoda. Testovací metoda. public class SimpleTest {

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Dokument rozchození vývojového prostředí

Úvod do Groovy pro Java experty

Obsah. Úvodem 9. Kapitola 1 Než začneme 11. Kapitola 2 Dynamické zobrazování obsahu 25. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10

POSTUP PŘI AKTUALIZACI RESTAURAČNÍHO A HOTELOVÉHO SYSTÉMU SAVARIN

Vstupní požadavky, doporučení a metodické pokyny

Obsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací

Podrobný postup stažení, vyplnění a odeslání elektronické žádosti

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

Novinky ve Visual Studio Tomáš Kroupa

Formy komunikace s knihovnami

Instalační příručka. Vlastnoruční digitální podpis. Plugin do webového prohlížeče

Elektronický výpis v Internet Bance

Instalace SW VIS přímo z programu VIS - Opakovaná instalace, instalace upgrade

Předpoklady správného fungování formulářů

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Integrovaný informační systém Státní pokladny (IISSP)

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Popis jak zprovoznit SilverLight

Úvod do programovacího jazyka Python

Doporučení pro použití AVG na starších/pomalejších počítačích

Snadná a rychlá aktivace technologie Intel vpro

Bc. Martin Majer, AiP Beroun s.r.o.

Algoritmizace a programování

Remote Method Invocation RMI

PHP tutoriál (základy PHP snadno a rychle)

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

Úvod do programování. Lekce 1

Instalace programu ProVIS

ČSOB Business Connector Instalační příručka

Komprimace/Dekomprimace

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Java/QE Akademie - Osnova

Podrobný postup stažení, vyplnění a odeslání elektronické žádosti

Aplikace Scan2NG příručka pro skenování dokumentů

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Dropbox postup instalace a návod pro uživatele

Transkript:

9. Ladění a testování programů Ladění programů s debuggerem jdb Nástroje ověřování podmínek za běhu - klíčové slovo assert Nástroje testování jednotek (tříd, balíků) - junit Pokročilé systémy dynamického ověřování podmínek - jass Ladění programů v Javě Je mnoho způsobů... Ještě lepší... kontrolní tisky - System.err.println(...) řádkovým debuggerem jdb integrovaným debuggerem v IDE pomocí speciálních nástrojů na záznam běhu pg.: nejrůznější "loggery" - standardní poskytuje od JDK1.4 balík java.util.logging nebo alternativní a zdařilejší log4j je používat systémy pro běhovou kontrolu platnosti podmínek: o vstupní podmínka metody (zda je volána s přípustnými parametry) o výstupní podmínka metody (zda jsou dosažené výstupy správné) o a podmínka kdekoli jinde - např. invariant cyklu... K tomuto slouží jednak o standardní klíčové slovo (od JDK1.4) assert booleovský výraz o testovací nástroje typu JUnit (a varianty - HttpUnit,...) - s metodami assertequals() apod. o pokročilé nástroje na běhovou kontrolu platnosti invariantů, vstupních, výstupních a dalších podmínek - např. jass (Java with ASSertions), http://csd.informatik.uni-oldenburg.de/~jass/. Ukázka testu jednotky:test třídy ChovatelPsu Postup při práci s assert Postup: 1. Napsat zdrojový program užívající klíčové slovo assert (pouze od verze Java2 v1.4 výše). Nepotřebujeme žádné speciální běhové knihovny, vše je součástí Javy; musíme ovšem mít překladové i běhové prostředí v1.4 a vyšší. 2. Přeložit jej s volbou -source 1.4

3. Spustit jej s volbou -ea (-enableassertions). Aktivovat aserce lze i selektivně pro některé třídy (-ea název_třídy nebo -ea název_balíku... - tři tečky na konci!!!). 4. Dojde-li za běhu programu k porušení podmínky stanovené za assert, vznikne běhová chyba (AssertionError) a program skončí. Ukázka použití assert (1) Třída Zlomek používá assert k ověření, že zlomek není (chybou uživatele) vytvářen s nulovým jmenovatelem. Za assert uvedeme, co musí v daném místě za běhu programu platit. Obrázek 8.1. Třídy AssertDemo, Zlomek Ukázka použití assert (2) Program přeložíme (s volbou -source 1.4): Obrázek 8.2. Správný postup překladu AssertDemo

Ukázka použití assert (3) Program spustíme (s volbou -ea nebo selektivním -ea:názevtřídy): Obrázek 8.3. Spuštění AssertDemo s povolením assert Ukázka použití assert (4) Spustíme-li bez povolení assert (bez volby -ea nebo naopak s explicitním zákazem: -da), pak program podmínky za assert neověřuje: Obrázek 8.4. Spuštění AssertDemo bez povolení assert Postup při práci s JUnit Uvědomit si, že žádný nástroj za nás nevymyslí, JAK máme své třídy testovat. Pouze nám napomůže ke snadnějšímu sestavení a spuštění testu. Postup: 1. Stáhnout si z http://junit.org poslední (stačí binární) distribuci testovacího prostředí. 2. Nainstalovat JUnit (stačí rozbalit do samostatného adresáře). 3. Napsat testovací třídu/třídy - buďto implementují rozhraní junit.framework.test nebo obvykleji rovnou rozšiřují třídu junit.framework.testcase 4. Testovací třída obsahuje metodu na nastavení testu (setup), testovací metody (testneco) a úklidovou metodu (teardown). 5. Testovací třídu spustit v prostředí (řádkovém nebo GUI) - junit.textui.testrunner, junit.swingui.testrunner...

6. Testovač zobrazí, které testovací metody případně selhaly. Ukázka použití JUnit (1) Třída Zlomek zůstává zhruba jako v předchozím příkladu, přibývají však metody equals (porovnává dva zlomky, zda je jejich číselná hodnota stejná) a soucet (sečítá dva zlomky, součet vrací jako výsledek). Obrázek 8.5. Upravená třída Zlomek s porovnáním a součtem Ukázka použití JUnit (2) Testovací třída JUnitDemo má přípravnou metodu setup, teardown a testovací metody. Obrázek 8.6. Testovací třída JUnitDemo

Ukázka použití JUnit (3) Spuštění testovače v prostředí GUI Swing nad testovací třídou JUnitDemo. Obrázek 8.7. Spouštění testovače nad testovací třídou JUnitDemo Pokud testovací třída prověří, že testovaná třída/y je/jsou OK, vypadá to přibližně takto: Obrázek 8.8. Testovač spouštějící třídu JUnitDemo

Ukázka použití JUnit (4) Má-li testovaná třída/y chyby a zjistí-li to testovač, vypadá to třeba takto: Obrázek 8.9. Testovací třída JUnitDemo našla chybu

Postup při práci s jass jass je preprocesor javového zdrojového textu. Umožňuje ve zdrojovém textu programu vyznačit podmínky, jejichž splnění je za běhu kontrolováno. Podmínkami se rozumí: pre- a postconditions u metod (vstupní a výstupní podmínky metod) invarianty objektů - podmínky, které zůstávají pro objekt v platnosti mezi jednotlivými operacemi nad objektem Postup práce s jass: stažení a instalace balíku z http://csd.informatik.unioldenburg.de/~jass/ vytvoření zdrojového textu s příponou.jass, javovou syntaxí s použitím speciálních komentářových značek takový zdrojový text je přeložitelný i normálním překladačem javac, ale v takovém případě ztrácíme možnosti jass proto nejprve.jass souboru převedeme preprocesorem jass na javový (.java) soubor ten již přeložíme javac a spustíme java, tedy jako každý jiný zdrojový soubor v Javě

Odkazy z.jass zdrojů je možné vytvořit také dokumentaci API obsahující jass značky, tj. informace, co kde musí platit za podmínky atd. - vynikající možnost! JUnit homepage Java 1.4 logging API guide Log4j homepage jass homepage úvodní materiálek k použití junit (v němčině, jako PDF)