Behaviour Driven Development
At Dynamic50 we are adopters of BDD and it is integral to all of the development work we do here.
If you have not come across the term Behaviour Driven Development or BDD for short, it is an agile software development technique that encourages collaboration between developers, QA and non-technical or business participants in a software project.
Behaviour Driven Development in a nutshell enables the developer and client to define features which are written in a format understood by both a developer and a client. These are then translated using specific agile tools into tests which run against the application and ensure that the business requirements are being met.
BDD involves writing the features first, then implementing the actual application code. The features will fail at first as there is not application, and as the individual feature is being implemented, the feature tests will begin to pass. When all of the feature is passing, the business requirement is delivered.
Ruby on Rails testing frameworks are much more advanced than other web frameworks, indeed other frameworks are beginning to use Ruby BDD tools for feature development.
The tools we use at Dynamic50 are Cucumber for features and integration testing and RSpec for internal specs. We have been using both of these since the very beginning and are very experienced in this area.