Cucumber - Testovanie webových aplikácií

977 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
977
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cucumber - Testovanie webových aplikácií

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

×