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, ...
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
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
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