What is Twist?
Twist is a next-generation collaborative testing platform from ThoughtWorks® Studios for software teams. Twist allows the functional behavior of a product to be expressed in plain text, using English like constructs. It provides a rich Integrated Development Environment (IDE) for defining, executing and maintaining the business intent of applications.
Twist is intended to be used by everyone on a software delivery team: customers, business and domain experts, testers and developers.
Separating intent and mechanics
Twist separates the intent of the test (i.e., what is the test trying to accomplish?) from the mechanics of the test (i.e., how does the test work?). The English-like tests are linked to executable code that drives the application under test.
Twist makes it possible for business users or the domain or subject matter experts to actively participate in the acceptance testing process. They can now create test scenarios using a domain specific language that is easy to read and execute. Using a common vocabulary helps keep the tests modular.
Collaborating for higher quality
Anyone can use the Twist editor to define the business intent. Technical users can create the underlying code that allows the business intents to be executed.
Collaboration between business and technical users:
- helps focus on testing the business solution that the application provides rather than the technical implementation.
- helps ensure that software delivery is of high quality since intents provide a basis and framework for discussions between business and the development team.
- allows customer expectations to be expressed as executable tests.
Leveraging tests as assets
In iterative development methodologies, the need for automated functional testing increases progressively. However, both the complexity of test management and rapid change cycle often hinder teams from undertaking the level of automated testing that their applications require.
The integrated testing environment in Twist provides teams the ability to automate and evolve tests. Specifically, the environment allows teams to refactor and modularize their tests. This helps reduce the brittleness commonly associated with automated testing (especially UI based testing) in rapidly changing environments.
Twist tests also integrate with the build process: so developers get instant feedback on broken functionality, enabling them to fix these sooner.
How Twist works
Twist maps elements in a Scenario such as Workflow steps and Business Rules Tables to underlying code which is in Java programming Language.
When a Scenario is executed, the underlying code gets executed. An execution that does not yield any errors is considered a successful one. The underlying implementation should indicate a Scenario Failure explicitly to Twist. Testing frameworks such as JUnit may be used to indicate a Failure. Any other unexpected error is considered as an Error during execution.
Twist uses different types of Drivers that help drive the application under test. For example, Selenium Driver is used to drive a Web application. Mingle™, Jira™, Bugzilla, etc.