 Hi everyone. Welcome to my talk. So today I'll be speaking about future of artificial intelligence and machine learning in software testing. But before starting with that, I wanted to introduce myself first. I am Shreya Sthana working as a senior software quality engineer with Red Hat, and it's been around 2.5 years since I am with Red Hat. So I have been involved in many testing tool like Selenium Cypress Lemon G-Scake, including the language Java script, Python, and so on. Apart from this, I also do have some techno-functional skill related to the ERP application like Workday and Oracle Cloud. So that's pretty much about myself. Let's start with the presentation. Okay. So this is the agenda. So we will talk about what exactly the AI ML and the deep learning is. We will talk about AI history, why we need the AI in software testing, the problem, the solution, the tool, what is going to be happened at the back end of AI-based testing tool, benefits and the challenges of AI and AI current application. So let's begin with the presentation. Okay. So this is the picture which having no relationship between the AI, machine learning, and the deep learning. So AI is the development of computer system that performs the task which typically requires the human intelligence, such as recognition of speech, recognition of image, and understanding the natural languages. Also AI is having, it is a broader field that contains the many surf field like machine learning, deep learning. So let's talk about what exactly the machine learning is. Machine learning is all about training the computer algorithm so that it can find out the patterns from the data. It's basically the main aim is to create a model that can identify the pattern and can make a prediction and the decision based upon the data that they haven't seen before. Now next is what is deep learning? Deep learning uses a neural network and it perform the task which is a little complex like recognition of image and speech. Apart from this also it simulates exactly the same way as the human brain works. So this is all about AI, machine learning and deep learning. Okay. So in this particular slide, we will see how AI came into the picture and how it transform into the different sectors. So I have divided this slide into the three generation, first generation, second generation and the third one. So first one is all about large data set. So in the online fraud detection and suspension, AI worked on analyzing the history of users and also it analyzed the history just to provide the risk rule. And user can also create the risk rule by allowing and blocking some user section. And also the users can flag fraud and the non-fraud activity, so as to avoid the false positive and to provide the better risk solution. Now let's see how AI help in the supply chain management. AI help in the supply chain management by, it help in telling the accurate inventory management, it helps in predicting the demand, it helps in understanding or letting the users know the shortage and the excess of an asset in the store at given point of time. Now let's talk about the second generation. So second generation is all about studying about the human being. So while starting the human data, AI created social media platform and the recommendation system. So creating a smaller recommendation system was a easy challenge but creating a big recommendation system, which can handle millions of users and millions of data was a massive development in the terms of AI. Now let's move to the third generation. So now third generation is all about creating a machine that can make a human being. But I can say that we are still very far away from the true humanoid. Now the question is what is next after 2020? So basically what is next after 2020 related to the software testing world? So before starting with why we need, let's understand how AI help in the software testing. Let's see why even we need it. So AI automation needs sustainability. It means that your automation script needs to be sustainable, it needs to be maintained, it needs to be refracted, and it needs the same attention as a business related code. Decrease the maintenance effort, it means maintenance is a time consuming and it is costly. So this can also be the challenge of implementing the software testing without the AI. Now the third is root cause analysis is a time consuming and annoying. I completely agree with this because let's take an example that your test cases are running in the CI pipeline and your report got generated. And once you open the report, you saw that many of the test cases or you can say 50% of the test cases are failing due to the same reason. So why we need to invest our time in fixing same failure for so many test cases? So these are the challenges which I saw right now having in the software testing without implementing the AI. So I started doing some research and got to know that there is a survey which tell us that 75% of the test automation script are failing due to either bad locator strategy and locator change. So this is the problem which I identify. Let's move to the solution but before moving to the solution, let's talk a little more about the problem. Okay, so now what exactly the problem is? Yeah, so problem is unable to locate element. That is exception, no such element. Okay, I think many of you have already familiar with this exception but still I wanted to explain a little more about it. So what exactly the no such element exception is? This kind of exception occur when why are you creating any UI test cases and it happens when there is an application change and the locator change or any property that has been changed for a specific application. So now what is the solution? Solution is the self-healing in the test automation. So self-healing in the test automation is one of the technique that has been provided by the AI based testing tool. We can see that nowadays we have a lot of tool in the market which is based upon the AI, I mean the AI based testing tool. So the user might be confused to choose one of them according to their requirement, right? So, but before seeing the tool, let's understand what exactly the self-healing is. It is an automation of an automation. So you have an automation and there is some change that has been application, I can say application change. So what AI based testing tool do is it heal your automation script, like it creates the automation based upon your automation framework. So that is why it is called the automation of an automation. Okay, so now it is based upon the AI algorithm. So I mean this will going to be talk little more detail in the later slide. It stores information about the application. So it means that your AI based testing tool stores about your application, about your system and about your objects. Test heals the automation script. We have already saw that. It helps in reducing the maintenance. So yeah, it helps in reducing the manual effort which can reduce the cost and which can reduce the time which involve in doing the manual task. So this is all about the self-healing which is provided by the AI based testing tool. So we have a lot of tool in the market that I have already told and it is quite confusing for the users to choose one of them. So don't worry about that. I will, I'm not going to share the one of the best tool but we will gonna talk about how many tools we have in the market. So we have the Mabel, we have Testim, we have Tricentis and we have Hellenium. So I'll take or maybe pick one of the testing tool in order to let you all understand how the AI based testing tool work. So I just chose Hellenium. It is random, not any biasing, you know. Okay, so Hellenium. Let's talk a little about what exactly the Hellenium is. It is an open source. It is based upon the Hellenium Manjava. So it is having a prerequisite that if your test cases is Selenium and if you're writing the test cases on the Selenium which is Andjava, this is a prerequisite and also like if you're using Selenium and Python, then you have to use Hellenium proxy. Real-time engine. So it doesn't require to install on any server. It just tied up with your test cases and it runs automatically. So installation is very easy, integration is very easy. The next point is integration. So we just spoke about it. Integration is very easy. Machine learning algorithm. So behind the AI based testing model or tool, there is a machine learning algorithm which is running and it provides you the solution, right? Integration done on the web driver IO. So in the image, you can see that I have created a Chrome driver and with the object of Chrome driver, I have tied up self-healing driver. So this is how that you have to integrate your Hellenium object with your Chrome driver. So it is very easy to set up. So now I have chosen in Hellenium to let you all understand how the AI based testing tool work. Okay. So this is an example which I have prepared for you all. The monitor is considered as your test framework. We have a Hellenium jar, we have a Hellenium backend and we have a UI on which we will go into to the automation. So in the normal scenario, what happens is when you write your script, it try to find the element, okay? So we will try to automate the password. Password is having an ID, MP password one. And your automation is also having fine by ID by MP password one. So till then we are good to go. So what happened is your framework will going to find this element on the UI and UI respond that, okay, cool, element found. So now what exactly happened when Hellenium come into the picture? It, your script, your framework interact with Hellenium jar and it tells the Hellenium jar that we found this locator successfully. And now further, Hellenium jar will interact with the Hellenium backend and it will save the locator which is there on the UI. I mean which is running successfully. Now one climax come into the picture. We have a version, new version and related to the naming convention of an attribute ID. So now your application password field ID is changed from MP password one to password. Now in the regular scenario, what happened is you go to your script and you keep on changing the locator. Let's suppose if you have a 50 locator changes then you have to do the same task 50 times, right? You will go your page object and you will, you know, locator file and you will change the object 50 times. So, but now you don't have to be worried about that because we have a Hellenium in the picture. Now what exactly Hellenium will do is, okay, your ID is changed to the password. Now what Hellenium will do is it again try to find the element and without the Hellenium it will try to find the element and it will say that no such exception which we have already saw that if there is a kind of locator change then these kind of exception come. I mean, I think testers must be familiar with this kind of exception, that we have to go through this exception quite frequently. Okay, so once this exception came what our automation script do is it again interact with Hellenium jar. It tells the Hellenium jar that, oh no, this time we are unable to find the locator. So now what Hellenium jars do, Hellenium jar again interact with, you know, Hellenium backend and it tells the page state and now the next thing which happened is between the Hellenium jar and the Hellenium backend. So between these two there is AI algorithm which work. They work the AI algorithm and Hellenium produce a new locator and this new locator is called the healed locator and this Hellenium jar, you know, provide this healed locator to your script and inside the script you can see that ID is now being upgraded to password. Okay, so now manual intervention is cut and now it again try to find the element and the element found. So this is the architecture that has been set up behind the AI based testing tool. Okay, so we have talked about the problem, the solution, the tool. Let's talk a little about benefits and the challenges that we have for using these kind of AI based testing tool. So it improves the test coverage. So AI analyze a billion of amount of, you know, data and while analyzing those data, it find the defect that may go undetected and that may go undetected while doing the testing, you know. So that is why it increase the test automation coverage and it also try to decrease the rate of risk which might be, you know, sleeping through the cracks. Faster, so its execution is very fast. The defect detection is accurate and it also have a test plan and the execution which is quite better. Self-feeling item, this we have already saw that it self-feel, it provides one of the mechanism which is a self-feeling predictive analysis. Okay, so while analyzing the data or while, you know, fetching the data, AI predict the, like a future potential issue and it delivers the same to the testing team so that a testing team might be alert before it can, you know, be the bigger problem while doing the release and so. And also it provides the big data insight to optimize the testing strategy. So these are the, you know, benefit which I saw by using the AI-based testing tool. Now let's see the challenges of using the AI-based testing tool. So, yeah, it requires the specialized, you know, specialized skill and the expertise to handle these kind of tool and it related to the infrastructure and resource. So AI is computationally very expensive and it is estimated that to implement AI model, it is getting, you know, doubled every 3.5 months from 2012 to 2018. Maybe that is why it has been used by the big giant company only. Difficult in choosing the right tool that we already saw that we have so many tools in the market. So it could be quite difficult in choosing the tool which is right for you. Data management and quality. So AI produce a sample data but before going to the production, it requires the high quality data. Else, developer has, you know, maybe has a risk to garbage in and garbage out. So this could also be the challenge and the security and the privacy concern. So I think this is very, very much important because if I talk about the organization, so it could be possible that organization doesn't want to share their data, right? And we know that AI-based testing tool fetch or stores your application data, your system data, your object data. That might be the security risk for any organization. So this is the biggest challenge for using the AI-based testing tool. So we saw the benefit, challenges. Now the current application, virtual assistant. So we will talk about how the AI is been, you know, used by the other different, you know, industries. So in order to use in the virtual assistant like Google, Alexa, Siri, these are using the AI algorithm to understand the human command and to provide the, you know, information and to perform the task. This is how it has been used in the virtual assistant recommendation system. So like Netflix, Amazon, Spotify, what these are doing is these are fetching the human data and it try to stores the preferences about the human and according to that preferences, it suggests or recommend you the song, the movie, the product. So this is how it has been in the, you know, recommendation system as well. Autonomous vehicle. So company like Tesla, these are, you know, using the AI deep learning and the other algorithm to create a self-driving car. So what does the self-driving car do is at the back and they are also using the deep learning, machine learning and so many complex things, you know, to understand the surrounding and on the basis of that surrounding, they take a decision that is a driving decision. Natural language processing. So AI powered natural language processing like your Google translator, your chat boot. These are also again using the AI algorithm, AI ML and the deep learning. Fraud detection. So while analyzing a lot amount of data, AI catalyzed the fraud and the non-fraud activity by analyzing a million data. So for this also, AI can prevent your fraud detection. Example is if you are using your banking phone and it capture your live location that on this location, you usually log in your internet banking or something like that. But if you log in through some other country or some other location, it, you know, send you the email or maybe the text that on this location, it is trying to log in into your internet banking. Is it you or not? That is mean that at the back end, AI is storing your information about how you do the things. Basically it categorize fraud and the non-fraud activity. So it is also helping in detecting the fraud activity. Healthcare diagnosis. So AI now has been used in the healthcare industry as well. So it used in analyzing the x-ray, analyzing MRI, analyzing CT scan in order to find out, you know, the different diseases like cancers and other anomalies. So it also helped the radiologist in their diagnosis. Personalized advertisement. So personalized advertisement like Facebook advertisement, Google advertisement. These are targeting the advertising campaign and according to the user preferences, they are suggesting, you know, the advertisement. Financial trading. So AI algorithm also help in analyzing the news, analyzing the financial data and in order to track or maybe to, you know, help in detecting the stock market or something. So that is why it is used in financial trading as well. The last one is customer service chat boot. I think nowadays many organizations are using this customer service chat boot in order to cut down the manual intervention in order to provide a common query and the instant customer support. So these are the different industry you can see nowadays are using AI. My presentation, I wanted to share one thing with you all, you know, while creating this presentation, one constant question was running into my mind and that question was, will AI going to replace software engineers? So anybody in the room who is having the same kind of question like me, maybe they can raise your hand? Okay, pretty much I think, okay. So according to me, I think this will never going to happen because in 1977 or 1978, there was a thing called program generator that came into the picture and people were saying that this will going to take away all youngsters job. But this never happened. You know the reason behind it? So the reason behind it is a human brain. I think it is so flexible and so compatible and you know it adopt the thing so quickly that nothing can replace the human brain. So what happened is people started solving the bigger and bigger problem which these AI or this program generator were unable to handle it. And you know, so that is why AI, ML, so deep learning, these are good, we should welcome it. We can consider this as a base and on that base we can show our creativity, we can show our smartness, we can show our innovation. So with that positive note, I am done with my presentation. Let's move to the Q and A. Anybody's having any question? Yeah. If nothing you have changed on the page? Yeah, so it will going to handle that thing also. It can give you a notification or sort of message that this particular thing has been changed because anyhow AI analyze your attribute which is attached to the element and if there is some change, edit, delete or add, it will going to alert the user and accordingly it will modify. Because in your current code or maybe current test automation script you have not written that particular field or you are not using that particular attribute, obviously it will not going to add that in your framework because might be that it is not a functional test that you want to do, right? But still this will going to alert the user or populate that this particular part has been changed or added and now it is added, now it is up to you that you want to add or not. So yeah. Yeah, please. Okay, so our script is good but still we are getting the error. Might be that it is not the locator error. Yeah, so related to the self-healing, self-healing will not going to help this up because self-healing is all about locator changing the if there is some modification has been done on the locator part. So it only handles the locator part but later on like if something else has been changed so that is might be the different feature which can be provided by AI testing tool or not. So as I told in the previous slides that we are having a lot of AI testing tool in the market and different, different testing tool is provide the different, different mechanism and the things it provides. So now I just choose one of them and they are providing the self-healing. It might be that another tool is providing this mechanism also which you are saying. So it is up to user that how you are doing and picking up the testing tool. Yeah, please. Okay, so the question is asked is if there is some kind of change that happened on the application. So AI will going to change it at runtime only or after the execution it will change something, right? This is the question? Yeah. Okay, I got your question. So the answer is it will ask that this is changed. Do you want to heal this? So if you do the yeah, I want to heal, it will heal, else it will not. You have to decide the solution. It could be like it possible that if you want to always ask the AI to heal, right? Yeah, but I think this is a manual task that you have to do, okay, heal, okay, do not heal this time. So this is how that you have to handle. Yeah, so it might be in the configuration of the AI tool. AI tool, it could be the separate configuration you can do. Let's skip this part, focus on this or something like that. So it is all about the configuration of AI-based testing tool. Yeah, somebody else was, yeah, please. Okay, so AI-based testing algorithm, what exactly the testing algorithm has been used behind it, right? So I think I need to do some research because I didn't know what exactly the algorithm has been used as a tester. We just wanted to show that it provides you the heal locators or something that has been populated. That is much deep into algorithm, deep learning and so on. So that might be, we need to look up. Somebody else was there, Raka. Mobile, I am unable to understand. Can you please just repeat mobile implementation of AI? Yeah, so actually it tells you all the data, but it cannot tell you that, it tells you or make a prediction about specific to your application because it got integrated with your application. So it fetch the data about that system and provide you the prediction, the future prediction related to that system only, like that application only. It cannot tell you that, okay, this might be a problem in the mobile or something like that, on which application you integrate, it only tells you about that. Yeah, anybody else is having any questions? Intermittent issue, like not related to, so it comes under the Flaky Test case. Yeah, exactly, false failure and the Flaky Test case. So if you're using any reporting tool, it can easily tell you that, this is a Flaky Test case and it doesn't count in that particular part. Yeah, anybody else, any questions? Yeah, please, I can't hear you. To automate, it cannot automate from scratch. Surely it will not, but it can help you in eliminating the things that we do after we have automation script ready. So for the first time, you have to do, but after that we have tons of things to do, we as a tester do, like maintaining a script, doing some changes to the script, you know, these many things. So these part of things is been handled by the AI, not that from the scratch. Most welcome. Anybody else is having any questions? I think we are good.