SlideShare ist ein Scribd-Unternehmen logo
1 von 30
CucumberTestovanie webových aplikácií Peter Študent / peter.student@smartmedia.sk @peterstudent
Ako testujete?
Test Driven Development (TDD)
Unit Test Overovanie vstupov a výstupov pre funkciu classTestSimpleNumber<Test::Unit::TestCase deftest_simple assert_equal(4, SimpleNumber.new(2).add(2)) assert_equal(6, SimpleNumber.new(2).multiply(3)) end end
Špecifikácia Väčšinou vo forme UserStories Príklad: Ako editor chcem mať možnosť pridávať a editovať stránky.
Cucumber
Outside-in $$$
Akona to? (BDD) Popísať požiadavku na funkcionalitu (feature) Definovať kroky, ktoré napĺňajú danú požiadavku(scenario) Implementovať jednotlivé kroky pomocou nizkoúrovňových testov(steps) Implementovať kód, aby sme prešli testami Opakovať, kým nie sú všetky požiadavky splnené
Feature Feature:  [title] In order to[business value] As a [role] I want to[some action] Scenario: …
Feature – príklad Feature:  Manage articles In order toprovide fresh content for visitors As an editor of the web page I want tocreate and edit articles
Scenario Given When Then
Scenario – štruktúra Scenario:[title] Given [Context] And [More Context] When I do [Action] And [Other Action] Then I should see [Outcome] But I should not see […]
Scenario –príklad Scenario: Publishingnew article GivenI log in as „admin“ using password „dog123“ When I follow „New Article“ AndI fill in „Title“ with „First Article“ And I fill in „Article“ with „My first article about Cucumbers“ And I press „Publish article“ Then I should see „First Article was published“ And I go to „the main page“ And I should see „My first article about Cucumbers“
Steps Základané vstavané kroky  prejsť na stránku,vyplniť pole formulára, kliknúť, ... Vlastné kroky Kombinácia krokov
Steps – príklad When/^I login as "([^"]*)" usingpassword "([^"]*)"/ do|username, password| When'I go to thehomepage' fill_in('Username', :with => username) fill_in('Password', :with => password) click_button('Log in') end
Bonus: Slovenčina Požiadavka:Sčítavanie Aby somsa vyhol hlúpym chybám Ako matematický idiot Chcemvedieťakosasčítavajúdve čísla Náčrt Scenáru:Sčítaniedvochčísel PokiaľZadám číslo <vstup_1> do kalkulačky A Zadám číslo <vstup_2> do kalkulačky KeďStlačím tlačidlo <tlačidlo> Tak Výsledok by mal byť <výstup> Príklady:    | vstup_1 | vstup_2 | tlačidlo | výstup |    | 20            | 30             | add       | 50          |    | 2              | 5                | add       | 7             |    | 0              | 40             | add       | 40          |
Webrat
Webrat Simulátor prehliadača Vykonáva jednotlivé kroky Poskytuje sadu základných krokov Nemožnosť testovať AJAX... … ale exitujúalternatívy: Selenium, Watir, Celerity, Culerity, env-js, ...
Cucumber - inštalácia $ gem install cucumber
Štruktúraadresárov features step_definitions support env.rb paths.rb page.feature …
Spúštanie testov $ rakefeatures cucumber features/page.feature:7
Výstup
Výstup
Rôzne platformy
Aj Python... freshen (github.com/rlisagor/freshen) priamo Cucumber cezrubypython
Nenechajte sa oslepiť
Výhody Živá dokumentácia Zjednotený jazyk Lepšie pochopenie požiadaviek Rýchly feedback Stanovenie akceptačných kritérii Záchranná sieť Efektívnejší vývoj Uhorky obsahujú vitamín C 
Pohľad do kuchyne
Pohľad do kuchyne Cucumber + RSpec Webrat Kontinuálna integrácia cez Integrity (git hooks) Sledovanie metrík cez metric_fu
Kam ďalej? Prísť na ďalšiu Rubyslavu cukes.info

Weitere ähnliche Inhalte

Andere mochten auch

Apresentacao final26 07 ok_cecilia
Apresentacao final26 07 ok_ceciliaApresentacao final26 07 ok_cecilia
Apresentacao final26 07 ok_cecilia
introdutecdigital
 
Bandeiras e bandeirins
Bandeiras e bandeirinsBandeiras e bandeirins
Bandeiras e bandeirins
Daniel Vilas
 
Visita al palma aquarium
Visita al palma aquariumVisita al palma aquarium
Visita al palma aquarium
cpespillari
 
mercurial vapor VIII
mercurial vapor VIIImercurial vapor VIII
mercurial vapor VIII
Steven Bernal
 
Portfolio
PortfolioPortfolio
Portfolio
cre84me
 
Preparação Para Teste Físico
Preparação Para Teste FísicoPreparação Para Teste Físico
Preparação Para Teste Físico
everaldo ferreira
 
Barreira am 010
Barreira am  010Barreira am  010
Barreira am 010
UNINORTE
 

Andere mochten auch (20)

Apresentacao final26 07 ok_cecilia
Apresentacao final26 07 ok_ceciliaApresentacao final26 07 ok_cecilia
Apresentacao final26 07 ok_cecilia
 
Latinomania_Teuxos3
Latinomania_Teuxos3Latinomania_Teuxos3
Latinomania_Teuxos3
 
Lider
LiderLider
Lider
 
Bandeiras e bandeirins
Bandeiras e bandeirinsBandeiras e bandeirins
Bandeiras e bandeirins
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
 
Artigo
ArtigoArtigo
Artigo
 
Visita al palma aquarium
Visita al palma aquariumVisita al palma aquarium
Visita al palma aquarium
 
Tecnologia e prática pedagógica
Tecnologia e prática pedagógicaTecnologia e prática pedagógica
Tecnologia e prática pedagógica
 
mercurial vapor VIII
mercurial vapor VIIImercurial vapor VIII
mercurial vapor VIII
 
Shalom
ShalomShalom
Shalom
 
Portfolio
PortfolioPortfolio
Portfolio
 
Preparação Para Teste Físico
Preparação Para Teste FísicoPreparação Para Teste Físico
Preparação Para Teste Físico
 
Gran muralla xinesa
Gran muralla xinesaGran muralla xinesa
Gran muralla xinesa
 
Firjan - IFDM - Indice de Desenvolvimento Municipal
Firjan - IFDM - Indice de Desenvolvimento MunicipalFirjan - IFDM - Indice de Desenvolvimento Municipal
Firjan - IFDM - Indice de Desenvolvimento Municipal
 
Glandulas suprarenales carrasco jose luis
Glandulas suprarenales   carrasco jose luisGlandulas suprarenales   carrasco jose luis
Glandulas suprarenales carrasco jose luis
 
Tus Tiendas Plus x
Tus Tiendas Plus xTus Tiendas Plus x
Tus Tiendas Plus x
 
Barreira am 010
Barreira am  010Barreira am  010
Barreira am 010
 
Ley100
Ley100Ley100
Ley100
 
Módulo 5
Módulo 5Módulo 5
Módulo 5
 
Cni ibope-avaliacaodo governo-setembro2014 (1)
Cni ibope-avaliacaodo governo-setembro2014 (1)Cni ibope-avaliacaodo governo-setembro2014 (1)
Cni ibope-avaliacaodo governo-setembro2014 (1)
 

Ähnlich wie Cucumber - Testovanie webových aplikácií

Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)
DCIT, a.s.
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Catana0605
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
Jano Suchal
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Michal Chabada
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
Adam Lieskovsky
 

Ähnlich wie Cucumber - Testovanie webových aplikácií (20)

Ať se z kódu nepráší!
Ať se z kódu nepráší!Ať se z kódu nepráší!
Ať se z kódu nepráší!
 
Require.JS & Backbone.JS
Require.JS & Backbone.JSRequire.JS & Backbone.JS
Require.JS & Backbone.JS
 
Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)Bezpečnosť webových aplikácií (Martin Zajíček)
Bezpečnosť webových aplikácií (Martin Zajíček)
 
BarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na WebBarCamp - Zváračský kurz na Web
BarCamp - Zváračský kurz na Web
 
Programovanie v C++
Programovanie v C++Programovanie v C++
Programovanie v C++
 
Webové prostredie na výuku refaktorizácii
Webové prostredie na výuku refaktorizáciiWebové prostredie na výuku refaktorizácii
Webové prostredie na výuku refaktorizácii
 
qweqweqweqweqweqweqweqweqweqweqweqweqweqwe
qweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqweqwe
qweqweqweqweqweqweqweqweqweqweqweqweqweqwe
 
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
Návrh a realizácia web stránky skriptovacím jazykom PHP vrátane administračné...
 
Vývoj pre Google Android
Vývoj pre Google AndroidVývoj pre Google Android
Vývoj pre Google Android
 
Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?Aký programovací jazyk a framework si vybrať a prečo?
Aký programovací jazyk a framework si vybrať a prečo?
 
Libraries and tools for C++
Libraries and tools for C++Libraries and tools for C++
Libraries and tools for C++
 
Selenium prezentácia pre Webelement
Selenium prezentácia pre WebelementSelenium prezentácia pre Webelement
Selenium prezentácia pre Webelement
 
CodeCon 2015 - Také slovenské startupovanie
CodeCon 2015 - Také slovenské startupovanieCodeCon 2015 - Také slovenské startupovanie
CodeCon 2015 - Také slovenské startupovanie
 
Zváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App EngineZváračský kurz na BlazeDS a Google App Engine
Zváračský kurz na BlazeDS a Google App Engine
 
Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]Drupal a OOP [DrupalCamp SK 2013]
Drupal a OOP [DrupalCamp SK 2013]
 
Android libraries
Android librariesAndroid libraries
Android libraries
 
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšieMatúš Jančík: Programuj rýchlejšie, meraj presnejšie
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
 
AppMonitor Insight Edition
AppMonitor Insight EditionAppMonitor Insight Edition
AppMonitor Insight Edition
 

Cucumber - Testovanie webových aplikácií

  • 1. CucumberTestovanie webových aplikácií Peter Študent / peter.student@smartmedia.sk @peterstudent
  • 4. Unit Test Overovanie vstupov a výstupov pre funkciu classTestSimpleNumber<Test::Unit::TestCase deftest_simple assert_equal(4, SimpleNumber.new(2).add(2)) assert_equal(6, SimpleNumber.new(2).multiply(3)) end end
  • 5. Špecifikácia Väčšinou vo forme UserStories Príklad: Ako editor chcem mať možnosť pridávať a editovať stránky.
  • 8. Akona to? (BDD) Popísať požiadavku na funkcionalitu (feature) Definovať kroky, ktoré napĺňajú danú požiadavku(scenario) Implementovať jednotlivé kroky pomocou nizkoúrovňových testov(steps) Implementovať kód, aby sme prešli testami Opakovať, kým nie sú všetky požiadavky splnené
  • 9. Feature Feature: [title] In order to[business value] As a [role] I want to[some action] Scenario: …
  • 10. Feature – príklad Feature: Manage articles In order toprovide fresh content for visitors As an editor of the web page I want tocreate and edit articles
  • 12. Scenario – štruktúra Scenario:[title] Given [Context] And [More Context] When I do [Action] And [Other Action] Then I should see [Outcome] But I should not see […]
  • 13. Scenario –príklad Scenario: Publishingnew article GivenI log in as „admin“ using password „dog123“ When I follow „New Article“ AndI fill in „Title“ with „First Article“ And I fill in „Article“ with „My first article about Cucumbers“ And I press „Publish article“ Then I should see „First Article was published“ And I go to „the main page“ And I should see „My first article about Cucumbers“
  • 14. Steps Základané vstavané kroky prejsť na stránku,vyplniť pole formulára, kliknúť, ... Vlastné kroky Kombinácia krokov
  • 15. Steps – príklad When/^I login as "([^"]*)" usingpassword "([^"]*)"/ do|username, password| When'I go to thehomepage' fill_in('Username', :with => username) fill_in('Password', :with => password) click_button('Log in') end
  • 16. Bonus: Slovenčina Požiadavka:Sčítavanie Aby somsa vyhol hlúpym chybám Ako matematický idiot Chcemvedieťakosasčítavajúdve čísla Náčrt Scenáru:Sčítaniedvochčísel PokiaľZadám číslo <vstup_1> do kalkulačky A Zadám číslo <vstup_2> do kalkulačky KeďStlačím tlačidlo <tlačidlo> Tak Výsledok by mal byť <výstup> Príklady:    | vstup_1 | vstup_2 | tlačidlo | výstup |    | 20 | 30 | add | 50 |    | 2 | 5 | add | 7 |    | 0 | 40 | add | 40 |
  • 18. Webrat Simulátor prehliadača Vykonáva jednotlivé kroky Poskytuje sadu základných krokov Nemožnosť testovať AJAX... … ale exitujúalternatívy: Selenium, Watir, Celerity, Culerity, env-js, ...
  • 19. Cucumber - inštalácia $ gem install cucumber
  • 20. Štruktúraadresárov features step_definitions support env.rb paths.rb page.feature …
  • 21. Spúštanie testov $ rakefeatures cucumber features/page.feature:7
  • 25. Aj Python... freshen (github.com/rlisagor/freshen) priamo Cucumber cezrubypython
  • 27. Výhody Živá dokumentácia Zjednotený jazyk Lepšie pochopenie požiadaviek Rýchly feedback Stanovenie akceptačných kritérii Záchranná sieť Efektívnejší vývoj Uhorky obsahujú vitamín C 
  • 29. Pohľad do kuchyne Cucumber + RSpec Webrat Kontinuálna integrácia cez Integrity (git hooks) Sledovanie metrík cez metric_fu
  • 30. Kam ďalej? Prísť na ďalšiu Rubyslavu cukes.info