Collaborative Acceptance Test-Driven Development through Scenarios
The Test-Driven Development philosophy suggests that developers build their unit testing test cases before they write the code, then write code that basically passes those test cases. The roots of TDD go back to the concept of Test-First programming, which was part of Extreme programming developed by Kent Beck in 2003. Although it has been used by agile teams over the years, the philosophy, in my opinion, has not proven to be effective in delivering systems that meet user expectations. The reason, in my opinion, is that the method was used very much by developers without much involvement of those who really know how the system should work. As a result, it never solved the problem of misunderstanding and misinterpreting requirements or user stories, which we struggled with over the years. In addition, test cases written by developers are normally written using some sort of programming or scripting language that no one understood but the developer. Even in agile projects, where collaboration is strongly recommended, the practice did not really take advantage of this collaborative culture that is part of the agile framework.
In order to take advantage of this great idea and use it to deliver reliable systems that meet user expectations, we need to practice TDD in a collaborative environment where non-technical users, business analysts, product owners, UAT teams and other members of the validation team can collaborate on developing and validating those test cases. In addition, those so called test cases need to be written in a format that is short, simple, and easy to understand by everyone. It turns out that the concept of scenarios that I have been teaching software professionals for decades fits very well for this purpose. I propose a scenario-based collaborative process to turn Beck’s idea to a real practical easy to follow process that will in fact improve the quality of delivered systems.
Instead of describing the process here, I decided to do a webinar to explain how the process works. You can register for the webinar at the International Institute for Software Testing website.