Page 4 of 8

So you think you can test ….

Recently I saw this tweet: “a lot of testers don’t consider alternatives because they don’t know them”. It was a reaction in a discussion about a Dutch article with the title „The days of the ‘Dutch school of testing’ are over”. Jan Jaap claims that Dutch testers suffer from “Law of the handicap of a head start“. Really? I don’t think it is the handicap of a head start. Did we (Dutch testers) ever had a head start? I think it is something that is called “The Dunning-Kruger effect“.

Dunning KrugerThe Dunning-Kruger effect, named after David Dunning and Justin Kruger of Cornell University, occurs when incompetent people not only perform a task poorly or incompetently, but lack the competence to realize their own incompetence at a task and thus consider themselves much more competent than everyone else. Put more crudely, they’re too stupid to realize they’re stupid. The inverse also applies: competent people tend to underestimate their ability compared to others. (Source: Rational Wiki)

In the words of Dunning and Kruger: this overestimation occurs, in part, because people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it.

I think many testers don’t realize that they actually know very little about testing at all. And that is why they don’t do anything to get better. They are also not encouraged much by their colleagues. Testing is often underestimated. I guess everyone has examples of managers who do not value testing as much as we would want them to. Testing is often devalued as “pushing buttons” and “everybody can test” is believed by many. I have seen companies who use testing as education, a first step in an IT career…

But there is more… I have worked as a selling and hiring manager and I experienced that there is a lack of competence in spotting talented testers. If you have the right certificates, people believe that you are a good tester. Because they simply do not know how to spot an excellent tester. In my recent job search nobody asked me to SHOW them my testing skills. We only talked about it.

 

Context-driven (presentation) heuristics

James BachOctober 23 DEWT and James Bach met in Dordrecht to talk about testing. The subject was “What is context-driven testing?” and more specific “How do you recognize a context-driven presentation?”.

They came together to prepare for the TestNet Autumn Event which was fully dedicated to context-driven testing and had the theme: “Exploring context-driven testing – a new hype or here to stay?”.

DEWT decided earlier this year to write an article about the event to reflect on context-driven testing in the Netherlands. What does the TestNet community have to say about context-driven testing? What can we learn from the event? What can we do to help the community learn? How context-driven is the Dutch Testing community? While discussing this the DEWTs found it hard to find heuristics to “measure” (maybe “recognize” is a better word here) the presentations at the TestNet event.

DEWTs

What is context-driven?

Often context-driven testing is “only” seen as an approach, but it can be more. Actually there are 3 different things that are called context-driven. Testers can be part of one, without necessarily being part of the other.

  1. Paradigm (world view)
  2. Community
  3. Approach

For example: you can use an context-driven approach without being part of the context-driven community. To be in a paradigm you need to have a world view of testing.

Testing People evaluating a product by learning about it through experimentation
driven by is a matter organized and motivated by a systematic consideration of
context all the factors that significantly influence the problems and solutions that lie within the scope of their mission
  • Attitude: context-driven testing allows to change the approach. An example is “Huib’s Rapid Software Testing”. This Huib’s way of doing testing, inspired by Rapid Software Testing, but he changed his approach to his context. Changing anything he sees fit. Often factory school testers do not want to change their approach and apply their approach the same in every situation.
  • Principles: context-driven testing is NOT (only) the seven basic principles, but there is much more. Look what lies behind them, learn about the implicit principles. See slide 9 of this presentation by James Bach.
  • Mentality: context-driven testing is about skills, humanity, science, critical thinking, problem solving, non-linearity, investigation, learning, etc.
  • Metrics: you can use only those metrics if you understand them and if they solve a certain problem.
  • Critical thinking: do you know how? How do you know that you know? How do you get better?

Science is the Belief in the Ignorance of Experts” — Richard Feynman

Presentations

Good stuff to look for:

  • Heuristics over commandments
  • Learning curves
  • Compare alternative methods, trying other methods
  • To be truly context-driven you have studies and tried the practices you say you do not like
  • Discussion of causes and effects assuming open systems. Reject the believe that a project a well defined game that is predictable. Also reject the assumption that a process is unhackable
  • Acknowledgement there are people with different opinions, not speaking from authority
  • Social science
  • Humanism
  • Practitioner responsibility
  • Craftsmanship
  • Refuse to do bad work
  • Problem solving
  • Skill based work

Be aware of people:

  • talking about ‘success’ and ‘failure’ without explaining why and describing the context
  • talking about ‘structure’ and ‘chaos’ (often meaning: I am out of control)
  • showing no evidence (or using sentences like: “research shows that…”)
  • relying on folklore
  • using numbers without context
  • who are ignorant of social science
  • uncritically apply the manufacture metaphor (IT is like a factory)
  • apply premature automation
  • assuming other people read and follow what is written
  • contempt humanism
  • trying stuff once and over generalize that to the whole company/world
  • who fear variation
  • over simplify (approach the world as if it was linear)
  • misuse of statical analysis
  • who use averages without variance
  • who do narrow research
  • say or do stuff because their clients want it
  • demonize tacit knowledge and idealize explicit knowledge

