SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Vaše jistota na trhu IT




           Test Driven Development



                          Jiří Kiml, ICZ a.s.
                          20/09/2007, Praha




www.i.cz
Vaše jistota na trhu IT




           Agenda

           ► Úvod
           ► Tradiční/rigorózní metodiky
           ► Agilní metodiky – přehled
           ► TDD detailně
           ► Závěr




www.i.cz
Vaše jistota na trhu IT




           Úvod
      ► Společnost ICZ patří mezi nejvýznamnější
        české firmy nabízející integrovaná
        softwarová a síťová řešení. Patří mezi TOP
        10 systémových integrátorů.
      ► 400 zaměstnanců
      ► Sídlo v Praze, pobočky v Brně, Českých
        Budějovicích, Opavě a Plzni
      ► www.i.cz

      ► České a anglické termíny
      ► Nejasnosti/dotazy – není třeba čekat na
        konec

www.i.cz
Vaše jistota na trhu IT




              Tradiční metodiky
           ► Vodopád
           ► Spirála
           ► Rational Unified Process – RUP
           ► LBMS Systém Engineering - SE
           ► Fungují dobře, ale … ne vždy je možné
             přesně popsat procesy a definovat
             požadavky předem

       ► Nepružné, velký třesk, složité
       ► Vhodné pro větší, organizované, stabilní
         týmy

www.i.cz
Vaše jistota na trhu IT




            Svět se změnil
           ► Zákazník stále očekává kvalitu, ale
             odmítá na ni dlouho čekat.
           ► Často při zadávání ani přesně neví,
             co vlastně od produktu požaduje.
           ► Přehnaná snaha o dokonalost je
             zbytečná
           ► Individuální přístup




www.i.cz
Vaše jistota na trhu IT




            Agilní metodiky
           ► Manifest agilního vývoje software
             (2001).
           ► http://agilemanifesto.org/
           ► Kent Beck, Martin Fowler, Ward
             Cunningham, Alistair Cockburn, Jeff
             Sutherland …
           ► Přijmout změnu je efektivnější než jí
             bránit
           ► Jedinou jistotou vývoje je změna



www.i.cz
Vaše jistota na trhu IT




           Agilní metodiky - přehled

           ► Extrémní programování (XP)
           ► SCRUM development process
           ► Lean development
           ► Feature driven development
           ► Test driven development
           ►…




www.i.cz
Vaše jistota na trhu IT




            XP – Extreme Programming
           ► Jediným zdrojem informací je
             zdrojový kód
           ► Komunikace
           ► Malé verze, iterace
           ► Společné vlastnictví kódu
           ► Párové programování
           ► 40 hodinový pracovní týden
           ► Zákazník na pracovišti
           ►…
           ► Co je na tom extrémní ?


www.i.cz
Vaše jistota na trhu IT




           SCRUM development
   ► SCRUM – termín z ragby
   ► Iterace 1 měsíc
   ► Každodenní schůzky suplují centrální
     plány
   ► Každý objekt má svého vlastníka
   ► pigs and chickens




www.i.cz
Vaše jistota na trhu IT




           Lean Development
   ► Absolutní odstranění všeho zbytečného
   ► Vyvíjet sw za 1/3 času
   ► Vystačit s 1/3 nákladů
   ► Snížit četnost chyb na 1/3
   ► Odstranit vše zbytečné
   ► Rozhodnutí co nejpozději
   ► Kdokoli rozhoduje
   ► Partnerství s dodavateli



www.i.cz
Vaše jistota na trhu IT




           Feature driven development
   ► Hlavní roly hrají vlastnosti produktu
   ► Vlastnosti (měřitelnost,
     realizovatelnost, srozumitelnost)
   ► Vlastnost má přidanou hodnotu pro
     zákazníka
   ► Vlastnosti jsou klasifikovány dle
     důležitosti
   ► Meziprodukt u zákazníka každé 3
     týdny
   ► Pravidelné inspekce


