Context-aware path-based android applications testing
Diego Rodrigues de Almeida, Diego Rodrigues de Almeida · 2020
Smartphones geralmente possuem varios sensores, como bussola, GPS, acelerometro, pedometro, etc., permitindo que os aplicativos estejam cientes do ambiente em que estao executando. Aplicativos sensivel ao contexto sao aplicativos orientados a eventos que detectam e reagem as informacoes de contexto fornecidas pelos sensores para fornecer informacoes e/ou servicos ao usuario. Comparado aos aplicativos de desktop e da Web, os aplicativos sensiveis ao contexto apresentam desafios adicionais aos testes. Esses aplicativos devem processar a entrada dos usuarios, bem como varios valores de entrada de contextos em constante mudanca que podem levar a explosao de possiveis situacoes, algumas das quais sao muito dificeis de executar. Aplicativos baseados em caminhos sao uma classe muito utilizada de aplicacoes sensiveis ao contexto. Esses aplicativos monitoram continuamente e em tempo real o percurso que o usuario realiza enquanto utiliza a aplicacao. O objetivo deste trabalho e apresentar uma abordagem que permita o teste black-box de aplicativos Android sensiveis ao contexto baseados em caminhos e, dessa forma, possibilite selecionar e executar um conjunto viavel de cenarios a serem testados. Nossa abordagem consiste em selecionar, por meio de pairwise testing, combinacoes de valores de sensores com eventos que ocorrem durante a execucao do aplicativo em teste (AUT). Desenvolvemos uma ferramenta que permite ao testador executar variacao de contexto, simulando valores de sensores em um ambiente emulado que possibilita testar cenarios dificeis de executar manualmente. Atualmente, a ferramenta suporta dados de contexto GPS e status de conexao de Internet. Esse tipo de dados e usado por quase todos os aplicativos disponiveis atualmente. Para avaliar nossa abordagem, realizamos um estudo empirico com quatro aplicativos baseados em GPS reais amplamente baixados por usuarios do Android. Nossos resultados mostram que nossa abordagem foi capaz de executar um conjunto otimizado de diferentes cenarios e encontrar 13 defeitos nos quatro aplicativos, dos quais 6 sao defeitos de contexto, com 2 deles detectados ao executar cenarios de dificil execucao manual. A combinacao de pairwise testing com a execucao de casos de teste em um ambiente emulado mostrou-se eficaz, pois nos permitiu encontrar defeitos de contexto em aplicativos amplamente usados com um conjunto otimizado de casos de teste.