Andy & Kevin 6 GENI and the Digital Twin

Kevin Surace explains GENIE's digital twin for software testing: an offline model of an application that lets you traverse states faster than live recording, revisit any state immutably, and explore behavior in parallel. They patented the approach in 2017-2018.
Questions this video answers
2017–2018.
"From state one to state 47 in a millisecond" (as stated).
So let's shift gears for a second and talk about GENIE itself. One of the intriguing phrases you use to describe genie, or as part of genie, is this notion of a digital twin. Talk a little bit about what that means, because that's a new concept or construct, really, in the world of software qa it is.
Well, one of the things that we realized is if we wanted to go faster than a recorder, you'd have to do something different because a recorder is limited by the speed of the application, right? So how could I have something that not limited by the speed of the application? So in the AI world, we create digital twins all the time. We create, by the way, we create network digital twins for other purposes in it, and we create digital twins of the earth. Why? Because I need this model offline. Because if I'm going to throw nickel into the atmosphere, I don't actually want to do it. I want to throw it into a model that is a digital twin of the way the earth would react if I threw all that nickel in the atmosphere. Right. What happens? Does that help climate change to hurt climate change, whatever. So we make digital twins and AI every day. And I think we're the first people to say we're going to make the digital twin of an application. In fact, we got patents on doing so back in 2017, 2018. And the reason was that would allow us to move through the states of an application infinitely fast. So I can go from state one to state 47 in a millisecond, as fast as the computer will go. I'm not limited to the speed of the application. That's number one. Number two, I can go back and forth all I want. And in a real application, I may have corrupted those states because they're not the way a user would use them. But I cannot corrupt states in a digital twin because they're fixed, they're offline, they're not actually running. So I can go back to another state if I want to. And the state is exactly the same as it was 10 minutes ago. It hasn't changed. I can also move through this in parallel. I can move through it as many, many different users, and it doesn't matter. It doesn't affect the application because it's a single, you know, sort of not a single state, but a single place in time in history of that application. So it's a digital twin. In the digital twin, we can see all of the images and the elements. We can see where actions take us, how they're based on data, what the outcomes are. It's data driven. It's a game changer when you want to create something like genie.
And so the digital twin really is a representation of how the application works. Not just the application itself, but how it's meant to work. So when the application is updated, at any point, it will automatically update the digital twin, and then will it automatically regenerate new test cases? Will I need to regenerate all my test cases, or does the digital twin do that?
Yeah, great question. So, first of all, you have a set of test cases that some business analyst has written or whatever those are, right? There's 100, there's 1,000, et cetera. If the test cases don't change, you probably don't need another digital twin. Like, you didn't change your test cases. You are updating the application stack, you're updating some other things, you're fixing bugs. So the test cases need to run the way they run. Right? This is a regression test, and we want to make sure that they run next time the way they did this time, et cetera, et cetera. If you have changed the application flows, then you also probably went and changed the test cases, in which case, I probably do want to run a new digital twin. Because you've changed something in the application, right? So the blue button used to go over here, and now it goes over here, for example. It's a different flow. So I want to know about those flows. And you will rerun that from the template that you have and build a new digital twin. And that could take a few hours, but once you've done that, you're done. Now people say, wow, I could take hours to train this AI system to create the digital twin. And then once in a while, I have to recreate it. Okay, if you were writing in Selenium, this new test case, from a test case to Selenium, maybe you could do a script every hour and a half or two hours. Just rough number, hour, two hours, something like that. In the same amount of time, I can now do what do you have, 5,000 test cases? I can do all 5,000. So you can't tell me, oh, I have to spend an hour doing this or an hour doing that. It's peanuts compared to what you would have spent, which was months, if it was thousands of test cases that had to be updated and maintained. This will update and maintain those automatically. But you might need a new. A new update on the digital twin.










