TL;DR
This post is about my learning experience from the How To Test Anything of Online Testing Conference 2020, presented by James Thomas. How to start to test something almost immediately.
I know about James through his blog posts. This year he becomes one of the AST directors, and I helped him with Peers Exchanging Ideas, the AST Peer conference guide. A great resource if you thinking of starting a Peer Conference. James tests at Linguamatics. You can find on their site a map of published COVID-19 papers.
At the beginning of the talk, I noticed that James is working on Windows OS. Maybe this explains why the talk was late due to the Zoom application crash.
James started with an image of himself and a robot.
Are we doing the same thing?
Automation is possible if there is no need for details.
He provided more context by asking a follow-up question, What is the task?
Book Alert: The shape of actions by Harry Collins and Martin Kusch.
The task was software testing. Humans are still better in unforeseen situations, and that is what software testing is about. It is not following the list of steps.
The hard question is, What is software testing? Arborosa has collected many definitions. James likes Rickard Edgren definition:
If it is important, test it!
James works for a company that handles vocabulary, so he often uses in his posts English words that I have never heard before. He used one in his own definition of testing.
Testing is the pursuit of relevant incongruity.
Let’s find the meaning of word incongruity.
the state of being incongruous or out of keeping
I need the second hop in the dictionary:
incongruous (adjective) – not in harmony or keeping with the surroundings or other aspects of something.
According to James, software testers are in a job finding parts of products that are not in keeping harmony with the surroundings. He adds that we test only parts that are relevant (matters). Every tester should be able to tell is he/she testing right now or not. The tester could also choose not to test at a particular moment.
Tools
In software testing, we use tools to create a model of the system (feature) under test. Those tools could be comfortable or not. We use them to predict system behavior. Our models could be one dimensional:
two (table) and three (add color) dimensional:
or interactional:
Comparing is a useful tool. We could compare:
- requirements
- expectations
- state
- competitor
- releases
We compare those to ORACLE.
An oracle is a fallible mechanism for determining whether the program passed or failed a test.
For example, we are testing Word Save As feature. We could compare it to Notepad Save As feature. Using critical thinking, we could determine that used oracle is wrong, or that we made an error in comparing.
Book Alert: Are Your Lights On by Donald C. Gause and Gerald M. Weinberg.
In that book, we can found out that we have a problem when the perceived outcome is different than the desired one. We should come up with three possibilities that could be wrong with our problem-solving. Otherwise, we do not understand enough about the problem space.
Here is my example: To not get infected with COVID-19, I will wear home made-mask during shopping.
What could be wrong with this solution?
A homemade mask could not filter out the virus. Mitigation. Buy a medical mask or add a part of the vacuum cleaner bag to your homemade solution.
The virus could be caught through my eyes. Mitigation. Wear sunglasses.
The virus could be caught when I get home from bought groceries. Mitigation. Disinfect groceries before storing them away.
We expanded our knowledge of problem space.
Book Alert. Definition Of Engineering Method by Billy Vaughn Koen.
In the book, you can find the best engineering practices at that time.
Mnemonics are also valuable testing tools that could help us started with testing. SFDIPOT is one example.
Directed learning is to learn how to learn. For software testers, BBST courses are an excellent starting point. Read anything from Gerald W. Weinberg. Read blog posts or start writing your own. Writing about something that you are learning is a great way to recap what you had learned.
Start Testing
Book Alert. How To Be Explorer Of The World by Keri Smith.
In testing, you learn about the product using known constraints, context, and product value. You learn to gain a technical understanding of the product. Explore risk areas and provide a testing report. Create timeboxed testing charters using the formula:
Explore X using Y to Z [Elizabeth Hendricson].
I heard a lot of talks about pairing testers but without any particular recipe. James gave an excellent overview of what is pairing for him: