Aceleração de preenchimento da tabela Q em ferramenta de automação de teste de dispositivos Android baseada em Aprendizado por Reforço

  • Kellem Sales UFAM
  • Isaac Siqueira Lopes UFAM
  • Renato Lopes de Carvalho UFAM
  • Marcele Silva das Chagas UFAM
  • Eliane Collins INDT
  • José Reginaldo H. Carvalho UFAM

Resumo


Este artigo apresenta um estudo sobre aceleração do preenchimento da tabela Q através da paralelização da ferramenta em estado da arte DroidbotX e da utilização de múltiplas instâncias, visando avaliar o seu desempenho. No contexto do mercado de aplicações móveis, a qualidade do software é um aspecto crítico que afeta diretamente a satisfação do cliente e a reputação da empresa. Nesse cenário, o teste de software é essencial para evitar que falhas graves ocorram nas mãos dos usuários finais, tornando o processo de teste um fator fundamental de sucesso, pois evitar gargalos é importante. As pesquisas com geração automática de casos de teste vêm ganhando destaque, principalmente para evitar o gargalo na fase de criação de casos de teste, que dependendo da complexidade da aplicação, precisa de esforço. Tecnologias de IA como o Aprendizado de Máquina por Reforço têm sido pesquisadas e estão apresentando potencial de sucesso nessa tarefa. Assim, neste estudo, foi feito um experimento comparativo com a ferramenta de geração de casos de teste que foi executada em quatro emuladores simultaneamente, alimentando a mesma tabela Q, e comparados os resultados com a execução em apenas um emulador. Ao longo de um período de duas horas, em dez aplicações Android, extraímos a taxa de cobertura de código para avaliar o desempenho dos diferentes cenários. Os resultados revelaram uma tendência de aumento na taxa de cobertura de código em algumas métricas ao utilizar as quatro instâncias de emuladores ao invés de uma. Espera-se que esse resultados possam contribuir para novas pesquisas e soluções na área.

Palavras-chave: Teste de software, Qualidade de software, Aprendizado de máquina por reforço, Validação do Sistema

Referências

Android studio, 2023.

Jacoco, 2023.

A. Almukhlifi and P. Sarro. A survey on automatic test case generation for mobile applications. In 2018 IEEE 26th international conference on software analysis, evolution, and reengineering (SANER), pages 591–600. IEEE, 2018.

B. W. Boehm. Aspiral: uma abordagem incremental evolucionária para o desenvolvimento de software. IEEE Computer, 21(12):61–72, 1988.

M. Brown and S. Lee. Automated test case generation using reinforcement learning. In Proceedings of the International Conference on Software Testing, pages 56–67, 2021.

Eliane Figueiredo Collins. DeepRLGUIMAT: A Deep Reinforcement Learning-based Approach for GUI Mobile Application Testing. PhD thesis, Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, SP, 2022.

S. Deng, L. Zhang, and H. Li. Automated test case generation using reinforcement learning. In Proceedings of the 2019 International Conference on Software Engineering, pages 56–67, 2019.

José Fernandes and Rui Abreu. Automated test generation: A literature review. Journal of Software Testing, 1(1):1–10, 2018.

David E. Goldberg. Genetic algorithms in search, optimization, and machine learning. Addison-Wesley Publishing Company, 1989.

Rakesh Gupta and Deb Mohapatra. Automated software testing: A survey. ACM Computing Surveys (CSUR), 48(4):1–41, 2016.

Y. Li, Z. Yang, Y. Guo, and X. Chen. Droidbot: a lightweight ui-guided test input generator for android. ICSE (Companion Volume), pages 23–26, 2017.

Hai Ma, Xiaoping Zhang, and Lei Jiao. A survey on automated software testing using reinforcement learning. IEEE Transactions on Software Engineering, 43(12):1353–1375, 2017.

João Oliveira and Rui Abreu. A survey on automated test generation using machine learning. arXiv preprint arXiv:1904.02103, 2019.

O’Reilly. Android App Testing in Practice. O’Reilly Media, 2020.

R. S. Pressman. Engenharia de software: uma abordagem profissional. McGraw-Hill Education, 2011.

Roger S. Pressman. Software testing: a practical approach. McGraw Hill Education, 2011.

Herbert Robbins. Asymptotically efficient solutions of the robbinsmonro problem. The Annals of Mathematical Statistics, 1951.

I. Sommerville. Engenharia de software (9ª ed.). Addison-Wesley Professional, 2011.

R. S. Sutton and A. G. Barto. Reinforcement learning: an introduction. MIT press, 2018.

Vijayan Vasudevan and Bala Ramesh. Automated test generation: A survey. ACM Transactions on Software Engineering and Methodology (TOSEM), 25(4):1–62, 2016.

Y. Wang, W. Wu, Y. Liu, and J. Liu. Reinforcement learning-based automatic test case generation for web applications. In 2019 IEEE 33rd international conference on software engineering (ICSE), pages 1410–1421. IEEE, 2019.

H. N. Yasin, S. H. A. Hamid, and R. J. R. Yusof. Droidbotx: Test case generation tool for android applications using q-learning. Symmetry, 13(2):310, 2021.
Publicado
21/11/2023
SALES, Kellem; LOPES, Isaac Siqueira; CARVALHO, Renato Lopes de; CHAGAS, Marcele Silva das; COLLINS, Eliane; CARVALHO, José Reginaldo H.. Aceleração de preenchimento da tabela Q em ferramenta de automação de teste de dispositivos Android baseada em Aprendizado por Reforço. In: ARTIGOS COMPLETOS - SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SISTEMAS COMPUTACIONAIS (SBESC), 13. , 2023, Porto Alegre/RS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 43-48. ISSN 2763-9002. DOI: https://doi.org/10.5753/sbesc_estendido.2023.235897.