Context-aware path-based android applications testing - ALMEIDA, Diego Rodrigues de. (2020)
Smartphones geralmente possuem vários sensores, como bússola, GPS, acelerômetro, pedômetro, etc., permitindo que os aplicativos estejam cientes do ambiente em que estão executando. Aplicativos sensível ao contexto são aplicativos orientados a eventos que detectam e reagem às informações de contexto fornecidas pelos sensores para fornecer informações e/ou serviços ao usuário. Comparado aos aplicativos de desktop e da Web, os aplicativos sensíveis ao contexto apresentam desafios adicionais aos testes. Esses aplicativos devem processar a entrada dos usuários, bem como vários valores de entrada de contextos em constante mudança que podem levar à explosão de possíveis situações, algumas das quais são muito difíceis de executar. Aplicativos baseados em caminhos são uma classe muito utilizada de aplicações sensíveis ao contexto. Esses aplicativos monitoram continuamente e em tempo real o percurso que o usuário realiza enquanto utiliza a aplicação. O objetivo deste trabalho é apresentar uma abordagem que permita o teste black-box de aplicativos Android sensíveis ao contexto baseados em caminhos e, dessa forma, possibilite selecionar e executar um conjunto viável de cenários a serem testados. Nossa abordagem consiste em selecionar, por meio de pairwise testing, combinações de valores de sensores com eventos que ocorrem durante a execução do aplicativo em teste (AUT). Desenvolvemos uma ferramenta que permite ao testador executar variação de contexto, simulando valores de sensores em um ambiente emulado que possibilita testar cenários difíceis de executar manualmente. Atualmente, a ferramenta suporta dados de contexto GPS e status de conexão de Internet. Esse tipo de dados é usado por quase todos os aplicativos disponíveis atualmente. Para avaliar nossa abordagem, realizamos um estudo empírico com quatro aplicativos baseados em GPS reais amplamente baixados por usuários do Android. Nossos resultados mostram que nossa abordagem foi capaz de executar um conjunto otimizado de diferentes cenários e encontrar 13 defeitos nos quatro aplicativos, dos quais 6 são defeitos de contexto, com 2 deles detectados ao executar cenários de difícil execução manual. A combinação de pairwise testing com a execução 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.