Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Selenium ui paradigm - DDD North 2


Published on

Slide deck from the presentation at DDD North 2

  • Be the first to comment

  • Be the first to like this

Selenium ui paradigm - DDD North 2

  1. 1. UI Testing Paradigm SELENIUMnathangloyn@NathanGloynDesign Code
  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?