Blog

Making Testable User Stories - Richard Seidl

Written by Richard Seidl | Jan 15, 2024 11:00:00 PM

What does effective design and testability of user stories look like? Clearly defined acceptance criteria that cover both functional and non-functional aspects are of great importance. Exploratory tests are important as they allow flexibility in the testing process and promote a deep understanding of the system. Systematic test methods are important for more complex and riskier user stories. In addition, targeted documentation and the use of model-based testing are efficient practices in agile software development.

“You know the ‘Specification by Example’ method. (…) That’s still the best thing I’ve come across in recent years.” - Christian Brandes, winner of the “Best Presentation Award 2023”

Dr. Christian Brandes is the Head of Test&QA at isento GmbH and supports teams as a coach and consultant in software testing, quality assurance and agile processes. As an ISTQB®-certified test specialist with extensive experience in various IT projects, his focus is on test process improvement and testability of requirements. In addition to his work as a trainer and university lecturer, he is also an active speaker at specialist conferences, writes publications and produces podcasts and videos.

Highlights of this episode:

  • Christian Brandes talks about the challenges and opportunities of making user stories testable
  • We discuss why user stories are often misunderstood and how requirements engineering can help
  • Christian shares his experience and gives tips on how to enrich user stories with acceptance criteria and specifications
  • We talk about the concept of business versus technical testability and why both are important
  • Christian explains how to effectively test user stories with the Triple-X test strategy approach
  • We discuss the role of model-based testing in an agile environment and how it can complement user stories

Further links:

Testing user stories effectively: Success strategies in requirements engineering

Today’s topic is how user stories can be made testable. Christian Brandes shares valuable insights from the field of requirements engineering and gives practical tips on how to improve the testing of user stories in agile development environments.

User Stories

Today I’m talking to Christian Brandes, a passionate tester and quality enthusiast. Not only do we have a long acquaintance, but also a shared passion for quality and an efficient testing strategy. The topic of this episode is particularly relevant: How can user stories be made more sustainable and effective for testing? It’s an area that often harbors misunderstandings and challenges - points that we will explore in depth during our conversation.

The misunderstood role of user stories

Christian emphasizes that there is a fundamental misunderstanding about the role of user stories in the agile development process. Many teams wrongly assume that the introduction of user stories makes the need for detailed requirements obsolete. This perception leads to a gap in testability and quality assurance. User stories are not to be equated with concrete requirements; rather, they are to be understood as planning artifacts that focus on the business value to be achieved. However, without a sound basis of requirements, testing becomes a challenging undertaking.

From theory to practice: ensuring testability

The key strategy for overcoming this challenge is to integrate elements of requirements engineering into the design of user stories. Christian emphasizes the importance of acceptance criteria and specifications within a story. These should not just be seen as additional requirements, but should serve as concrete examples that define what must be proven to work at the end of a sprint. Specification by example allows teams to create clear and testable acceptance criteria that serve both the product owner and the development and test team.

Recognizing the potential of model-based testing

Model-based testing (MBT) offers a further dimension in the design of testable user stories. By using formal models such as UML or BPMN, test artifacts can be generated that ensure comprehensive coverage and at the same time reduce the effort required for manual testing. Christian argues that there is nothing wrong with using such models in an agile context, as long as they offer added value and support the team. Integrating MBT into the process can help to test complex systems in a feasible and understandable way.

Re-interpreting agility

At the end of our conversation, Christian emphasizes the importance of a flexible interpretation of agility. It’s not about following rigid rules, but finding solutions that help the team work more efficiently and deliver high-quality software. The key is to be open to new methods and approaches and to always keep the benefits for the team in mind. Agility does not mean abandoning documentation or structured processes; rather, it means using these elements wisely for the benefit of the project.