How Kwola works

AI that can learn to use software

The goal of the Kwola project is to develop an AI that can learn to use typical software on its own, for the purpose of finding bugs. Neural networks can learn to play and win StarCraft. Why not learn to use some basic web apps?

Launching the assault.

Kwola opens up a large number of web browsers and directs them to your web application. It performs a series of actions in each web browser, such as clicking, typing something in, or scrolling the UI. These actions are chosen partially at random, partially using heuristics, and partially using the neural network. After 100 actions, the browser session is finished. The data from that session is then used to train the algorithm for future sessions.

Counting the lines.

Kwola sits as a man-in-the-middle between your server and the web browser while loading your website. It rewrites your Javascript code to allow it to track and count the execution of all lines of code, along with event handlers and log messages. This way, Kwola can track exactly the lines of code executed, network requests made, and errors generated for each action it performs.

Chat with us.

Find your bugs.

More on how it works

 

Training the beast.

Kwola gets rewarded every time that it triggers a new line of code or network request. It gets punished if its actions did not lead to any new lines of code or network requests. Over time, Kwola goes from random clicking and typing to learning the shortest path through the application that triggers all lines of code and network requests that it can.

Finding the bugs.

Kwola’s AI doesn’t directly seek out the bugs - it bumps into them in the course of trying to use your application like a normal user. Kwola will trap all JavaScript log errors, unhandled exceptions, and HTTP errors that occur while it is using your software.

Finding even more bugs.

[COMING SOON] We will also find potential errors by comparing how your software behaves with the neural networks expectation formed over a long period of time. If you break functionality that’s been working fine for months, we’ll be able to catch it.

See what front-end bugs your application has today