Agile-BDD approach/practice can
be introduced without affecting the current TDD Setup. Current TDD can still be
there covering from Unit towards Integration testing and BDD can take space
from other end i.e.System and towards integration.
UnitTests ---- IntegrationTests
---- SystemTests(Specification)
TDDà
ßBDD
Imperative
Declarative
How
What
One of the pillars of Agile-BDD
practice is precise , comprehensible, live and usable(development/Testing)
documentation(specifications) by and for all stakeholders to speed up communication
and collaboration. Agile-BDD is more of practice rather than tools.
Even keeping updated stories in excel format at shared location can help
establishing good practices of Agile-BDD.
Cucumber-jvm and JBehave are
front-runners in BDD arena having their own pros and cons.
A good comparison between these
two are available @
In short, JBehave is slightly
better in terms of automation capabilities, But cucumber-jvm’s gherkin is more
suitable for non-technical users(BAs, owners)
Cucumber-jvm
- Core of tool is gherkin engine – to one end of which Junit is attached and other end of which, any test tool/library can be attached
- Picking proper Test tool/libraries and writing glue code is Developer/Automation QA ‘s Headache.
- Gherkin hides this complexity from normal users (BA), but still allows Communication and Collaboration on ideas.
Few usefull Links
- Collection of jar files , need to pick which are relevant for project. http://cukes.info/install-cucumber-jvm.html
- At System level (GUI )it can be used as test automation framework running Selenium/other java based tool in separate process. http://techblogs-adhir.blogspot.in/2013_06_01_archive.html
- At Interface level (Web Services) can be tested using java Http and Rest libs. http://clearqa.blogspot.in/2013/04/fun-with-cucumber-jvm-bdd.html
- At Integration Level - Spring MVC tested using cucumber-spring ,embedded tomcat and spring http://zsoltfabok.com/blog/2012/09/cucumber-jvm-web-with-spring-mvc/http://thomassundberg.wordpress.com/2012/11/01/cucumber-jvm-not-just-for-testing-guis/