This is the summary I have made of what we discussed. You could consider this as a heuristic for context-driven presentations. I used this heuristic in my presentation “What is context-driven testing?” at the TestNet event.

Heuristics Success / Failure
Learning Chaos / Structure
Compare alternative methods Lack of evidence / Narrow research
Cause and effect Folklore
Open systems Numbers without context
Social science Ignorance of social science
Humanist view Contempt of humanism
Craftsmanship IT & testing is like manufacturing
Explain context No context mentioned
Worldview of testing Generalizing after one try
Different opinions Use of averages without variance
Allows to change approach Linearity

Popular blogs for testers

blogsTo help the Dutch community evolve to learn, think and do more skilled testing I want to advocate interesting stuff to read to the community. But what should a tester read? Earlier I published a list of popular books for testers. In my search for good books to read, some people replied that they only read blogs and other on-line content. On this blog I recommend great articles and on-line stuff in my great resources list. For testers blogs you can check my colleagues list.

But what do other testers recommend? My curiosity kicked in again and I sent out another email to my tester friends around the world to ask for their favourite blogs.

This is the “top 19” of most mentioned blogs. In the list are all blogs that got more that 2 votes. I am thrilled to be in this list at all. But it must have been the “availability heuristic” that got me on the 3rd place! Thanks guys 😀

Rank # votes Name URL
1 26 Michael Bolton http://www.developsense.com/blog
2 23 James Bach http://www.satisfice.com/blog
3 12 Huib Schoots https://www.huibschoots.nl/wordpress/
4 11 Cem Kaner http://kaner.com/
5 10 Michael Larsen http://www.mkltesthead.com/
6 9 Markus Gartner http://www.shino.de/blog/
  9 Elisabeth Hendrickson http://testobsessed.com/
8 8 Alan Page http://angryweasel.com/blog/
9 7 Andy Glover http://cartoontester.blogspot.com/
  7 The Test Eye http://thetesteye.com/blog/
  7 Zeger van Hese http://testsidestory.com/
12 6 Pradeep Soundararajan http://testertested.blogspot.com/
  6 Matt Heusser http://xndev.com/creative-chaos/
14 5 Iain McCowatt http://exploringuncertainty.com/blog/
15 4 Jurgen Appelo http://www.noop.nl/
  4 Keith Klain http://qualityremarks.com/
  4 Pete Walen http://rhythmoftesting.blogspot.com
  4 Rob Lambert http://thesocialtester.co.uk/
19 3 Adam Goucher http://adam.goucher.ca
  3 Adam Knight http://www.a-sisyphean-task.com
  3 Anne-Marie Charrett http://mavericktester.com
  3 Bob Marshall http://flowchainsensei.wordpress.com
  3 Eric Jacobson http://www.testthisblog.com
  3 Gojko Adzic http://gojko.net
  3 James Christie http://clarotesting.wordpress.com/
  3 James Lyndsay http://workroomprds.blogspot.com/
  3 Ministry of Testing http://www.ministryoftesting.com/testing-feeds/
  3 Parimala Hariprasad http://curioustester.blogspot.in/
  3 Seth Godin http://sethgodin.typepad.com/

180 different blogs where mentioned by 41 participants. The full list of blogs can be found here. An overview of all participants and their personal lists can be found here.

If this isn’t enough, you can check these listings of tester blogs:

ISST launch!

The International Society for Software Testing has launched – lets start putting the common sense & humanity back into testing!

ISST_logo_website

 

I was fortunate enough to be asked to be one of the founding members of the ISST. Looking down the list of members, I know most of them personally & can vouch for all of them.

The society is still in its infancy & there are many questions to be answered but one thing is for certain, there are many exciting times ahead & I am really glad to be onboard.

Go & check it out for yourself & let me know what you think:

http://www.commonsensetesting.org/

Popular books for testers

I love to read and I own many books on testing, software, management and other stuff that relates to my work.

But what should a tester read? On this blog I recommend several books in my great resources list. And what do other testers recommend? My curiosity kicked in and I sent out an email to my tester friends around the world.

Every year the Dutch association for software testers TestNet organizes two one-day conferences. This year TestNet has chosen context-driven testing as the theme for their autumn event in October (call for papers is here). To help the Dutch community evolve to learn, think and do more skilled testing I want to advocate some interesting books to the community. Here I need your help! Please send me your personal top 10 of best books testers should read. It can be any book, it doesn’t have to be a book on testing… I will collect the submissions and create a list of most popular books amongst testing professionals. Please send me your list of favourite books! Hope to hear from you soon.

