- Published on
The 3 Core Values of Testing š§Ŗ
- Authors
- Name
- Glendon Ngo
In this post, I write about my core values of testing, which are key ideas in my approach to software testing. The 3 values are below:
- Testing is Accessible.
- Testing is Unbounded.
- Testing is Science.
Testing is Accessible.
The 1st core value of testing is that Testing is Accessible.
Think of the testing role is like a villa. It is a semi-private space, not a silo. Someone dwells in it. Someone is ultimately responsible for the upkeep of the swimming pool, lighting, beverages, food and dining. But visitors may come and help. The goal for all testing is to make its barrier to entry as low and inviting as possible, like a 5 star resort or villa. In this way, developers and people are encouraged to help with testing and improve overall quality in the system.
Developers help testers. Testers also help developers. But the thing that separates developers instead of testers are that testers are accountable for the test process. As a team member, you help create quality. But as soon as you turn into testing mode, your job is not to create quality, it is to figure out the truth.
We want to make testing fun for people coming into the villa. Testing infrastructure is important part of infusing quality into a development cycle.
James Bach has the following about software testing:
Good testers check the context before giving a technical answer to any question.
Thereās no official right way to test things. Instead we have situations we read, interpret, and solve the problem in those situations.
Testing is Unbounded.
The 2nd core value of testing is that Testing is Unbounded.
Given an infinite landscape to explore, being completely satisfied with a bare handful of experiments is downright dangerous.
Thereās no objective way to know when to āstopā testing, you only have your intuition and the knowledge from data you have collected about your testing session at the moment to know when to stop. A good indicator of when you have finished your testing is when youāve answered all the questions youāve asked yourself.
Testing involves casting a wide net in an infinitely wide and deep ocean of possibilities.
Imagine catching fish in the middle of an ocean on a boat. If we had infinite time and fishing nets, it is definitely possible we would eventually catch as all the fish we want!
However, this is never the case. Just like king crab or traditional fishing has open and closed seasons where you are permitted to catch your prey in a limited timeframe, it is the same for the business and testing.
Testing is Science.
The 3rd core value of testing is that Testing is Science.
Testing is an inherently an exploratory processā¦ an experiment! Experiments bring new discoveries and actualize hypotheses. Like Scientists, testers use reason, insight, and curiosity to react to new information. The answer of our tests are uncertain until actualized by executing it.
Experiments can be
- Formal - specific form, design, structure, rules, laws
- Informal - play, heuristics, improvisation
- Tightly Controlled - deliberate (swimming pool and jacuzzis)
- Loosely Controlled - spontaneous, free style (volcanoes, oceans and lakes)
A testerās mind is a scientistās mind.
Dependent Factors on Quality
There are 3 factors that impact software quality. The 3 are time, budget, and people.There is only so much time, money, and people we can have all at the same time. In every team project, scope & priorities change, deadlines get set in stone, and the business counts of us to release our products to continue to improve its revenue, operations, and expansion to other markets.
So, in a sea of possibilities and unboundedness, how do we know where to go for the most interesting catch or defects? Where exactly do we cast our wide net, if we only had 1 or few chances to do so? Iāll try to answer this better in our next module.
But for now just accept the idea that in reality we cannot test everything alone and even with a large team.
No matter how thorough we are in our testing, there will always be a plethora of interesting cases that we have never tested, which subjected to some risk of failure.
Thanks for reading about the 3 core values of testing!
Glen