With agile, the changes in software requirements are so frequent that many stakeholders have trouble keeping up with test automation. As a result, Sprauve says they don't try to keep up and requirements are not in sync with testing, so more time is actually spent fixing the tests to meet all the requirements. ThoughtWorks Studios' answer to this problem is a testing suite (Twist) based on Behavior Driven Development (BDD).
About Behavior Driven Development
BDD encourages collaboration between developers, QA, and various other non-technical business participants. It extends TDD by using a domain (retail, manufacturing, etc.) specific language to write tests. It's a language that non-programmers can comprehend and use to coordinate with developers and QA folks. In Twist, BDD allows non-programmers to run requirements as test specifications so that the developers know what they're building as plans change. This approach gives tests more longevity as reusable assets, and not just as throw-away artifacts.
Twist Interface for Business user, Tester, and Developer interaction
With Twist, business users can express testing scenarios in plain english using the domain specific language (DSL). The combined interface provides a place where developers and test automation specialists can track the changing requirements from the business user in real time and implement those changes in the tests. Users can rephrase a step without breaking the automation, keeping scenarios in sync. Unlike Keyword Driven Development, there's a layer of abstraction that keeps the automation intact when changes are made to the requirements. This allows the same test cases to be used if, for example, you migrate from a C++ system to a Java system.
Twist 2.0 New Features
- Hybrid Test Execution: Allows the execution of manual and automated test steps within the same scenario. This lets users create automated steps for those that are still working on manual testing.
- Groovy Support: Simplifies the on-ramping for those doing test automation in Groovy.
- Sahi Support: Abstracts out many difficulties in test automation for web applications. Twist now supports both Selenium and Sahi (which is similar) for web testing.
- Java SWT support: Allows testing of Java SWT (Standard Widget Toolkit) based applications.
- Data Driven Test Scenarios: Provides fuller testing coverage for applications with many data inputs (address, name, etc.)
Twist uses an Eclipse plugin to provide its testing IDE. It's backend is written in Java, making it easier to find testing resources. Twist also supports waterfall methodologies in addition to agile methods. Finally, Twist 2.0 will run on the latest versions (and many older versions) of Windows, Mac, and Linux. ThoughtWorks Studios also develops an agile management suite (Mingle) and a release management and CI tool (Cruise).