testerbooksOne of the testers replied that he could not send a list. “What you should be reading depends on what you are ready to learn about next, and that varies from person to person”. And I agree with this statement. This list of books can be useful when used as a list to inspire. Another tester replied: “the reading that has been most helpful in my career has been centered around blogs and twitter far more than it has been around books”. For testers blogs you can check my colleagues list. Maybe creating a list of most popular testers blog will be my next project 😀

Anyway, this is the top 10 of most mentioned books:

  1. Lessons Learned in Software Testing – Cem Kaner, James Bach, Brett Petticord (31 votes)
  2. Perfect Software and other Illusions about Software Testing – Gerald M. Weinberg (19 votes)
  3. Agile Testing – Lisa Crispin and Janet Gregory (14 votes)
  4. Thinking fast and slow – Daniel Kahneman (12 votes)
  5. How to Break Software – James A. Whittaker (11 votes)
  6. Tacit and Explicit Knowledge – Harry Collins (10 votes)
  7. Explore It! – Elisabeth Hendrickson (9 votes)
    Secrets of a Buccaneer-Scholar – James Bach (9 votes)
    A Practitioner’s Guide to Software Test Design – Lee Copeland (9 votes)
  8. An introduction to general systems thinking – Gerald M Weinberg (6 votes)
    Peopleware: Productive Projects and Teams – Timothy Lister & Tom DeMarco (6 votes)
    Quality Software Management Vol. 1 Systems Thinking – Gerald M. Weinberg (6 votes)
    Secrets of Consulting – Gerald M. Weinberg (6 votes)
    Testing Computer Software – Cem Kaner, Jack Falk, Hung Q. Nguyen (6 votes)
    The Black Swan – Nassim Nicholas Taleb (6 votes)

180 different books where mentioned by 43 participants. 15 (!) different books by Jerry Weinberg where mentioned. The full list of books can be found here. An overview of all participants and their personal lists can be found here.

Why wait with saying something nice if it can be done today?

Normally, I do not blog about personal, non-testing related stuff. But this blog post is different. If you are not interested in my personal emotions and private life, no problem at all, I understand. Stop reading now and come back at another time.