www.i.cz
Vaše jistota na trhu IT




           Test driven development
   ► Test First development
   ► Testování je základ celého procesu
   ► Test musí být dokončen ještě před
     začátkem psaní testovaného kódu
     (programový kód píšeme pouze pokud
     selhal test)
   ► Proč mám plýtvat energií a produkovat
     chyby předtím než je opravím.
   ► Důraz kladen na specifikaci a návrh



www.i.cz
Vaše jistota na trhu IT




       Green – yellow – red - green

    Vše funguje


                  Syntaktická chyba
                       Test volá
                  neimplementovanou
                   metodu/vlastnost

                                          Padající test
                                      Neúplná implementace




                                                         Úplná implementace




www.i.cz
Vaše jistota na trhu IT




           Red – Green - Refactor


            Write/modify a test
            Write the code to pass the test
            Refactor, remove duplication

           ► Two hats:
           ► Developer hat
           ► Refactoring hat



www.i.cz
Vaše jistota na trhu IT




           Ukázka

           ► Green – yellow-red- green


           ► Red – green - refactor




www.i.cz
Vaše jistota na trhu IT




           Příklad z praxe
   ► NIS – 120 instalací (verze 3.6)
   ► Verze 3.7 neexistuje
   ► Přechod na agilní metodiky s důrazem na
     automatické testy
   ► Verze 3.8 – stabilizace 7 měsíců
   ► Konzultace => přechod na TDD
   ► Cíl verze každých 6 týdnů
   ► Verze 3.9 – stabilizace 3 měsíce
   ► Je to prohra ?

www.i.cz
Vaše jistota na trhu IT




           Podpora
   ► IDE + xUnit (ne vi)
   ► Automatické spouštění (Continous
     Integration server)
   ► Automatické vyhodnocení
   ► Klony zákaznického prostředí
   ► Statistiky
   ► Ukázka Whitespace
   ► Ukázka TestNG
   ► Ukázka LN

www.i.cz
Vaše jistota na trhu IT




           Kvalita testů
   ► Rychlost
   ► Izolované testy (setUp, tearDown)
   ► Nezávislost na datech
   ► Duplicita kódu vers. čitelnost
   ► Hloupé asserty




www.i.cz
Vaše jistota na trhu IT




      TDD a ostatní agilní metodiky
   ► Pair programming
   ► Continuous integration
   ► Simple design
   ► Pravidelné inspekce
   ►…




www.i.cz
Vaše jistota na trhu IT




           Výhody/přínosy TDD
   ► Automatický test je výborná dokumentace
   ► Automatické testování vede k lepší
     struktuře kódu
   ► 100% kódu pokryto testy
   ► Minimalizace času tráveného debugovaním
     kódu
   ► Rychlá zpětná vazba




www.i.cz
Vaše jistota na trhu IT




           Mýty nebo výhody

   ► Automatické testy zabírají hodně času
   ► Automatické testování je nepohodlné
   ► Automatické testování zaručí bezchybný
     kód
   ► Můj program se nedá testovat




www.i.cz
Vaše jistota na trhu IT




            Nevýhody/problémy
   ► Testy GUI (swing/web)
   ► Distribuované prostředí (JMS, RMI, …)
   ► Test first
       ● Reporty
       ● …
   ► Disciplína programátorů
   ► Bezpečnost




www.i.cz
Vaše jistota na trhu IT




           Další typy testů
   ► Performance testy
   ► Memory/Thread leaks
   ► Zátěžové/failover testy
   ► Testovací scénáře
   ► Integrační testy
   ► Poloautomatické testy
   ►…




www.i.cz
Vaše jistota na trhu IT




           Závěr

   ► Vývojáři, kteří zkusili TDD tvrdí, že je to
     nejlepší metodika …
   ► Kvalita testů je důležitá
   ► Zkuste a uvidíte




www.i.cz
Vaše jistota na trhu IT




           Otázky …
    ► … a možná i odpovědi




www.i.cz
Vaše jistota na trhu IT




           Literatura
    ► Václav Kadlec – Agilní programování
      (ISBN: 80-251-0342-0)
    ► Kent Beck – Test-Driven Developmnet By
      Example (ISBN: 0-321-14653-0)




