by T Ashok
Here is an interesting collection of FIFTY tips that spans across many dimensions to enable one to become “Smart Tester”.
1. “Don’t do work. Prevent.”
Smartness is about thinking well, so as to not do. It is not avoiding it, but about quashing the need of it. For example, do I need to regress this? With smarter analysis of change, should I really regress this? Can I inject code to self test, so that I don’t have to test it?
2. “Do less.”
Smartness is about doing minimally. It is not because of lack of time/effort, it is about being sharply focused to not spread thin. For example what may be the minimal data sets to ascertain correctness, what may the optimised combination of environments to test on.
3. “Do just as much.”
It is kind of mix of (1) & (2). How much to do and what can be avoided. The continuous sharp sensitivity to be just right enough. Selecting just the right set for scenarios from a larger set for (say) a given specific customer.
4. “Do anything beautifully.”
Be it writing a document, or presenting a report, or test data sets, let it be beautiful. Great aesthetics nourishes the should making us do great work.
5. “Do quickly.”
Chunk tasks, get it done quickly. Don’t stretch an activity, strive to complete quickly so that you can get feedback, learn and refine and of course, get the work done faster!
6.“Detect at the earliest. Prevent if possible.”
Guess this is self explanatory!
7. “Exploit technology.”
Automate maximally, use tools for setup, compare, manage, check, monitor etc, to help you do, to help you gain better insight.
8. “Adapt, adjust, adapt, adjust..”
Be like the water that flows, not fixated, open, to constantly adjust and refine the strategy, plan, scenarios, scripts, tools, priorities, understanding..
9. “See the mirror constantly.”
Setup measures for feedback, to constantly analyse and stay on course continually.
10. “See consciously, see unconsciously too.”
Observation is a key skill for test folks, to judge, to see patterns, to connect the dots and enhance test strategy and action.
11. “Add, delete, refine. Evolve.”
Utility of anything is never fixed, everything looses shine with time. Constantly egg yourself to evolve. For example test cases over time will stop finding issues, in certain customer environments, some flows may be never be done requiring continuous evolution.
12. “Empty yourself periodically.”
Make way for new thoughts/ideas, by discarding the ones we have periodically. Consciously discharge to recharge.
13.“Focus on outcome, enjoy the journey.”
Repetitive testing can become boring, the trick is to enjoy the journey by noticing the finer nuances that are different each time.
14.“Doing is great, but value matters.”
It is not just doing activities, but about producing great outcomes. Doing excessive testing without demonstrating high utility to end customers is sadly an exercise in futility.
15. “Be mindful, immerse yourself.”
Being in a flow allows to be very sharply observant unconsciously enabling us to deliver great work and making it enjoyable!
16. “Leverage other people work.”
Don’t do what has been done before. Leverage assets aggressively be it tools, frameworks, scripts, scenarios/cases/data, strategy/plan. Before embarking on activity check if this has been done before.
17. “Blend your left and right.”
It is not just about using the logical left brain or the creative right , it is about a harmonious combination of logical/scientific left brained thinking with the creative right that makes testing super effective and super efficient.
18. “Be rational, but trust your gut too.”
Staying engaged, being immersive results in deep unconscious learning resulting in the gut feel. Something we look for certain issues in certain situations kinds based on gut feel. Staying logical and rational is important, but don’t understand the power of gut feel.
19. “Analyse situations logically, but act on the choices.”
We analyse situations (say) ‘why did this occur’ and come up with a list of choices. It is necessary to use and on these choices, to realize the full benefit of logical thinking.
20. “Stay focused and purposeful.”
A purpose gives the power to focus, for example looking for specific issues allows to sharpen the approach and test cases.
21. “Focus is great, but meander too.”
Focus enables to being purposeful, but it is like a horse blinder. Some bit of meandering, observing the system at large while performing a focused test improves our overall understanding enabling us to refine to do better.
22. “Look outside, learn from other disciplines.”
The stick robot was inspired by the insect, velcro was inspired by lizard feet. Read, watch, experience things outside of our discipline to innovate.
23. “Stay curious, question, explore.”
Testing is scientific exploration, driven by curiosity and fueled by intense questioning.
24. “Decompose well, and problem solve itself!”
Well the problem may not solve itself completely, but good decomposition of a problem is very to solving it. For example clearly decomposing ‘what-to-test’ into various granular entities like screens, features, flows and ‘what-to-test-for’ into different types of issues and therefore clear set of tests ensure clarity of problem and also of the solution.
25. “Relentlessly simplify.”
Albert Einstein said “If you can’t explain it to a six year old, you don’t understand it yourself”. So relentlessly simplify to sharpen clarity and understanding, the key ingredient to great testing.
26. “Write less, accomplish more.”
Documentation is useful history and that happens only when the present is meaningful and valuable! So think better, write just enough, focus on doing great.
27. “Sift continuously to sharpen clarity.”
It takes tremendous sifting to separate gold from rocks! To understand a system, play with it, read, explore, discuss, repeat by varying, discard what is not need, repeat until time runs out. A deep understanding of context, usage, system is central to great testing.
28. “Think like a scientist, do like an engineer, feel like an artist.”
Deep scientific thinking, pragmatic implementation and enjoying the aesthetics of doing and outcomes in a brilliant combination makes the activity enjoyable and outcomes very valuable.
29. “ Visualize in the mind’s eye.”
Seeing the system flows, the perturbation of a modification, the structure of systems in one’s mind eye clearly, the ultimate result of great understanding, makes probable issues stand out.
30. “Fly high to abstract, stoop low to see details continually.”
See the forest for the trees to gain a great systemic understanding, and also dev down to look at the individual leaves to understand the details, repeating this in an endless cycle to understand a system and context better.
31. “Keep your cup half empty.”
“Exactly,” said Master Ryutan. “You are like this cup; you are full of ideas. You come and ask for teaching, but your cup is full; I can’t put anything in. Before I can teach you, you’ll have to empty your cup.” Create space in your mind to space to absorb, to learn and understand , and therefore defer what is not needed now.
32. “ Problem solving is a mix of techniques, principles, heuristics.”
Apply techniques to solve clear problems, employ principles to chart the direction and use heuristics to guide you. There is no formula, not is everything from experience. It is a judicious combination of techniques, principle and heuristics(guidelines)
33. “Trust what you do, prove what you have done.”
It is not just about “trust me”, it is about demonstrating proof in what you have done. Justifying test adequacy is one key application of this in our discipline.
34. “Understand the behavior outside, know how it composed inside.”
It is not ‘black’ or ‘white’. it is about knowing the external behaviour and also the internal structure in terms of architecture, data/control flows, interfaces and so on.
35. “Never forget that human uses the system.”
Testing is not a clinical examination of the system, it is being empathetic and ensure the human end user benefits from the system.
36. “See the many dots, connect them continually.”
Testing is not deterministic following a simple set pattern, it is about observing, experimenting creating and seeing dots and constantly connecting them to do better and better.
37. “Be open to different points of view without bias.”
Testing requires a very open mind, to see various points of video, engage in arguments and disagreement without bias so that we may get new ideas to ‘poke’ the system and find issues.
38. “Form opinions based on facts.”
As much as it is important to be open, formulate opinions based on pure facts so that you can anchor and explore better.
39. “Relentlessly pursue, but know when to timeout.”
Sometimes bugs vanish down the rabbit hole, sometimes systems behaves weirdly, these are not to ignored, these are opportunities to pursue relentlessly, be watchful of the large picture of business and timelines, know when to timeout.
40. “Constantly assess what you don’t know, not gloat about what you know.”
It is the gaps in knowledge that help us to become better forcing us to learn and refine and not just the knowledge that we possess.
41. “Do with pride, stay humble about outcomes.”
Pride in work comes from confidence we possess, very necessary for great testing. When test artefacts are reviewed, demonstrating confidence is key. To be able to stay that way, it is important to be humble enough so that we don’t become over confident!
42. “Prioritize continuously.”
Testing is risk reduction, and given the challenges of time, cost and quality, staying focused and continuing to do with the issues and challenges demand we constantly re-prioritize focusing on what is most relevant as of now.
43. “Stay balanced.”
Extremes of too much testing or less testing, too much reliance on tools on only on facts etc may not be very productive. It is the fine art of attempting to staying in balance that is key to great outcomes.
44. “Try to connect cause to effect constantly.”
Attempting to figure out the potential cause from observed effects enables us to refine our strategy and explore better.
45. “Pay attention to special cases, not be satisfied with common causes.”
It is the interesting one-off situations that help us to understand somethings far more deeply rather that the common occurrences that cause issues.
46. “Time is not a constraint – It is what can I do, not how much do I need.”
We all know that the clock does not stop, we can only freeze what we can deliver. Given a time target, it is about how much I can accomplish that matters in today’s world.
47. “Listen silently, talk excitedly!”
When we listen to some one’s views silently without bias, new ideas emerge. On the same view, when we talk excitedly about our view with the other person silently listening to us, ideas refine and sharpen!
48. “Take notes copiously.”
While observing, listening, experimenting, exploring, take notes liberally to help you remember, and more importantly come with interesting ideas when you re-read it.
49. “Stimulate all senses – write, draw, colours, direction, voice.”
When you note down observations, put together a plan, jot down scenarios etc., mix it up – write words/sentences, using colours and directions (up, down, angle..), voice record too, so that you keep the right brain vibrant and stimulate the unconscious to see the unknown.
50. “Code, design, build, troubleshoot, write, read.”
It is not just testing that matters, it takes well rounded skills from the entire life cycle that ensures we deliver clean code. Design and code to build systems, troubleshoot and support, write documentation and read other people’s outfits to become a great software professional!
About SmartQA The theme of SmartQA is to explore various dimensions of smartness to leapfrog into the new age of software development, to accomplish more with less by exploiting our intellect along with technology. Towards this, we will strive to showcase interesting thoughts, expert industry views through high quality content as articles, posters, videos, surveys outlined as a SmartQA Digest weekly emailer. SmartBites is soundbites from smart people”. Ideas, thoughts and views to inspire you to think differently.