Acceptance Test Driven
           Development
                                  using
               Robot Framework

Pekka Klärck <peke@eliga.fi>
Janne Härkönen <jth@reaktor.fi>

© Copyright Nokia Siemens Networks
Creative Commons Attribution 3.0 License
Acceptance Test Driven Development
●   Common understanding
●   Ubiquitous language
●   Executable requirements/examples
●   Living documentation


●   Also known as story test driven development, 
    behavior driven development, executable 
    requirements, specification by example, ...
The ATDD cycle




© Image copyright Elisabeth Hendrickson
Discuss phase
●   Whole team is involved in discussing the 
    problem and the solution
●   Team members gain shared understanding and 
    common vocabulary
●   Concrete examples clarify the solution
●   The examples can later be automated
Development phase
●   The specified examples guide the 
    implementation work
●   Automation of the examples can be done in 
    parallel with feature implementation
●   The whole team is responsible on automation
●   In the end, all the automated examples pass 
    when run against the implementation 
Deliver phase
●   Implemented features are demonstrated to all 
    stakeholders
●   Original examples are executed against the 
    produced software
●   Feedback serves as input to the next 
    discussion phase
Robot Framework
●   Generic test automation framework
    ●   Utilizes the keyword-driven testing approach
    ●   Suitable both for "normal" automation and ATDD
●   Implemented with Python
    ●   Runs also on Jython (JVM) and IronPython (.NET)
●   Open source
    ●   Apache 2.0 License
    ●   Sponsored by Nokia Siemens Networks
    ●   Active development and community
High level architecture
Simple tabular syntax
Executable specifications
Data-driven test cases
Key features
●   Creating higher level keywords in test data
    ●   Easy to create domain specific languages
    ●   No programming skills needed
●   Variables
●   Tagging test cases
    ●   Selecting tests, statistics, ...
●   Simple test library API
    ●   Easy to create custom libraries
Separate test data editor (RIDE)
Clear reports
Detailed logs
Rich ecosystem
●   Generic test libraries
    ●   Web testing, Swing, SWT, Windows GUIs,
        databases, SSH, Telnet, ...
●   Build tool integration
    ●   Outputs also in machine readable XML format
    ●   Plugins for Jenkins/Hudson, Maven, Ant, ...
●   Text editor support
    ●   Emacs, Vim, TextMate, ...
For more information
●   Bridging the Communication Gap book by Gojko
    Adzic: http://acceptancetesting.info
●   Robot Framework: http://robotframework.org
●   ATDD with Robot Framework article by Craig Larman
    and Bas Vodde: http://a-tdd.org
●   ATDD with Robot Framework demo:
    http://code.google.com/p/atdd-with-robot-framework
●   Web testing demo with Robot Framework:
    http://bit.ly/rf-web-test-demo
Questions?
                      Thanks!


Pekka Klärck <peke@eliga.fi>
Janne Härkönen <jth@reaktor.fi>

ATDD Using Robot Framework

  • 1.
    Acceptance Test Driven Development using Robot Framework Pekka Klärck <peke@eliga.fi> Janne Härkönen <jth@reaktor.fi> © Copyright Nokia Siemens Networks Creative Commons Attribution 3.0 License
  • 2.
    Acceptance Test Driven Development ● Common understanding ● Ubiquitous language ● Executable requirements/examples ● Living documentation ● Also known as story test driven development,  behavior driven development, executable  requirements, specification by example, ...
  • 3.
  • 4.
    Discuss phase ● Whole team is involved in discussing the  problem and the solution ● Team members gain shared understanding and  common vocabulary ● Concrete examples clarify the solution ● The examples can later be automated
  • 5.
    Development phase ● The specified examples guide the  implementation work ● Automation of the examples can be done in  parallel with feature implementation ● The whole team is responsible on automation ● In the end, all the automated examples pass  when run against the implementation 
  • 6.
    Deliver phase ● Implemented features are demonstrated to all  stakeholders ● Original examples are executed against the  produced software ● Feedback serves as input to the next  discussion phase
  • 7.
    Robot Framework ● Generic test automation framework ● Utilizes the keyword-driven testing approach ● Suitable both for "normal" automation and ATDD ● Implemented with Python ● Runs also on Jython (JVM) and IronPython (.NET) ● Open source ● Apache 2.0 License ● Sponsored by Nokia Siemens Networks ● Active development and community
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Key features ● Creating higher level keywords in test data ● Easy to create domain specific languages ● No programming skills needed ● Variables ● Tagging test cases ● Selecting tests, statistics, ... ● Simple test library API ● Easy to create custom libraries
  • 13.
    Separate test dataeditor (RIDE)
  • 14.
  • 15.
  • 16.
    Rich ecosystem ● Generic test libraries ● Web testing, Swing, SWT, Windows GUIs, databases, SSH, Telnet, ... ● Build tool integration ● Outputs also in machine readable XML format ● Plugins for Jenkins/Hudson, Maven, Ant, ... ● Text editor support ● Emacs, Vim, TextMate, ...
  • 17.
    For more information ● Bridging the Communication Gap book by Gojko Adzic: http://acceptancetesting.info ● Robot Framework: http://robotframework.org ● ATDD with Robot Framework article by Craig Larman and Bas Vodde: http://a-tdd.org ● ATDD with Robot Framework demo: http://code.google.com/p/atdd-with-robot-framework ● Web testing demo with Robot Framework: http://bit.ly/rf-web-test-demo
  • 18.
    Questions? Thanks! Pekka Klärck <peke@eliga.fi> Janne Härkönen <jth@reaktor.fi>