37

Deliberate practice is the key to developing mastery of a skill. If you want to practice your programming skills, there are a wealth of resources like code kata.

What are the equivalents for test design?

Edited to add a bit more detail about deliberate practice:

In order for deliberate practice to be effective, it needs to be demanding, targeted at improving specific areas of your performance (and you have to approach your practice with specific goals in mind), continuous feedback on performance, self-reflection, and repetition of that practice over a long period of time. Code kata work because you have a specific goal, you can see when you've reached it (feedback), and compare your performance with other people's attempts (again feedback, and self-reflection), there are a lot of kata targeted at different areas (targeted at specific weaknesses, repeated practice).

3
  • Finally accepted an answer for this - was torn between Bruce and Justin's, finally accepted Justin's as there were a lot of useful links for Weekend Testing, test challenges, Test Dojos, etc.
    – testerab
    Mar 10, 2012 at 15:33
  • Curious... Isn't learning of solving real problems in real project more beneficial? In pair testing of real application, won't you can learn more than by solving single problems?
    – dzieciou
    Nov 11, 2012 at 19:11
  • Sometimes you may want to focus on improving a particular skill - deliberate practice is about targeting specific areas. I'd agree that you should definitely look at pair testing on a real app to improve your skills, but I don't think that replaces the usefulness of having more restricted practice examples - doing both would be good.
    – testerab
    Nov 12, 2012 at 17:17

7 Answers 7

17

testerab,

Great question. I'm a huge believer in these kinds of activities.

You Would Enjoy Spending Time with Markus Gärtner

When I think of the software testing community's response to code katas, I think of the prolific testing blogger Markus Gartner and his involvement in promoting Testing Dojos. They are collaborative, facilitated, group exercises designed to test software, explore new testing ideas, and learn from one another. Actually DOING testing, not just talking about testing.

Video Describing Testing Dojos

enter image description here

Markus recently spoke at EuroStar about Testing Dojos. His seven minute video, available here, is well worth a listen.

Detailed Written Report

In addition, Markus has written a detailed report about his experiences at Belgium Testing Days when he led eight collaborative testing missions in two days. His full report (some of which is shown below) is available here.

enter image description here

Sources of Ideas

When asked for his advice recently on a testing mailing list, Markus recommended http://testing-challenges.org as a great source of ideas for Testing Dojos.

Weekend Testing - Now With a Group Near You

Last but not least, weekendtesting.com is an outstanding way to roll up your sleeves with other testers and learn by doing. There are chapters in India, Europe and North America now. There is even a Weeknight testing event.

5
  • Excellent answer. I've never met Markus in person, but I have worked with him (we co-founded the Europe chapter of Weekend Testing), and he is indeed a great guy (and I am truly scared by how fast the guy can write).
    – testerab
    May 17, 2011 at 22:23
  • Thanks. I agree about Markus' speed. Seeing the huge number of Markus' blog posts uploaded during testing meetings is impressive.
    – Justin
    May 18, 2011 at 2:24
  • I share the your enthusiasm about Testing Dojos, but my sceptical part is asking what exactly people have learned from Testing Dojos? Were they really able to apply what they have learn in a daily practice? Would pair testing in real project teach you more? I'd love to hear more stories on that.
    – dzieciou
    Nov 11, 2012 at 19:02
  • Good question... I'm just wondering whether here is the best place to get it answered (i.e. should you raise that as a separate question on SQA, or does the fact that it'll be mostly just experience reports make it off-topic?). I bet I'd get a few answers if I asked on Twitter - do you have a twitter handle?
    – testerab
    Nov 12, 2012 at 17:37
  • @testarab, I overlooked your comment. Good idea! I got twitter handle, so I could observe your tweets. What's your twitter handle?
    – dzieciou
    Dec 2, 2012 at 14:59
10

One of my favourites is Parkcalc ... Parkcalc is a real world application for calculating how much your parking is going to cost at the Gerald R. Ford international airport. It is also full of bugs, yet it works mostly. The requirements come in the form of the parking brochure.

So you don't pound the real one into the gound there are a couple of self hosted versions, like the one here.

Parkcalc is somewhat infamous after it was a weekend testing target, and there are a number of disections of the bugs that can be found available.

Parkcalc is also a great tool to demo the capabilities of automated testing tools.

4
  • I love the Parkcalc one and think that is one of the best examples out there.
    – MichaelF
    May 17, 2011 at 12:10
  • 1
    Agreed, it's a great example (I'll admit to being a little biased, as Markus and I ran that weekend testing session). The amount of different approaches out there to the challenge make trying Parkcalc into true deliberate practice, because once you've tried it yourself you can then search for other approaches, and contrast with your own.
    – testerab
    May 17, 2011 at 20:41
  • 1
    ParkCalc is fun, but I don't think testing a super-buggy application is a good simulation of real-world testing (unless, of course, your apps are actually that buggy).
    – Alan
    May 18, 2011 at 18:17
  • 1
    @Alan I agree, but it hits a sweet spot when time is short, or for entry level testers. May 19, 2011 at 3:37
4

Anything is good practice for QA. It doesn't even need to be software. I have tried all sorts of QA approaches on the elevators in my office building, as their code is buggy as hell.

I'll admit that it's a difficult question for me to answer, though, because I can't really turn my "QA sense" off at all. It's constantly running, looking at how things work and how to break them.

1
  • 1
    Heh. I know what you mean. Wouldn't it be great if sometimes you could book a flight without managing to find the exact scenario that causes the online checkin to discard all your data?
    – testerab
    May 17, 2011 at 22:58
4

Software testing can be a very repetitive job. When testing something for the tenth time, it is easy to fall into a mindset of "This is boring, so I'm going to get this over with as quickly as possible." We fall back on easy assumptions about how the product is built and how it will be used. And yet we are paid to pay attention and question assumptions, even on the tenth time.

I believe a tester needs to cultivate paying attention. Sometimes this means stepping away from your work, your smart phone, your laptop, your iPod, and your game console, and just being quiet. Practicing this deliberately, on a regular basis, may help you to slow down and pay attention to your work.

4

You could look up Testing Dojo's as well, and add another URL to the answer list:

Testing Challenges.

Some Programming Katas might be useful as well, I believe there used to be a few Ruby Kata's that were more geared towards testing but that was a few years ago and I don't know what the state of those are now.

Edit 1:

Ruby Kata github project.

Code Kata blog.

I think the original has stalled, or I can't find it, but these two seem newer and more interesting. When I get time to get into Ruby again I'll probably try them out myself.

2
  • Good one! Hey, those Ruby katas sound interesting, if you remember any names/links, let us know? We've switched to Watir at work so Ruby practice is of particular interest to me now :)
    – testerab
    May 17, 2011 at 21:03
  • I'll have to check around, it's been a few years since I looked at the Ruby Kata and they were just starting at the time. Like many of those projects it might have stalled.
    – MichaelF
    May 18, 2011 at 13:14
2

For starters, there's every piece of software in the world if you just want to improve testing skills. For a deeper practice, I recommend things like open source projects, weekend testing, and uTest. Although I've never been able to make the time for weekend testing, I've participated with uTest a few times and always found it not only a great way to subsidize the cost of my professional development, but, I've also learned a lot from it.

2
  • can you tell something more what have you learned? Isn't experience from testing in real project more beneficial than solving single problems?
    – dzieciou
    Nov 11, 2012 at 19:05
  • 1
    My main take-aways were more learning other approaches to classic things like bug reports. Before reporting a bug, I would always look through the bugs that were already there so that I wouldn't create a duplicate. There are so many different ways to create a report as simple as this, each with it's own benefits depending on the situation. Nov 13, 2012 at 11:55
2

If you are a member of AST (the Association for Software Testing) or just want to do the self-study method I'd recommend taking a look at the Black Box Software Testing courses:

There are several courses entitled Foundations, Bug Advocacy and Test Design.

Taken through AST you are partnered with others taking the course where you can get deliberate practice in an effective and demanding manner.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.