Device Farm: O que é e quais são os benefícios para a qualidade de software

Imagem de capa do post Device Farm: O que é e quais são os benefícios para a qualidade de software

De acordo com dados coletados pela StatCounter, organização de estatísticas e coleta de tráfego de dados da internet, com monitoramento de 1,5 milhões de sites, em 2010 tínhamos majoritariamente o uso de computadores como sendo os principais dispositivos que trafegavam dados na web. Esses equipamentos além de possuírem um pequeno número de sistemas operacionais, também dispunham de um baixo número de navegadores web. Essas características possibilitaram uma previsão maior dos recursos disponíveis e compatibilidades com os dispositivos em que os sites iriam executar, proporcionando maior facilidade aos times de desenvolvimento.

Entretanto, em meados de 2017, o panorama do mercado se alterou, os dispositivos móveis passaram a ser os equipamentos que mais trafegavam dados pela internet, sendo responsáveis por em torno de 60% de todo o tráfego web do mundo em 2022. Essas mudanças trouxeram algumas complicações para os times de desenvolvimento, visto que quando o assunto é smartphone, a disponibilidade/compatibilidade de recursos de um dispositivo para outro pode ser muito diferente. Sendo assim, desenvolvedores passaram a lidar com uma ampla gama de dispositivos, com diversas versões disponíveis e recursos bem variados, que podem ou não, estarem disponíveis de um equipamento para outro.

É importante ressaltar que essas mudanças de mercado são um reflexo dos vários benefícios que esses dispositivos trouxeram para as pessoas, entre eles:

Democratização do acesso ao conteúdo digital;

Visto a variedade de modelos e fabricantes, é possível encontrar equipamentos com preços acessíveis, possibilitando que mais pessoas possam adquirir esses dispositivos e acessar grande parte dos conteúdos presentes na internet. 

Comunicação ágil;

Dado a facilidade de transportar e utilizar smartphones em geral, é prático e rápido trocar informações pela internet, intensificando as relações interpessoais.

Novo setor de negócio para canais de vendas;

Sites e aplicativos surgem com uma gama de produtos e serviços muito maior que em lojas físicas, muitas vezes atendendo clientes exclusivamente através da internet.

Ampliação de canais digitais.

Canais de auto atendimento, ouvidoria e outros surgem possibilitando a resolução de problemas e soluções de pós atendimento totalmente digitais.

Alguns Desafios

Essa mudança de mercado trouxe, como já comentado brevemente, mudanças expressivas para times de desenvolvimento, visto as especificidades dos dispositivos móveis em relação aos desktops. 

Atualmente, os smartphones utilizam majoritariamente dois sistemas operacionais, Android ou IOS, desenvolvidos pela Google e Apple respectivamente. Esses sistemas possuem uma quantidade grande de versões. Além disso, o Android pode passar por modificações das próprias fabricantes, impactando na forma como os aplicativos interagem com os recursos disponíveis.  

Tais recursos também são pontos que variam bastante de um equipamento para outro. Como as fabricantes produzem aparelhos de maior custo benefício e topos de linha, é comum que existam diferenças entre segmentos diferentes desses equipamentos. Normalmente dispositivos mais acessíveis possuem uma capacidade de processamento reduzido, tornando um desafio manter a experiência do usuário fluída em comparação a equipamentos mais avançados.

Diante dos problemas levantados, as empresas que atuam no mercado de tecnologia necessitam se adaptar para garantir a qualidade de suas aplicações. 

Algumas estratégias foram adotadas para isso, como:

  • Levantamento de recursos e devices utilizados pelo público alvo;

  • Desenvolvimento deve contemplar o máximo de dispositivos e sistema operacional do segmento alvo;

  • Testes devem validar todos os dispositivos contemplados pelos desenvolvedores.

Esses processos tentam ser mais assertivos na qualidade das aplicações, mas não garantem a mesma, sendo revistos e adaptados por empresas e times de desenvolvimento.

Device Farm

Todos esses pontos levantados são efetivamente grandes desafios no dia a dia das equipes de desenvolvimento. Com isso em mente, o projeto Device Farm da Testing Company se iniciou em 2021, visando apoiar projetos de testes e desenvolvimento de aplicativos móveis.

Basicamente, uma device farm consiste em uma rede de dispositivos móveis que pode ser acessada remotamente, oferecendo acesso a diversos smartphones com diferentes versões, fabricantes e sistemas operacionais. Essa solução também visa a utilização simples e prática dos equipamentos, possibilitando que não se perceba grandes diferenças da utilização física dos aparelhos. 

Recursos de integração com ferramentas de teste e desenvolvimento também são incorporadas nessa solução. Atualmente, alguns softwares se integram com os aparelhos a fim de realizar depurações, instalações, testes e outras funções que são suportadas pela device farm. Todos os aparelhos também podem ser gerenciados pela organização a que pertencem, assim como a inclusão de mais aparelhos, se necessário.

