 Welcome everyone to today's session on leveraging AI and APM automation runs for text and visual assertions to reduce effort and maintenance cost by Shannon Lee. We're so glad she can join us today. Just a reminder for the attendees, below you will see the chat icon. Please type in your comments there and post your QA in the Q&A section. Post your questions in the Q&A section. And without further ado, over to you Shannon. Awesome. Thank you so much for the intro. I appreciate that. I'm also really excited to be here and to speaking with you all. Again, I was mentioning earlier how I had some internet issues. So if I am coming off spotty or audio's coming off or anything like that, it might be related to my internet issues. So please bear with me. Hopefully we'll have smooth sailing. So again, my name is Shannon. I'm the Debbie Evangelist for Copaton. And today we're gonna just do a quick discussion on how AI can act as a top layer of APM automation to analyze text and visual assertions from a baseline manual session. So with that, we'll get into, for the agenda we'll go to a quick intro and then I will actually walk through the process with you all and open the discussion of as we talk through it. And then at the end, they'll be available for any questions that you might have for me and I'll be able to answer them for you towards the end. So again, if you have any questions please feel free to answer them to the chat or I'm sorry, ask them to the chat and then we'll get to them at the end of the presentation. So quick intro. So this is gonna be heavily around assertions and for those who may or may not be familiar with assertions, good to kind of get a refresher on what they are, why they're important. So this is gonna be from a script-based or programmatic approach. So what are assertions? They're validation steps that determine whether an automated test has succeeded or not. So they also help validate expected results to actual results and automation. And then this really just helps you make sure that you're hitting that acceptance criteria within your test case. So we all know where you have to meet certain criteria, certain business requirements. And so with assertions, again, from a programmatic viewpoint, we can implement assertions to make sure that what's actually happening is compared to the actual, or I'm sorry, the expected. And if yes, great at past, if not fail it, we need to revisit this test. So why are assertions important? So again, from a programmatic approach, they just drill deeper into your test case to make sure that all bases are covered. And then they also act as a checkpoint within automation. So as I mentioned just a moment ago, if the expected's not there, then fail the test. And then that being a hard assertion. So again, they act as checkpoints through your automation. And then this also just really helps eliminate false positives. So if you're running an automation test and maybe you don't have assertions, then if it passes, it may not have actually been a true pass. So assertions, when they're implemented within your script can help you make sure that pass is a true pass. So again, eliminates false positives. So again, this is from a script-based perspective. And then I kind of want to touch on scriptless assertions as what we're seeing in the day and age now with artificial intelligence. So script-based assertions versus scriptless assertions. So script-based, again, we mentioned how from a programmatic perspective you can fine-tune your automation so you can really drill into your test cases and to make sure you hit business requirements. And that gives you just more coverage and then more coverage gives you more confidence and again, eliminates those false positives. But there are a lot of downsides to script-based assertions. One of the biggest one is script bloat. So the time it takes and how tedious it takes to again, programmatically develop an assertion or code out an assertion, you could have a hundred lines of code specifically towards say visual assertions of making sure that I assert that this page is here, this layout is this size, this button is here, et cetera. A lot of times for Appium, especially there's either those who will develop their own kind of homebrew visual assertions or you can use other programmatic tools like Apple tools for visual assertions as well. And again, that can just be a little tedious, very hard to maintain. You end up having script bloat of a hundred lines of code trying to make sure that your test cases, your automation is hitting what it needs to hit. And also very hard, again, hard to maintain. So imagine the next release, your page changes and then all of a sudden all your assertions that you just worked so hard on are blown out. So now we're seeing the day and age of artificial intelligence really coming in and helping automation efforts, specifically from a mobile perspective. So Appium is phenomenal with mobile automation, but of course any automation has its downside and there hasn't really been time compared to web-based for mobile automation tools to really catch up to par with the latest versions that are released, all the different biometrics that devices can do. Release has happened so quickly and versions are released so quickly that it's really hard for automation tools to play catch up. So this is where we really see the benefit of artificial intelligence to help us play catch up in the mobile automation game. So some pros to scriptless automation or I'm sorry, scriptless assertions. So instead of actually asserting, so we're saying assert equals or I assert this from a programmatic perspective, it's actually more baked in to the artificial intelligence engine that's being worked on. So let's give you very fast analysis of metadata. So again, you don't have to actually code it out. If they're baked right in and they'll bring to the forefront for you any issues or discrepancies along the lines of what assertion you're implementing. So say text or a visual assertion. And then they also, they do the same and allowing you to gain that confidence and coverage in your automation efforts without having to maintain it or without having to take X amount of hours to actually code it out yourself. So again, that just very quick, easy analysis, easy for you so you can move on to more important things that is additional automation for your mobile application. The only downside to scriptless assertions is that you do have a little bit of loss of that granular control. So again, from a programmatic perspective, you can really drill into your test case. From scriptless, it's more of, as this presentation will go into it more at a top layer, so more from UI down. So you don't have that ability to really drill into your test case. It's again, it's more just from a top layer. So with that, I'll do a quick walkthrough and I'll show you. So first to show you, I have my Appium code right here. This is a very simple one. So I just pulling up an application, doing swipes through it and exiting and that's just about it. If I wanted to do visual assertions within the Appium code, within the Appium script, again, that's gonna be just more lengthy and lines of code that I myself would have to again, code out and develop. So some things to set here. So with the scriptless assertions that Coboton offers, the only thing that you'll need is one to run a baseline manual session. Well, that's not a manual. You can actually import your Appium script, run that on a device and now you have your baseline run. So I have done just that with my Appium code and here I've set the session ID and then I've also set visual validations true and text validations true as well. So let me show you what, from a manual perspective, what that looks like. Again, this has already been done in Appium script but just for simplicity's sake, wanted to quickly show you all how the actions look so that we can then look at the assertions. So I'm just gonna pull up a device on Coboton and install the application that I am going to be using. Awesome. And so again, my script, all it's doing is just swiping through this application and that's it, but I wanted to show you, so my XMata lines of code, I'm doing just that. We'll exit this. What you can also do is what I've already done is you're able to go back to me. I kicked this off on additional devices. So we have our device bundles or our top five global devices and so again, prior to this presentation just for simplicity's sake, it's only 20 minutes, a lot of time. I imported my Appium script, ran it on a device and then I kicked it off onto additional devices so that the automation, again, at the top layer, it is analyzing all the metadata from one, the Appium script itself, the manual session, the script-based session and then two, running it on additional devices and also gathering metadata from these additional devices to then be analyzed based on a text and visual assertion basis. And like I said, I have this. Okay, so this is again my Appium script that I ran on the device and then again, kicked it off on multiple devices and here it will show me my test steps that we did so my script has it just swiping through the application and we can go to assertion overview and here it will go ahead and bring up any text assertions and visual assertions and any discrepancies along with that. So again, the emphasis on this is that I myself do not have to programmatically create these assertions or code in these assertions. The artificial intelligence engine that again sits on top of the application as you're running it on a device will collect that metadata for you. Well, I collect the metadata on additional devices as well and then just analyze it and bring it to the forefront for you and it's far faster and easier than me having to actually code it out myself from a programmatic perspective. So I just want an emphasis on how easy it is, less tedious and less maintenance required to implement text and visual assertions based on artificial intelligence by helping the Appium script that I had originally coded out. So over here again, we can see text and visual so we didn't have any off text discrepancies but we did have differences of color between devices. So between the Galaxy S9 and Android 9 there were color differences and so it'll bring again to the forefront for me and I can go ahead and resolve these or I can create a JIRA ticket if there is a defect in place and go ahead and send that to whoever's on the team to start working on that. And then there are also the visual assertions as well. They'll tell me on which devices, the visual differences. And so for example, this has the sign-in is far larger than the sign-in on the right. And again, I can go and adjust this to help train the AI engine or again, if there's a defect at hand create a JIRA ticket, create a tracking ticket what have you and send it to the team to take a look at. Curious to see what the other, I think these are just a lot of sizing differences as well. But with text again, it can show you the any text assertion. So from a programmatic perspective I'd literally put in assertion equals and then whatever you're gathering from or whatever that button might say. So say if it's a login button I'll say assert equals login or text assertions. And again, it seems so minuscule but that can really tack on a lot of time to your own automation efforts. So having the ability to utilize an artificial tool to help you with that is will get you so much farther. And again, you'll be able to achieve a lot more automation efforts utilizing your Appian scripts. And then with visual I'll show you layout and structure as well as any font size differences based on more recommendations of what are the best font sizes that as more appealing to your application. So that is really all for my presentation. Again, I just wanted to show you how artificial intelligence can really help your automation efforts even from a script-based perspective. So even if you're leveraging existing Appian scripts or soon to come would be the more native frameworks like X UI test and Espresso. It can be so tedious and hard to maintain and end up in script bloat when you're trying to programmatically do text and visual assertions. And so when you're able to use an AI tool like Covaton, it will essentially do the hard work for you and analyze your application and bring to the forefront for you any discrepancies. And so again, that just really helps facilitate your testing efforts. You don't have to spend five hours coding out an automation test for assertion. You can have an AI tool do it for you and you can use those five hours for a more important work that is maybe automating your next test case. So that is all for me. Do I have any questions from anyone? And I see the chat tool, let's see. Oh, okay. Yeah, so open to questions if anyone has any questions around how AI might help Appian scripts or anything along the lines of assertions primarily text or visual assertions. And just a reminder, people can use the Q&A tab to post questions. You can also raise your hand if you want to actually speak it out. Okay, we have a question. So does it support desktop application? So if you wanted to use your Appian script for a mobile device that is utilizing a browser, you may do it so, but it's not going to be from a browser on a desktop. This is more for a mobile perspective, mobile device perspective. And then how do you add the expected results? So my baseline session that I ran prior to, so I had my Appian script that I had developed and I ran that on a device. The artificial intelligence will collect the metadata from that manual session. I'm sorry, from that session itself, not necessarily manual, from a script-based perspective session. And that is going to be your expected. So again, you do have to run a baseline session prior to utilizing text and or visual assertions. Any further questions? Okay, we're getting questions in the chat. Yeah, I see it. So how can we integrate the Kaptan with Appian? So on the Kaptan platform, you can actually import your Appian scripts and run it on any device. So it's as easy as just importing your script itself. We do have, and I'll show on the devices, you can also set automation settings and then with your frameworks to Appian, your preferred language that you're working in, and that will help set your desired capabilities as well from the portal's perspective. And with Kaptan, we have a public cloud that houses, we have up to 400 devices. And then you can also have a, if you are in need of your own devices, we are able to host that via private cloud or locally for you, but still utilize Kaptan. Okay, we still have a minute to go. We can take maybe another question. And one thing to add actually, you can do it from the backend too. So if you wanted to only use, if you're more of a command line or right from your IDE kind of person, you don't have to actually navigate to the portal, you can set your baseline session within the Appian script itself and then actually just call Kaptan API endpoint to kick off the text and visual assertions. And that will run it for you also. All right. I don't think we have any further questions at the moment. Thank you so much, Shannon, for sharing your experience with us today. This session was brought to you by Kaptan.