FG Forrest, a.s. Jan Novotný. Automatické testování v praxi 2.
|
|
- Tadeáš Fišer
- před 9 lety
- Počet zobrazení:
Transkript
1 FG Forrest, a.s. Jan Novotný Automatické testování v praxi 2
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 zvyšuje kvalitu aplikace díky vysoké dekompozici výrazně zjednodušuje testování umožňuje jednodušší změny v aplikaci v budoucnosti při použití použitím frameworku se vyhneme psaní velkého množství gluecode (ve srovnání s factory patternem) vyžaduje změnu přístupu implementace Spring Framework Google Guice PicoContainer a další 2
3 Spring Framework základní podpora pro testy test framework agnostic automatická inicializace a cachování aplikačních kontextů dependency injection v testech autowire by type (@Autowired) autowire by type and name (@Qualifier) podpora profilů i pro testovací frameworky, které toto neposkytují viz. cz.novoj.dao.mysql.abstractdaotest 3
4 Techniky testování Testování různých vrstev systémů přináší odlišné problémy a vyžaduje odlišný přístup Datová vrstva Aplikační vrstva Prezentační vrstva 4
5 Datová vrstva (databáze) patterny #1 Database sandbox motivace: test / developer race, version mixing řešení každý vývojář má vlastní databázi každé další použití aplikace má vlastní databázi obtíže složitý proces pro vytváření nových databází problematické určování cílové databáze pro běh testů (podrobněji rozabráno dále) Automatic database model setup / update motivace zjednodušení setup / update databázového modelu na více prostředích použité technologie nepodporují automatickou tvorbu / aktualizaci datového modelu řešení Hibernate (hibernate.hbm2ddl.auto=create/update) vlastní řešení (spring/spring-autoupdate.xml) obtíže řešení problémů v průběhu aktualizace (u DDL nelze použít rollback) 5
6 Datová vrstva (databáze) patterny #2 InMemory database motivace opětovné vyváření dat v DB z nuly před každým testem výrazně navyšuje čas testů udržování konzistence testovacích dat ručně programátorem je velmi náročné a podléhá chybám, které se projeví až při běhu více testů řešení použití některé z memory databází (např. na začátku testu se vždy vytvoří kompletně nová databáze, tabulky a vytvoří se data, na konci testu se databáze dropne obtíže spolehlivá implementace není jednoduchá nutné podporovat další typ databázového stroje (může být nutné upravit datovou vrstvu) 6
7 Datová vrstva (databáze) patterny #3 Transaction rollback teardown (cz.novoj.dao.mysql.userdaoimpltest) motivace opětovné vyváření dat v DB z nuly před každým testem výrazně navyšuje čas testů udržování konzistence testovacích dat ručně programátorem je velmi náročné a podléhá chybám, které se projeví až při běhu více testů řešení na začátku testu otevřeme transakci a zajistíme, aby veškerá logika testu a logika z testu volaná se na této transakci podílela, na konci testu se volá rollback podpora ve Spring obtíže spolehlivá implementace není jednoduchá (vyžaduje zapojení TransactionManagera) modifikace dat uvnitř testu není zvenčí vidět (záleží na izolaci transakce), pokud test selže, na datech nelze poznat proč (změny jsou rollbacknuty) nelze použít na kód, který nemůže běžet v transakci (DDL a to i např. temporary table) 7
8 Aplikační vrstva techniky #1 test double motivace testy jsou pomalé nemáme dosud cílovou implementaci (např. dodává třetí strana) příprava prostředí pro test je příliš složitá ověření správnosti aplikační logiky je příliš složité (je třeba testovat tzv. side effects ) řešení použití Fake objektů spočívá ve výměně původní implementace za jednodušší určenou pouze pro testy tip: použití stub objektů (cz.novoj.emt.stub.businessobjectstubtest) princip kukaččího vejce výměna původní implementace za implementaci: která simuluje vstupy do testovacího objektu tak, aby mohlo dojít k otestování požadované situace která přijímá a zaznamenává výstupy testovaného objektu, aby mohlo dojít k ověření požadované situace použití mock objektů (cz.novoj.emt.mock.businessobjectmocktest) princip natáčení filmu podobají se stub objektům, ale pracuje se s nimi odlišně mock objekt je možné naprogramovat na očekávané chování objektu, který se testuje, nakonec umějí toto chování ověřit obtíže duplikuje se funkcionalita dvojí práce nahrazená aplikační logika není testována, není testována ani správná spolupráce mezi testovaným objektem a okolím které je nahrazováno pro zajímavost: 8
9 Aplikační vrstva techniky #2 testování private metod (cz.novoj.emt.pmt.businessobjectprivatemethodtest) motivace potřeba testovat logiku v private metodách obtíže private metody nejsou z jiné (tedy ani testovací) třídy dostupné řešení (hezky popsáno zde: netestovat nebo zveřejnit rozšířit viditelnost na friendly / protected inner class v produkční class určená pro testování reflexe ve Springu např. ReflectionTestUtils void setfield(object target, String name, Object value, Class type) void invokesettermethod(object target, String name, Object value, Class type) 9
10 Aplikační vrstva techniky #3 práce se systémovým časem (cz.novoj.business.pollmanagertest) motivace řešení v aplikační logice pracujeme s aktuálním časem, který se mění je problematické napsat test tak, aby fungoval dnes i po nějakém čase využití knihovny JodaTime ( testování odeslání ů (cz.novoj.emt.smtp.smtptest) motivace řešení v aplikační logice odesíláme y přes SMTP server - jak ověřit, že složíme správným způsobem, který dokáže SMTP server zpracovat? při využití mock objektů ověříme pouze, že došlo k pokusu o odeslání nikoliv, že zpráva byla složena tak, aby byla SMTP serverem zpracovatelná využití knihovny SubEthaSmtp ( jednoduchá implementace SMTP serveru 10
11 Aplikační vrstva techniky #4 použití specifické konfigurace pro konkrétní prostředí (cz.novoj.spring.utils.hostconfigurablecontextloader) Motivace testy spouštíme pravidelně na více prostředích (lokální vývojová prostředí, CI) trávíme spoustu času zprovozněním testů na konkrétním prostředí (odlišné umístění databází, hesla, přístupová jména, url apod.) řešení automatická detekce prostředí a úprava konfigurace v prostředí Springu - využití PropertyPlaceholderConfigurer, nebo dokonce použití odlišných XML konfigurací obtíže fixace všech konfigurací pro všechna možná prostředí na classpath (včetně hesel) testování aspektů (cz.novoj.business.usermanagerintegrationtest) motivace v kódu používáme aspekty např. pro řízení transakcí, security apod. a chceme otestovat, zda se při běhu správně aplikují obtížně se zjišťuje zda se při konkrétním volání metody třídy aplikovala advice, kterou očekáváme obvykle se jedná jen o konfigurační testování, které se ve výsledku ale obtížně testuje buď jsme nuceni k tomu testovat side-effect naší advice nebo musíme vyměnit runtime advice za testovací, což zesložiťuje setup a navíc již ztrácíme integrační hodnotu takového testu řešení využití logování (např. log4j) v advice k ověření její aplikace a průběhu blíže rozebráno zde: obtíže jsme odkázáni na množství a kvalitu logovacích informací dané advice 11
12 Prezentační vrstva - techniky Desktop aplikace založené na Swingu Server aplikace orientované na web Využití mock objektů mohou být součástí použitého frameworku např. Spring poskytuje podporu pro Servlet API org.springframework.mock.web.* (MockFilterChain, MockFilterConfig, MockHttpServletRequest, MockHttpServletResponse, MockHttpSession, MockServletConfig, MockServletContext a další) Portlet API org.springframework.mock.web.portlet.* Spring MVC org.springframework.test.web.abstractmodelandviewtests org.springframework.test.web.modelandviewassert HtmlUnit embeded testy podpora JavaScriptu, ale brzy narazíte na limity Selenium (neomezuje se pouze na Javu) testy běží v reálném prohlížeči je možné testovat funkcionalitu v různých prohlížečích lze provozovat na různých počítačích (distribuovaně), ale všechny musí být schopni spustit prohlížeč lze testovat i Ajax aplikace 12
13 Code smells & antipatterns #1 kód je obtížně testovatelný možné příčiny testy se píší až ve chvíli, kdy je kód hotový testovaná třída: má natvrdo definované závislosti (objekt si vytváří instance) obsahuje příliš velké množství logiky logika pracující s thready možná řešení decoupling rozbití logiky do menších částí (TDD, IOC) použití fake, stub, mock objektů pro nahrazení části logiky, která není pro test zásadní vyhnutí se asynchronicitě v kódu 13
14 Code smells & antipatterns #2 křehké testy možné příčiny cut & paste programování citlivost na změnu rozhraní citlivost na změnu chování příliš komplikované testy více testů testuje (je závislých) na stejné logice nahrávané testy (např. Selenium) mohou být obzvláště náchylné ke křehkosti citlivost na změnu dat způsob práce s daty používanými v testech možná řešení změna rozhraní většinou se neřeší jediné možnosti jsou zapouzdření práce s rozhraním v testech např. vytvořením jazyka vyšší úrovně, který se používá v testech, použití custom creation / verification methods změna chování použití tzv. creation methods, custom assertions / verification methods změna dat zajištění stálosti dat v úložišti (fresh fixture, database sandbox, teardown rollback) používání hlavy při psaní assertů nedefinovat asserty na ověření něčeho, co se může s přidáním dat měnit 14
15 Code smells & antipatterns #3 problémy při analýze chyby testu možné příčiny malá znalost testovacího frameworku v týmu používání nevhodných assert metod, ověřování logiky mimo test přílišná komplikovanost testů (snažíme se testovat co největší množství logiky v testech) příliš složité / nečitelné testy sdílená setup připravující globální data, ze které není vidět průnik do testované logiky součástí testu jsou deklarace nesouvisející s testovací logikou, zatemňující podstatu věci možná řešení rozbití komplexních testů do více jednodušších testů edukace v týmu psaní error hlášení v assert metodách (v IDE si vystačíme se stacktrace, ale problémy mohou nastat např. při spouštění testů v command-line např. v CI apod., kde nemusí být cesta k stacktrace tak jednoduchá) 15
16 Code smells & antipatterns #4 testovací kód v produkčním kódu & duplikace produkčního kódu v testech možné příčiny testování private metod potřeba odlišit chování produkčního kódu při běhu v testech špatný dependency management testovací knihovna se dostává do standardního buildu možná řešení refaktorizace : použití strategy patternu (pro test upravíme strategii a nasetujeme do produkčního kódu) použití AOP použití Maven pro buildování, nebo zavedení vlastní strategie pro odlišení test a production dependencí nevypočitatelné testy možné příčiny výsledek testu je ovlivněn během ostatních testů může znamenat resource leak může být příliš optimistický při práci s externími zdroji (ve smyslu jejich existence, kódování, zámky) obsahují neopakovatelnou logiku (závislou např. na systemdate) kolize testů v případě, že je stejný test spuštěn paralelně (sdílená db) možná řešení není jednoduché rady v závislosti na typu problému může být lékem použití některého z probíraných patternů pomalé testy možné příčiny závislost na pomalých komponentách systému příliš mnoho testů používání timeoutů např. pro testování asynchroních procesů možná řešení není jednoduché rady v závislosti na typu problému může být lékem použití některého z probíraných patternů 16
17 Integrace do IDE V současnosti naprosto integrální součástí 17
18 Integrace do build nástrojů Maven 2 součástí standardního buildu mvn test Maven-surefire-plugin Ant JUnit Task 18
19 Integrační server automatizovaně spouští buildy, testy, reporty na základě nějakých spouštěcích událostí checkin do SCM, definovaný čas atp. notifikuje o výsledcích buildů udržuje statistiky 19
20 Reporting & statistiky Run time statistics Test coverage report 20
21 Užitečné odkazy (junit homepage) (junit 4.x) (patterny & antipatterny) (techniky testování) (mock testing tool) (testování web UI) (blog Martina Fowlera) (Myšlenky dne Otce Fura) (Web společnosti FG Forrest - články) 21
Jak 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
Zá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í
Ná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ů.
JAVA 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
Testová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
Metodiky 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
Technologie 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
(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
PA165: Úvod do Java EE. Petr Adámek
PA165: Úvod do Java EE Petr Adámek Obsah přednášky Organizace předmětu Formy výuky Hodnocení Osnova Java EE aplikace Architektury Java EE aplikací Technologie Java EE Základní koncepty PA165: Úvod do Java
Semináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
Testovací 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");
Google 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
Spring framework 2.0. Roman Pichlík http://sweb.cz/pichlik/ CZJUG http://java.cz/jug
Spring framework 2.0 Spring framework 2.0 Roman Pichlík http://sweb.cz/pichlik/ Nejdůležitejší slide http://springframework.org/ http://www.springframework.org/documen Historie 2002 - Rod Johnson kniha
Ú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,
INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE
INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE profesionální verze 1 Obsah Požadavky... 3 Instalace... 3 Proměnná CLASSPATH... 3 Zpřístupnění licenčního klíče... 3 Ověřování komponent OKS. 3 Spouštíme aplikaci
Testová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ů
Testová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ý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
Specifikace. 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ší
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
Architektury informačních systémů
Architektury informačních systémů doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes/vyuka/tis Miroslav.Benes@vsb.cz Obsah přednášky Co je to
Jak 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
Obsah 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
2012 ET NETERA a.s. Wicket přehled technologie Martin Strejc www.etnetera.cz 5.4.2012
Wicket přehled technologie Martin Strejc www.etnetera.cz 5.4.2012 Osnova přednášky 1. Vznik Wicketu 2. Co Wicket umí a co neumí? 3. Účely užití výhody a nevýhody 4. Rozšiřitelnost Wicketu 5. Srovnání s
Systémová administrace portálu Liferay
02 Systémová administrace portálu Liferay 1 Agenda Administrace Instalace lokálního a serverového prostředí Základní práce s uživateli Role a oprávnění Konfigurace portálu 2014 IBA CZ, s. r. o. 2 Portálová
SOAP & REST služby. Rozdíly, architektury, použití
SOAP & REST služby Rozdíly, architektury, použití Obsah Srovnání SOAP a REST služeb Service Oriented Architecture Microservice Architecture Příklady použití Nástroje pro vývoj SOAP a REST služeb (v Java)
Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.
Úvod Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Organizace předmětu Materiály k předmětu -Web stránky: http://cw.felk.cvut.cz/doku.php/courses/x33eja/start
Jakub Č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
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
Vý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
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
9. 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
Obsah 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í
Enterprise 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
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím
GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových
Architektura aplikace
Architektura aplikace MARBES-JIRA plugin Tým: GRSS Členové: František Schneider Jaroslav Ráb Lukáš Gemela Jaromír Staněk Upravil Verze dokumentu Datum F. Schneider 1.0 25.3.2012 F. Schneider 2.0 25.4.2012
Další vlastnosti Springu Moduly Springu. Spring Framework. Pavel Mička. Pavel Mička Spring Framework 1/18
Spring Framework Pavel Mička Pavel Mička Spring Framework 1/18 Obsah Úvod 1 Úvod 2 Service locator Dependency injection Rozsah platnosti bean 3 4 Pavel Mička Spring Framework 2/18 Co je to Spring framework
KIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
Maven. Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
Maven Aplikační programování v Javě (BI-APJ) - 2 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU
Tvorba podnikových aplikací v jazyce JAVA Josef Pavlíček KII PEF CZU J2EE Jedná se o přístup: sadu pravidel, technologií, metod, doporučení jak provádět design, vývoj, nasazení a provozování vícevrstvých
Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:
Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva
Elektronická podpora výuky předmětu Komprese dat
Elektronická podpora výuky předmětu Komprese dat Vojtěch Ouška ouskav1@fel.cvut.cz 19. června 2006 Vojtěch Ouška Elektronická podpora výuky předmětu Komprese dat - 1 /15 Co je to SyVyKod? SyVyKod = Systém
1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:
Architektura webové aplikace, funkce jednotlivých vrstev, životní cyklus standardizovaných komponent Java EE, Servlety, JSP, frameworky, návrhové vzory 1. Distribuce Javy Distribuce Javy se liší podle
Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda
Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda Proces vývoje HRIS Vema Vlastnosti HRIS (Human Resources Information System) HRIS Vema Proces vývoje HRIS Vema Vema, a. s. Přední
SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store
SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store MCT david@wug.cz @gesvindr Osnova 1. Představení nástroje SQL Server Data Tools 2. Vývoj databáze přímo
Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr
Komponentově orientované webové frameworky Jiří Stránský jistr@jistr.net twitter.com/jistr O čem to bude Three-Tier aplikace MVC frameworky Komponentově orientované frameworky Apache Wicket Three-Tier
MBI - technologická realizace modelu
MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,
SPECIFIKACE PŘEDMĚTU PLNĚNÍ
SPECIFIKACE PŘEDMĚTU PLNĚNÍ pro zakázku, na kterou se nevztahuje postup pro zadávací řízení dle zákona č. 134/2016 Sb., o zadávání veřejných zakázek Název zakázky IT Vzdělávání zaměstnanců UBK s.r.o. Základní
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Aleš Rybák, Jiří Kadlec. Pluginy budoucnosti
Aleš Rybák, Jiří Kadlec Pluginy budoucnosti Jak se vyvíjel Liferay 4000000 3500000 3000000 2500000 2000000 1500000 1000000 500000 50 k Java LOC 2,1 M Java LOC YAML XSLT XSD XML Velocity Template Language
Instalace produktu Ontopia. ver. 5.0.2 (open-source verze)
Instalace produktu Ontopia ver. 5.0.2 (open-source verze) Martina Husáková 1.2.2010 PÁR SLOV ÚVODEM Produkt společnosti Bouvet Ontopia (dříve Ontopia Knowledge Suite OKS) je jedním z nejpoužívanějších
3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
FRED & PostgreSQL. CZ.NIC, z.s.p.o. Jaromír Talíř <jaromir.talir@nic.cz> 13. 2. 2008 http://www.nic.cz/ http://fred.nic.cz
FRED & PostgreSQL CZ.NIC, z.s.p.o. Jaromír Talíř 13. 2. 2008 http://www.nic.cz/ http://fred.nic.cz 1 Obsah FRED co to je? Architektura systému, datový model, transakční model Komunikace
Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23
5 Obsah O autorech 15 O odborných korektorech 15 Úvod 16 Rozdělení knihy 16 Komu je tato kniha určena? 18 Co potřebujete, abyste mohli pracovat s touto knihou? 18 Sdělte nám svůj názor 18 Zdrojové kódy
Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz
Design Patterns Tomáš Herceg Microsoft MVP (ASP.NET) www.dotnetcollege.cz Základní návrhové vzory Kategorie Creational Patterns starají se o vytváření instancí Structural Patterns struktura komponent v
Informace o zaměstnancích v insolvenčním řízení v aplikaci KS mzdy
KS mzdy PROFi se jako jediný personální informační systém stala finalistou soutěže IT produkt 2007 a IT produkt 2010 pořádané prestižním časopisem Computerworld. Informace o zaměstnancích v insolvenčním
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
MVC (Model-View-Controller)
MVC vs PAC MVC (Model-View-Controller) Architektonický vzor zabývající se uživatelským rozhraním Odděluje doménovou (bussiness) logiku a uživatelské rozhraní do tří nezávislých komponent: Model View Controller
Implementace dávkových operací
Implementace dávkových operací Petr Steckovič 12. 5. 2011 Hradec Králové 1 Dávkové zpracování dat Procesy běžící na pozadí Spouštěné Časem Stavem (např. dochází místo) Ručně Obvykle se jedná o podpůrné
Snadný vývoj webových aplikací s Nette. Lukáš Jelínek
Snadný vývoj webových aplikací s Nette Lukáš Jelínek Proč framework? ušetří spoustu práce (implementace, úpravy) vývoj = co udělat, ne jak to udělat bezpečnost štábní kultura prostředky pro ladění podpora
Úvod do problematiky vývoje Vývoj informačních systémů
Úvod do problematiky vývoje informačních systémů Vývoj informačních systémů Management Klasický management - slouží k udržování a rozvíjení zavedených systémů, které jsou prostředkem pro nepřetržitou,
Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE
Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE KAPITOLA 1 Vývojové prostředí a výběr frameworku 15 PhoneGap 15 jquery
GWT pro pokročilé. MoroSystems, s.r.o. Pavel Klobása. Senior Java Developer.
GWT pro pokročilé MoroSystems, s.r.o. Pavel Klobása Senior Java Developer pavel.klobasa@morosystems.cz Obsah Co je to GWT? Návrhové vzory a užitečné knihovny Komunikace klient - server ExtGWT GWT+Spring
UJO 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
Obsah 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
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Agenda. 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
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Automatické 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
Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů
- 1.1 - Kapitola 1: Úvod Účel databázových systémů Pohled na data Modely dat Jazyk pro definici dat (Data Definition Language; DDL) Jazyk pro manipulaci s daty (Data Manipulation Language; DML) Správa
Ří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
UNIVERZITA 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
Služba Rychlý výpis umožňuje on-line službám získat elektronický a snadno zpracovatelný výpis z bankovního účtu klienta.
Rychlý výpis Úvod Služba Rychlý výpis umožňuje on-line službám získat elektronický a snadno zpracovatelný výpis z bankovního účtu klienta. Zákazník služby Mezi očekávané zákazníky služby Rychlý výpis patří:
UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud
UAI/612 - Cloudová Řešení Návrh aplikací pro cloud Rekapitulace Cloud computing Virtualizace IaaS, PaaS, SaaS Veřejný, Privátní, Komunitní, Hybridní Motivace Návrh aplikací pro cloud Software as a Service
Ruby on Rails: zapomeňte na Javu
Ruby on Rails: zapomeňte na Javu Jiří Hradil Kyberie s.r.o. jirka@hradil.cz http://www.hradil.cz ` 28.2.2011, CZJUG, Praha Java sága, persistence I. Kyberie, rok 2004 Cíl: persistence pro Java webové aplikace
programátor vs. vývojář
programátor vs. vývojář... Michał Weiser @michal_weiser linkedin.com/in/michalweiser https://kahoot.it QUIZ Jarda vzdělání Bc. Informační technologie, VUT FIT jazyky čeština nativní angličtina - B2 zkušenosti
2013 IBM Corporation
2013 IBM Corporation Connections v praxi Jak vypadá nasazení Social software v praxi MICHAL HOLOUBEK Social Business konzultant, oxy Online, s.r.o. 2013 IBM Corporation Agenda Úvod Zadání a specifikace
KMI / TMA Tvorba mobilních aplikací
KMI / TMA Tvorba mobilních aplikací 2. seminář 5.10.2018 ZS 2017/2018 STŘEDA 13:15-15:45 OBSAH SEMINáře konfigurační soubory projektu, aktivity, základní události, životní cyklus aplikace, intenty a práce
Použití databází na Webu
4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové
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
Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu http://www.profinit.cz
Quality assurance a testovací nástroje v praxi Bohumír Zoubek bohumir.zoubek@profinit.eu http://www.profinit.cz Quality Assurance QA obsah Kvalita proč, co, kde? DMAIC model Plánování Validace a verifikace
Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for
Převod 4GL aplikací do webového prostředí Ing. Jan Musil, IBM ČR Community of Practice for CEEMEA Co je to EGL? -4GL a EGL Agenda Popis převodu z -4GL do EGL krok za krokem Obecný postup převodu Závěrečný
Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?
Formy 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
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
Ná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
Zabezpečení proti SQL injection
Zabezpečení proti SQL injection ESO9 intranet a.s. Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 19.9.2012 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz
Zabezpečení proti SQL injection
Zabezpečení proti SQL injection ESO9 intranet a.s. Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 19.9.2012 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz
Konverze systému MIBCON na S/4HANA. Jiří Suchánek Michaela Guthová
Konverze systému MIBCON na S/4HANA Jiří Suchánek Michaela Guthová Cíle projektu Zrychlení systému Změna databáze Reálné ověření procesu konverze S/4HANA (kovářova kobyla ) Využití nových technologií 2
Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz
Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem
Vladimír Mach. @vladimirmach 2. 1. 2013
Vladimír Mach @vladimirmach 2. 1. 2013 SQL Server Compact Edition Jednoduchá relační databáze Použití i v malých zařízeních s omezenými zdroji Dříve pod názvem SQL Server Mobile Časté využití při programování
O Apache Derby detailněji. Hynek Mlnařík
O Apache Derby detailněji Hynek Mlnařík Agenda Historie Vlastnosti Architektura Budoucnost Historie 1997 Cloudscape Inc. - JBMS 1999 Informix Software, Inc. odkoupila Cloudscape, Inc. 2001 IBM odkoupila
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
Architektury Informačních systémů. Jaroslav Žáček
Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?
Michal 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ů