29 January 2013

Behavior Driven development (BDD) Framework for Agile Test Automation

Is automation testing adoptable for Agile? What is next generation test automation methodology – Most of the Enterprise clients are following scrum product development. Historically, test automation has not met with the level of success that it could in development .Most often this is the result of misconceived perceptions of the effort and resources necessary to implement a successful, long-lasting automation framework development. Why is this, we might ask? Well, realizing that we must develop reusable test strategies is no different than the reusability concerns of any good application development project. As we set out on our task of automating test, we must keep these past lessons forefront.

Here we go for above all answers -- BDD framework , We should focus our automation framework to deal with the common components that make up our unique automation framework that can useful in easy development of testcases as such as Manual tester can do with Library keywords

To deal with this approach we adopted the libraries which can support for different application for different technologies.


What is it?

BDD (Behavior-Driven Development) is a generic test automation framework for agile testing and is an essential practice applied by successful Agile and Scrum teams.

BDD testing capabilities can be extended by various test libraries implemented either with Python or Java, and users can create new and extend keywords from existing keywords using the same syntax that is used for creating test cases

There are many extensions for testing different platforms e.g. Selenium Library for testing web applications.

These libraries are best implemented in Python, but using Java or .NET is also possible.

Easy-to-use tabular test data syntax and utilizes the keyword-driven testing approach.

“Build Framework for our Automation strategy, we must minimize the impact caused by changes in the AUT and changes in the tools we use to test them."

• Enables easy-to-use tabular syntax, using either the hypertext markup language (HTML), tab-separated values (TSV), plain text, or reStructuredText (reST) formats. for creating test cases in a uniform way.


• Allows using keyword-driven, data-driven and behavior-driven (BDD) approaches.

• Provides ability to create reusable higher-level keywords from the existing keywords.

• Provides easy-to-read reports and logs in HTML format.

• Platform and application independent.

• The modular architecture supports creating tests even for applications with several diverse interfaces.

• Provides a simple library API for creating customized test libraries.

• Provides a command line interface and XML based outputs for integration into existing build infrastructure (continuous integration systems).

• Provides support for Selenium for web testing, Java GUI testing, running processes, Telnet, SSH, and so on.

• Remote library interface enables distributed testing and implementing test libraries in any programming language.

• Provides tagging to categorize and select test cases to be executed.

• Has built-in support for variables, practical particularly for testing in different environments

Web - A web testing library that uses for web applications

DB - Another library for database testing. Implemented with Python and works also on Jython.

SSH & Telnet - A test library that enables SSH and Telnet.

HTTP - test library using livetest & Requests

Web services - This is a test library for the Robot Framework, which allows running and checking SoapUI test. Whatever SoapUI can do (functional tests, load tests etc.) can (will) be wrapped through this test library.

OS – Operating System is Robot Framework's standard library that enables various operating system related tasks to be performed in the system where Robot Framework is running.

Windows - A Windows GUI testing library for Robot Framework (AutoItLibrary)

Mobile - use SikuliLibrary with Robot Framework (Sikuli and Robot Framework Integration - This is not really a library but these instructions explain how to integrate Sikuli tool with Robot Framework)