Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software

Apresentando o NiCro: Uma Nova Maneira de Testar Apps Móveis

A NiCro simplifica os testes de apps móveis em vários dispositivos usando reconhecimento de imagem.

― 9 min ler


NiCro Transforma TestesNiCro Transforma Testesde Apps Móveiseficiência dos testes de apps.Novo sistema automatiza e melhora a
Índice

Aplicativos móveis, ou apps, são super comuns em vários dispositivos como telefones e tablets. Mas testar esses apps pra ver se funcionam direitinho em diferentes dispositivos e sistemas operacionais pode ser bem complicado. Cada dispositivo pode mostrar o mesmo app de um jeito diferente por causa das variações no tamanho da tela, layout e design. Por causa disso, os desenvolvedores têm que ralar bastante pra garantir que seus apps rodem liso em todas as plataformas.

Uma forma comum de facilitar os testes é usar um método de gravar e reproduzir. Isso significa gravar as ações feitas em um dispositivo e depois reproduzir essas ações em outros dispositivos. Mas tem um problema: como a interface de um app pode mudar bastante de um dispositivo pro outro. Isso dificulta a reprodução exata das ações gravadas.

Muitos métodos atuais dependem de acessar detalhes ou metadados do app diretamente, o que pode ser intrusivo. Isso significa que eles precisam fuçar no software do app pra coletar as informações necessárias. Porém, esse approach muitas vezes enfrenta limitações porque alguns sistemas não permitem acesso a todos os dados que se precisa.

Recentemente, alguns pesquisadores começaram a explorar o uso de imagens da interface do app. Esse método não intrusivo usa informações visuais pra identificar e combinar elementos da interface. Mas esses métodos anteriores muitas vezes enfrentam dificuldades porque não consideram corretamente como a mesma interface pode parecer diferente em vários dispositivos.

Pra resolver esses desafios, foi proposto um novo sistema chamado NiCro. O NiCro foi desenhado pra testar apps em múltiplos dispositivos e plataformas sem precisar acessar os dados internos do app. Em vez disso, ele foca em analisar imagens da interface do app.

O Problema com Métodos Existentes

Testar apps manualmente é, muitas vezes, lento e chato. Contratar pessoas pra passar pelos mesmos processos em diferentes dispositivos é trabalhoso e consome tempo. Pra agilizar as coisas, os desenvolvedores começaram a usar testes automatizados, especialmente métodos de gravar e reproduzir que permitem gravar ações e reproduzí-las em diferentes dispositivos.

No entanto, muitos métodos existentes têm dificuldade com testes cross-device e cross-platform. Eles focam mais em reproduzir ações gravadas na mesma plataforma. Por exemplo, se uma ação é gravada em um dispositivo Android, reproduzir essa ação em outro dispositivo Android geralmente é mais fácil do que transferir essa ação pra um dispositivo iOS.

Algumas técnicas mais recentes tentaram conectar dispositivos ou depender de metadados pra ajudar a combinar o que é necessário pra uma reprodução. Ainda assim, elas muitas vezes falham quando os metadados necessários estão indisponíveis ou quando a interface do app é bem diferente entre plataformas.

Além disso, mesmo que ferramentas automatizadas consigam capturar metadados, elas podem não funcionar bem com certas operações do sistema ou quando vários apps estão envolvidos. É aí que métodos não intrusivos podem se sair melhor. Esses métodos funcionam como um observador humano: eles olham pra tela, entendem o que tá lá e então interagem com ela.

O que é NiCro?

NiCro é um sistema novo que tem uma abordagem não intrusiva pra gravar e reproduzir ações em diferentes dispositivos e plataformas. Ele usa técnicas avançadas de visão computacional que permitem analisar as informações da interface gráfica (GUI) diretamente a partir de imagens do app, ao invés de precisar acessar os dados internos do app.

O principal objetivo do NiCro é facilitar e tornar mais eficiente pra os desenvolvedores testarem seus apps em diferentes dispositivos. Ao usar imagens pra coletar informações sobre a interface, o NiCro evita várias dificuldades que vêm com métodos tradicionais e intrusivos de teste.

