Cognitive Computing: A Reality in Quality Engineering (QE) Technology Trends
Today, organizations are constantly innovating and reinventing their offerings and themselves with the sole aim to make the lives of their customers easier. Currently, at the pinnacle of this drive to innovate lies Cognitive computing, or as we call them ‘Super-Intelligent Computers’. Personal Assistant Apps such as Apple’s Siri, intelligent machines like Google’s autonomous car, Amazon Go for Smart shopping and even Facebook’s face recognition feature think, mimic and behave just like humans. These algorithms thrive on data; the more the quantum of data you feed into them, the smarter they become and in turn, more accurate the results. Cognitive computing today is bringing about a disruption in the Quality Assurance Lifecycle, and are impacting every phase; powered by automation,, it is enabling organizations in better decision making, analyzing historic data and reports to predict or forecast future results.
Let us now try to understand what Cognitive computing is and how does it impact Quality Engineering (QE).
Cognitive computing is a product of Artificial Intelligence (AI). AI is the theory and development of computer systems which are able to perform tasks that normally require human intelligence. AI has been around for quite some time (since 1950s), and has been evolving ever since. Today, enterprises have to deal with large quantities of unstructured data across varied domains, increasing the scope of application of AI.
What does cognitive computing entail?
To answer this question, let’s focus on the major facets of cognitive systems:
- Machine Learning: A process of discovering varied patterns or similarities across data which can be used to make meaningful predictions.
- Natural language processing: The ability for a system to understand or interpret ‘text’ or ‘parts of text’ much the same way humans do. This can be used to analyze customer feedbacks, creation of automation scripts etc.
- Human interaction: These days, wearable devices, loyalty programs, social networking etc. are transforming into critical sources of data, enabling systems to gauge human emotions, sentiments, purchase patterns which are proving to be vital.
- Self-healing: The ability to detect a problem or an anomaly in a system, even before it has occurred, and guide the system to take preventive and corrective measures.
- Deep Learning: Defined by the use of face and voice recognition techniques leveraged at several places. For instance, Facebook uses deep learning to learn about a person’s identity, and provides suggestions for photo tagging. Another good example is Amazon. The online retailing behemoth leverages AI coupled with deep learning to give their customers the 'Just Walk out Shopping' experience.
Impact on QE
Cognitive algorithms, if infused into the different phases of the software life-cycle, has the ability to alter it completely and result in enormous benefits to QE from a cost, time and quality perspective. Use cases include:
- AI will disrupt the way developers build applications, and can lead to faster software development. Self-learning and healing will be the norm soon.
- The cost spent on QA, historic project data such as efforts, can be fed AI based systems, resulting in better estimation of Cost of Quality across the Software Life-cycle. The more such data an AI system processes, the better its ability to prediction.
- AI can suggest better strategies, automate test design completely and increase test coverage; the ability to predict which modules or systems are likely to have more defects.
- The defect dump of projects containing data on root cause, phase found, severity etc. can be fed into AI systems which can help effective calculation of critical Defect Metrics such as Defect Removal Efficiency (DRE), Defect Rejection Ratio (DRR) etc. The defect patterns can thus be predicted for the next release of the projects, using older data.
- AI systems can use production data and analyze which procedures and functions are being used regularly. Based on this, for new requirements, they can predict what change would be required in which modules, leading to reduced Regression Test case design and execution efforts and time.
- Chatbots have become the 'in- thing' for interactions with consumers, and helps gauge feedback, and encourages communication within the Enterprise.
Now coming to the million dollar question - can these intelligent systems replace humans someday? Well, the aim of AI is not to replace humans but only to augment them. For instance, in the QE&A world, when automation became easy to implement and in turn popular, it was rumored that a lot of people would lose their jobs. However there are some tasks for which humans cannot be replaced such as designing the automation framework and associated automation scripts. Hence, the role of testers evolved from being manual testers to automation experts. So, it is very crucial for humans to expand their skills in the direction where the industry is moving.
It is not always the case that AI systems work in the right direction. If not fed with the right data or tested thoroughly, they are bound to falter as well. A very fresh example is that of the debacle of Microsoft’s teen girl inspired chat-bot named ‘Tay’, which had to be removed from the site a day later due to malicious content and data sources. When it comes to the applicability of AI systems across industries, there are infinite scenarios, and each of these would require rigorous amounts of testing, coupled with use of tools and analytics. The integration of new code based AI systems with the traditional code could also face several integration issues. So, one can easily conclude that these systems can’t replace humans completely.
Hence in short, AI systems are very much the need of the hour, but they have to be tested very patiently with all possible scenarios, else they can hinder with the privacy of the users- a worrisome issue that could have drastic consequences.