A mashup of three articles published as part of SmartQA digest over the last few months that outlines mindsets needed to brilliant code, tips to produce clean code and habits to speed up evaluation
Continue readingTWO tools to aid smart understanding
T Ashok @ash_thiru
Summary
Doing SmartQA is about great mental clarity of visualising what is intended, what is present, what-may-be-missing that could-be added to enhance the experience. The intent to seek this clarity result in good questions that help us understand better and therefore test well is the objective of this article. Two tools for the mind “Landscaper” and “Deep diver” that can help are outlined here.
Prevention occurs due to good understanding. Detection occurs due to good understanding. Understanding of what is needed, what is stated and what is implemented.
Doing SmartQA is about great mental clarity of visualising what is intended, what is present, what-may-be-missing that could-be added to enhance the experience. The intent to seek this clarity is what one drives to question well, build better, prevent and detect issues.
The act of testing is really discovering what-should-be-there but-not there, what-is-there but not correct, what-should-be-there but should-not-be-there. Finally it is about understanding the impact of something that been changed, be it in the system or outside the system.
The key to this is understanding the product/application/solution. Understanding from different points of view- end users, construction, technology, environment, development & deployment.
Smart Understanding is about scouring the ‘landscape’ to understand overall context and the static structure of how it is built and then ‘deep-diving’ to understand the intended dynamic behavior. Landscape and Deep dive are great tools for the mind to explore the system rapidly to do SmartQA. The associated picture illustrates these two thinking tools well.
Tool#1 Landscaper
Given an entity to test, be it a small component or a big business flow or the entire system, the first thing to do is examine it well by performing a ‘landscape’ .
- Start with understanding who the end users are, then identify the entities (the system offerings), the connect to who uses them and how much and then go on to figure out as to what they may expect from these.
- Now switch to a deployment view to understand how is deployed and other systems it is linked with.
- Now from the construction/development point of view understand what is built new (via fresh code or glue code that integrates components) and what is being modified.
- Continuing to look from the structural view, understand how these entities may be coupled, to appreciate the interactions and what may be affected due to the new/modified entities.
- Go a little deeper to understand the system is is architected and technology stack(s) used to implement this.
What we are doing is doing a tour from different points of view and attempting to understand the ‘whole’. During this process many questions arise which enables better clarity of problem.
Tool#2 Deep diver
Having a good holistic picture of the system under test, it is only natural to to dive deeper to understand in detail an entity. Deep diver is the second tool that helps you do this.
- First understand the various inputs to this entity. What are they, where do they come from, what is their format and spec, rates and volumes too? Are there any interesting values ?
- Next, understand what the various outputs are and may be. What are the normal outputs and what are those in situations of error? Do check if ‘all’’ possible outputs have been indeed been considered.
- Finally it is time to understand the intended behavior by discovering conditions that transform the inputs to intended outputs. Note that some of the behaviour conditions could be based on system state and not based on inputs only.
Smart understanding is key to doing less, doing well and accomplishing more. This is a seriously mental activity and doing it well has great paybacks! The two mental tools “Landscaper & Deep diver” enable a logical approach to decomposing the system(i.e. problem) well so that you have great clarity on what, how-to-do and how-much-to-be-done.
20 approaches to Smart Test Design
This article outlines twenty approaches to smart test design based on seven views of user, logic/analysis, construction, test, experience, operational and evolution.
Continue readingFIVE *MORE* thoughts on ‘Doing SmartQA’
What does it take to do SmartQA? Thoughtful pause, multidimensional thinking, sensitivity and awareness and designing for robustness & testability. A short crisp article continuing from the prior article outlining FIVE MORE thoughts, on what it takes to do SmartQA.
Continue readingFIVE thoughts on ‘Doing SmartQA’
What does it take to do SmartQA? How can I do less and accomplish more? What parts of this are human-powered & machine-assisted? A short crisp article outlining some thoughts, SIX for now on what it takes to do SmartQA.
Continue readingSeven consecutive errors = A Catastrophe
“A typical accident takes seven consecutive errors” states Malcolm Gladwell this notion is reflected in the Mark Buchanan’s book “Ubiquity”. This article dwells upon ‘How do you ensure that potential critical failures lurking in systems that have matured can still be uncovered?’
Continue reading22 tips to smart dev & test
TEN tips for a developer to enable delivery of brilliant code and TWELVE tips to become a modern smart tester is what this article is about. Curated from two earlier articles that I wrote.
Continue readingA quick primer on AI
This article is curated from SIX articles as a quick primer on AI. Starting with glossary on AI, it delves into tacit knowledge as codified via ML going onto to understanding the difference between ML & AI. A quick peek into deep learning and challenges of explaining the patterns ending with a interesting piece AI written by an AI program
Continue reading25 things I expect of a great tester
Here are 25 things I expect of a great tester like (1) Be disciplined, but stay creative.(2) Ask questions, find answers…
Continue reading15 categories of tooling for digital test automation
In this article I have tried picture(ise) the landscape of the plethora of tools for testing software which has moved away from just testing to build-test-deploy in a continuous manner. Keeping the interesting visual I have listed the FIFTEEN broad categories of tools that make up the modern digital testing landscape.
Continue reading