ATDD Using Robot Framework

Preview:

DESCRIPTION

A brief introduction to Acceptance Test Driven Development and Robot Framework.

Citation preview

Acceptance Test Driven Development

using

Robot Framework

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

© Copyright Nokia Siemens NetworksCreative 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>