My Authors
Read all threads
1) Why do we test? A primary reason is to discover problems in our products before it's too late.

A problem is a difference between the world as experienced and the world as desired. It's a problem if someone experiences loss, harm, pain, bad feelings, or diminished value.
2) The degree to which something about a software product is perceived a problem is the degree to which someone suffers loss, harm, pain, bad feelings, or diminished value. That is: a problem about a product is a relationship between product and some person.
3) But the degree to which something is perceived to be a problem also depends on how someone, and someone's suffering, is important to the perceiver. That is a social issue, not merely a technical one. That barely gets mentioned in most testing talk, or so it seems to me.
4) The technical issues in a product are only problems to the degree that they (might) come to pass; to the degree that they matter to people who suffer them; and to the degree that people's suffering is important to people responsible for the product. So feelings matter.
5) It is remarkable to me how much talk about testing and software development passively and even actively avoids talk about problems and feelings. But as @JerryWeinberg was fond of pointing out, reluctance or revulsion about problems and feelings — well, those are feelings too.
6) Jerry: "I wrote about testing as the opening topic in my first book ... way back in 1960—and way back then, I already took flack from some reviewers who didn’t think errors was a suitable topic for politically correct people. You’d think I had written about human excrement."
7) Jerry continues: "And you’d also think that...we would have outgrown that prudish attitude about error—but we haven’t. We fought hard to have testing recognized as a profession of its own, and though we have people called 'testers' today, we still have the prudes."
8) Sometimes people ask why testers are so cranky; why I'm so cranky. I'll tell you: it's because we believe that, as good as things might seem to some people (including you), they might not seem so great to others. Things might be hurting people. Ignoring that makes us upset.
9) This upset is focused on a fundamentally non-cranky and ultimately optimistic target: a better world, and happier lives for people. Software that helps people, rather than frustrating or annoying or confusing them—or actively harming them, which software can easily do.
10) So software testing needs not only technical and analytical knowledge and skill, but also a healthy dose of the critic mindset; productively and persuasively complaining *with the goal of finding and shedding light on problems that matter*, before they hurt other people.
11) To find problems that matter is far more than a matter of checking that the product has been built consistent with our expectations and our intentions. Both intentions and expectations tend to be focused on our visions of success. Those are necessary to get something built.
12) A focus on success is essential for builders; too much anticipation of the possibility of failure disrupts builders' progress and slows them down. So... create little checks that help us to find the easy problems so that we can make rapid progress. But there's a BIG but.
13) Problems in a product are not always immediately apparent or easy to find. They may be rare, infrequent, intermittent, subtle, deeply hidden. They may come from emergent interactions between perfect elements placed in complex systems — and may be eluded in shallow testing.
14) What's to be done? To find problems that matter, we need to do two important things: we need to make shallow testing deeper to find more of the easy problems; and we need to make deep testing cheaper, to find the harder problems quickly. And there's something else, too.
15) We need to remember that we're doing all this for people; for our clients and for each other. Feelings and emotions all across development work, but especially in testing, are central to what we do. You won't learn about that in most talk, writing, or classes about testing.
16) We can make the choice to face our discomfort, and acknowledge that excellent testing needs to be focused on problems —learning about them as soon as we can, shining light on them, and talking about them, so that people can fix them before they turn into bigger problems.
17) Now the Word From Our Sponsor: if you agree with all this, and want to learn more, it's what we study and teach in Rapid Software Testing. See developsense.com and satisfice.com. RST Explored runs Sept. 15-18 rapid-software-testing.com/attending-rst/, with more to come.
Missing some Tweet in this thread? You can try to force a refresh.

Keep Current with Michael Bolton

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!