O NiCro funciona primeiramente capturando screenshots ou imagens da interface do app e então analisando essas imagens pra identificar os vários componentes, ou widgets, da GUI. Isso permite que ele reconheça diferentes elementos na tela, como botões e campos de texto.

Uma vez que o NiCro coletou essas informações visuais, ele pode combinar os widgets em diversos dispositivos. Isso significa que, se um botão for clicado em um dispositivo, o NiCro pode determinar onde esse botão estaria em outro dispositivo, mesmo que sua posição ou aparência tenha mudado.

Como o NiCro Funciona

De maneira geral, o NiCro é composto por três componentes principais: uma Fazendinha de Dispositivos, um Sistema Robótico e um Computador Host.

Fazendinha de Dispositivos

A Fazendinha de Dispositivos é uma configuração que conecta vários dispositivos físicos e virtuais. Ela permite que o NiCro simule dispositivos reais e teste apps em diferentes tamanhos de tela e sistemas operacionais sem precisar ter todos os dispositivos reais em mãos. Usando emuladores, os desenvolvedores conseguem testar seus apps rapidamente em múltiplas configurações.

Sistema Robótico

O Sistema Robótico fornece interação física com dispositivos reais. Ele inclui um braço robótico que age como um dedo humano, tocando na tela pra realizar ações. Junto com o braço robótico, tem também uma câmera de alta resolução pra capturar imagens da interface do app. Isso garante que o NiCro possa coletar dados visuais precisos sobre o app sendo testado.

Computador Host

O Computador Host é o cérebro do NiCro. Ele coleta dados tanto da Fazendinha de Dispositivos quanto do Sistema Robótico. Processa as imagens capturadas pela câmera, analisa elas pra detectar elementos da GUI e decide como combinar e reproduzir as ações em diferentes dispositivos.

Passos Envolvidos no Teste

Gravação de Ações e Coleta de Imagens

O primeiro passo no processo do NiCro envolve gravar as ações realizadas em um dispositivo de origem e capturar imagens de vários dispositivos-alvo. Isso significa que, enquanto um usuário interage com o app, o NiCro grava o que acontece e tira screenshots do estado do app em cada dispositivo.

Detecção de Widgets da GUI

Uma vez que as imagens são coletadas, o NiCro usa seu detector avançado de widgets da GUI pra identificar diferentes widgets na tela. Isso envolve encontrar a localização de botões, campos de texto, menus e outros componentes nas imagens. Ele consegue diferenciar entre widgets de texto e não-texto com base em sua aparência.

Extração de Informações dos Widgets

Depois da detecção, o NiCro extrai informações detalhadas sobre cada widget. Isso inclui sua localização, forma, conteúdo textual e widgets ao redor. Coletar essas informações multimodais permite que o NiCro combine melhor os widgets entre dispositivos.

Combinação de Widgets

Com todas as informações em mãos, o NiCro pode começar a combinar os widgets. Ele usa vários critérios, focando em atributos como conteúdo textual e forma pra encontrar widgets equivalentes em diferentes dispositivos. Se ele encontra uma correspondência, consegue replicar com precisão a ação gravada no dispositivo alvo.

Execução de Ações

Por fim, o NiCro executa as ações nos dispositivos-alvo. Isso pode significar tocar um botão ou inserir texto em um campo. Ele faz isso através do Sistema Robótico para dispositivos físicos e envia eventos de mouse para dispositivos virtuais.

Avaliando o NiCro

O desempenho do NiCro foi avaliado usando uma série de testes em diferentes dispositivos e apps. Vários apps populares de diferentes categorias foram usados pra que o NiCro pudesse mostrar sua capacidade de lidar com cenários diversos.

Durante os testes, o NiCro alcançou altas taxas de precisão na combinação de widgets e execução de ações. Ele conseguiu reproduzir com sucesso a maioria das ações em diferentes dispositivos sem precisar de ajustes manuais.

