We all think we know what testing is. We can even whip up a few options to choose from on the definitions, but definitions don't matter as much as our perceptions. When I ask you to think of testing, you think of of testing. It just may well be that the scope of testing you think the scope of testing I think have little, if anything in common.
I ended up thinking about this again seeing the infamous words in a memo: "We automate all our testing". Well true. And well, not true at all. There is something that creates all that test automation that now does all the testing you care to name, and that too is testing. Confused yet?
To continue with the confusion, let's point out that testing is both a verb and a noun. It is a great general word, a bit like thinking and learning. And those are the core elements of testing, not the documentation we create our of thinking and learning. Test automation is to a large degree documentation with some awesome features like alerting when it is no longer up to date!
Charity Majors said it well - testing we have automated isn't all there is to testing, because *past* mistakes aren't all we are searching for.
Correct. Tests are not there to tell you that software is "working", lolololno. All they can do is boost your confidence that you haven't repeated any of your *past* mistakes by a few (valuable!) smidges. https://t.co/r3wKLgV1e4
— Charity Majors (@mipsytipsy) December 2, 2021
Adding to an ambiguous word "testing" more words does not make it less ambiguous, but it does reveal how versatile the word is. Like this one:
Someone asked me today what is the difference between unit testing, approval testing and exploratory testing. First is a scope in which we consider testing. Second is a method for capturing test results we want to keep up with. Third an approach for learning & results in testing.
— Maaret Pyhäjärvi (@maaretp) December 2, 2021
I propose we focus on the one thing we agree on: testing is something important for us to figure out and controlling words out of our control isn't how we figure it out. Automating all tests means we are adding automation. Automated testing is created manually.
Correcting language is a silencing technique. Correcting language is an investment of time. Is that really how we end up understanding the others when in fact sometimes we already do.