Www.fg.cz FG Forrest, a.s. Jan Novotný Automatické testování v praxi.

Slides:



Advertisements
Podobné prezentace
Stavba patentových nároků (b) Topné těleso pro pračku
Advertisements

Webové rozhraní pro přístup k databázi JIS Václav Lederbuch
© Adastra, 2008 Keyboard Robot Hardwarové pomůcky pro testování aplikací aneb Jednočip – nejlepší přítel testera Kamil Řezáč.
VN zdroj pro TILECAL vila Lanna
Vyvíjejte webové aplikace nově a lépe
Knihovny současnosti 2011, České Budějovice 13. – 15. září 2011
Jak na to, aniž bychom se zničili
FG Forrest, a.s. Jan Novotný iBatis SqlMaps.
Vaše jistota na trhu IT Quo vadis, programování? Rudolf PECINOVSKÝ 2012 – e-bezpečnost v Kraji Vysočina 1.
Modelování procesů pomocí workflow
Metamodelování OpenSoul Metamodeler UML profily v EA Albert Zentner Aquasoft
Lego Mindstorms Martin Flusser.
Úvod do SwEng 1. cvičení - A4M33SEP -
Výběrové řízení a přijímací pohovor – vybrané rady a tipy
1 Extreme programming v praxi Martin Junek, product manager
Agilní Softwarové Procesy
Úvod do databází Databáze.
ScanStation P20 – uživatelská kalibrace (procedura Check & Adjust)
Tvorba webových aplikací
1 Audit software Petr SLOUP Cíl Cílem auditu je sestavit přehled a základní popis používaného software (aplikací)
Definování prostředí pro provozování aplikace dosud jsme řešili projekt v obecné rovině aplikace bude ovšem provozována v konkrétním technickém a programovém.
Tomáš Doseděl, Jak psát práci SOČ Tomáš Doseděl,
Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření:
METROPOLITNÍ PŘENOSOVÝ SYSTÉM
Projekt PŘEDPOVĚĎ POČASÍ. Předpověď počasí na
Řadicí algoritmy autor: Tadeáš Berkman.
1 BEL Stewart Net, s.r.o. Na Bojišti 2, Praha Roman Pinc & Jan Fulín.
Jako intranet Bc. Jan Beneš. Intranet - obecná funkcionalita  sdílení dokumentů  diskusní fórum  databáze kontaktů  novinky a aktuality  firemní.
1 | Kaspersky Endpoint Security Přehled. 2 | Kaspersky Endpoint Security Kaspersky Endpoint Security for Windows Kaspersky Endpoint Security for Mac Kaspersky.
Troška idealismu nezaškodí.... celá řada přístupů metodika vývoje by se měla vždy přizpůsobovat konkrétním podmínkám nejedná se o normu, absolutní pravdu.
Jak psát práci SOČ Tomáš Doseděl,
použitelnost webu (usability)
Slide 1 A Free sample background from © 2003 By Default! Jiří Kůsa Testování propustnosti síťového firewallu.
Programování Michal Žůrek.
1  Ex Libris Ltd., Internal and Confidential NISPEZ IV. konference 13. listopadu 2012 Martin Vojnar
Michael Juřek Software Architect Microsoft s.r.o.
Úvod. školní: příprava na předmět Databázové systémy praktický: webové aplikace databázové systémy základy vývoje webových aplikací od návrhu databáze.
PHP – Základy programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Plán testů Tým FelPay. Testování a kvalita obecně Přispívá ke správné funkci systému Přispívá ke správné funkci systému Snižuje finanční a časové ztráty.
1 Informační systém autoservisu Softwarové inženýrství 2003.
4IT445 – Testování a ladění v PHP Ing. Jan Mittner
Zavádění a údržba informačních systémů
David Kratochvíl. * Linux – označení pro operační systém (OS) * 1,3 milionu mobilních zařízení s Androidem aktivováno každý den * Většina ze TV.
4. Lekce Dílčí procesy funkčního testování
R VY a Aplikovaná informatika Aplikovaná informatika Prezentace studijních oborů 2013.
Simulační modely a programové vybavení. Vývoj simulačních programů  Původně pouze strojový kód –Příliš dlouhé, náročné na programátora, obtížné hledání.
Možnosti modelování požadavků na informační systém
Jazyk PHP Programovací jazyk PHP (Hypertext preprocessor) je skriptovací jazyk, který běží na straně serveru. KLIENT - SERVER Server posílá do vašeho počítače.
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
Dokumentace informačního systému
Výhody a nevýhody open-source a komerčních SW produktů
Aneb proč to dělat složitě, když to jde jednoduše S Datronem proti proudu.
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
Pathfinding s využitím PostGIS Prezentuje : Jan Kolář.
KL Free IS Informační systém pro regionální síť KLfree.net.
Zkušenosti s nasazením svobodného software při výuce
Na cestě k ASP Jiří Voříšek VŠE - KIT publikováno: červen 2002.
Moderní vývoj web aplikací na Dominu Martin Jinoch, MAP Systems, s.r.o
Kramerius 4 – nová generace systému pro digitální knihovnu Martin Lhoták Knihovna AV ČR, v. v. i. Archivy, knihovny, muzea v digitálním světě ,
YOUR SYSTEM, spol. s r. o. Ing
Detekce a odstraňování chyb Vývoj informačních systémů.
Vývoj software pro Linuxové distribuce Installfest Praha,
Testování aplikací v Javě Petr Adámek IBA CZ, s.r.o. © 2010.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP.
TDD - Test Driven Development
Testování Softwaru a Test-Driven Development
Tradiční metodiky vývoje softwaru
Tradiční metody vývoje softwaru
Transkript prezentace:

FG Forrest, a.s. Jan Novotný Automatické testování v praxi

