Nourishing the Practice of Quality Assurance
Quality Assurance practices will one day vanish if we do not value the quality of the product we deliver to our end customers or if we fail to empathize with the mindset of the end-user, what they need exactly, and their pain points. Following is a list, which if followed could cause the demise of testing. We wish none of them ever become the general thinking of those in the software industry.
Testing is an art form that betters the software’s quality and its life, very similar to the effect that art forms like music and cinema have on our life, they improve the quality of our life and relieve us from the wear and tear of everyday monotony. We hope that the quality assurance practice lives as long as tech-savvy people have a certain level of expectation from the applications they use and those who deliver have certain standards to meet those expectations.
QA will vanish if testing is understood merely as a series of checks:
You can teach a dog so many tricks, but you can never teach it to fly. In the same way, testing is an art that can be done to perfection only if the person is curious to learn, experiment, explore, and do things differently. If a person was to have a blank mindset with zero interest in evaluating the quality of the product, think laterally, empathize with the end-user and think from his shoes, and does mere checking, he might find bugs, but never unearth the variety of bugs that are useful in improving the core quality and usability of the product that a skilled tester would. In the same way, it is a common myth that anyone can perform testing.
Developers have cognitive blind spots, especially when it comes to testing the product that they built. They have parental feelings toward their code that makes it impossible for them to approach testing with rationality/ without any sort of bias. Whereas a true blue tester would approach any code objectively and always keeps the end-user in his mind. He would approach the system as if he was a stranger, every single time, even though he knows every nook and corner of it. A great tester is one who possesses the capability to wipe off monotony and proceed with testing each build with complete freshness.
QA will vanish if you stop valuing quality:
Clients are demanding. But no client is as demanding as an end-user. Clients may be stern and might not accept slip-ups. But you know there is a wiggle room, always, irrespective of how exacting the client is. But that’s not the case with the end-user. Take, for example, you use a payment app, and in the time of need it fails you and hangs up on processing? Would you take the risk to use the app again? The answer is no. Why would you take that risk when the market is filled with so many other similar apps? This impact might be felt only when it happens across several users, and there is a significant drop in user statistics, but even a single subscriber lost is a business opportunity lost.
A company that takes a single user, a user who wanted to use your app, was using it but then had to forego because he or she was unsatisfied with the quality, is causing its downfall. A company not valuing the quality of the product is similar to a parent who isn’t bothered about the qualities his child is picking up. If a parent does not invest time in nurturing the child and teaching him values that will make him survive the world and be good to those around him and those who love him, then guess how the child would grow up to be. In the same way, a company that does not invest time in testing and curating the product will fail to match the expectation of the end-user and would have wasted all their money in developing a product that does fetch them the expected return on investment.
QA will vanish if suffocated:
When you lock a tester within a defined set of functional cases, within norms that a particular product should be tested in a particular way, with specific tools and templates, you are killing his creativity and thereby stunting the actual effect that testing could have on the quality of your product if allowed to flourish. An art form does not have any rules. Only when art deviates from the normal, it becomes unique and is remembered for ages. In the same manner, a tester should be allowed to break free of conventional thinking and pre-set procedures for him/her to come up with interesting scenarios and ideas that, in real-time, would be encountered for so many users who aren’t well versed with the product as a developer or a tester would be.
A tester should not be criticized for working on corner case scenarios as those scenarios might occur commonly for an end-user. Give a tester complete freedom, give him the means to implement his ideas, give him the time and space to think freely and wildly, be generous with the encouragement, make sure his creativity is unhindered, make sure the learning never stops and then you can sit back and relax as your product will be validated and quality assured as best as it could be.
QA will vanish if you fail to adapt and progress:
If you do adapt to the rapid pace at which technology is changing, you stagnate and disappear from the race. You and the work you do would find no takers and become outdated. So testers need to stay abreast of the emerging technologies/strategies that are taking your QA practice to the next level.
- Get involved in DevOps operations
- Cloud-hosted application testing
- Find ways to increase the percentage of the application that is automated and its integration with DevOps
- Continue to track the new evolvements in the tools that are being currently used. If the new features lessen your work, it is for the better
- Be on the lookout for new tools that emerge with better features that do the same job as the tools that you use currently but do it better
- If your organization has realized that decoupling of the client and the server is the way forward in designing web and mobile applications, then stress on the importance of API and services testing which will remain independent of the application in which the APIs are used, hence testing the APIs becomes more effective than testing each client individually. Get to know the best tools available in the market for API testing and build a framework that can accommodate any sort of APIs that are delivered to the test
- Apply AI/ML algorithms to generate better test cases, automation scripts, testing data and also test reports
- As a tester, learn to generate a wealth of data by analyzing the test result data that you have in your hands. Understand what could have caused failures, deep dive and look for root causes, coordinate with developers to make sure that it does not happen again and there are no impacts caused by the fix
- Use predictive modeling strategies to get absolute clarity on what, when, and where to test. Use data mining and probability statistics tools such as google analytics to determine your testing efforts
- Learn to be diplomatic and tactfully deal with situations. Do not be point-blank when you provide your statement instead make it a sort of constructive criticism. Make your reports detailed. Make the developers and product owners aware of what impact a specific bug could have on the application/end-user. Be sportive enough to collaborate and work for the greater cause, which is the betterment of the application that you are building
- Do not limit testing to only the software that you test. Try to test the food you eat, the cinema hall that you visit, the public transport that you take. Think about how you can better what you consume and enjoy and then apply the same to the product that you test. This works wonderfully and makes testers understand the product from the end-user perspective without them even realizing the same
- Always remember the basics no matter how much you evolve — be skeptical, develop a great eye for analyzing things, be clear in your communication, be persuasive, empathize with the end-user, identify and manage the risks in your product, prioritize and classify your test cases, be a good judge of your product and never compromise on quality
QA will vanish when it is starved:
A tester should know more about the product than a developer. It is an unwritten rule but a fact because developers build, but testers confirm whether or not what has been built is faultless. So isn’t it important that every detail that goes into building a product is shared with them? Only when a tester signals green you go live. So how do you reward those souls who have toiled, cramped their brains, taken the pressure and the possibility of being lynched if they miss something and that causes big trouble? First thing is to make them feel they belong, that they have contributed to the success of the product as immensely as the developers. Encourage testing practice.
Encourage those minds who have a knack of thinking differently to get into testing. Encourage those who are right-brained to take up testing as it is where they can make a better impact and love what they do. Destroy the thought that people who aren’t smart enough to write code are the ones who take up testing. They are two different beasts altogether and a master who tames one cannot tame the other.
If you have the intention for your product baby to be nourished carefully and grow up to be a strong and viable person, then you gotta pay the nanny tester well, give them freedom and space and treat them like family.
Author: Mohan Bharathi Srinivasan