UI Testing Paradigm  SELENIUMnathangloyn@NathanGloynDesign Code Releasenathans.dropbox@gmail.com
Agenda UI testing Why use Selenium? Selenium: Origins Selenium: IDE & Concepts Selenium: WebDriver Selenium: Advance...
What is UI testing? a.k.a System Testing, Functional testing Use UI to drive the system All parts of system exercised ...
Testing through the UI Pros   Ensure that system works as a whole   Easy regression testing Cons   Expensive   Time ...
Why use Selenium Free Open source Supports Java, Ruby, .Net, Python, PHP & Perl Portable Combine with other tools
Origins Thoughtworks Jason Huggins Javascript Java + Http Request Simon Stewart WebDriver
Origins: ProjectsSelenium 2.0         1.0                       Web driver                       Selenium CoreRemote Contr...
Selenium IDE Firefox addin Record & replay Supports plugins Creates Selenese scripts Can output unit tests in various...
Selenium IDEDemo
Concepts: Assert vs Verify a.k.a hard or soft assertions Different uses Fail Assert = immediate test failure Fail veri...
Concepts: Commands Actions   Click   keyDown Accessors   Title   Text Assertions   Assert   Verify
Concepts: Locators id Name Tag Name       Attribute based Class Name CSS Link                 Content based Partial...
Concepts using Selenium IDEDemo
Selenium IDE: Summary Easy way to get started Able to create suites of tests Very good for quick smoke tests e.g naviga...
Web Driver Has native browser specific drivers No server needed Object Oriented API HtmlUnit support Support for Sele...
WebDriverDemo
Brittle tests Data dependent Framework & test code combined Incorrect locators
Data Deterministic vs Non-Deterministic Static vs Dynamic Easier vs Hard
Brittle testsBad Code
Page Object Pattern Popular design pattern in testing Abstracts a page Encapsulates all operations Helps prevent britt...
Page Object PatternDemo
Domain Specific Language Abstraction Specification Not a “proper” DSL Readable Build it piece at a time Investment
Domain Specific LanguageDemo
Summary Tests the application end to end Very easy to get going with Strategies to avoid brittle tests Free Investmen...
Questions?
Upcoming SlideShare
Loading in...5
×

Selenium ui paradigm - DDD North 2

886

Published on

Slide deck from the presentation at DDD North 2

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
886
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • JavaScriptTestRunnerMost probably the first open source UI testing tool
  • Selenium ui paradigm - DDD North 2

    1. 1. UI Testing Paradigm SELENIUMnathangloyn@NathanGloynDesign Code Releasenathans.dropbox@gmail.com
    2. 2. Agenda UI testing Why use Selenium? Selenium: Origins Selenium: IDE & Concepts Selenium: WebDriver Selenium: Advanced concepts Summary Questions
    3. 3. What is UI testing? a.k.a System Testing, Functional testing Use UI to drive the system All parts of system exercised Ensure that UI behaves as expected
    4. 4. Testing through the UI Pros  Ensure that system works as a whole  Easy regression testing Cons  Expensive  Time consuming
    5. 5. Why use Selenium Free Open source Supports Java, Ruby, .Net, Python, PHP & Perl Portable Combine with other tools
    6. 6. Origins Thoughtworks Jason Huggins Javascript Java + Http Request Simon Stewart WebDriver
    7. 7. Origins: ProjectsSelenium 2.0 1.0 Web driver Selenium CoreRemote Control IDE Grid
    8. 8. Selenium IDE Firefox addin Record & replay Supports plugins Creates Selenese scripts Can output unit tests in various languages
    9. 9. Selenium IDEDemo
    10. 10. Concepts: Assert vs Verify a.k.a hard or soft assertions Different uses Fail Assert = immediate test failure Fail verify = continue to end of test Use depends on test
    11. 11. Concepts: Commands Actions  Click  keyDown Accessors  Title  Text Assertions  Assert  Verify
    12. 12. Concepts: Locators id Name Tag Name Attribute based Class Name CSS Link Content based Partial link Xpath Structure based
    13. 13. Concepts using Selenium IDEDemo
    14. 14. Selenium IDE: Summary Easy way to get started Able to create suites of tests Very good for quick smoke tests e.g navigation Test can be exported to different languages Limited to FireFox Very data sensitive Not usable from a CI server
    15. 15. Web Driver Has native browser specific drivers No server needed Object Oriented API HtmlUnit support Support for Selenium RC
    16. 16. WebDriverDemo
    17. 17. Brittle tests Data dependent Framework & test code combined Incorrect locators
    18. 18. Data Deterministic vs Non-Deterministic Static vs Dynamic Easier vs Hard
    19. 19. Brittle testsBad Code
    20. 20. Page Object Pattern Popular design pattern in testing Abstracts a page Encapsulates all operations Helps prevent brittle tests Page Object does not assert or verify
    21. 21. Page Object PatternDemo
    22. 22. Domain Specific Language Abstraction Specification Not a “proper” DSL Readable Build it piece at a time Investment
    23. 23. Domain Specific LanguageDemo
    24. 24. Summary Tests the application end to end Very easy to get going with Strategies to avoid brittle tests Free Investment in tests
    25. 25. Questions?
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×