atdd using robot framework
DESCRIPTION
A brief introduction to Acceptance Test Driven Development and Robot Framework.TRANSCRIPT
Acceptance Test Driven Development
using
Robot Framework
Pekka Klärck <[email protected]>Janne Härkönen <[email protected]>
© 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 <[email protected]>Janne Härkönen <[email protected]>