Testes automatizados para aplicações móveis multiplataforma - Menegassi, André Augusto (2018)
Contexto: Sistemas operacionais (SOs), como Android e iOS, controlam modernos dispositivos móveis e servem como plataforma para execução de uma ampla variedade de aplicações móveis. Essas aplicações podem ser multiplataforma, se destacando por sua capacidade de execução em vários SOs. Tais aplicações são desenvolvidas usando frameworks, como Apache Cordova, Xamarin e React Native. O teste desse tipo de aplicação é um desafio devido a diversidade de dispositivos e plataformas disponíveis no mercado. Como testar a aplicação em um único dispositivo ou plataforma não garante sua operação correta em outros, cada dispositivo representa uma configuração que precisa ser verificada. Entretanto, os mecanismos para automatizar o teste de interface de usuário (UI) não são multiplataforma e não oferecem suporte a várias configurações. Por exemplo, scripts de testes têm que ser escritos duas ou mais vezes dado que as representações da UI das plataformas são diferentes. Objetivo: esta dissertação tem como objetivo apresentar uma abordagem para gerar um script adequado para automatização do teste de UI em aplicações móveis multiplataforma. Método: a fim de ajustar os testes para executar em várias configurações, a abordagem adota dois dispositivos de referência: um executando o Android e outro o iOS. Como ambas plataformas têm sua própria representação de UI em XML, também investigou-se oito tipos de estratégias para localização de elementos de UI: seis expressões individuais e duas estratégias combinadas. Uma ferramenta chamada x-PATeSCO foi implementada para apoiar a abordagem proposta. Ela é preparada para gerar as oito estratégias de localização consideradas e incluí-las em um projeto de teste para execução em diversas configurações. A abordagem e a ferramenta foram avaliadas em um estudo experimental que utilizou nove aplicações móveis multiplataforma, comparando as estratégias de localização em seis dispositivos reais. Conclusão: os dados coletados na avaliação experimental mediram a taxa de aplicabilidade e executabilidade das estratégias de localização, e demonstraram que a abordagem e a ferramenta propostas contribuem para o teste de UI das aplicações em diversas plataformas. No geral, as estratégias combinadas (ExpressionsInOrder e ExpressionsMultiLocator) obtiveram os melhores resultados, alcançando 70,2% da executabilidade dos eventos e 65,5% de casos de teste executados com sucesso. Quando comparadas com expressões conhecidas e empregadas na prática, como IdentifyAttributes e AbsolutePath, as estratégias combinadas superam em executabilidade de eventos para 8,9% e 17,6%, respectivamente. No quesito tempo de execução, ExpressionsInOrder foi aproximadamente seis vezes mais rápida à ExpressionsMultiLocator.