About Chris Schotanus
Chris is a senior management consultant on test policy and strategy, test organisations, structured testing, test management, automated test execution and test process improvement. He has 40 years of IT experience, over 25 years of which on testing. Chris advises on testing in agile/iterative environments, IT governance, requirements management, IT process improvement.
Specification by Example: from User Requirements to Test Cases
Specification by Example (SbE) is not primarily about testing. It is a technique that supports clarification of user requirements and, at the same time, leads to test cases that can be used to verify and validate the product. Specification by Example, is a relatively easy yet powerful approach to (agile) software development. It supports the process in many ways and during various phases of software delivery: requirements elicitation, functional design, test design, test execution and acceptance. Because of the joint effort during refinement, it becomes quite clear what the business requirements are and how these requirements should be implemented. There is no misunderstanding regarding the acceptance criteria. SbE reduces the effort needed for acceptance testing by the business since the team can execute the majority of the acceptance tests. During the actual software development, it becomes possible to continuously determine the quality of the system (both technically and functionally), which enables a continuous integration and delivery process. The result of this approach is an improved design, shorter test process and fewer failures (either design or code) in the production environment. This is when iterative waterfall development really becomes agile.
- Different types of requirements
- Why do we need them?
- Requirements during backlog refinement.
- Requirements elicitation
- Requirements validation
- Requirements documentation
- Specification by Example
- Who, What, How
- The use of Requirements specification as test cases
- The effect of SbE on the Agile development process
- Group discussion
- Wrap up
To understand the positive impact of Specification by Example on the (Agile) development process and how it will lead to:
Common understanding: the development team, the product owner and the stakeholders agree on what will be developed. There is no “that’s not what I meant”.
Clear acceptance criteria: The software is accepted if all tests (examples) are passed.
Implicit and living documentation: The test cases are the documentation. In case of a change, the test cases will be changed first.
Easy automatable test cases: There are open source and commercial testing tools that are able of to automate the execution of the examples.
Regression tests maintained implicitly: The test cases are executed in every cycle
In short: First-time-right delivery
Anyone who is involved in an agile (or even sequential) development process eg.:
- The Product Owner will be able to specify his or her requirements
- The Developer will understand the details of the requirements
- The Tester will be able to create test cases
There’s no need for laptops. Exercises will be elaborated on paper and in discussions.