AI and Software Testing – let’s merge it today!

josinskiArtificial intelligence is an important area of computer science. The applications of weak AI can be found in systems related to almost all aspects of industry and everyday life. However, although these techniques are widely known for at least thirty years, there are still not much testing tools (if any) which are based on them. We show the main AI techniques, present some simple examples followed by the review of few of existing applications (different domains). Finally we propose ideas of how similar solutions can be applied to improve testing tasks. It is important to highlight that the main goal of the presentation is to discuss the AI solution on high-level, making abstraction from particular libraries, technical details and sample code reviewing (as all that information is easily to find over the Internet together with precise explanations, demos and variety of tutorials). We are not going to sell any final product or implementation. We would like to ensure that after the presentation everyone in the audience understands what weak AI is, why it is useful and at least starts to think whether it is possible to apply it within his/her current project. The idea is to inspire people to create their own applications which would not only help them in everyday task but could also change their mindset to look for new solutions, techniques, to cross limits based on company standards, stereotypes and routine. We start with few general facts about artificial intelligence and what is the difference between strong and weak one. We also quickly review some of most popular stereotypes often repeated within the IT society (like the ones that AI is difficult to understand and implement, imprecise or requires lot of research done before). The core of the presentation is the discussion about the most popular weak artificial intelligence solutions:

We look closer at the key elements of the idea of artificial neural network (human brain inspiration, structure, activation function, learning vs testing set) and discuss some current applications (e.g. OCR or medical diagnostics). Then we suggest possible new applications like GUI visual testing (e.g. elements relative position verification) and bugs/memory usage/traffic density or cross-module distribution check.

We discuss the topic of genetic algorithms starting with the explanation of biological inspiration of that technique. Then we go through the main sequence of this category of algorithms (population, selection, crossoever, mutation). We present simple examples and discuss the idea of automated tests constant modification (that could prevent widely-known pesticide paradox).

We also look at the Monte Carlo method, we look together at a simple example and propose to use it directly in web traffic (or behavior of many users) simulations (as a part of e.g. performance tests).

We also mention few other AI techniques however without such level of details as above – just to give the chance for search for more information individually.

We end our presentation with a brief comment about the current relation between computer science and IT, why this kind of cooperation should be even closer and why it is may be the key to success.

Lecture in English.

Tagged under: