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 upcommunication 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/