The Testable Web
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

The Testable Web

  • 1,040 views
Uploaded on

This talk was prepared for and presented to the NYC Web Design Meetup. It covers how to do identify core app functionality, an approach acceptance testing, and some ways the UI can be built more......

This talk was prepared for and presented to the NYC Web Design Meetup. It covers how to do identify core app functionality, an approach acceptance testing, and some ways the UI can be built more intelligently.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,040
On Slideshare
1,037
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
6
Comments
0
Likes
3

Embeds 3

https://twitter.com 3

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. The Testable Web by Dave Haeffner Prepared for the NYC Web Design Meetup March 11, 2013Saturday, March 16, 13
  • 2. The Motley Fool To Educate, Amuse, and EnrichSaturday, March 16, 13
  • 3. Arrgyle Navigate The High Tech SeasSaturday, March 16, 13
  • 4. Saturday, March 16, 13
  • 5. Saturday, March 16, 13
  • 6. Saturday, March 16, 13
  • 7. How many of you work on web things? (e.g. websites, web applications, mobile apps)Saturday, March 16, 13
  • 8. How many of you test what you build? (or have someone on your team who does)Saturday, March 16, 13
  • 9. How many of you primarily test manually?Saturday, March 16, 13
  • 10. How many of you primarily with automation?Saturday, March 16, 13
  • 11. How many of you test with a mix of both?Saturday, March 16, 13
  • 12. How many of you don’t test?Saturday, March 16, 13
  • 13. Show of hands if any of these are true for you: Save testing for the end of the cycle Feel like there isn’t enough time to adequately test Feel unnerved when it’s time to release Find issues in productionSaturday, March 16, 13
  • 14. The Dirty Little Secrets of TestingSaturday, March 16, 13
  • 15. #1: You don’t have to test everythingSaturday, March 16, 13
  • 16. Pareto AnalysisSaturday, March 16, 13
  • 17. Saturday, March 16, 13
  • 18. #2: Everything You Need to know about testing, you learned in Kindegarten.Saturday, March 16, 13
  • 19. Finding the Glitter Glue PathSaturday, March 16, 13
  • 20. Saturday, March 16, 13
  • 21. Questions worth asking, to help you find your glitter glue pathSaturday, March 16, 13
  • 22. How does your business* make make money/deliver value? * the business you are building software forSaturday, March 16, 13
  • 23. How do the users actually use it?Saturday, March 16, 13
  • 24. What are the prominent/relevant traits of your users (e.g. browser types, geographic location, etc.)?Saturday, March 16, 13
  • 25. What things have bitten you before?Saturday, March 16, 13
  • 26. “An example would be handy right about now” - Brian MarickSaturday, March 16, 13
  • 27. Saturday, March 16, 13
  • 28. 7 Automated Acceptance Tests* Successful platform upgradeSaturday, March 16, 13
  • 29. Saturday, March 16, 13
  • 30. Saturday, March 16, 13
  • 31. The Motley Fool To Educate, Amuse, and EnrichSaturday, March 16, 13
  • 32. These things can take time. You have my permission to try until you get it right.Saturday, March 16, 13
  • 33. extSaturday, March 16, 13
  • 34. When To Automate? Questions worth askingSaturday, March 16, 13
  • 35. How long will it take to test manually?Saturday, March 16, 13
  • 36. How long will it take to test manually? This will help you get a baseline before answering the following questions.Saturday, March 16, 13
  • 37. How often will this functionality need to be checked?Saturday, March 16, 13
  • 38. How often will this functionality need to be checked?If often, then it is likely a good candidate for automation.Saturday, March 16, 13
  • 39. Is it valuable (e.g. core functionality, used heavily, a legal or political requirement)?Saturday, March 16, 13
  • 40. Is it valuable (e.g. core functionality, used heavily, a legal or political requirement)? If yes, then it is very likely a candidate for automation.Saturday, March 16, 13
  • 41. How risky is the feature (e.g. fundamental changes, complex architecture, large user facing impact)?Saturday, March 16, 13
  • 42. How risky is the feature (e.g. fundamental changes, complex architecture, large user facing impact)? High? Medium? Or Low? If Medium to High, then maybe.Saturday, March 16, 13
  • 43. What is the level of effort to automate?Saturday, March 16, 13
  • 44. What is the level of effort to automate? T-shirt sizing will help you here: Small: 0-2 hours Medium: 1-2 days Large: 2-4 days X-Large >= 1 week If large or higher, probably not But it really depends on what other work you have committed toSaturday, March 16, 13
  • 45. Does it involve look and feel?Saturday, March 16, 13
  • 46. Does it involve look and feel? If so, then it is likely a ripe candidate for manual testing.Saturday, March 16, 13
  • 47. How To Automate (strategy)?Saturday, March 16, 13
  • 48. http://martinfowler.com/bliki/TestPyramid.htmlSaturday, March 16, 13
  • 49. Build a feedback loop (Version Control are table stakes)Saturday, March 16, 13
  • 50. Version Control System (VCS)Saturday, March 16, 13
  • 51. Continuous Integration (CI)Saturday, March 16, 13
  • 52. How to Automate (tactics)?Saturday, March 16, 13
  • 53. Choose your weaponSaturday, March 16, 13
  • 54. Consider Your Current Tech StackSaturday, March 16, 13
  • 55. Then Layer In Your Team’s Context (strengths, comfort, confidence, excitement/interest)Saturday, March 16, 13
  • 56. Programming Language? Doesn’t have to be the same as what you develop in.Saturday, March 16, 13
  • 57. Who will own this?Saturday, March 16, 13
  • 58. Open Source Testing ToolsSaturday, March 16, 13
  • 59. Agile Alliance Functional Testing Tool group http://bit.ly/AgileTestToolsSaturday, March 16, 13
  • 60. But let’s assume UI is involved. In that case, something with WebDriver.Saturday, March 16, 13
  • 61. Full Disclosure: I have some opinions on this Released an open-source web testing framework for Selenium WebDriverhttp://arrgyle.com/blog/automated-web-testing-is-hard/Saturday, March 16, 13
  • 62. World’s Quickest Overview on how Selenium worksSaturday, March 16, 13
  • 63. Selenium... is a robot sent from the future to help us test web sites uses locators (id, name, link, css, xpath, etc.) to interact with the html elements of the page (a.k.a ‘find by strategy’) ------ The simplest and most sustainable way is to use straight up CSS.Saturday, March 16, 13
  • 64. How to build UI tests so you won’t hate yourselfSaturday, March 16, 13
  • 65. Santi says...Saturday, March 16, 13
  • 66. Record & Playback is merely a stepping stone Export your tests Treat them like code Page Object PatternSaturday, March 16, 13
  • 67. He also says: Only use UI tests when you have to...Saturday, March 16, 13
  • 68. But won’t they be slow?Saturday, March 16, 13
  • 69. Saturday, March 16, 13
  • 70. Saturday, March 16, 13
  • 71. In PracticeSaturday, March 16, 13
  • 72. Test Pack 1 Test Pack 2 VCS CI Simple checks Automated Builds, Acceptance Unit Tests Tests Local DevSaturday, March 16, 13
  • 73. Garbage In, Garbage OutSaturday, March 16, 13
  • 74. A more testable UISaturday, March 16, 13
  • 75. More semantic markup (e.g. unique and descriptive locators)Saturday, March 16, 13
  • 76. Inventory and consolidate your design patternsSaturday, March 16, 13
  • 77. But really, it’s about usabilitySaturday, March 16, 13
  • 78. “The more people think about usability, the more things tend to work out. Its a virtuous path.” - Ken Pier, Senior Director of Product Quality, SocialtextSaturday, March 16, 13
  • 79. “It’s only words and photos on the internet.” - John F. Croston III, Web Content Accessibility Manager for the United States Army (army.mil)Saturday, March 16, 13
  • 80. OutroSaturday, March 16, 13
  • 81. Recap • You Don’t Have To Test Everything • But do test, intelligently, asking yourself • What matters? • Should I automate this? • Choose a toolchain that’s right for you and your team • Build a feedback loop • Build a more descriptive, usable, and testable webSaturday, March 16, 13
  • 82. I’m writing a book about this stuff! arrgyle.com/book @TourDeDave dave@arrgyle.comSaturday, March 16, 13
  • 83. AppendixSaturday, March 16, 13
  • 84. • A practical guide to usability: http://jfciii.com/presentations/wasp/ accessibility.html • How to address risk in Agile (view it like an investment portfolio): http:// arrgyle.com/blog/agile-accounting/ • Automated Web Testing Is Hard (Introducing ChemistryKit, an open source testing framework to make automated web testing easier): http://arrgyle.com/ blog/automated-web-testing-is-hard/ • CSS Selectors in Selenium: http://sauceio.com/index.php/2010/01/selenium- totw-css-selectors-in-selenium-demystified/ • Locators in Selenium http://marakana.com/bookshelf/selenium_tutorial/ locators.htmlSaturday, March 16, 13
  • 85. • Page Objects in Selenium: https://code.google.com/p/selenium/wiki/ PageObjects • Page Objects Ruby Gem: https://github.com/cheezy/page-objectSaturday, March 16, 13