Anywhere - IT-break. Milan Lempera UnitTest.cz
|
|
- Bohuslav Černý
- před 6 lety
- Počet zobrazení:
Transkript
1 Anywhere - IT-break Milan Lempera UnitTest.cz
2 O nás 0-1 Milan php, javascript, clojure(script) Víťa java, javascript UnitTest.cz
3 Obsah školení den Rozdělení testů Unit testy TDD Matchery Property based testing 2. den Test doubles Clean & legacy code Integrační testy E2E testy BDD Jak školení probíhá? blok teorie k tématu, potom krátká cvičení celkem je jich společné code katy
4 O vás Jaký je Váš vztah k testování? 2. Co si představujete pod pojmem čistý kód? Pokud máte dotazy, ptejte se kdykoli.
5 1-0
6 Testuje každý 1-1 když spustíte aplikaci když ji proklikáváte když si výsledek funkce vypíšete do konzole System.out.println(calculator.add(3, 5)); // 8 System.out.println(calculator.add(-3, 5)); // 2 System.out.println(calculator.add(-3, -5)); // -8
7 PROČ PSÁT TESTY? 1-2 opakovatelnost, znovupoužití, důvěryhodnost kódu snížení počtu chyb
8 Rozdělení testů 1-3 end-to-end testy integrační testy unit testy (jednotkové testy) každý z typů má své místo při vývoji software, nejsou vzájemně nahraditelné
9 End to end testy (E2E) 1-4 Testujete co vidí uživatel celá aplikace backend-frontend* včetně DB Ale potřebujete speciální prostředí je těžší je napsat a hůř se ladí náročnější údržba neukáží přesně zdroj chyby Je kód připravený k nasazení?
10 Integrační testy 1-5 testování vnitřní integrace spolupráce několika komponent Předávají si komponenty data správným způsobem, ve správný okamžik?
11 Unit testy 1-6 Jen znovu-použitelné "výsledky v konzoli". zaměřené na testování malé jednotky typicky třída nebo algoritmus testujeme izolovaně od dalších jednotek závislosti nahrazujeme primárně feedback pro vývojáře Naprogramoval jsem danou funkci(onalitu) správně?
12 Jak najít rovnováhu mezi typy testů? 1-7
13 Jak najít rovnováhu mezi typy testů? 1-8
14 Jak napsat první test? 2-0 podobně jako println debugging System.out.println(calculator.add(3, 5)); // 8 otestujeme očekávaný vstup a očekávaný výstup calculator.add(3, 5) == 8 potřebujeme knihovnu, která kontroluje rovnost hodnot a případně vypíše chybu
15 2-1 JUnit is a simple framework to write repeatable tests. It is an instance of the xunit architecture for unit testing frameworks. JUnit.org
16 JUnit - Původ 2-2 SUnit testovací framework pro Smalltalk Kent Beck vznikl cestou ke klientovi na konzultaci JUnit implementace SUnit v Javě Kent Beck, Erich Gamma vznikl v letadle cestou na konferenci Oopsla 97
17 Test v JUnit 2-3 Test v JUnit je metoda s která ověřuje tvrzení. import org.junit.test; import static org.junit.assert.asserttrue; public class FirstTest public void calculatorshouldsum3and5() { } Calculator calculator = new Calculator(); assertequals(8, calculator.add(3, 5)); }
18 Assertion - ověření tvrzení 2-4 statické metody třídy Assert import static org.junit.assert.*; assertequals(42, allanswers.getanswer()); assertnotequals(123, allanswers.getanswer()); assertnull(department.getsupervisor()); assertnotnull(department.getsupervisor()); asserttrue(invoice.ispaid()); assertfalse(invoice.isoverdue());...
19 Arrange, Act, Assert - tři části testu public void shouldcalculatesum() { Calculator calculator = new Calculator(); Integer result = calculator.sum(1, 3); assertequals(result, 4); } // Arrange // Act // Assert
20 Spouštění testů v IDE 2-6
21 Ukázka - spuštění testu 2-7
22 Test fixture 3-0 Rozlišme jednotlivé fáze testu Set up - příprava prostředí Exercise - provedení akce Verify - vyhodnocení Tear down - úklid JUnit nám pomůže se Set up a Tear down
23 Test fixture public void haszerolisteners() { Resource resource = new Resource(); // set up int numoflisteners = resource.getnumoflisteners(); // exercise assertequals(0, result); // verify } resource.close(); // tear down
24 Test fixture v JUnit 3-2 Anotace životního cyklu nad - před každým - po každém - před spuštěním - po spuštění třídy
25 Test fixture v JUnit 3-3 public class ResourceTest { private Resource public void setup() { resource = new Resource(); public void teardown() { resource.close(); public void isopened() { asserttrue(resource.isopened()); } public void haszerolisteners() { assertequals(0, resource.getnumoflisteners()); }
26 Životní cyklus testu setupclass teardown teardown teardownclass
27 Ukázka - refactoring testu 3-5
28 DALŠÍ ZPŮSOBY MATCHOVÁNÍ 4-0
29 Proč by Vás měly zajímat 4-1 s metodami assert* můžete vystačit není to ale vždy nejefektivnější Příklad - assert* Všichni na oddělení musí mít alespoň minimální public void allwagesshouldbeatleastminimal() { for (Integer wage : department.getwages()) { asserttrue(wage + " is lower then minimal", wage >= MINIMAL_WAGE); } }
30 HAMCREST ASSERTJ 4-2
31 Hamcrest 4-3 Matchers that can be combined to create intent. exible expressions of hamcrest.org
32 Hamcrest - assertthat 4-4 Hamcrest - assertthat assertthat(actual, equalto(expected)); JUnit - assertequals assertequals(expected, actual); // syntaxe: assertthat(actual, Matcher)
33 Hamcrest - ukázka matcherů 4-5 hamcrest staví na skládání matherů assertthat(person.getwage(), lessthen(wage_limit)); assertthat(wages, everyitem(greaterthanorequal(minimal_wage))); assertthat(wages, not(everyitem(greaterthanorequal(minimal_wage)))); assertthat(invoices, everyitem(hasstatus(paid)));
34 AssertJ 4-6 AssertJ core is a Java library that provides a writing assertions. uent interface for joel-costigliola.github.io/assertj
35 AssertJ - assertthat 4-7 AssertJ - assertthat assertthat(actual).isequalto(expected); Hamcrest - assertthat assertthat(actual, equalto(expected); JUnit - assertequals assertequals(expected, actual);
36 AssertJ - řetězení matcherů 4-8 metoda assertthat nabízí asserce podle typu volání je možné řetězit, každé znamená samostatný test dobrá podpora IDE assertthat("abeceda").isequalto("abeceda").isnotequalto("zzz").startswith("abe").matches("[a-z]*")... assertthat(42).isgreaterthan(41).islessthan(43).ispositive().isbetween(0, 100)...
37 AssertJ - použití na objektech 4-9 assertthat(lastinvoice).isnotnull().isinstanceof(invoice.class).isequalto(invoice)....hasstatus(status.new).has(condition)
38 AsssertJ - práce s kolekcemi 4-10 lterování, extrakce assertthat(persons).filteredon(status(status.paid)).isnotempty().extracting("wages", BigDecimal.class).doesNotContain(BigDecimal.ZERO).are(greaterThan(MINIMAL_WAGE));
39 TEST DRIVEN DEVELOPMENT 5-0
40 Test driven development 5-1 Add a little test Run all tests and fail Make a little change Run the tests and succeed Refactor to remove duplication * Test-driven Development By Example - Kent Beck
41 Test driven development 5-2
42 Proč Test driven development? 5-3 ověření správnosti a postupu návrh řízený použitím (testem) větší zaměření na cíl získáte velmi rychlou zpětnou vazbu vývoj malých funkčních celků architekturu vznikající z implementace
43 Ukázka - TDD 5-4
44 Parametrizované testy 6-0 podobné testy, kde se mění jen vstupní data a očekávaný public void convertone() { int result = converter.toarabic("i"); assertequals(1, result); public void converttwo() { int result = converter.toarabic("ii"); assertequals(2, result); } { } // input, output { "I", 1 }, { "II", 2 }, { "III", 3 }
45 Parametrický test public class RomanNumberConverterTest { private int arabicnumber; private String romannumber; public InvoiceStatusTest(Status romannumber, int arabicnumber) { this.romannumber = romannumber; this.arabicnumber = arabicnumber; convert({0}) = {1}") public static Iterable<Object[]> testparameters() { return Arrays.asList(new Object[][]{ {"I", 1}, {"II", 2}, {"III", 3} }); } public void convertromannumbers() { assertthat(romannumberconverter.convert(romannumber)).isequalto(arabicnumber); }
46 Ukázka - parametrický test = "{index}: tobinary({0}) = {1}") public static Iterable<Object[]> testparameters() { return Arrays.asList(new Object[][]{ {0, 0}, {1, 1}, {2, 10}, {3, 11}, {4, 100}, {5, 101}, {6, 110}, {7, 111}, {8, 1000}, {9, 1001}, {10, 1010}, {11, 1011}, {12, 1100}, {13, 1101}, {14, 1110}, {15, 1111}, {16, 10000} }); }
47 Způsoby testování 7-0 Vstupně public void invoicecansumtotalprice() { assertthat(invoice.gettotalprice()).isequalto(sumofallrows); } Testování public void invoicereportersends () { Mailer mailer = new Mailer(); Reporter invoicereporter = new InvoiceReporter(mailer); invoicereporter.report(invoice); } // byl odeslán na správného příjemce? Pokud nelze použít skutečnou implementaci, je nutné použít dvojníka
48 7-1 Tasty mocking framework for unit tests in Java Umožní mockito.org vytvářet mocky ověření počty volání a předané parametry kon gurovat chování mocku sledovat a ovlivnit existující objekty
49 Mockito - ukázka použití public void invoicereportshouldsendmail() throws Exception { // setup Mailer mockmailer = mock(mailer.class); when(mockmailer.send(anystring(), anyinteger())).thenreturn(true); InvoiceReporter reporter = new InvoiceReporter(mockMailer); // exercise boolean status = reporter.report(paidinvoice); } // verify asserttrue(status); verify(mockmailer).send("user@ .cz", 1001);
50 E2E testy 8-0 testují celou aplikaci - chování z pohledu uživatele obvykle potřebují speciální prostředí a přípravu dat často jsou prováděny manuálně
51 E2E testy 8-1 Velmi závisí na typu aplikace desktopová aplikace konzolová aplikace REST webová aplikace programově ovládáme prohlížeč
52 8-2 Selenium nástroj pro automatizaci práce s prohlížečem používá se pro testování webových aplikací
53 Selenium IDE 8-3 Firefox plugin pro automatizaci interakce s prohlížečem
54 Selenium Webdriver 8-4 Slouží pro programové ovládání prohlížeče je nutné mít potřebný ovladač prohlížeče Chrome, InternetExplorer, Opera, Edge, PhantomJs
55 Selenium - průběh testu 8-5 přechod na testované url nalezení elementu interakce s elementem kontrola výsledku nalezení elementu ověření existence / obsahu
56 Selenium - ukázka testu 8-6 // přechod na testované url driver.get(" // nalezení elementu WebElement bookname = formelement.findelement(by.id("book-form")); // interakce s elementy bookname.clear(); bookname.sendkeys("guide to galaxy"); formelement.submit(); WebElement title = driver.findelement(by.cssselector("div#detail > h2")); // kontrola výsledku assertthat(title.gettext()).isequalto("guide to galaxy");
57 Page Object Pattern 8-7 BookFormPage bookform = new BookFormPage(driver); bookform.setname("guide to galaxy"); // vrací page object podřazeného formuláře CategoryPopup categorypopup = bookform.opencategorypopup(); categorypopup.setcategory("sci-fi"); // vrací page object po přechodu na stránku detailu DetailPage detail = bookform.submit(); assertthat(detail.gettitle()).isequalto("guide to galaxy");
58 Page Object Pattern - ukázka 8-8 public class BookFormPage { WebElement form; public BookFormPage(WebDriver driver) { form = wait.until( ExpectedConditions.presenceOfElementLocated(By.id("book-form")));... } public void setname(string name) { form.findelement(by.id("book-name")).settext(name); } public CategoryPopup opencategorypopup() {... return new CategoryPopup(driver, form); } }...
59 Ukázka - Selenium 8-9
60 Behavior driven development 9-0 neboli vývoj řízený popisem chování nezaměřuje se primárně na testování, ale na návrh na software se díváme z perspektivy speci kace speci kace je zároveň testem ověřujícím správnost psána obecným jazykem srozumitelná pro neprogramátory
61 Gherkin 9-1 Business Readable, Domain Speci c Language Feature: Serve coffee Coffee should not be served until paid for Coffee should not be served until the button has been pressed If there is no coffee left then money should be refunded Scenario: Buy last coffee Given there are 1 coffees left in the machine And I have deposited 1$ When I press the coffee button Then I should be served a coffee But It is the last one
62 Java, Javascript, PHP,.NET, Clojure, Ruby
63 Implementace kroku 9-3 Scenario: Buy last coffee Given there are 1 coffees left in the machine When I press the coffee button Then I should be served a coffee Implementace anotace s @Then public class CoffeeSteps are (\\d+) coffees left in the machine$") public void therearecoffeesleftinthemachine(int count) { coffees = CoffeeTestHelper.createCoffees(count); } }
64 Ukázka - Cucumber 9-4
65 Testování je třeba trénovat 10-0 testování je soft-skill, měly byste ho trénovat průběžně testujte trénujte - code katy choďte trénovat s ostatními coderetreat.cz codingdojo.cz
66 Školení testování května
67 Materiály a osnova 10-2 unittest.cz/it-break-testing
Testování software. Jaroslav Žáček
Testování software Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Testování Obsáhlá disciplína, existuje spoustu pohledů Problém při nastavení míry kvality Kvalita: Schopnost objektu být
VíceZáklady programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.
Základy programovaní 3 - Java Unit testy Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 26.,27. listopad, 2014 Petr Krajča (UP) Unit testy 26.,27. listopad, 2014 1 / 14 Testování zásadní
VíceTestování software. Jaroslav Žáček
Testování software Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Testování Obsáhlá disciplína, existuje spoustu pohledů Problém při nastavení míry kvality Kvalita: Schopnost objektu být
VíceJAVA Unit testing Java, zimní semestr
JAVA Unit testing Úvod unit testing testování malý jednotek funkčnosti jednotka nezávislá na ostatních testování zcela oddělené vytvářejí se pomocné objekty pro testování kontext typicky v OO jazycích
VíceJava testovací třída
Java testovací třída Kapitola má seznámit s možnostmi testovací třídy. Zdroje: http://voho.cz/wiki/informatika/vyvoj/testovani/, Ing. Vojtěch HORDĚJČUK: Testování, 15.3.2013 Rudolf Pecinovský: Java 7,
VíceUJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
VíceAnotace Test. Označuje public void metodu, která může být spuštěna jako test. Parametr expected označuje vyjimku, která by měla být v metodě vyvolána
junit 4 Petr Fanta Anotace Test @Test Označuje public void metodu, která může být spuštěna jako test @Test(expected=Exception.class) Parametr expected označuje vyjimku, která by měla být v metodě vyvolána
VíceČipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
VíceMetodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda
Metodiky pro automatické testování webové aplikace Ondřej Melkes, Martin Komenda Obsah Testování sw obecně Unit testy Integrační testy Testování UI Nesprávné testování sw Neznalost testovacího procesu
VíceTestovací metoda. Testovací metoda. public class SimpleTest {
Testování TestNG public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest() { System.out.println("Fast test");
VíceMichal Podzimek 6. 11. 2013
Testování Test NG Michal Podzimek 6. 11. 2013 1 Úvod public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest()
VíceVývoj řízený testy Test Driven Development
Vývoj řízený testy Test Driven Development Richard Salač, Ondřej Lanč Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze 23. - 30. 10. 2012 Obsah 1 Testování 2 Klasický přístup
VíceTestování. Zadání příkladu. Vytvoření kostry třídy. Obsah:
Obsah: Testování... 1 Zadání příkladu... 1 Vytvoření kostry třídy... 1 Napsání testů... 2 Testy správnosti... 3 Testy výjimek... 3 Testy vztahů/závislostí... 4 Zdrojový text testu... 4 Spuštění testů...
VíceStatické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
VíceJak testovat software v praxi. aneb šetříme svůj vlastní čas
Jak testovat software v praxi aneb šetříme svůj vlastní čas Proč testy nepíšeme Nemáme na to čas Platí v cca 5% případů Nový projekt Prototyp je třeba mít během pár dní Počítá se s tím, že další verze
VíceSpecifikace. Odevzdání do 04. 12. 2010
Automatické testování GUI Specifikace Pozor na rozsah dokument by měl mít cca 10 stran nemusíte rozebírat všechny funkční požadavky vybrat si a popsat detailněji jen ty nejdůležitější/nejzajímavě jší/nejzajímavější
VíceAutomatické testování softwaru. Testujte svůj kód! Předpoklady: Příklad: sum_digits() Možnost 1: Zkusíme funkci použít v konzoli Pythonu.
Automatické testování softwaru Petr Pošík Katedra kybernetiky, FEL ČVUT v Praze OI, B4B33RPH: Řešení problémů a hry, 2016 Předpoklady: funkce moduly Testujte svůj kód! Nebudete vědět, zda váš kód funguje,
VíceObsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
Více1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
VíceFormy komunikace s knihovnami
Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence
VíceUNIVERZITA PARDUBICE
UNIVERZITA PARDUBICE FAKULTA ELEKTROTECHNIKY A INFORMATIKY BAKALÁŘSKÁ PRÁCE 2018 Martin Volenec Univerzita Pardubice Fakulta elektrotechniky a informatiky Testovatelná webová aplikace typu e-shop Martin
VíceŘízení reálných projektů, agilní metodiky
Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj
VíceRMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
VíceGoogle Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
VíceAgenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat
QA & Dokumentace Agenda Docházka Návrat k minulému praktickému cvičení Zápočtové práce QA opakování Dokumentace Co, jak a proč dokumentovat Dotazy, přání, stížnosti Kde je chyba? public static StringBuilder
VíceJava Cvičení 05. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Java Cvičení 05 http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Test 1 Co program vypíše? Hello world Nic Něco jiného package cz.cuni.mff.java.example05.tests; public
VíceJava/QE Akademie - Osnova
Java/QE Akademie - Osnova Lekce 1 1. Co je to Java? 1.1. Struktura Java kódu 2. Potřebné nástroje pro vývoj 2.1. JVM 2.2. JRE 2.3. JDK 3. Co je to proměnná a její zápis v Javě 3.1. Klasické proměnné 3.2.
VíceNávrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
VíceTestování, ladění a dokumentace programů
Testování, ladění a dokumentace programů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Strategie ladění programů
VíceQuo vadis programování? Automatizace vyhodnocování studentských úloh
Vaše jistota na trhu IT Quo vadis programování? Automatizace vyhodnocování studentských úloh Rudolf PECINOVSKÝ rudolf@pecinovsky.cz Vladimír Oraný vladimir.orany@gmail.com Vaše jistota na trhu IT Obsah
VíceStruktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová
Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit
VíceJak testovat software v praxi
Jak testovat software v praxi aneb šetříme svůj vlastní čas Tomáš Herceg Chief Software Architect @ Microsoft ASP.NET MVP http://www.herceg.cz, http://www.vbnet.cz Proč testy nepíšeme Nemáme na to čas
VíceJAVA. Další jazyky kompilovatelné do Java byte-code
JAVA Další jazyky kompilovatelné do Java byte-code Přehled Scala objektový a funkcionální jazyk Closure funkcionální jazyk dialekt Lispu Groovy skritpovací jazyk Kotlin nová Java Jython Java implementace
VíceVytváření a použití knihoven tříd
Vytváření a použití knihoven tříd doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Prostory jmen motivace spolupráce
VícePrvní kapitola úvod do problematiky
První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru
VíceDEVFEST ANGULAR 2 WORKSHOP. angular.cz
DEVFEST 2016 - ANGULAR 2 WORKSHOP Milan Lempera @milanlempera Víťa Plšek @vitaplsek Matěj Horák @horakmat angular.cz O nás 0 1 Milan Lempera @milanlempera php, javascript, clojure(script) Víťa Plšek @vitaplsek
VíceTechnologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
VíceGeorge J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu
A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,
VíceCode Contracts. Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz
Code Contracts Robert Haken [MVP ASP.NET, MCT] Software architect, Owner at HAVIT, s.r.o. knowledge-base.havit.cz Contracts volaná strana deklaruje, jak se chová vzniká dohoda mezi volající a volanou stranou
Vícepublic static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());
Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového
VíceTestování SOA systémů v Oracle SOA Suite
Testování SOA systémů v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 3. prosince 2014 Marek Rychlý Testování
Více9. Ladění a testování programů. booleovský výraz
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
VíceCo je refaktorování Historie Proč refaktorovat Kdy refaktorovat Jak refaktorovat Code obfuscation Shrnutí. Refaktorování.
Refaktorování Code refactoring Lukáš Hájek Objektově orientované programování ČVUT v Praze - Fakulta jaderná a fyzikálně inženýrská 8. října 2013 1 / 31 Struktura prezentace 1 Co je refaktorování 2 Historie
VíceAgilní metodiky vývoje softwaru
vývoje softwaru : důraz na průběžnou komunikaci mezi vývojovým týmem a zákazníkem důraz na tvorbu kvalitního kódu a funkcí, které mají přímou obchodní hodnotu pro zákazníka týmovou spolupráci a samoorganizaci
VíceÚvod do Groovy pro Java experty
Úvod do Groovy pro Java experty Václav Pech Senior Software Developer JetBrains, Inc. Něco o mně Václav Pech Programátor Nadšenec do Groovy JetBrains Dodavatel Vašich oblíbených nástrojů IntelliJ IDEA,
VíceAbstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
VíceMetodika. Architecture First. Rudolf Pecinovský rudolf@pecinovsky.cz
Copyright Rudolf Pecinovský, Soubor: 2014_Comm_PrW_Architecture First Methodology.doc, verze 1.00.2413, uloženo po 9.6.2014 14:43 1 z 39 Metodika Architecture First Rudolf Pecinovský rudolf@pecinovsky.cz
VíceProjekty pro výuku programování v jazyce Java
JIHOČESKÁ UNIVERZITA V ČESKÝCH BUDĚJOVICÍCH Pedagogická fakulta Katedra informatiky Akademický rok: 2006/2007 TEZE BAKALÁŘSKÉ PRÁCE Projekty pro výuku programování v jazyce Java Jméno: František Přinosil
VíceJakub Čermák jakub@jcermak.cz, http://www.jcermak.cz. Microsoft Student Partner
Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner Testy ve VS - úvod Unit testy Testy ve VS featury a pokročilejší funkce Web testy DB testy Visual Studio 2010 Nástroje: Visual
VíceObjektově orientované programování
10. října 2011 Pragmatické informace Volitelný předmět, zápočet: zápočtový program(s dokumentací), aktivní účast na cvičení(body v CodExu), praktický test, zkouška: zkoušková písemka na objektový návrh
VíceÚvod do programování - Java. Cvičení č.4
Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení
VíceKTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
VíceObsah přednášky. Vývoj aplikací řízený testy. Extrémní programování (XP) Požadavky na nástroje pro XP. Testování aplikací
Obsah přednášky Vývoj aplikací řízený testy Miroslav Beneš Principy extrémního programování (XP) Testy v prostředí Java JUnit Testy v prostředí.net NUnit Testování webových aplikací Mock Objects Testování
VíceAgenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů
Testování a QA Agenda Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů Klasifikace Kategorie black box grey box
VíceKnot DNS Resolver. Modulární rekurzivní resolver. Karel Slaný karel.slany@nic.cz 13. 11. 2015
Knot DNS Resolver Modulární rekurzivní resolver Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je KNOT Resolver Části resolveru Funkce a konfigurace Integrační testování Co je Knot DNS Resolver Minimalistický
VíceAutomatické testování GUI
Automatické testování GUI Zápočet Pozor na rozsah dokument by měl mít nejvýše 10 stran nemusíte rozebírat všechny funkční požadavky vybrat si a popsat detailněji jen ty nejdůležitější/nejzajímavější je
VíceÚvod do programování v jazyce Java
Úvod do programování v jazyce Java Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci 5. říjen, 2011 Petr Krajča (UP) KMI/UP3J: Seminář I. 5.10.2011 1 / 17 Organizační informace email: petr.krajca@upol.cz
VíceObsah Kapitola 1. Úvod...13 Kapitola 2. Základní pojmy...17
Obsah 5 Kapitola 1. Úvod...13 1.1. Co knize předcházelo...13 1.2. Proč tato knížka vznikla...13 1.3. Co můžete od knížky očekávat... 14 1.4. Poděkování...15 1.5. Konvence...16 Kapitola 2. Základní pojmy...17
VíceWebové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
VíceVývoj aplikací řízený testy. Miroslav Beneš
Vývoj aplikací řízený testy Miroslav Beneš Obsah přednášky Principy extrémního programování (XP) Open Source nástroje pro XP Testy v prostředí Java JUnit Testy v prostředí.net NUnit Testování webových
VíceEnterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
Více11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
VíceTextové soubory. alg9 1
Textové soubory Textový soubor je posloupnost znaků členěná na řádky každý znak je reprezentován jedním bytem, jehož obsah je dán nějakým kódováním znaků členění na řádky je závislé na platformě a obvykle
VíceNástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.
Více7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
Více7 Jazyk UML (Unified Modeling Language)
7 Jazyk UML (Unified Modeling Language) 7.1 Základní charakteristika jazyka Motivace - vznik řady OO metod a metodologií (konec 80. let a první polovina 90.let) podobné notace vyjadřující totéž, komplikující
VíceFG Forrest, a.s. Jan Novotný. Automatické testování v praxi 2. www.fg.cz
FG Forrest, a.s. Jan Novotný Automatické testování v praxi 2 Dependency injection (IOC) motivace tight coupling vede ke složitým integračním testům (cz.novoj.business.usermanagernodi) přínos IOC obtíže
VíceJava a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
VíceNástroje pro průběžnou integraci a testování
Nástroje pro průběžnou integraci a testování Osnova: Úvod do problematiky Životní cyklus softwaru Iterativní a inkrementální vývoj Průběžná integrace Nástroje nutné k tomu, aby průběžná integrace fungovala
VícePROGRAMOVÁNÍ V C++ CVIČENÍ
PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné
VíceJAVA V Hibernate Java, letní semestr
JAVA Hibernate ORM Object/Relational Mapping mapovaní mezi objekty a záznamy v relační databázi zjednodušeně třída ~ schéma tabulky objekt ~ řádek v tabulce ORM udržuje vazby mezi objektem a řádkem v tabulce
VíceNovinky ve Visual Studio 2010. Tomáš Kroupa Tomas.Kroupa@hotmail.com
Novinky ve Visual Studio 2010 Tomáš Kroupa Tomas.Kroupa@hotmail.com O čem si dnes řekneme Visual studio 2010 (beta 2) Jazyk C# 4.0 ASP.NET 4.0.NET 4.0 Visual Studio 2010 Beta 2 Jak získat Testovací verze
VíceCZ.1.07/1.5.00/
Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice
VíceRuby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková
Ruby on Rails Bc. Tomáš Juřík Bc. Bára Huňková Co nás dnes čeká? Ruby (programovací jazyk) Ruby on Rails (webový framework) Praktická ukázka Ruby (programovací jazyk) Ruby (programovací jazyk) Skriptovací
VíceTechnologie JavaBeans
Technologie JavaBeans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Historie Komponentový model Typy komponent
VíceAlgoritmizace a programování
Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém
VíceTestování aplikací do náročného provozu
Testování aplikací do náročného provozu Zdeněk Češka zdenek.ceska@cs-soft.cz Václav Tůma vaclav.tuma@cs-soft.cz Obsah O společnosti CS Soft a.s. Naše produkty Testování do náročného provozu Vyžadované
Více1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
VíceInfrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
VíceNOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze
NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java
VíceDistribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček XML-RPC jednoduchá definice www.xmlrpc.com implementace obvykle opřené o XML parser X36DSV - Distribuované systémy a výpočty (3) 2 XML-RPC jednoduché
Více7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem
VíceEnterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
VíceVýchozí a statické metody rozhraní. Tomáš Pitner, upravil Marek Šabo
Výchozí a statické metody rozhraní Tomáš Pitner, upravil Marek Šabo Výchozí a statické metody rozhraní Java 8 přidává ohledně metod v rozhraní nové možnosti. Neuvidíme je tedy ve starém kódu a mnozí vývojáři
VíceJazyk C# (seminář 6)
Jazyk C# (seminář 6) Pavel Procházka KMI 29. října 2014 Delegát motivace Delegáty a události Jak docílit v C# funkcionální práce s metodami v C je to pomocí pointerů na funkce. Proč to v C# nejde pomocí
VíceSoftwarové komponenty a Internet
Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty
VíceTestování Java EE aplikací Petr Adámek
Testování Java EE aplikací Petr Adámek Testování aplikací Testování aplikací Ověřuje soulad implementace se specifikací a s očekáváním zákazníka. Je důležitou součástí procesu řízení kvality vývoje software
VíceIterator & for cyklus
Iterator & for cyklus for (Object o : foo) funguje pokud je foo pole nebo je foo iterovatelné jako to zařídit? implementovat interface java.lang.iterable Iterable má jednu metodu java.util.iterator iterator()
VíceVY_32_INOVACE_06_Předpřítomný čas_03. Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace
VY_32_INOVACE_06_Předpřítomný čas_03 Autor: Růžena Krupičková Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace Název projektu: Zkvalitnění ICT ve slušovské škole Číslo projektu: CZ.1.07/1.4.00/21.2400
VíceVyužití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java
Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java aneb Selenium v akci Michal Špaček, WebExpo 2008, Praha Proč vůbec testovat? Náš software nemá žádné chyby,
VíceNext line show use of paragraf symbol. It should be kept with the following number. Jak může státní zástupce věc odložit zmiňuje 159a.
1 Bad line breaks The follwing text has prepostions O and k at end of line which is incorrect according to Czech language typography standards: Mezi oblíbené dětské pohádky patří pohádky O Palečkovi, Alenka
VíceTestování GUI RICHARD LIPKA
Testování GUI RICHARD LIPKA 2.5.2016 Proč testovat Uživatel nemá radost z nefungující aplikace hledání bugů Test driven development unit testy definují jednotlivé části aplikace Testovat tam kde to má
VíceANGULAR 2 WORKSHOP. angular.cz
ANGULAR 2 WORKSHOP Milan Lempera @milanlempera Víťa Plšek @vitaplsek Matěj Horák @horakmat angular.cz O nás 0-1 Matěj Horák @horakmat java, javascript Víťa Plšek @vitaplsek java, javascript angular.cz/gdg-brno-a2
VíceNávrhové vzory Design Patterns
Návrhové vzory Design Patterns doc. Ing. František Huňka, CSc. Ostravská univerzita PřF 1 Definice vzoru Každý vzor popisuje problém, který nastává opakovaně v našem prostředí, a potom popisuje podstatu
VíceDatové typy v Javě. Tomáš Pitner, upravil Marek Šabo
Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.
VíceSeznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí
Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků
VíceGUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA What is an FTP client and how to use it? FTP (File transport protocol) - A protocol used to transfer your printing data files to the MAFRAPRINT
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceUniverzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.
Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly
VíceMobile application developent
Mobile application developent Jiří Šebek b6b36nss Obsah Návrh softwaru Prototypování testování MVVM architektura - mobile aplikace 2 Návrh softwaru Strategie : top down, bottom up Nejen u navrhu sw, ale
Více