Out with the old, in with the new
Today I’d like to talk about a lean approach I use for planning out test phases.
I’m a strong believer in reducing waste. In fact, if I don’t see the value in something I’ll actively question its purpose. If I still don’t see value based upon the response I receive I’ll look at ways to change it. Not always of course, as the process of change might not reap worthwhile rewards; perhaps it’s just cheaper to live with it?
Now our traditional approach to test phase planning has probably been like many other companies. It’s a task near the end which we’ve guessed upon how long it’ll take from past experience and early predictions based upon risk when we’ve first seen or indeed didn’t see the initial requirements.
Now that’s not a bad thing, and of course at that early stage we’ve not much of an idea other that our traditional regression test tasks of what will be in our test phase. We might have an idea from some tasks, however like all plans things will likely change.
So in order to devise some sort of plan for our test phase we’d get together and discuss as a team what we should be doing and discuss risks along with some possible others tasks that we could do.
So where does lean fit in to this? We’ll it doesn’t right? Aspects of it might apply to an extent, but we still have waste! It’s not very flexible! Oh and what about the customer? Don’t they get a say in this?
So what follows is an approach I’ve used successfully which encompasses all aspects of lean when planning your test phase. Remember though lean is only a concept, and by the definition of lean itself by taking only the aspects we find useful, we are in essence being lean. Likewise, hopefully you’ll take from this what you find useful and adapt it to suit your needs
Step 1: Realise that plans change
It’s true, and we all know it very well. Even the best planned plans change! As such why would you even consider early test phase planning?
Sure, you can get an idea of the tasks you may or may not do early. One might even have as part of his verification checklist “Possible test phase task?”. By that I mean identifying as we test high risk items that might be worthwhile taking note of early for inclusion into our test phase.
I personally think the whole idea of an initial plan is pointless at this stage. Perhaps there may be value in it should you generate that collaboratively with the correct people involved. Your true source of knowledge will be your tester who has been testing that feature right?
Step 2: Empower your testers
Since the testers have the experience and knowledge allow them to generate the initial scope.
Something I did which quickly got adopted by the rest of our team was to mind map the initial scope of possible tasks we might choose to do in our test phase.
You can see from the map below that they’ve been sectioned into types and prioritised. The priority comes from risk. Risk in this case being the level of test coverage this area has had already and the possible risk to the business should this task not be executed.
This was excellent for us as we didn’t have to care about our time constraints, we’d just note down what is important to be tested. If you had a test phase that lasted two weeks or twenty it didn’t matter. You’d note down as much as you could think of that would add value to the testing that’s already been done throughout the release and you’d also note the high risk items that are essential to be retested.
Anything that doesn’t fit into the time constraints can go. We’ve addressed risk so we already know what is most important to us. We’re not running the risk of not thinking of possible tasks because we are so obsessed by what will fit or not.
I’d like to think of this as a scope proposal at this stage.
Step 3: Collaborate
Now that you’ve devised a set of tasks you think should be done, involve other parties. Get feedback initially by emailing or discussing with your developers who’ve built the feature/s. See if anything else needs added or if suggested tasks won’t add much value. Discuss your priorities.
In general people like reading mind maps if they’re organised nicely. I’ve found that when used as a form of reporting they receive positive feedback as a mechanism for displaying information. Certainly for management, they’d much rather look at the mind map and have me discuss aspects of it with them, than read a lengthy chunk of text, or even attempt to discuss something with them without a visual cue. Generally people will find it easier to feedback on a mind map than a complex conversation or lengthy email.
Get your customer or customer representative involved. In my case I would discuss this with a customer representative and talk them through each of the suggested tasks, seeing if they were acceptable and if anything else needed to be considered or dropped.
By talking initially with your developers and then to the customer you’ll firm up your scope of possible tasks for your test phase. The likelihood, or at least in my experience is that the developers you’ve been working with will actually be running these tasks throughout the test phase along side your test team colleagues. So by having those initial discussions you’re already getting their buy in to the process, which is very important if you want them to see benefit in the tasks at hand.
Myself, I’d run the tasks I’ve proposed by the developers I’d been working with and my customer representative. I’d then involve my other test team colleagues and then finally the feature team lead. After all that even if my scope hadn’t changed much I’d at least have more realistic task priorities from knowledge & business risks which I wouldn’t have know about. Again, everyone would be bought in to my scope proposal as they’d had their say.
You should now have test scope for a feature. If you’re a test manager you’ll have had each of your testers devising similar maps of possible tasks to test the features you’ve been working on. You’ve now got an idea of what will likely be in the test phase in addition to traditional test tasks. From simply empowering your testers you’ve not only gained their respect, you’ve also got a much more solid set of tasks that the whole development team are hopefully bought into. Even if some are not you’re in a much better position for buy in than in the past.
Step 4: Formulate a plan
So you now have your scope. You’ve prioritised it and know what is essential or not, so you can begin to devise a plan.
I said previously “empower your testers” I still think that’s important. At this stage if you’re a test manager I’d be reluctant to try and take over. Advise on time you’ll need from people and allow you’re testers to plan their feature teams tasks.
Collaborate on estimations for these tasks. Find out from your team how long they think these tasks will take. This could be as simple as a quick thirty minute meeting. You could even take a guess at estimating them yourself and then asking for feedback.
Begin planning tasks in. My advice here would be to get an initial quick sweep of the functionality and address high risk items. This will be your initial test cycle from which you can say by X date we will have covered most of the functionality; this is essentially our critical plan which we don’t want to drop tasks from. These critical tasks can overrun, or be impacted by sudden holidays or sickness, but we know that at most other less riskier tasks will have to drop. Hopefully you’ll have planned in some contingency to negate this risk anyway.
Once you’ve done you’re initial sweep it’s probably best to plan in a second cycle of testing which might just involve a one day sanity of the features by everyone in your team or just some of your team, depending on the risk & complexity of the feature.
Less risky tasks can now begin to be added into the later stages of the plan.
I’ve provided an example of the initial plan our team worked from when testing our text chat feature during our currently on going test phase in the picture below. This plan did go on to change slightly as some tasks had overrun, and when sickness or holidays occurred. However it didn’t drastically change, and at most some automation and low risk tasks were dropped.
We still have a little time left until our test phase is actually complete, but at this late stage things will likely not change much.
You can see from the plan that our initial test blast provided us enough coverage and feedback by the eleventh of January. This, if you take into account the Christmas holidays and reduced workforce over that period was about seven days into a planned four week test phase. By that point we’d known what our real actual high risks were.
A few days later followed a second cycle of testing followed by lower risk test tasks, such as extensibility proving tasks. Of course I’m not saying that extensibility isn’t risky, for us it was less a risk as we’d raised awareness of this and planned in development extensibility proving tasks throughout the release.
It’s probably worth mentioning the importance of planning in time for continual bug fixing throughout your test phase. Defect predictions are often highly inaccurate, but at least allow for allocation of time for bug fixing. That’s why doing an initial scope is good as you don’t have to worry about cycles of testing, bug fixing, automation request from management and so on. You can just devise what you think is important and plan in the important stuff that can fit into your time constraints.
Step 5: Communicate some more
It’s important you keep track of your plan and adjust it accordingly, that’s obvious. I think it’s also important that you continue to communicate with those involved throughout to see if things are still adding value.
An example I did was simply sitting the participants down after four days had passed at the start of our test phase, and discussed aspects of the plan with them. From this the group quickly communicated their thoughts and problems allowing me to make some changes to estimates and help resolve the intentions of any tasks that were unclear to them.
Remember it’s easy for things to go astray, often people will just continue as-is regardless, should it be a task that will overrun or simply something someone doesn’t see the benefit in doing. That’s why it’s so important to keep constant communication going so you know then that there is a problem, rather than when it’s too late.
Summary
To wrap this up I’ll quickly summarise lean test planning:
- Realise that plans change:
- Plan as late as possible.
- Reduce waste.
- Empower your testers:
- Having worked with your feature teams they’re silo’s of knowledge.
- Let them propose tasks.
- Let them plan their feature teams tasks.
- Let them involve the customer.
- Having worked with your feature teams they’re silo’s of knowledge.
- Mind mapping scope:
- Increases creativity.
- Reduces time to create scope.
- Increases visibility of the bigger picture.
- Identifies risk easily.
- Doubles as an easy reporting method for feedback.
- Initial scope proposals ignore time constraints:
- We lessen the risk of forgetting tasks due to thinking about time constraints.
- Collaborate:
- Involve the customer.
- Involve all other essential parties.
- From direct collaboration, we iron out actual risk.
- Lean planning:
- We’ve identified scope.
- We’ve identified risk.
- We’ve got buy in.
- We’ve collaborated with essential parties.
- Now actually formulating a plan is simple.
- It will provide high coverage and feedback quickly.
- Being flexible it will allow for change.
- Lower risk tasks can drop if needed.
- Keep communicating:
- Don’t ignore the value of communication.
- Empower the customer to decide what should be de-scoped from an overrun plan.
On that note we’ve come to the end of this discussion; admittedly one way so far being just my thoughts & experiences. Hopefully though I’ll have some feedback from the community be that positive or negative, any is always welcome
Thanks once again for taking the time out to read my thoughts and experience reports.
I’m planning a couple of follow up posts in relation to this. One on the usability evaluation we did. The other around the actual tasks I’d planned in as I think potentially there might be a few valuable insights from discussing them that others could benefit from.
Related posts:
Hi Darren,
Nice blog post and lots of great little tips. No plan is bullet proof and the weakest plans are those which don’t allow for change.
I do believe though that a tester should be in the early meetings and planning sessions; often to keep a sense of balance but also to be sure there are no gotcha’s. I’m a huge fan of having a wide awareness field and early meetings can often provide excellent insight.
Mind mapping is incredibly powerful and I’ve been using mind maps for initial thoughts and flows too. They form the basis of all of my testing. It’s good to more advocates of quick and process light ways to capture testing ideas.
Great post.
Rob..
Hi Rob,
Thanks for taking the time out to comment and I’m glad you enjoyed it.
I’d be interested in seeing your mind maps. I’m always keen to analyse how other people mind map and what they use them for. Possible email/blog?
Next release we’ll be trying out a twist on Rapid Reporting, which is a form of early collaboration with testers, customers and stakeholders to devise an initial test plan and feedback on the early requirements. Doing so using a white board and some pens to mind map out the requirements and devise testing session, spot gaps, issues and improvements.
Should be fun. I’ll blog about it when we get around to it.
As for involvement in early meetings. Of course! It would be crazy not to. A good tester will be highly valued in those meetings. What I was getting at was there is no point us as test teams devising early test phase plans, as the plan / scope will change almost certainly.
Cheers,
Darren.
You’ve provided excellent suggestions and ideas that can help people even if they’re in kind of a bad situation where testers weren’t involved early and testing has been squeezed to the end. Wonderful to have your examples.
We’ve been trying out mind mapping both for test planning and for overall theme planning and been happy with the results. I’m glad to have your example mind map to study & get more ideas. Thanks!
Hi Lisa,
Thanks for taking the time out to comment and for saying such nice words.
For anyone who hasn’t read it already, Lisa put up an excellent post on using mind maps for theme planning.
A theme is basically just a term for a complex user story. When planned out the theme becomes a collection of sub stories which form a theme. Allowing more realistic estimation to occur.
I’m keen on using mind maps next for test planning, I hope you’ll blog about the test planning aspect you’ve used them for?
I’ve been having a lot of thought recently into how to take a lean approach to test plans and can see much like this lean test phase planning approach, that mind maps will be used initially to form a test proposal.
Our test plans have been pretty streamlined already but I’m sure there is more to be done. Specifically in the whole collaboration aspect of generating them.
Currently they get looked at once or twice then forgotten about. Which I find very wasteful.
Perhaps the problem lies in their maintainability aspect? They quickly become outdated. Possibly the solution lies in generating an overall release test approach which is formed not only via collaboration but is also easily understood by those that matter, useful and maintainable.
I’ll have to give it a lot more thought, it’s certainly a problem I’m keen to address at some point soon.
Thanks for your comment Lisa and for getting my mind ticking away
Cheers,
Darren.
Good post, Darren.
While the principles you’ve talked about aren’t necessarily unique (I’ve been using some for years) the refreshing thing about your blog is that the level of detail you impart. It’s always interesting to see how other people do their planning as the smallest detail can influence things in your own practices for the better. Your blog has established a ‘no holds barred’ precedent which is rare these days in a blogosphere of guarded and abstracted articles, so thanks for that.
At my last place of work, collaboration was a key aspect of successful planning/execution and I used to involve representatives from pretty much everywhere discussing issues and risks (developers, managers, architects, system engineers, marketing, technical support, etc) I really enjoyed these discussions and set a policy for openess and honesty so egos were parked firmly at the door. This was the catalyst for some really fruitful sessions.
People will spend days (or even weeks) writing highly detailed test plans/strategies using conventional tools (Word, etc.) and the sad thing is once they’ve passed the review they are simply parked under change control and rarely ever looked at again. Largely wasteful as you’ve pointed out.
The utterly fascinating things about mind maps is that they can actually accompany you on the testing journey, and serve a multitude of purposes in the process from planning, execution right through to recording results. A veritable living, breathing point of reference. I’ve already used this principle on a couple of small scale projects where I’ve been able to review our intentions, record the execution and also to present our findings. The feedback from the testing and non-testing community has been encouraging.
In fact, I feel a blog coming on. Perhaps it’s time to write an experience report and share my findings.
Before I go, the other point I wanted to mention was about the tool, Mindjet – I seem to recall this has a plugin that produces some sort of Gantt-esque format of your mind map, allowing a more conventional view of task scheduling. This is a paid for product (boo!) but it looks to have potential. I’ll do some digging and see if I can find the details.
Hi Del,
Thanks for taking the time out to comment
Nothing is new in testing; someone somewhere will have done it before in most cases. For each technique there will be a dozen different documented buzzwords for it.
Speaking testing can be a challenge of coming to a common understanding of terminology used once we go out with the basics. That being said I still think there is a lot to be learned from looking at others approaches. Like you said you’ll pick up a small golden nugget here and there which you can apply to your own practices.
I really would encourage others to be more open about their approaches if possible. I’m sure there’s a mountain of information unseen out there that can benefit the community.
So thank you for acknowledging that I’m a little more open, a few like me share experiences in a similar form; hopefully others will join us over time.
I’m looking forward to reading your post having heard from you about your experiences with mind maps, I’m sure it will make for an excellent read
What you’ve touched on about mind maps being transferable throughout the life cycle of a project is exactly were I see their power in contrast to traditional documentation. This is something I’ll be looking at over the next few months when I have the time. Hopefully I’ll be able to share something useful here from that.
The mind jet plugin sounds cool, it’s just a shame it not free.
Thanks Del; nice extension to the discussion
Cheers,
Darren.