Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software# Criptografia e segurança

Revolucionando o Teste de Apps Android com o Delm

A Delm melhora a eficiência dos testes de apps usando links profundos pra ter mais cobertura e confiabilidade.

― 7 min ler


Delm: Teste de Apps daDelm: Teste de Apps daNova Geraçãodeep links pra mais confiabilidade.Melhorando os testes de Android com
Índice

Aplicativos móveis estão em todo lugar. Eles ajudam a gente com tarefas como conversar e ler. Mas, garantir que esses apps funcionem bem é complicado. Muitos desenvolvedores usam ferramentas de teste pra achar problemas nos apps, mas essas ferramentas muitas vezes perdem partes importantes do app por causa de recursos ocultos ou loops no programa. Isso pode acabar desperdiçando muito tempo, já que os testadores ficam revisitando as mesmas páginas repetidamente.

Pra resolver esse problema, a gente trouxe um novo método que usa deep links nos apps Android. Deep links são links especiais que levam os usuários diretamente a páginas específicas dentro de um app. Ao usar esses deep links no processo de teste, desenvolvemos uma ferramenta chamada Delm, que significa Deep Link-enhanced Monkey.

O Problema com as Ferramentas de Teste Atuais

Encontrar problemas em um app tá se tornando cada vez mais importante. Os apps são atualizados rápido, e se eles não funcionam como esperado, isso pode frustrar os usuários e levar eles a desistirem do app. Os apps Android são bem complexos e têm muitas telas com as quais os usuários interagem. O desafio pros desenvolvedores é garantir que cada parte do app seja testada antes de ser lançado.

As ferramentas de teste de GUI (Interface Gráfica do Usuário) atuais muitas vezes não conseguem cobrir todas as partes do app. Pesquisas mostram que as ferramentas existentes geralmente cobrem menos de 20% das atividades de um app. Essa baixa cobertura de código significa que muitos problemas potenciais passam despercebidos, o que pode prejudicar a experiência do usuário.

Uma razão pela qual essas ferramentas têm dificuldade é que alguns recursos do app são difíceis de encontrar. Por exemplo, as atividades podem estar bem escondidas dentro do app, exigindo que os usuários passem por muitas páginas pra alcançá-las. Além disso, algumas atividades estão ocultas atrás de interfaces de usuário confusas, dificultando a ativação delas pelas ferramentas de teste. Por último, muitas ferramentas acabam ficando presas em loops, checando as mesmas páginas sem evoluir.

Nossa Solução: Delm

O Delm tem como objetivo enfrentar esses desafios integrando deep links no processo de teste. Veja como funciona:

  1. Análise Estática: O Delm primeiro examina o código do app pra coletar informações sobre sua estrutura e os deep links disponíveis.

  2. Exploração Dinâmica: Durante os testes, se o Delm ficar preso em um loop ou perder uma atividade, ele usa deep links pra pular pra áreas ainda não exploradas do app. Isso ajuda a evitar perder tempo com testes repetidos.

  3. Simulação do Contexto da Atividade: Antes de ativar uma atividade, o Delm prepara o contexto necessário. Isso significa que ele verifica se todas as informações exigidas estão prontas pra evitar erros ao lançar uma atividade.

Ao combinar essas estratégias, o Delm melhora significativamente a cobertura das atividades do app e ajuda os desenvolvedores a encontrar mais problemas potenciais.

A Importância do Contexto em Apps Android

Todo app tem vários contextos que conectam suas atividades. Esses contextos ajudam a manter o estado do app e garantem que ele se comporte como esperado. Alguns contextos importantes incluem:

  • Mensagens ICC: Essas são mensagens que ajudam diferentes componentes dentro do app a se comunicarem entre si.
  • Configuração do Dispositivo: Inclui detalhes como tamanho e formato da tela, que podem afetar como o app é exibido.
  • Pilha de Atividades: Essa é a ordem em que as atividades são lançadas. Entender a pilha é essencial pra navegar entre as atividades de forma suave.
  • Dados Globais: São informações chave compartilhadas por todo o app, como preferências do usuário.

Pra garantir que o Delm consiga lançar novas atividades com sucesso, ele precisa considerar todos esses contextos. Isso é crucial pra evitar erros e falsos positivos durante os testes.

Como os Deep Links Melhoram o Teste de GUI

Os deep links permitem que o Delm contorne os caminhos usualmente percorridos pelos usuários no app. Em vez de navegar por muitas atividades, o Delm pode ativar uma atividade diretamente usando seu deep link. Isso é particularmente útil pra aquelas páginas difíceis de alcançar que frequentemente são negligenciadas em testes tradicionais.

Extração e Vínculo de Deep Links

