DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Ribeiro, Eliane Figueiredo Collins
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Biblioteca Digitais de Teses e Dissertações da USP
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://www.teses.usp.br/teses/disponiveis/55/55134/tde-03062022-162453/
Resumo: The constant advances in mobile computing technologies and the market demand for new products and applications that serve an increasingly broad audience represent an opportunity and a need to reflect on how to guarantee the quality of these mobile applications, as well as software testing important and fundamental for these applications. Research in this area has been increasingly needed because it serves as evidence of system quality. However, mobile applications have some characteristics and limitations such as the amount of memory to use, battery life, amount of input data, mobile device screen size and different operating systems. The testing tools available are still limited in the testing strategies and criteria they support. Considering the growth in the use of these applications and the challenges that test automation faces, such as many possible combinations of operations, transitions, functionality coverage, interface element changes and fault reproduction, research to overcome these difficulties is encouraged. Thus, studies of Artificial Intelligence techniques, such as Reinforcement Learning, emerge as an opportunity to improve this area for the generation of test cases through the exploration of applications. Objective: This work proposes the DeepRLGUIMAT approach, which uses the technique of deep reinforcement learning, Deep Q-Network algorithm to generate test cases through the exploration of the mobile application using trial and error, producing a variety of input test data according to the Systematic Functional Testing method and following the probability distribution to satisfy the purpose of covering application functionality. Method: An investigation was carried out in the technical literature through a systematic mapping to know the main studies in this area. The approach was designed and developed based on the information acquired, built a tool for concept proof to execute the elaborated strategy. Finally, empirical experiments were carried out in 30 mobile applications. A comparison was made with similar approaches in the literature (tools with Monkey random approach, Model-based approach with Droidbot Machine Learning, and approaches that use DroidbotX reinforcement machine learning and Q-testing) in terms of code coverage metrics, found flaws, and feature coverage. Results: It was observed that the proposed approach achieved greater value for code coverage in instruction, branches, lines of code and methods compared to state-of-the-art tools. The tool achieved the same result as state-of-the-art tools in terms of failures and crashes encountered. The proposed approach exercised more functional operations than the compared tools in functionality coverage. Conclusion: The proposed approach showed promising results, being more effective for navigation and executing operations in applications, generating useful and effective tests that exercise data entry variations that facilitate the coverage of mobile application functionalities and with greater possibilities of identifying the presence of errors/failures.
id USP_2ab0a4da2ba6b8b43aafeb1f25394947
oai_identifier_str oai:teses.usp.br:tde-03062022-162453
network_acronym_str USP
network_name_str Biblioteca Digital de Teses e Dissertações da USP
repository_id_str
spelling DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing ApproachDeepRLGUIMAT: Abordagem de Aprendizado de Máquina Profundo por Esforço Aplicado a Testes de GUI de Aplicações MóveisAprendizado de máquina por reforçoAutomação de testesAutomated testingMobile application TestingReinforcement learningTeste de aplicações móveisThe constant advances in mobile computing technologies and the market demand for new products and applications that serve an increasingly broad audience represent an opportunity and a need to reflect on how to guarantee the quality of these mobile applications, as well as software testing important and fundamental for these applications. Research in this area has been increasingly needed because it serves as evidence of system quality. However, mobile applications have some characteristics and limitations such as the amount of memory to use, battery life, amount of input data, mobile device screen size and different operating systems. The testing tools available are still limited in the testing strategies and criteria they support. Considering the growth in the use of these applications and the challenges that test automation faces, such as many possible combinations of operations, transitions, functionality coverage, interface element changes and fault reproduction, research to overcome these difficulties is encouraged. Thus, studies of Artificial Intelligence techniques, such as Reinforcement Learning, emerge as an opportunity to improve this area for the generation of test cases through the exploration of applications. Objective: This work proposes the DeepRLGUIMAT approach, which uses the technique of deep reinforcement learning, Deep Q-Network algorithm to generate test cases through the exploration of the mobile application using trial and error, producing a variety of input test data according to the Systematic Functional Testing method and following the probability distribution to satisfy the purpose of covering application functionality. Method: An investigation was carried out in the technical literature through a systematic mapping to know the main studies in this area. The approach was designed and developed based on the information acquired, built a tool for concept proof to execute the elaborated strategy. Finally, empirical experiments were carried out in 30 mobile applications. A comparison was made with similar approaches in the literature (tools with Monkey random approach, Model-based approach with Droidbot Machine Learning, and approaches that use DroidbotX reinforcement machine learning and Q-testing) in terms of code coverage metrics, found flaws, and feature coverage. Results: It was observed that the proposed approach achieved greater value for code coverage in instruction, branches, lines of code and methods compared to state-of-the-art tools. The tool achieved the same result as state-of-the-art tools in terms of failures and crashes encountered. The proposed approach exercised more functional operations than the compared tools in functionality coverage. Conclusion: The proposed approach showed promising results, being more effective for navigation and executing operations in applications, generating useful and effective tests that exercise data entry variations that facilitate the coverage of mobile application functionalities and with greater possibilities of identifying the presence of errors/failures.Contexto: Os constantes avanços nas tecnologias de computação móvel e a demanda do mercado por novos produtos e aplicativos que atendam a um público cada vez mais amplo representam uma oportunidade e a necessidade de refletir sobre como garantir a qualidade desses aplicativos móveis, sendo também o teste de software para esses aplicativos importante e fundamental. A pesquisa nesta área tem sido cada vez mais necessária porque serve como evidência de qualidade do sistema. No entanto, aplicativos móveis têm algumas características e limitações, como a quantidade de memória a ser usada, a vida útil da bateria, a quantidade de dados de entrada, o tamanho da tela do dispositivo móvel e os diferentes sistemas operacionais. As ferramentas de teste disponíveis são ainda limitadas nas estratégias e critérios de de teste que apóiam. Considerando o crescimento do uso desses aplicativos e os desafios que a automação de teste enfrenta, como muitas combinações de operações, transições, cobertura de funcionalidade, mudanças de elementos de interface e reprodução de falhas, pesquisas para contornar essas dificuldades são encorajadas. Com isso, estudos de técnicas de Inteligência Artificial, como Aprendizado de Máquina por Reforço, surgem como uma oportunidade de aprimorar esta área para geração de casos de teste por meio da exploração de aplicativos. Objetivo: Este trabalho propõe a abordagem DeepRLGUIMAT que utiliza a técnica de aprendizado por reforço profundo, com o algoritmo Deep Q-Network para gerar casos de teste por meio da exploração do aplicativo móvel utilizando tentativa e erro, produzindo uma variedade de dados de teste de entrada de acordo com o método de Testes Funcionais Sistemáticos e seguindo a probabilidade distribuição para satisfazer o propósito de cobrir funcionalidades da aplicação. Método: Foi conduzida uma investigação na literatura técnica por meio de um mapeamento sistemático para conhecer os principais estudos na área. Com base nas informações adquiridas a abordagem foi elaborada e desenvolvida por meio de uma ferramenta para prova de conceito para executar a estratégia elaborada em aplicações Android. Por fim foram conduzidos experimentos empíricos em 30 aplicações móveis e feita comparação com abordagens similares na literatura (ferramentas com abordagem randômica Monkey, abordagem Model-based com Aprendizado de Máquina Droidbot, e as abordagens que usam aprendizado de máquina por reforço DroidbotX e Q-testing) em termos de métricas de cobertura de código, falhas encontradas e cobertura de funcionalidades. Resultados: Foram observados que a abordagem proposta atingiu maior valor para cobertura de código em instrução, branches, linhas de código e métodos em comparação com as ferramentas de estado da arte. Em termos de falhar e travamentos encontrados, a ferramenta obteve resultado igual ao das ferramentas de estado da arte. Em cobertura de funcionalidade, a abordagem proposta exercitou mais operações funcionais em comparação com as ferramentas comparadas. Conclusão:A abordagem proposta mostrou resultados promissores sendo mais efetiva para navegação e em executar operações nas aplicações, gerando testes úteis e efetivos que exercitam a variações de entrada de dados que facilitam a cobertura de funcionalidades de aplicações móveis e com maior possibilidades de indentificar a presenção de erros/falhas.Biblioteca Digitais de Teses e Dissertações da USPDias Neto, Arilo ClaudioMaldonado, José CarlosRibeiro, Eliane Figueiredo Collins2022-03-30info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://www.teses.usp.br/teses/disponiveis/55/55134/tde-03062022-162453/reponame:Biblioteca Digital de Teses e Dissertações da USPinstname:Universidade de São Paulo (USP)instacron:USPLiberar o conteúdo para acesso público.info:eu-repo/semantics/openAccesseng2022-06-03T21:31:21Zoai:teses.usp.br:tde-03062022-162453Biblioteca Digital de Teses e Dissertaçõeshttp://www.teses.usp.br/PUBhttp://www.teses.usp.br/cgi-bin/mtd2br.plvirginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.bropendoar:27212022-06-03T21:31:21Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)false
dc.title.none.fl_str_mv DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
DeepRLGUIMAT: Abordagem de Aprendizado de Máquina Profundo por Esforço Aplicado a Testes de GUI de Aplicações Móveis
title DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
spellingShingle DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
Ribeiro, Eliane Figueiredo Collins
Aprendizado de máquina por reforço
Automação de testes
Automated testing
Mobile application Testing
Reinforcement learning
Teste de aplicações móveis
title_short DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
title_full DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
title_fullStr DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
title_full_unstemmed DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
title_sort DeepRLGUIMAT: Deep Reinforcement Learning-based GUI Mobile Application Testing Approach
author Ribeiro, Eliane Figueiredo Collins
author_facet Ribeiro, Eliane Figueiredo Collins
author_role author
dc.contributor.none.fl_str_mv Dias Neto, Arilo Claudio
Maldonado, José Carlos
dc.contributor.author.fl_str_mv Ribeiro, Eliane Figueiredo Collins
dc.subject.por.fl_str_mv Aprendizado de máquina por reforço
Automação de testes
Automated testing
Mobile application Testing
Reinforcement learning
Teste de aplicações móveis
topic Aprendizado de máquina por reforço
Automação de testes
Automated testing
Mobile application Testing
Reinforcement learning
Teste de aplicações móveis
description The constant advances in mobile computing technologies and the market demand for new products and applications that serve an increasingly broad audience represent an opportunity and a need to reflect on how to guarantee the quality of these mobile applications, as well as software testing important and fundamental for these applications. Research in this area has been increasingly needed because it serves as evidence of system quality. However, mobile applications have some characteristics and limitations such as the amount of memory to use, battery life, amount of input data, mobile device screen size and different operating systems. The testing tools available are still limited in the testing strategies and criteria they support. Considering the growth in the use of these applications and the challenges that test automation faces, such as many possible combinations of operations, transitions, functionality coverage, interface element changes and fault reproduction, research to overcome these difficulties is encouraged. Thus, studies of Artificial Intelligence techniques, such as Reinforcement Learning, emerge as an opportunity to improve this area for the generation of test cases through the exploration of applications. Objective: This work proposes the DeepRLGUIMAT approach, which uses the technique of deep reinforcement learning, Deep Q-Network algorithm to generate test cases through the exploration of the mobile application using trial and error, producing a variety of input test data according to the Systematic Functional Testing method and following the probability distribution to satisfy the purpose of covering application functionality. Method: An investigation was carried out in the technical literature through a systematic mapping to know the main studies in this area. The approach was designed and developed based on the information acquired, built a tool for concept proof to execute the elaborated strategy. Finally, empirical experiments were carried out in 30 mobile applications. A comparison was made with similar approaches in the literature (tools with Monkey random approach, Model-based approach with Droidbot Machine Learning, and approaches that use DroidbotX reinforcement machine learning and Q-testing) in terms of code coverage metrics, found flaws, and feature coverage. Results: It was observed that the proposed approach achieved greater value for code coverage in instruction, branches, lines of code and methods compared to state-of-the-art tools. The tool achieved the same result as state-of-the-art tools in terms of failures and crashes encountered. The proposed approach exercised more functional operations than the compared tools in functionality coverage. Conclusion: The proposed approach showed promising results, being more effective for navigation and executing operations in applications, generating useful and effective tests that exercise data entry variations that facilitate the coverage of mobile application functionalities and with greater possibilities of identifying the presence of errors/failures.
publishDate 2022
dc.date.none.fl_str_mv 2022-03-30
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://www.teses.usp.br/teses/disponiveis/55/55134/tde-03062022-162453/
url https://www.teses.usp.br/teses/disponiveis/55/55134/tde-03062022-162453/
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv
dc.rights.driver.fl_str_mv Liberar o conteúdo para acesso público.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Liberar o conteúdo para acesso público.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.coverage.none.fl_str_mv
dc.publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
publisher.none.fl_str_mv Biblioteca Digitais de Teses e Dissertações da USP
dc.source.none.fl_str_mv
reponame:Biblioteca Digital de Teses e Dissertações da USP
instname:Universidade de São Paulo (USP)
instacron:USP
instname_str Universidade de São Paulo (USP)
instacron_str USP
institution USP
reponame_str Biblioteca Digital de Teses e Dissertações da USP
collection Biblioteca Digital de Teses e Dissertações da USP
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da USP - Universidade de São Paulo (USP)
repository.mail.fl_str_mv virginia@if.usp.br|| atendimento@aguia.usp.br||virginia@if.usp.br
_version_ 1815257835204771840