Uma infraestrutura assistida por robô para detecção de perda de
dados em aplicativos Android.
Teste de software. Android. Perda de dados. Robótica para
testes.
Quando uma aplicação Android é interrompida por uma chamada ou quando a
orientação do dispositivo é alterada (de retrato para paisagem ou
vice-versa), o sistema operacional pode precisar destruir e recriar a
atividade. Idealmente os dados e o estado da aplicação deveriam ser salvos
(antes da destruição) e restaurados (após a recriação) para evitar perda de
dados. Infelizmente, o sistema operacional Android não gerencia estes
cenários nativamente e os desenvolvedores de aplicativos precisam
explicitamente salvar e restaurar os dados da aplicação. Caso contrário, os
usuários podem observar falhas de perda de dados (i.e., informações que
estavam presentes antes da interrupção são perdidas após a recriação da
atividade). Um trabalho recente (RIGANELLI et al., 2020) propôs uma
abordagem automatizada para a detecção de perda de dados em aplicativos
Android: casos de teste são gerados para explorar a interface do aplicativo
e, durante a exploração, a aplicação é interrompida a partir do
acionamento, via software, de uma rotação na tela. Capturas de tela e os
dados do aplicativo antes e depois da rotação são comparados para verificar
se dados foram perdidos. Tal proposta, entretanto, é i) pouco realista e
ii) invasiva. Pouco realista porque a alteração na orientação da tela é
acionada via software –— e não pelos sensores como aconteceria em um
cenário real; e invasiva porque os comandos são enviados através de
comunicação com o dispositivo via cabo USB ou dispositivo simulado. Este
trabalho propõe a utilização de um braço robótico artesanal para
proporcionar um ambiente de testes mais realista: os eventos de destruição
e recriação das atividades são acionados pela rotação física do smartphone.
A infraestrutura proposta também permite o envio de comandos sem a
necessidade de conexão física com o dispositivo via cabo USB, um passo
importante na direção de uma solução realista e não-invasiva. Para avaliar
a viabilidade de utilização da infraestrutura proposta, uma avaliação
empírica foi realizada considerando 77 aplicativos Android e 341 falhas de
perda de dados foram identificadas. Todas as falhas identificadas foram
reportadas aos desenvolvedores e, das 201 falhas que já foram analisadas,
180 (89,55%) foram confirmadas pelos desenvolvedores.