Learning a language can be a challenging task. The absorption of a lexicon takes time and patience. Twist can help keep this task achievable for consumers of acceptance tests by allowing the definition of confirmation language to be natural. This is assuming that the consumers will be business customers or other non-technical people. If that is not the case, I would suggest using a pure code test framework such as TestNG to achieve the technical benefits of the Twist runner design.
Assuming the later statement is the case, Twist has the potential to facilitate communication in and around software delivery teams on a dramatic scale. It can help give teams a highly accesible language to express acceptance tests that give common understanding, and enable rapid continuous delivery through automation. However, it does take discipline to keep that goal in mind, and not to get side tracked on the technicalities of coding the automation solution. It’s not that those things don’t need consideration. On the contrary, it’s good to be thinking about the execution giving the fastest possible feedback, producing maintainable automation code, and ideally even test data abstraction. The fact is that those things won’t matter if the language for communication is neglected as the focus.
Twist has an excellent set of features for managing a scenario focused language. In particular, it allows the following:
The experience I’ve had is that it is easy to create a massive amount of confusion (and also code) if you don’t keep to some basic patterns of usage around the language used and some ground rules.
It is difficult enough communicating with many individuals to a common understanding, and keeping up with managing the complexity of that communication. Give yourself a chance by building a DSL for Twist scenarios that keeps to a few understood rules, and works within the boundaries of the tool capabilities. There is nothing wrong with adding or changing the rules, but do it knowingly and collaboratively with those using them.
For those that are looking for the technical implications of this approach, I can only really give you these figures as food for thought.
Guest Blog by Simon Reekie resposted from http://blog.simon-reekie.me/2011/11/05/twist-dsl-prize/
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.