Após pesquisas iniciadas em 2021, que incluíram testes e análises diante das evidências coletadas, o STF (Smartphone Test Farm) possibilitou a resolução de grande parte dos problemas citados. Sendo uma solução open source, o STF viabiliza a depuração de smartphones, smartwatches e outros gadgets remotamente, a partir do navegador no qual é acessado. 

Algumas outras tecnologias apoiam a execução e desenvolvimento do STF. Dentre elas é válido citar o Angular, RethinkDB, WebSocket e Google Protobuf. Para execução dos serviços, um servidor Linux com processador de 16 cores e 16 GB de Memória Ram foi configurado, com suporte teórico a 32 dispositivos físicos conectados. 

Com isso, todo o ambiente e software necessário para uma Device Farm foi providenciado e uma versão estável foi implantada para testes.

Soluções semelhantes no mercado:

Similarmente a esse projeto, empresas como Saucelabs, BrowserStack e Amazon, vendem acesso às suas device farms a um custo mensal por dispositivo utilizado.

Essas soluções contemplam a utilização dos dispositivos contratados para uso em testes manuais, testes automatizados e deploy dos aplicativos desenvolvidos. Parte do desafio é contemplar as mesmas funcionalidades oferecidas pelas outras empresas, visando que a experiência de uso dos aparelhos seja tão prática quanto a utilização do dispositivo fisicamente.

Na prática:

A Device Farm criada pela Testing Company possibilita que usuários façam a utilização dos recursos para testes manuais, automatizados e deploys de aplicativos. Em relação a testes manuais, assim que o usuário realiza o login no portal web do STF, uma listagem de todos os dispositivos conectados ao servidor é inicialmente exibida. Equipamentos em uso não são habilitados para utilização por outros usuários, somente smartphones ociosos podem ser acessados e utilizados. 

Além disso, são exibidas algumas informações importantes a respeito dos equipamentos disponíveis, entre elas o sistema operacional, a versão, modelo e status do aparelho. Acessando qualquer equipamento, um campo para interação em tempo real é apresentado, possibilitando utilização de mouse e teclado para realização dos testes. Coleta de logs, captura de telas, acesso a pastas e arquivos, instalação de aplicativos, interação console do aparelho e informações gerais são disponibilizadas em diversas abas exibidas para o usuário. Clique aqui para ver uma demonstração.

Algumas outras funcionalidades focadas em usuário mais avançados também estão disponíveis, o campo “Depurar Remotamente” exibido ao acessar um aparelho disponibiliza um comando que pode ser executado na máquina do próprio usuário, com o requisito de possuir o ADB (android debug bridge) instalado. Executando o comando em um console ou terminal, um indicativo de conexão é exibido, em paralelo uma ponte de conexão é realizada com o servidor e o computador do usuário já exibe o dispositivo nas listagens do ADB. Com isso, o aparelho já pode ser utilizado como se estivesse conectado fisicamente na máquina pessoal do usuário, permitindo que realize operações das mais diversas, incluindo a depuração e deploy de aplicativos. Clique aqui para ver um demonstrativo 

Arquitetura do Open STF:

Todas essas funcionalidades são possíveis pois a arquitetura de execução do STF é distribuída entre os devices conectados, servidor de execução e máquina pessoal do usuário. Cada um dos dispositivos móveis possui um aplicativo instalado automaticamente pelo STF denominado de STFService, realizando a disponibilização de informações do aparelho e dos recursos disponíveis. O servidor dispõe do banco de dados, APIs e processos que gerenciam as conexões, além de dispositivos e acesso remoto à plataforma. Já a máquina pessoal do usuário processa a interface e realiza conexões via protocolo WebSocket para permitir uso em tempo real do aparelho.

Benefícios alcançados com o projeto:

Quando comparada com soluções disponíveis no mercado, fica claro que a Device Farm TC tem algumas vantagens, principalmente por garantir fácil escalabilidade sem gerar custos adicionais. Lembrando que opções anteriormente citadas possuíam um custo que pode ser considerado elevado, valor esse que pode ser convertido na aquisição de dispositivos novos na solução proposta utilizando o STF.

Além disso, a facilidade de acesso a uma ampla gama de aparelhos através de um único link, compatibilidade com várias versões de sistemas operacionais, melhor controle de aparelhos pela organização responsável, redução de aquisição de dispositivos para colaboradores, fácil execução de automações e deploy de aplicativos, evidenciam o potencial da ferramenta e os desafios que foram com ela solucionados, visando sempre o aumento da qualidade das aplicações móveis desenvolvidas e homologadas pela Testing Company.

Compartilhar:
0 Comentários

Deixe seu comentário

Fale AGORA com um de nossos consultores

Comentário adicionado com sucesso