Automated Test Case Generation for Web Applications Using Machine Learning

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Date

2024-01-22

Department

Major/Subject

Control, Robotics and Autonomous Systems

Mcode

ELEC3025

Degree programme

AEE - Master’s Programme in Automation and Electrical Engineering (TS2013)

Language

en

Pages

59+4

Series

Abstract

In recent years, web software development has gained significant prevalence. Consequently, the resources and costs required for verifying the functionality of web applications have also increased substantially. Thus, automation in the testing process, such as test case generation, enhances testing efficiency and reduces testing costs. Automatic test case generation employs gathered knowledge of the software to create test steps without direct control by a tester. In web software development, test generation is challenging as applications frequently consist of multiple complex systems. Therefore, machine learning algorithms have been implemented in test case generation to replicate the manual testing traditionally performed by humans. Recent research has created test cases by exploring the application using search algorithms and directly converting the source code to test cases utilizing language processing. However, previous work has not suggested a generation framework for widely used test automation libraries and machine learning algorithms. This thesis proposes a framework for transmitting information, such as visible elements and actions, between the machine learning algorithm and the software. For the framework, two machine learning algorithms, Proximal Policy Optimization (PPO) and Online Decision Transformer (ODT), are implemented to benchmark search-based test generation performance. The algorithms optimize test steps for achieving user-provided test objectives, such as logging into a website. Results indicate that the framework can support the algorithms for exploration-based test generation for web applications. The PPO can optimize the test steps towards various test objectives. The ODT efficiently clones the behavior from collected trajectories, for example, previously created test cases. This thesis also analyzes solutions to address potential scalability challenges in the algorithms used, particularly as the number of available actions increases in larger applications. Furthermore, the future aim for these algorithms is simultaneous and rapid test case generation across multiple applications.

Web-sovellusten kehittämisen suosio on kasvanut viime vuosina, mikä on lisännyt sovellusten testaamiseen käytettyä työmäärää merkittävästi. Testausprosessin työmäärän vähentämiseksi automaatiota on hyödynnetty esimerkiksi testitapausten luomisessa. Testejä voidaan suunnitella sovelluksesta kerättyjä tietoja hyödyntämällä. Testien automaattinen luominen web-sovelluksille on haastavaa, sillä sovellukset koostuvat yleensä useista järjestelmistä. Koneoppimista on hyödynnetty testien laatimisessa, koska algoritmit voidaan opettaa testaamaan sovellusta ihmisen tavoin. Viimeisimmät tutkimukset ovat käyttäneet sovelluksen tutkimiseen perustuvaa testien luontia ja tuottaneet testejä myös suoraan sovelluksen lähdekoodista. Aikaisemmat tutkimukset eivät kuitenkaan ole ehdottaneet ohjelmistokehystä testitapausten laatimiseen, jota voidaan käyttää yleisten testiautomaatiokirjastojen ja koneoppimisalgoritmien kanssa. Diplomityössä kehitettiin ohjelmistokehys koneoppimisalgoritmeja varten, mikä mahdollistaa sovelluksen tilan seuraamisen ja toimintojen suorittamisen testattavassa järjestelmässä. Kehyksen toiminta varmistettiin toteuttamalla Proximal Policy Optimization (PPO) ja Online Decision Transformer (ODT) -algoritmit, ja vertaamalla testitapausten luonnin tehokkuutta web-sovelluksessa. Algoritmien tavoitteena on löytää parhaat testiaskeleet, jotka saavuttavat käyttäjän määrittelemän testitavoitteen. Tavoite voi olla esimerkiksi kirjautuminen sovellukseen. Tulokset osoittivat, että kehys pystyy tuottamaan testitapauksia web-sovellukselle käyttämällä molempia algoritmeja. PPO-algoritmin avulla voidaan oppia testiaskeleet, jotka saavuttavat käyttäjän asettaman testaustavoitteen. ODT-algoritmi puolestaan pystyy luomaan testitapauksia yhtä tehokkaasti käyttämällä kerättyjä testitapauksia. Tulosten perusteella algoritmeja on jatkossa kehitettävä eteenpäin, jotta niitä voidaan käyttää sovelluksissa, jotka sisältävät suuren määrän eri toimintoja. Lisäksi tulevaisuudessa on tavoitteena, että algoritmeja voidaan hyödyntää samanaikaisesti ja tehokkaasti monessa eri web-sovelluksessa.

Description

Supervisor

Pajarinen, Joni

Thesis advisor

Lepistö, Anna-Liisa

Keywords

testing, test generation framework, machine learning, proximal policy optimization, online decision transformer

Other note

Citation