www.i.cz
Vaše jistota na trhu IT




           Děkuji za vaši pozornost


                           Jiří Kiml
                           Jiri.Kiml@i.cz
                           +420 737 280 021

                           ICZ a.s.
                           Divize Zdravotnictví
                           www.i.cz



www.i.cz

Weitere ähnliche Inhalte

Ähnlich wie Tdd

SmartCard Forum 2008 - truconnexion
SmartCard Forum 2008 - truconnexionSmartCard Forum 2008 - truconnexion
SmartCard Forum 2008 - truconnexion
OKsystem
 
20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra
Jiří Mareš
 
Data Collect - overview
Data Collect - overviewData Collect - overview
Data Collect - overview
datacollect
 
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosůSmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
OKsystem
 

Ähnlich wie Tdd (20)

SmartCard Forum 2008 - truconnexion
SmartCard Forum 2008 - truconnexionSmartCard Forum 2008 - truconnexion
SmartCard Forum 2008 - truconnexion
 
2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne2018 11-28 snidane-serie-kuchyne
2018 11-28 snidane-serie-kuchyne
 
O2 Firewally nové generace
O2 Firewally nové generaceO2 Firewally nové generace
O2 Firewally nové generace
 
Radovan Fikt - Řízení IT služeb - AID2019
Radovan Fikt - Řízení IT služeb - AID2019Radovan Fikt - Řízení IT služeb - AID2019
Radovan Fikt - Řízení IT služeb - AID2019
 
TNPW2-2014-01
TNPW2-2014-01TNPW2-2014-01
TNPW2-2014-01
 
Ondřej Mirtes: Usnadněte si práci silně typovaným kódem a statickou analýzou!
Ondřej Mirtes: Usnadněte si práci silně typovaným kódem a statickou analýzou!Ondřej Mirtes: Usnadněte si práci silně typovaným kódem a statickou analýzou!
Ondřej Mirtes: Usnadněte si práci silně typovaným kódem a statickou analýzou!
 
AdvaICT - Invex Forum
AdvaICT - Invex ForumAdvaICT - Invex Forum
AdvaICT - Invex Forum
 
TNPW2-2016-01
TNPW2-2016-01TNPW2-2016-01
TNPW2-2016-01
 
20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra
 
Data Collect - overview
Data Collect - overviewData Collect - overview
Data Collect - overview
 
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny AtlassianITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
ITSM - Jira Service Desk a spřátelené aplikace z rodiny Atlassian
 
Progress Is
Progress IsProgress Is
Progress Is
 
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosůSmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
SmartCard Forum 2010 - Multiaplikační čipové karty - zvažování nástrah a přínosů
 
New Media Inspiration 2014 - Bezpečnost v kontextu Internetu věcí
New Media Inspiration 2014 - Bezpečnost v kontextu Internetu věcíNew Media Inspiration 2014 - Bezpečnost v kontextu Internetu věcí
New Media Inspiration 2014 - Bezpečnost v kontextu Internetu věcí
 
Chytrý redakční systém jako základ efektivního podnikání
Chytrý redakční systém jako základ efektivního podnikáníChytrý redakční systém jako základ efektivního podnikání
Chytrý redakční systém jako základ efektivního podnikání
 
5 SCHP - bezpečnost OT final
5 SCHP - bezpečnost OT final5 SCHP - bezpečnost OT final
5 SCHP - bezpečnost OT final
 
Microservices - morning talk
Microservices -  morning talkMicroservices -  morning talk
Microservices - morning talk
 
Úvod do analýzy - 2 část
Úvod do analýzy -  2 částÚvod do analýzy -  2 část
Úvod do analýzy - 2 část
 
Technology Meets Art presentation
Technology Meets Art presentationTechnology Meets Art presentation
Technology Meets Art presentation
 
Vyplati se ITIL ?
Vyplati se ITIL ?Vyplati se ITIL ?
Vyplati se ITIL ?
 