Comparado a métodos anteriores, o NiCro superou significativamente seus concorrentes. Para ações que dependiam de widgets específicos, ele alcançou cerca de 86% de sucesso na reprodução dessas ações com precisão. Em contraste, outros métodos tiveram dificuldade até pra alcançar metade dessa taxa de sucesso.

Em casos envolvendo ações independentes de widgets, como rolagem, o NiCro também mostrou bom desempenho. Isso é particularmente impressionante porque a forma como o conteúdo aparece em diferentes telas pode variar bastante. A habilidade do NiCro de usar inteligência visual pra combinar interfaces entre dispositivos leva a resultados de teste mais bem-sucedidos.

Desafios Enfrentados

Embora o NiCro mostre potencial, ele também enfrenta desafios. Variações no tamanho da tela dos dispositivos podem criar dificuldades na hora de combinar widgets. Por exemplo, se um widget for muito grande pra caber na tela de um dispositivo menor, o NiCro pode precisar rolar pra revelá-lo.

Outros desafios vêm das diferenças em como os apps são desenhados nas várias plataformas. Por exemplo, um app pode parecer bem diferente no iOS comparado ao Android, o que pode confundir o processo de combinação. O NiCro precisa se adaptar a essas diferenças durante os testes pra garantir reproduções precisas.

Conclusão

O NiCro representa um grande avanço no mundo dos testes de apps. Ao focar em métodos não intrusivos, ele permite que os desenvolvedores garantam que seus aplicativos móveis funcionem adequadamente em uma variedade de dispositivos sem precisar fuçar no código ou nos dados subjacentes.

Ao aproveitar o reconhecimento de imagem e técnicas de visão computacional, o NiCro consegue simplificar o processo de teste e aumentar a eficiência em um campo que precisa desesperadamente de automação. A capacidade de testar com precisão entre plataformas e dispositivos pode levar a melhores experiências para os usuários e operações mais suaves para os desenvolvedores.

Conforme a tecnologia continua a evoluir, refinamentos adicionais provavelmente tornarão o NiCro ainda mais eficaz em lidar com as complexidades envolvidas nos testes de apps cross-device e cross-platform.

Fonte original

Título: NiCro: Purely Vision-based, Non-intrusive Cross-Device and Cross-Platform GUI Testing

Resumo: To ensure app compatibility and smoothness of user experience across diverse devices and platforms, developers have to perform cross-device, cross-platform testing of their apps, which is laborious. There comes a recently increasing trend of using a record and replay approach to facilitate the testing process. However, the graphic user interface (GUI) of an app running on different devices and platforms differs dramatically. This complicates the record and replay process as the presence, appearance and layout of the GUI widgets in the recording phase and replaying phase can be inconsistent. Existing techniques resort to instrumenting into the underlying system to obtain the app metadata for widget identification and matching between various devices. But such intrusive practices are limited by the accessibility and accuracy of the metadata on different platforms. On the other hand, several recent works attempt to derive the GUI information by analyzing the GUI image. Nevertheless, their performance is curbed by the applied preliminary visual approaches and the failure to consider the divergence of the same GUI displayed on different devices. To address the challenge, we propose a non-intrusive cross-device and cross-platform system NiCro. NiCro utilizes the state-of-the-art GUI widget detector to detect widgets from GUI images and then analyses a set of comprehensive information to match the widgets across diverse devices. At the system level, NiCro can interact with a virtual device farm and a robotic arm system to perform cross-device, cross-platform testing non-intrusively. We first evaluated NiCro by comparing its multi-modal widget and GUI matching approach with 4 commonly used matching techniques. Then, we further examined its overall performance on 8 various devices, using it to record and replay 107 test cases of 28 popular apps and the home page to show its effectiveness.

Autores: Mulong Xie, Jiaming Ye, Zhenchang Xing, Lei Ma

Última atualização: 2023-05-23 00:00:00

Idioma: English

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

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

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