Executable
Specifications with
FitNesse and
Selenium
Dawn Cannan
http://passionatetester.com
@dckismet on Twitter
Who is this lady?
http://passionatetester.com
• Currently Tester at 42 Lines
• Software testing specialist for 10 years
• One-time developer
• Test team builder
• Maintainer on .net Selenesse open source project
What do all of these words mean?
• Executable Specifications?
• FitNesse?
• Selenium?
The Test Automation Pyramid
Created by Brian Marick, used in the book Agile Testing, by Lisa Crispin and Janet Gregory
Ever seen this before?
• What’s developed isn’t what the customer wanted
• Buggy product, lots of rework
• Some team members lack domain knowledge, don’t
understand context of features
• Business team doesn’t trust development team to
complete tasks well/ on time
Business vs Dev Cage
Match
That’s not
what I
asked for!
SCOPE
CREEP!
How can we minimize this?
• Start by getting the right people together: usually, a
customer/business person, developer, tester
• Talk through the details, come to a common vocabulary
• Specify as many examples as make sense
Benefits of this approach
When examples are written in a way that can be run as
tests:
•Miscommunications due to “playing telephone” are
minimized
•Everyone is on the same page very early
•Bugs are prevented
Test Automation
Driving a browser with Selenium
Gotchas in automation
Test automation in the browser presents challenges:
•Locating elements – using CSS Selectors
•Synchronizing with the web server – Waiting for
elements to appear
•Maintaining over time – creating common actions
Using the Wiki
Defining Selenium tests in the FitNesse wiki
FitNesse framework
• Web page, accessible to all team members
• Wiki markup is easy to learn
• Plain text, can be checked in with source code
• Executes tests and reports results back
• Shows test execution history
Wrap-up
References
• My blog: http://passionatetester.com
• FitNesse: http://fitnesse.info
• Selenium: http://seleniumhq.org
or
• Sauce RC: http://saucelabs.com/products/downloads
• SeleNesse: http://github.com/marisaseal/selenesse
• CSS Selectors:
http://saucelabs.com/blog/index.php/2011/01/why-
jquery-in-selenium-css-locators-is-the-way-to-go/

Executable Specifications with FitNesse and Selenium

  • 1.
    Executable Specifications with FitNesse and Selenium DawnCannan http://passionatetester.com @dckismet on Twitter
  • 2.
    Who is thislady? http://passionatetester.com • Currently Tester at 42 Lines • Software testing specialist for 10 years • One-time developer • Test team builder • Maintainer on .net Selenesse open source project
  • 3.
    What do allof these words mean? • Executable Specifications? • FitNesse? • Selenium?
  • 4.
    The Test AutomationPyramid Created by Brian Marick, used in the book Agile Testing, by Lisa Crispin and Janet Gregory
  • 5.
    Ever seen thisbefore? • What’s developed isn’t what the customer wanted • Buggy product, lots of rework • Some team members lack domain knowledge, don’t understand context of features • Business team doesn’t trust development team to complete tasks well/ on time
  • 6.
    Business vs DevCage Match That’s not what I asked for! SCOPE CREEP!
  • 7.
    How can weminimize this? • Start by getting the right people together: usually, a customer/business person, developer, tester • Talk through the details, come to a common vocabulary • Specify as many examples as make sense
  • 8.
    Benefits of thisapproach When examples are written in a way that can be run as tests: •Miscommunications due to “playing telephone” are minimized •Everyone is on the same page very early •Bugs are prevented
  • 9.
    Test Automation Driving abrowser with Selenium
  • 10.
    Gotchas in automation Testautomation in the browser presents challenges: •Locating elements – using CSS Selectors •Synchronizing with the web server – Waiting for elements to appear •Maintaining over time – creating common actions
  • 11.
    Using the Wiki DefiningSelenium tests in the FitNesse wiki
  • 12.
    FitNesse framework • Webpage, accessible to all team members • Wiki markup is easy to learn • Plain text, can be checked in with source code • Executes tests and reports results back • Shows test execution history
  • 13.
  • 14.
    References • My blog:http://passionatetester.com • FitNesse: http://fitnesse.info • Selenium: http://seleniumhq.org or • Sauce RC: http://saucelabs.com/products/downloads • SeleNesse: http://github.com/marisaseal/selenesse • CSS Selectors: http://saucelabs.com/blog/index.php/2011/01/why- jquery-in-selenium-css-locators-is-the-way-to-go/