Curiosity killed the bugs
“Why quality assurance starts with the right state of mind”
How often do we see the Quality and Assurance certified seal on technical systems and products these days?” This deliberate marketing tool is used to provide the consumer with comfort about the quality of the product or system. The consumer immediately expects perfection and assumes that the product or system have been developed according to global standards. This is definitely not a bad impression and often results in increased product sales.
Adding the word ‘engineering’ signifies that systemic engineering principles were applied in the making of the product. Ultimately, this increases consumer confidence and encourages the consumer to think: “Now that’s top-notch product development there!”
But if you really think about it, you have to wonder what quality assurance engineering is all about, anyway? It sounds fancy enough, but what is it, really? Some say that a Quality Assurance Engineer is a tester; a tester tasked with the responsibilities of rigorously testing the product prior to its release, with the ultimate goal of eliminating or rectifying flaws in the product. With my years of ‘QAE-ing’, I would say that this is a one-dimensional idea of a QAE. A QAE is someone with responsibilities of the former, but most importantly with a particular state of mind, which supersedes any testing technology, tool or strategy. A QAE is an advanced tester who thinks outside the box to discover obvious and ‘not so obvious’ vulnerabilities within a specific system or product.
QAE and Testers, Two mindsets, one goal.
Before going further into what I mean by that last statement, let’s dwell on the difference between a QAE and a tester. A tester ensures that the product behaves as it should (functional requirements), but a QAE’s goal holistically is to ensure that the product does not fall apart under extreme or unexpected inputs. A QAE goes beyond testing functionality and looks into areas such as security vulnerabilities, load and stress, system compatibility, recovery times etc.
A QAE isn’t concerned with how the discoveries in these areas are made (by discoveries, I mean unexpected or unwanted behaviour), so long as they are discovered. Discoveries can be achieved systemically or unconventionally, however an unassuming, curious mind is what the QAE should try to maintain mentally throughout the testing process.
Is it possible to fully define a test process? I don’t think that it is; testing methodologies evolve, with new testing methods being continuously developed. Testing cannot be conclusive in a product development process, and in my opinion, it is still a very important part (if not the most important ) of every aspect of development and innovation. Every system’s architecture is different and so different strategies and scenarios may have to be applied for testing, however, the mind state of the quality assurance engineer is where testing should begin. A curious state of mind — is the most important tool.
This curiosity should go beyond “breaking” the system. It should go further to explore the system, to assume the role of an inexperienced user, to assume that the system might be unstable. How this exploration is done is up to the organisation and tester, but with a curious state of mind, exploratory testing is more profound and effective. Exploring the system becomes easier when the tester applies creative thinking, is not blinkered by preconceptions, and at the same time automates the “discovered-by-accident” scenarios and the already-known scenarios (happy & unhappy paths).
A Winning Combination
A tester should be curious about how the application is to be developed and behave, before it is built. If one understands how a system should work, then one could infer numerous scenarios to challenge systems ahead of time. Knowing about the technology under the hood could help suggest insecurities/vulnerable areas that the technology is known to possess. And while curiosity might sometimes be frustrating for developers, combining this with a set of soft skills provides a winning combination to efficient and optimal quality assurance.
Nathan Maduakor is a Software Developer In Test Engineer at the The Telegraph. Follow him @nijero