Aditya, a Test engineer who is working on a customer experience-focused mobile app, finds that the automation scripts written to Test the new login screens and the Test automation framework have failed overnight. Aditya, who works for a leading retailer in the US, takes the help of a Test automation bot. The bot – an autonomous program – that underlies the automation framework put together by developers and Testers has already taken screenshots of the failed logins. It has also recorded key environment and application parameters at the time of the failure and mailed the location of these files to Aditya for review. Upon further examination, Aditya finds there is a bug in the application. He makes the required entries into the organization’s defect management tool in natural language. A defect management bot analyses Aditya’s findings and intervenes to inform him that another such problem may have already been detected earlier. Based on past actions, the bot also provides Aditya a list of potential resolutions that mirror this error and also offers “self-healing” options to resolve the issue. Some of the options provided to Aditya are: unauthorized user names and passwords used by the scripts, critical Test Data services not running at the time of the Test execution, the Web server going down due to excessive traffic.
After evaluating the options, Aditya realizes the problem at hand was similar to an earlier one where two important Test data services required for execution of his scripts were not running. He clicks on the “fix” button next to the solution provided and waits for the Defect Management bot to communicate with the required Infrastructure Resolution bot to bring back the stalled services. Once the services are brought back, the Infrastructure Resolution bot passes along the success message to the Defect Management bot, which then informs him about the resolution of the issue. The bot then prompts the user to check whether the self-healing helped resolve the problem along with questions around what exactly he was doing.
The Test Engineer re-runs the scripts and finds they are working. He then confirms the same to the Defect Management bot and provides information to the bot on what scripts he was running along with what actions led to the detection of the error. The Defect Management bot cross references the new information along with the “self-healing” solution to “learn” about the current problem and indexes it for future use. Any future entries that would be similar to this issue would be presented with this set of information and resolution.
Delivering quality @ speed
The scenario above is a great example of the marriage between man and machine through Cognitive Process Automation (CPA), Analytics, Artificial Intelligence (AI) and Machine Learning (ML) in the field of Quality Assurance (QA). We can see that the human was required only to make key decisions and fill in the gaps/intelligence required to resolve a real world problem.
Organizations across the board – be it retailers, banks, insurance providers, utilities or energy companies – are pulling out all stops to embark on the Digital journey and embrace software development. However, many of these organizations seem to lack the infrastructure (people, process and technology) needed to ensure that the outcome of Digital Transformation programs, such as omni channel initiatives (Web/mobile/connected device apps), are successful. Often organizations find that they are saddled with sluggish software development programs that are plagued with cost and time overruns and low quality products. These products have far-reaching consequences for organizations that require substantial outflows to rectify. For example, a large retailer recently spent a great deal of time and effort to correct quality issues of their mobile app which was making them lose out in the mobile shopping race.
New beginnings for QA
Typically, organizations have attempted to fix these issues by throwing more money and bodies at the problem. This results in the various project bulges in terms of cost and efforts. However, the remedy for this issue is to be smart about how the entire process is engineered. Although, many organizations today have embraced Agile and the use of practices such as DevOps, QA is an area that is often neglected. Although, software Testing,as it was done over the past two decades is possibly on its last legs, the practice of continuous validation in the software development process needs to be done more often. The scenario described above is one example of what can be done to provide the velocity and structure required to ensure quality throughout the software development process. It sure is time to brace for new beginnings in Quality Assurance.