Skip to main content

Test cases? This is 2013 you know....

Test cases are getting a very bad press of late. There is a perception that they are a wasteful practice, built carefully and slowly in a dark corner away from all collaboration, sprung on unsuspecting programmers to expose the unanticipated obscure edges of their code.

I don't believe it has to be like that, and I haven't practiced building test cases in that fashion for a long time. I prefer:

Test Ideas - your team are delivering a piece of functionality. You have basic understanding of its aims, maybe a few acceptance criteria. Its time to brainstorm. Grab the people who you think are useful (and perhaps some who are not directly involved), have a time-boxed brainstorm. Thirty minutes should do it. An all round view is required, stay away from the detail. FIBLOTS is an excellent heuristic here. Lets say we've walked away with 40 ideas of areas to test.

Test Scenarios - Time has passed, the team has made discoveries, you've had your first bit of the new functionality. You've realised that of your 40 ideas, there might be 20 you actually really, really need, plus another 10 that you didn't think of in your ideas stage. Give them a bit of care and attention now, adding personas, descriptions, pre-conditions, post-conditions, however you wish to flesh them out. Not too much detail and no steps!

Test Cases - right, now we get down it. You have an idea. You have a resulting scenario. If there are any key tests (hint - attached to acceptance criteria), you can add further details, even a few steps. I personally use this to automate my acceptance tests, rather than creating a manual script, where I think the value of a test case begins to drop dramatically.

In addition, you can show your decisions about what to cover and when in a meaningful way. Always treat your test assets as something which can be iterated on, and bring your test cases out of the 'dark ages.'


  1. Writing an example test case here ( 1 per topic or so)and there might help verifying the usability of your test ideas, and improve the feedback one gets during review.

    @halperinko - Kobi Halperin

  2. Absolutely, the technique captures the benefits of iteration, review and principles of just enough, just in time.

    The purpose is to be non-prescriptive, so pushing an idea forward to a more detailed stage, is perfectly fine.

    The trick is not to push all your ideas to this stage before verification!


Post a Comment

Popular posts from this blog

Wheel of Testing Part 2 - Content

Thank you Reddit, while attempting to find pictures of the earths core, you surpass yourself.
Turns out Steve Buscemi is the centre of the world.

Anyway. Lets start with something I hold to be true. My testing career is mine to shape, it has many influences but only one driver. No one will do it for me. Organisations that offer a career (or even a vocation) are offering something that is not theirs to give. Too much of their own needs get in the way, plus morphing into a badass question-asker, assumption-challenger, claim-demolisher and illusion-breaker is a bit terrifying for most organisations. Therefore, I hope the wheel is a tool for possibilities not definitive answers, otherwise it would just be another tool trying to provide a path which is yours to define.

In part one, I discussed why I had thought about the wheel of testing in terms of my own motivations for creating it, plus applying the reasoning of a career in testing to it. As in, coming up with a sensible reflection of real…

Getting started with testability

At TestBash Netherlands, I said that, in my experience, a lot of testers don't really get testability. I would feel bad if I didn't follow that up with a starting point for expanding your mindset and explicitly thinking about testability day to day, and making your testing lives better! 

In large scale, high transaction systems testability really is critical, as compared to the vastness and variability of the world, testing done within organisations, before deployment, is limited by comparison. We need ways to see and learn from the systems we test where it matters, in Production.
Being able to observe, control and understand is central to testing effectively, and there are loads of resources and experience reports out there to help. I was/am inspired by James Bach, Seth Eliot, Matt Skelton, Sally Goble, Martin Fowler and a little bit of PerfBytes/Logchat, so lets see if it works for you! 

Overall Model:

Heuristics of Software Testability by James Bach…

The Team Test for Testability

You know what I see quite a lot. Really long-winded test maturity models. 

You know what I love to see? Really fast, meaningful ways to build a picture of your teams current state and provoke a conversation about improvement. The excellent test improvement card game by Huib Schoots and Joep Schuurkes is a great example. I also really like 'The Joel Test' by Joel Spolsky, a number of questions you can answer yes or no to to gain insight into their effectiveness as a software development team.

I thought something like this for testability might an interesting experiment, so here goes:

If you ask the team to change their codebase do they react positively?Does each member of the team have access to the system source control?Does the team know which parts of the codebase are subject to the most change?Does the team collaborate regularly with teams that maintain their dependencies?Does the team have regular contact with the users of the system?Can you set your system into a given state…