Skip to main content

Do we need step by step test cases?


Many companies have moved to agile software development but they still maintain large suites of step by step test cases for regression testing. At the company I work for, I’ve managed to get rid of these step by step test cases altogether.

What is wrong with step by step test cases anyway?


If you are in a traditional waterfall setup with high level requirements and test cases, then the test cases are actually quite valuable as they document how the system works. But if you start to move quality to the left and specify requirements in more detail upfront with user stories, then test cases make much less sense. You are essentially duplicating the requirements in test cases and end up with a whole set of assets that need to be maintained in a separate test management or ALM tool. A big problem with that is that you do not have a single source of truth on how the system behaves.

A second problem with step by step test cases is that they are not visible to the business. I can’t think of many product owners or even business analysts who want to trawl through detailed test cases to understand how a product works. So we get to a situation where the business has a high level idea of how the product works through requirements but only the testers know how the product really works.

Another big problem from a tester’s perspective is that regression testing is boring! Who wants to go through step by step test cases over and over again? Surely testers are more intelligent than that. Once a tester understands a product they do not need step by step test cases to test it effectively. I prefer the idea of an intelligent tester who has a good knowledge of the product and is finding issues, rather than blindly following a step by step test case.

To summarise, the problems with step by step test cases are:
  • They duplicate requirements which means you have two sets of assets to maintain and  there is no single source of truth about how the product works
  • Step by step test cases are not visible to the business
  • It encourages the notion that anyone can test by blindly following a step by step test case

How can you get rid of step by step test cases?


If you would like to find out how I got rid of test cases, why not come to the talk I’m giving on this subject at the CASTx18 conference in Melbourne, Australia. CASTx18 is on 1 March 2018 and you can register here:

In the talk I describe the steps I took to change processes and convince management there is a better way to do things. The approach I pioneered hinges on creating user stories to define features and, in particular, writing acceptance criteria  that effectively become the test cases. This approach means that we have one source of truth for how a feature works and what has been tested. I’ll also describe how other types of tests, such as shakedowns, were replaced with mind maps.

If you live overseas or are not able to attend the conference, I’ll try and get a video of the talk and/or write a follow up post that expands on the details of my approach.

Comments

Popular posts from this blog

Let’s stop writing automated end to end tests through the GUI

What’s the problem? I have not been a fan of Selenium WebDriver since I wrote a set of automated end-to-end tests for a product that had an admittedly complicated user interface. It was quite difficult to write meaningful end-to-end tests and the suite we ended up with was non-deterministic i.e. it failed randomly. Selenium Webdriver may be useful in very simple eCommerce type websites but for most real world products it’s just not up to scratch. This is because it’s prone to race conditions in which Selenium believes that the UI has updated when, in fact, it has not. If this happens, the automated check will fail randomly. While there are techniques for reducing these race conditions, in my experience it is difficult to eradicate them completely. This means that automated checks written with Selenium are inherently flaky or non-deterministic. Maintenance of these automated checks becomes a full time job as it is very time consuming to determine whether a failing check is actuall...

How I got rid of step by step test cases

In my last blog post I told you what I think is wrong with step by step test cases. In this blog post I’ll tell you how I got rid of step by step test cases at the company I work for. When I joined Yambay about 18 months ago, the company was following a fairly traditional waterfall style development approach. They had an offshore test team who wrote step by step test cases in an ALM tool called Test Track. Over the past 18 months we have moved to an agile way of developing our products and have gradually got rid of step by step test cases. User Stories and how I use them to test Getting rid of step by step test cases didn’t happen overnight. Initially we replaced regression test cases and test cases for new features with user stories that have acceptance criteria. The key to using a user story to cover both requirements and testing is to make sure that the acceptance criteria cover all test scenarios. Often product owners and/or business analysts only cover typical scenarios. It...

How to write valuable unit tests

In my last blog post I discussed what makes unit tests valuable and how to structure your code so that you can write valuable unit tests. But so far I haven’t got into the nitty gritty of how you should write these valuable unit tests. I’ll address that in this blog post. There are three styles of unit test: Output Verification , also known as the functional style, involves checking the output of a method for a given input. This style of unit testing does not concern itself with the internals of a method. State Verification involves checking the state of an object rather than the output of a method. Collaboration Verification is where collaboration between classes is tested, and it usually involves test doubles such as mocks. See Vladimir Khorikov’s blog post for further information and code examples: http://enterprisecraftsmanship.com/2016/06/09/styles-of-unit-testing/ So which style is best for writing valuable unit tests? Here are the four attributes of a v...