Tdd

  • 1. Vaše jistota na trhu IT Test Driven Development Jiří Kiml, ICZ a.s. 20/09/2007, Praha www.i.cz
  • 2. Vaše jistota na trhu IT Agenda ► Úvod ► Tradiční/rigorózní metodiky ► Agilní metodiky – přehled ► TDD detailně ► Závěr www.i.cz
  • 3. Vaše jistota na trhu IT Úvod ► Společnost ICZ patří mezi nejvýznamnější české firmy nabízející integrovaná softwarová a síťová řešení. Patří mezi TOP 10 systémových integrátorů. ► 400 zaměstnanců ► Sídlo v Praze, pobočky v Brně, Českých Budějovicích, Opavě a Plzni ► www.i.cz ► České a anglické termíny ► Nejasnosti/dotazy – není třeba čekat na konec www.i.cz
  • 4. Vaše jistota na trhu IT Tradiční metodiky ► Vodopád ► Spirála ► Rational Unified Process – RUP ► LBMS Systém Engineering - SE ► Fungují dobře, ale … ne vždy je možné přesně popsat procesy a definovat požadavky předem ► Nepružné, velký třesk, složité ► Vhodné pro větší, organizované, stabilní týmy www.i.cz
  • 5. Vaše jistota na trhu IT Svět se změnil ► Zákazník stále očekává kvalitu, ale odmítá na ni dlouho čekat. ► Často při zadávání ani přesně neví, co vlastně od produktu požaduje. ► Přehnaná snaha o dokonalost je zbytečná ► Individuální přístup www.i.cz
  • 6. Vaše jistota na trhu IT Agilní metodiky ► Manifest agilního vývoje software (2001). ► http://agilemanifesto.org/ ► Kent Beck, Martin Fowler, Ward Cunningham, Alistair Cockburn, Jeff Sutherland … ► Přijmout změnu je efektivnější než jí bránit ► Jedinou jistotou vývoje je změna www.i.cz
  • 7. Vaše jistota na trhu IT Agilní metodiky - přehled ► Extrémní programování (XP) ► SCRUM development process ► Lean development ► Feature driven development ► Test driven development ►… www.i.cz
  • 8. Vaše jistota na trhu IT XP – Extreme Programming ► Jediným zdrojem informací je zdrojový kód ► Komunikace ► Malé verze, iterace ► Společné vlastnictví kódu ► Párové programování ► 40 hodinový pracovní týden ► Zákazník na pracovišti ►… ► Co je na tom extrémní ? www.i.cz
  • 9. Vaše jistota na trhu IT SCRUM development ► SCRUM – termín z ragby ► Iterace 1 měsíc ► Každodenní schůzky suplují centrální plány ► Každý objekt má svého vlastníka ► pigs and chickens www.i.cz
  • 10. Vaše jistota na trhu IT Lean Development ► Absolutní odstranění všeho zbytečného ► Vyvíjet sw za 1/3 času ► Vystačit s 1/3 nákladů ► Snížit četnost chyb na 1/3 ► Odstranit vše zbytečné ► Rozhodnutí co nejpozději ► Kdokoli rozhoduje ► Partnerství s dodavateli www.i.cz
  • 11. Vaše jistota na trhu IT Feature driven development ► Hlavní roly hrají vlastnosti produktu ► Vlastnosti (měřitelnost, realizovatelnost, srozumitelnost) ► Vlastnost má přidanou hodnotu pro zákazníka ► Vlastnosti jsou klasifikovány dle důležitosti ► Meziprodukt u zákazníka každé 3 týdny ► Pravidelné inspekce www.i.cz
  • 12. Vaše jistota na trhu IT Test driven development ► Test First development ► Testování je základ celého procesu ► Test musí být dokončen ještě před začátkem psaní testovaného kódu (programový kód píšeme pouze pokud selhal test) ► Proč mám plýtvat energií a produkovat chyby předtím než je opravím. ► Důraz kladen na specifikaci a návrh www.i.cz
  • 13. Vaše jistota na trhu IT Green – yellow – red - green Vše funguje Syntaktická chyba Test volá neimplementovanou metodu/vlastnost Padající test Neúplná implementace Úplná implementace www.i.cz
  • 14. Vaše jistota na trhu IT Red – Green - Refactor Write/modify a test Write the code to pass the test Refactor, remove duplication ► Two hats: ► Developer hat ► Refactoring hat www.i.cz
  • 15. Vaše jistota na trhu IT Ukázka ► Green – yellow-red- green ► Red – green - refactor www.i.cz
  • 16. Vaše jistota na trhu IT Příklad z praxe ► NIS – 120 instalací (verze 3.6) ► Verze 3.7 neexistuje ► Přechod na agilní metodiky s důrazem na automatické testy ► Verze 3.8 – stabilizace 7 měsíců ► Konzultace => přechod na TDD ► Cíl verze každých 6 týdnů ► Verze 3.9 – stabilizace 3 měsíce ► Je to prohra ? www.i.cz
  • 17. Vaše jistota na trhu IT Podpora ► IDE + xUnit (ne vi) ► Automatické spouštění (Continous Integration server) ► Automatické vyhodnocení ► Klony zákaznického prostředí ► Statistiky ► Ukázka Whitespace ► Ukázka TestNG ► Ukázka LN www.i.cz
  • 18. Vaše jistota na trhu IT Kvalita testů ► Rychlost ► Izolované testy (setUp, tearDown) ► Nezávislost na datech ► Duplicita kódu vers. čitelnost ► Hloupé asserty www.i.cz
  • 19. Vaše jistota na trhu IT TDD a ostatní agilní metodiky ► Pair programming ► Continuous integration ► Simple design ► Pravidelné inspekce ►… www.i.cz
  • 20. Vaše jistota na trhu IT Výhody/přínosy TDD ► Automatický test je výborná dokumentace ► Automatické testování vede k lepší struktuře kódu ► 100% kódu pokryto testy ► Minimalizace času tráveného debugovaním kódu ► Rychlá zpětná vazba www.i.cz
  • 21. Vaše jistota na trhu IT Mýty nebo výhody ► Automatické testy zabírají hodně času ► Automatické testování je nepohodlné ► Automatické testování zaručí bezchybný kód ► Můj program se nedá testovat www.i.cz
  • 22. Vaše jistota na trhu IT Nevýhody/problémy ► Testy GUI (swing/web) ► Distribuované prostředí (JMS, RMI, …) ► Test first ● Reporty ● … ► Disciplína programátorů ► Bezpečnost www.i.cz
  • 23. Vaše jistota na trhu IT Další typy testů ► Performance testy ► Memory/Thread leaks ► Zátěžové/failover testy ► Testovací scénáře ► Integrační testy ► Poloautomatické testy ►… www.i.cz
  • 24. Vaše jistota na trhu IT Závěr ► Vývojáři, kteří zkusili TDD tvrdí, že je to nejlepší metodika … ► Kvalita testů je důležitá ► Zkuste a uvidíte www.i.cz
  • 25. Vaše jistota na trhu IT Otázky … ► … a možná i odpovědi www.i.cz
  • 26. Vaše jistota na trhu IT Literatura ► Václav Kadlec – Agilní programování (ISBN: 80-251-0342-0) ► Kent Beck – Test-Driven Developmnet By Example (ISBN: 0-321-14653-0) www.i.cz
  • 27. Vaše jistota na trhu IT Děkuji za vaši pozornost Jiří Kiml Jiri.Kiml@i.cz +420 737 280 021 ICZ a.s. Divize Zdravotnictví www.i.cz www.i.cz

Hinweis der Redaktion

  1. World has changed, I smell it in the air Programátoři nejsou krabičky
  2. Rozdíl mezi pigs and chickens
  3. Co je to CI ? LN – QS databáze Ukázka xls od Rakusáků ?
  4. Asynchronn í komunikace … Bezpe čnost = je tím myšleno package private /private ?