2 Otázka do pléna Kdo z vás slyšel o automatickém / unit testování? Kdo z vás jej použil / používá při vývoji aplikací?

3 Jak se vyvíjí bez testů Testuje se až se dá kliknout Kolečko trvá příliš dlouho Plno zbytečných koleček kvůli překlepům Některé stavy aplikace se ručně simulují jen velmi těžko Main metody v kódu Nekomfortní Spouštím a ladím vždy pouze jednu situaci Kód rychle zastarává a znepřehledňuje původní kód Důsledky Časem začíná být problém refaktorizace Časem začíná být problémem i udržování a rozvoj Noví členové týmu nevědomky páchají plno chyb Na konci každé iterace je nutné opět přetestovat vše Na chyby se přijde obvykle až při finálním testování

4 Otázka do pléna Našel jste se někdo?

5 Historie testy řízeného vývoje Autoři Kent Beck, Erich Gamma, později také Martin Fowler Základy položeny ve SmallTalku jUnit vznikl při 10h letu ze Zürichu do Atlanty (OOPSLA 1997) Rozšířen snad do všech v současnosti používaných jazyků (xUnit) Java,.NET, PHP, C++, Perl, PL/SQL, Visual Basic TDD – Test Driven Development - jádro metologie XP V současnosti standard – změna chápání z „It’s cool to test.“ na „It’s uncool not to test.“ Jednoduchá pravidla KISS – keep it stupid and simple YAGNI – you ain‘t gonna need it Test first!

6 Jsou testy vynálezem programátorů? Quality Control v továrnách na elektroniku vstupní testy (všeho co jde zvenku) testy součástek testy spojů na desce testy komponent výrobku kompletní testy funkčnosti hotového výrobku – splnění kontraktu s uživatelem výstupní testy (všeho co jde ven) testy v extrémních podmínkách (horko, zima, vibrace) Čím dříve se závada objeví tím levnější je ji opravit

7 Jak vypadá test?

8 Organizace testů NEBONEBO

9 Test Driven Development – cyklus vývoje 0. máte představu o cílovém chování 1. naprogramujete test na toto cílové chování 2. spustíte všechny testy a nový test nesmí projít 3. implementujete novou funkcionalitu 4. otestujete, že váš test (i všechny ostatní) projde 5. refaktorujete kód DEMO cz.novoj.tdd.ParserTest

10 Kvíz #1 – co je špatně?

11 Změny v jUnit v 4.x extenzivní využití anotací není nutné dědit z TestCase setUp a tearDown se (static methods) testovací metody mohou mít libovolný podpora pro testování = IllegalArgumentException.class) podpora pro časově omezené = 500) podpora pro porovnávání polí assertArrayEquals podpora pro parametrizovatelné testy ukázka: cz.novoj.tdd.ParserTestJunit4

12 Pozitivní dopady automatických testů Ulehčuje vývoj okamžitá zpětná vazba – kód se okamžitě prověřuje i za běhu testy jsou formou dokumentace kódu není nutné dokonale rozumět cizímu kódu na to, abyste mohli v něm dělat změny – testy jsou polštářem proti závadným změnám dokumentuje nalezené chyby a zabraňuje jejich opětovnému výskytu výrazně ulehčuje iterativní vývoj – ulehčuje návrat ke starému kódu důvěra ve svůj kód, sebevědomí při provádění refaktoringů Mění myšlení vývojáře a architekturu systému pohled na kód z pozice uživatele (jiného programátora) výsledkem je lepší kód – dobře testovatelný kód vykazuje lepší architektonické řešení než kód netestovatelný (loose-coupling) Posunuje znalost systému na vyšší úroveň prověřuje chování produkčního kódu v podmínkách, které lze obtížně simulovat

13 Negativa automatických testů Nejsou stříbrná kulka Quis custodiet ipsos custodes? – testy také podléhají chybám Neodstraňují automaticky 100% chyb Je velmi obtížné testovat konkurenční algoritmy Je obtížné testovat GUI Prodražují projekt ??? Další kód, který se musí napsat Další kód, který se musí udržovat Zvyšují nároky na vývoj ??? Nutí vývojáře víc přemýšlet Další nároky na HW a SW + jejich údržbu

14 Kvíz #2 – Co je špatně?

15 Těžce nabyté zkušenosti Buďte obezřetní ve svých očekáváních Psaní testů vyžaduje změny přístupu k návrhu aplikace musíte změnit sami sebe a své myšlení musíte změnit nástroje a knihovny Psaní dobrých testů není snadné Špatné testy se nevyplácí vyšší údržba větší nutkání testy opustit Zpočátku se naráží na křehké testy falešné chyby snížení produktivity Podpora managementu je nutná

16 Testy se budou efektivní pokud bude jejich psaní jednoduché bude běh testů rychlý budou udržovány v zelených barvách se budou spouštět automaticky nezávisle na vývojářích

17 Kdy psát testy Test first! + změna myšlení – pohled na kód z úhlu uživatele + největší pokrytí testy +minimalistický produkční kód - ztrátovost testovacího kódu Test parallel! + nižší ztrátovost test kódu – testuje se již hotový kód 0 zachován pohled programátora 0 rozumné pokrytí -tendence opustit YAGNI When you are done! +minimální ztrátovost test kódu 0 zachován pohled programátora -problémové psaní testů – kód není na testy připraven -násobek času na vývoj -největší riziko neúspěchu -nejnižší pokrytí -tendence opustit YAGNI i KISS

18 Kvíz #3 – Co je špatně? xxxx

19 Užitečné odkazy (jUnit homepage) (jUnit 4.x) (tutorial od autorů NetBeans) (tutorial od autorů jUnitu) (patterny & antipatterny) (Myšlenky dne Otce Fura)