In this on-site interview from STARWEST 2016, Jonathon Wright, the director of software engineering at CA Technologies and a speaker at the conference, joins Josiah Renaudin to discuss artificial intelligence, scaling for load, and virtual reality.
Josiah Renaudin: When you look at a major video game development studio like Blizzard, you see that they just released Overwatch, which is a multiplayer game that comes out and has well over 10 million users at this point. What do you think is the correct solution for dealing with anticipating that type of load? Same with Pokémon Go—everyone with a phone pretty much had it for a stretch. You release something like another game, Minecraft, and just have no idea that suddenly, it's going to be the most popular thing in the world. How do you anticipate and test for something like that?
Jonathon Wright: Absolutely. Actually, I've just come back from presenting across APAC in Australia. I did a presentation on Overwatch. It was quite interesting for a number of reasons, the first being that ... I did it based on the two weeks before, Doom had been released.
For things like Overwatch, which was the second example which I went through, was, and I was trying to relate this to how we've done things historically in testing as well. When I talked about Overwatch, the big thing was saying that the first week, there was 10 million users had used Overwatch, which was more than 2016 years, which is the equivalent of the year, was consumed in that first week.
I was saying with the example of, how can you possibly test something at that scale? The whole point of the deg was that I was relating ... What's the most recent. I was relating actually the comparison between Doom now and Doom back when it was release. It actually is interesting, or it might not sound as interesting as it was in there, but back in 1994, and I saw something interesting today, but 1994 was the first time that they did a Cloud based multi player platform for Doom. They've actually got the service listed of which ones you could dial. This was using IP, in the old days where you're using your dial up modem.
Equally, even if you remember back in these days, you still had bots. You had bots walking around. In here, you've got bots talking about their aiming ability, whether or not they've got lag, which is very similar to network virtualization. That's their IP. Part of it was to give them a disadvantage or a not disadvantage. Equally, there's a whole stack of power shell commands that was in the console, apart from walk through the walls mode, part of it is, something even ten, fifteen, twenty years ago, the techniques which they've used, none of it's new. We're talking about bot frameworks now with Microsoft. I've been doing stuff with Domino's, and they've replaced all their online people with the Microsoft Bot framework.
We're starting to see these systems that can actually go through and exhaustively test through the application, especially when you start taking video analytics and image recognition, which is what we were talking about with Google APIs. If that's a simple call, it can understand where am I in Minecraft by looking at it and identifying, I'm stuck in front of a tree, so I can't physically go through, whether or not the tree is a virtual tree or a picture of a tree. Part of it now is those APIs.
I think we're going to get more and more sophisticated, and part of what we do is with a lot of our modeling side of things as well, how do we possibly test through all these possible routes? I sat down with Paul Gerard about three weeks ago, in the case of Domino's, and we showed the model of their ordering pizza. I don't know if you've heard of Slack?
Josiah Renaudin: Yeah, we use it at TechWell.
Jonathon Wright: Yeah. He's created a bot in there, which is an exploratory testing bot. The exploratory testing bot sits in there and you say, "I'm going to do some exploratory testing." It says, "Where are you?" It doesn't know where you are. You have to describe where you are. In this case, for the Minecraft thing, we're saying, "I'm still in front of a tree." Then it'll turn around, it'll suggest that it thinks you are here in the model, and you can say, "Where should I go?" It'll say, "Go to the haunted house." Then if you start walking over to the haunted house, it'll say, "Actually, your friend Paul is in the haunted house at the moment testing that component. Why don't you head over there?" That way you don't get people using duplicate paths.
All it's doing is learning the session, understanding a model, doing the discovery or the exploratory, mapping that and capturing that, and then using adapters to take and capture information. If you suddenly go through there and there's a stack trace saying, "There's something wrong," or, "There's something not rendered properly," or you see something on the screen or you see something in one of the logs, it can capture that information and they'll be able to reproduce it.