From Wikipedia, the free encyclopedia

Given-When-Then (GWT) is a semi-structured way to write down test cases. They can either be tested manually or automated as browser tests with tools like Selenium and Cucumber.[1][2]

It derives its name from the three clauses used, which start with the words given, when and then.[3] Given describes the preconditions and initial state before the start of a test and allows for any pre-test setup that may occur. When describes actions taken by a user during a test. Then describes the outcome resulting from actions taken in the when clause.

The Given-When-Then was proposed by Dan North in 2006, as part of behavior-driven development.[4]

See also[edit]


  1. ^ Percival, Harry (11 June 2014). Test-Driven Development with Python: Obey the Testing Goat: Using Django, Selenium, and JavaScript. "O'Reilly Media, Inc.". ISBN 978-1-4493-6517-2.
  2. ^ Pugh, Ken (22 December 2010). Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration. Pearson Education. ISBN 978-0-321-71944-7.
  3. ^ Fowler, Perryn (24 November 2009). "Perryn Fowler's Weblog". Archived from the original on 14 August 2014. Retrieved 14 August 2014.
  4. ^ Gorman, Mary; Ellen Gottesdiener (9 December 2012). "Using "Given-When-Then" to Discover and Validate Requirements". Retrieved 14 August 2014.