O Delm consegue encontrar os deep links já definidos no código do app e vinculá-los às atividades. Se algumas atividades não tiverem deep links, o Delm pode adicionar esses links, facilitando o acesso a elas no futuro sem muito esforço.

Exploração Guiada

Quando o Delm detecta que a ferramenta de teste tá presa ou demorando demais em uma página, ele pode pular automaticamente pra outra atividade. Esse método mantém o processo de teste fluido e eficiente. A ferramenta não só foca em encontrar bugs, mas também garante que o teste continue progredindo sem atrasos desnecessários.

Eficácia em Testes do Mundo Real

Pra avaliar quão bem o Delm funciona, testamos ele usando apps industriais. Aqui estão algumas descobertas chave:

  • Cobertura: O Delm conseguiu uma cobertura significativa de atividades e métodos, superando as ferramentas tradicionais. Por exemplo, ele cobriu 27,2% das atividades em apps de código fechado, bem mais que outras ferramentas de referência.

  • Detecção de Crashes: O Delm também mostrou melhores capacidades de detecção de crashes. Ele identificou mais crashes sem gerar falsos positivos, ou seja, apontou problemas reais sem confundir atividades saudáveis com problemáticas.

Benefícios para os Desenvolvedores

Pra desenvolvedores de apps, a principal vantagem de usar o Delm é a confiabilidade. Com maior cobertura e detecção precisa de crashes, os desenvolvedores podem lançar seus apps com confiança, sabendo que foram bem testados.

Além disso, o Delm economiza tempo. Ao navegar eficientemente por áreas ocultas do app e evitar loops, os desenvolvedores podem focar em resolver problemas reais em vez de passar horas em testes repetitivos.

Desafios a Serem Resolvidos

Apesar das vantagens, o Delm não está livre de desafios. Um grande obstáculo é a dependência dos metadados da GUI do app. Se um app usar interfaces complexas ou for construído com frameworks específicos como WebView, o Delm pode ter dificuldades pra acessar as informações necessárias.

Além disso, as medidas de segurança em alguns apps podem impedir a modificação do código, limitando a capacidade do Delm de vincular novos deep links ou analisar o app corretamente.

Direções Futuras

Há vários caminhos pra futuras melhorias no Delm. Uma área potencial de foco é aprimorar a forma como os deep links são tratados, permitindo cenários de teste mais dinâmicos. Além disso, usar técnicas de visão computacional pra analisar a GUI poderia reduzir ainda mais a dependência de metadados estáticos, possibilitando um melhor teste de apps complexos.

Além disso, encontrar uma forma do Delm explorar o app sem precisar modificá-lo será crucial. Isso pode envolver desenvolver métodos que permitam ao Delm funcionar dentro da estrutura existente do app, oferecendo soluções de teste sem costura.

Conclusão

O Delm representa um avanço significativo no teste de aplicativos Android. Ao usar eficazmente deep links e análise de contexto, ele melhora a cobertura, reduz o tempo perdido em loops e aprimora a detecção de crashes. À medida que os aplicativos móveis continuam a evoluir e crescer em complexidade, ferramentas como o Delm serão essenciais pra garantir que esses apps funcionem de forma confiável e atendam às expectativas dos usuários. Com melhorias e ajustes contínuos, o Delm tem o potencial de redefinir os padrões de teste de aplicativos Android.

Fonte original

Título: Enhancing GUI Exploration Coverage of Android Apps with Deep Link-Integrated Monkey

Resumo: Mobile apps are ubiquitous in our daily lives for supporting different tasks such as reading and chatting. Despite the availability of many GUI testing tools, app testers still struggle with low testing code coverage due to tools frequently getting stuck in loops or overlooking activities with concealed entries. This results in a significant amount of testing time being spent on redundant and repetitive exploration of a few GUI pages. To address this, we utilize Android's deep links, which assist in triggering Android intents to lead users to specific pages and introduce a deep link-enhanced exploration method. This approach, integrated into the testing tool Monkey, gives rise to Delm (Deep Link-enhanced Monkey). Delm oversees the dynamic exploration process, guiding the tool out of meaningless testing loops to unexplored GUI pages. We provide a rigorous activity context mock-up approach for triggering existing Android intents to discover more activities with hidden entrances. We conduct experiments to evaluate Delm's effectiveness on activity context mock-up, activity coverage, method coverage, and crash detection. The findings reveal that Delm can mock up more complex activity contexts and significantly outperform state-of-the-art baselines with 27.2\% activity coverage, 21.13\% method coverage, and 23.81\% crash detection.

Autores: Han Hu, Han Wang, Ruiqi Dong, Xiao Chen, Chunyang Chen

Última atualização: 2024-04-30 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2404.19307

Fonte PDF: https://arxiv.org/pdf/2404.19307

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes