T Ashok @ash_thiru on Twitter
SmartQA is a beautiful combination of thinking styles, a mindset of brilliance and minimalism, tech prowess, heightened clarity and great design and meaningful pauses, outlined as ten suggestions in this article.
#1 Embrace multiple thinking styles
Inculcate the deductive ability of a mathematician, creativity of an artist, mind of an engineer, value perception of a businessman, technical savviness, empathy, doggedness and nimbleness.
#2 Have a mindset of brilliant engineering
Step into end user’s shoes, architect/design robustly, inject code to aid testability, strive to test minimally, do test related tasks lightweight.
#3 Analyse well, exploit tools for doing
Much like the skill of a doctor to diagnose with exploiting the machines in the process. “Doing SmartQA”s a brilliant combination of “human powered and machine assisted” . The WHAT to-do is human while HOW-to-do is powered by machine/tools.
#4 Do minimally
Strive to prevent issues, embed testability, review code carefully, use smart checklists, write minimally, regress intelligently.
#5 See better, cover more, test less
Continuously see and assess product from multiple views – USERS, ATTRIBUTES, ENVIRONMENT, CODE, ENTITIES
#6 Pause to speed up
Periodically pause and analyse to be sure that you are staying on the right track, reflect on outcomes to ensure you are doing it right and efficiently.
#7 View system from multiple angles
View the system from internal, external, regulatory/compliance, operations, maintenance and release like code structure, architecture, technology, terms of behaviour, end users, environment, usage, standards.
#8 Be sensitive and aware
Be sensitive and aware to issues you encounter and potential causes of issues, after all issues creep in due to untold expectation, accidental omission, quiet assumptions, incorrect implementation,inappropriate modifications,interesting side effects ,deliberate abuse , and innovative usage.
Sharpen your senses to smell better!
#9 Design for robustness
Don’t just test, design system robustly. Codein firewallsto be disaffected by inputs, configuration/settings, resources or dependent code.
#10 Design for testability
Hook in code to be able to inject inputs to stimulate, check status, create traces/logs to debug/check-for-correctness, even embed ‘self-test code’.