My mother (http://ineterhorst.wordpress.com/) was diagnosed with lung cancer in June 2011. It didn’t look good and we all feared that she would not be with us anymore within a year. She got radiation and chemo treatment and a little medical miracle happened: the cancer disappeared! Almost four months ago I was with her at the doctor for the Quarterly checkup when he told us that “there was no reason to assume there are any active cancer cells in her body”. We celebrated and life went back to normal after almost 2 years of “hassle”. Then she got terrible headaches two months ago that didn’t go away for weeks and just to be sure the doctor wanted to make an MRI scan of her head. Her head was okay, but they found a tumor on her upper cervical spine. This time the cancer had spread and a PET scan showed cancer at several places in her body. This news was given to her on her birthday in April. It was devastating news and the prospects are unknown and not good, but it is a matter of months the doctor said…

My world stopped turning for a moment…

On Dutch television I saw this commercial titled “live today” by a funeral insurance and services company, which inspired me to write this blog post. It’s message is: “Why wait with saying something nice if it can be done today?”.

Dear mom,

This blog is to tell you are the best mother I could have wished for. Although I didn’t make it easy for you when I was younger, you always supported me in everything I did. Even when things weren’t easy for yourself during your divorce or other setbacks, a simple request for help was enough to trigger you helping me over and over again. It didn’t matter if it was in the middle of the night, at the other side of the country or you had to prematurely terminate your holiday, you always came to my rescue! You did all that was in your power to give me and my brother everything we needed. Even when I started working and earning money, you kept buying stuff for us as presents or because you thought we might need it … Nothing was more important in the world than me and my brother. That might be a normal thing for many but I feel it is a very special thing to do and I want to thank you for that! There is so much more I want to say to you and I hope you stay around long enough to talk about all those things. You are the best mother I could ever wish for. Thank you for being my mother!

I love you!

What testing can learn from social science – Part 5

What can testing learn from social science?
Why is this important to testers? My conclusion is that testing and the social sciences are very much interconnected and there are many lessons that we could learn from this area. We should see what we can apply to our daily testing jobs. We should be more aware of what we do in testing: for example social research, making observations, doing critical thinking and most importantly continuing to learn. We should start learning from what people have done and are still doing in the social sciences. Testers should not only focus on quantitative analysis like bug counts or test case pass or fail, but also do qualitative research. Test reports should be stories about the product and the testing we did (see Michael Bolton’s article on test reporting and the telling of the story). We should use the numbers to support or backup our story. I often see it the wrong way around: lots of tables full of counts that do not tell us anything without the context. Managers do tend to draw their own conclusions and make decisions based upon this data, if we do not help them by telling the story. Again, testing is about collecting information for people who matter to enable them to make informed decisions.

Coverage?
If a manager comes up to you and asks you:

“So what is the coverage?”
or
“How many test cases do you have?“

What do you say? It is really hard to talk to managers who are obsessed by numbers and think that testing is about the number of test cases, right and wrong, green and red.

Consider this next time you talk to them. Make a simple calculation of all the possible tests you could do for the project you are working on regardless of how simple or complex it is. Think of all the possible combination both positive and negative.

What number have you ended up with?

  • 1 thousand?
  • 1 million?
  • 1 billion?
  • More?

The number of possible things that you can test are endless, exhaustive testing is futile. Even a simple requirement has infinite possibilities to test.

So what is the coverage if we do 1,000,000 test cases?

  • Coverage: 1,000,000 divided by infinite is very close to zero!
  • Coverage: 10,000.000 divided by infinite is still very close to zero!

So no matter how many test cases you have the coverage of all possible test cases you could have done is close to zero. This is why risk, priority and making choices become important for testing but that is a different topic.

Be a scientist
Science is important. It gave us critical thinking and that helps us proving the theories we have about the product. Try to prove yourself wrong instead of proving yourself right.

Ask critical questions:

  • Could it be something else?
  • Is this what I expected?
  • What did I do differently?
  • What else can I do?
  • How can I explain what I did?

While testing we should practice critical thinking: question things we encounter, make sure that what we see, is true (or not). While thinking we should be aware of fast conclusions, biases and fallacies. We often do it the wrong way around. If we focus too much on the numbers and the averages we miss the outliers: the unique random events that can do the most damage.

Qualitative research
The grounded theory method is a research method that operates almost in a reverse fashion from traditional social science research. You start with a view, theory or expectation before you start. However as you gather more data when testing, your theory/expectation becomes more ‘grounded’ upon the information you uncover or discover. Basically as you experience and gather more and more data you change your perspective and viewpoint. This is what social scientist do when they go and live with social groups. They have something they want to find out – an assumption or otherwise – and find out if it is right or not by taking part (compare missions in Exploratory testing).

In qualitative research done by anthropologists for example the context of the research is very important. Here they accept and deal with ambiguity, situational specific results and partial answers. Qualitative data deals with meanings. Use it when you want to understand the underlying thoughts and intentions.

Observation
Testers should not observe from the side-line. We should act like anthropologists do: become part of the group you are observing. Let me give you an example from my own experience.

A couple of years ago I worked as a test coordinator for a Media Company selling newspapers and magazines. We were implementing a new CRM system and my assignment was to organize the user acceptance testing. For some days I worked with the people selling the newspapers to learn how they were selling subscriptions and while doing that I learned what was important to them. First I was observing, but after a day I was selling newspapers myself and really learned how the users were working and what it took to make the department successful. We had requirements and designs, but the stuff I found out on processes and user sentiments was also very valuable to do testing. There were important steps not documented. I saw the people use the software in ways I didn’t expect and that wasn’t written down anywhere. I asked them what they did and why and they answered me “that is normally how we do this”. I learned that these people took short cuts to do their work. The team who were designing and building the software had no idea what I was talking about when I told them about my observations.

Humans will always take the shortest quickest route and the one that requires the least amount of thinking. This made clear how important it is to find out what people are thinking. And more important: the reasoning why they do the things they do. The product is a solution. If the problem isn’t solved, the product doesn’t work (5th basic principle of context-driven testing).

Now I know it is called qualitative research and I think every team developing software should do something similar. Try to really understand the users and the environment in which the product will be used. IT is often way to focussed on technical stuff. Testers go out there and meet the people who are using the product. Be part of their world for a while and start asking those critical questions.

Humans
Software is build by humans for humans. Social science is about people. Software should solve problems and help humans. To really solve a problem, we need to know more about how the users work, what they think, how they feel, their emptions, their desires. Too often I hear development teams say things like: “The user should not do that”. Or the all time classic: “no real user would ever do that!”. IT is way too technical focussed.

Read John’s blog titled “The Human Element”. It is an awesome story about his wife, a nurse, who explains why the human element is very important in her work. You see the parallel with our work?

Now it is your turn!?
Use the reading list to learn more about what social sciences, biases and other relevant topics. I am curious and I want to learn from you too. So please share your thoughts and experiences with social science.

“Great software is not produced or tested in factories, but in studios
and rehearsal halls.” (Michael Bolton)

I owe John Stevenson and Michael Bolton many thanks for their inspiration, great discussions and reviewing these blogs.

Reading List

« Older posts Newer posts »