Image for post
Image for post
Wagner Kenji Sato | Test Leader | everis Brasil

COMO AUMENTAR A PRODUTIVIDADE DE TESTES AUTOMATIZADOS MOBILE UTILIZANDO ACELERADORES

Uma das principais tecnologias que nos dá fácil acesso ao mundo digital, sem sombra de dúvidas são os dispositivos móveis, como celulares e tablets. Ao longo dos anos esses pequenos aparelhos vêm evoluindo com tamanha força que hoje não são mais usados apenas para seu propósito inicial, onde a necessidade do mundo era realizar chamadas de voz. Com a chegada dos smartphones às grandes massas, as ligações foram deixadas para segundo plano e abriram-se as portas para um mundo digital repleto de novidades, inovações e possibilidades.

Segundo a Pesquisa Nacional por Amostra de Domicílio (PNAD) do IBGE, em uma população de 10 anos ou mais, a parcela que tinha celular para uso pessoal passou de 77,1% (2016) para 78,2% (2017). Em 2017, na área urbana, esse percentual era de 81,9%, e, em área rural, 55,8%. As maiores participações estão nos grupos etários de 30 a 34 anos (88,9%) e de 25 a 29 anos (88,8%).

Se levarmos em consideração a praticidade de uso e agilidade no acesso, não é de se surpreender que na casa dos brasileiros o celular é o equipamento mais utilizado para acessar a Internet (98,7% dos domicílios em que havia acesso a Internet). Hoje, segundo levantamentos, há 230 milhões de celulares ativos no Brasil e uma média de uso de mais de 3 horas ao dia.

Com esse novo nicho de mercado, as empresas começaram a se movimentar para se adaptarem a essa nova realidade. Começam a surgir aplicativos cada vez mais focados na produtividade do dia-a-dia, além de ferramentas de trabalho que podem ser acessadas de qualquer lugar e por qualquer pessoa. Empresas líderes de mercado estão focando cada vez mais na satisfação do cliente, robustez e leveza dos aplicativos.

Atualmente, com os celulares tendo grande poder de processamento, somados a estabilidade e altas velocidades de redes móveis, os computadores estão sendo deixados um pouco mais de lado quando se fala em praticidade e portabilidade. Os celulares se tornaram a ferramenta principal para acessar a internet, realizar compras, efetuar transações bancárias, trabalhar, ou seja, se tornou uma extensão de como vivemos.

Agora imagine uma internet que seja até 50 vezes mais rápida do que a temos atualmente e que tenha uma troca de dados entre dispositivos de forma mais eficiente? Sim, com os celulares cada vez mais modernos e a chegada do 5G, poderemos vivenciar o mercado tecnológico com a estrutura ideal para que a internet das coisas seja uma realidade mundial. E com esse mar de novas possibilidades, as aplicações moveis também vão caminhar nessa expansão em prol de acompanhar os desenvolvimentos tecnológicos do mercado.

Quando se fala em expansão do mercado de aplicações móveis, automaticamente já pensamos nos problemas que isso pode acarretar. Quem nunca se deparou com um erro ao tentar acessar sua conta bancária ou um encerramento inesperado de um sistema de transporte por aplicativo? Neste momento a necessidade de implementação de testes mobile torna-se fundamental para garantir o nível de qualidade que atenda o mercado. Para minimizar esses riscos, o processo de desenvolvimento de software precisa andar de mãos dadas com as metodologias, técnicas e processos de garantia da qualidade.

Por muito tempo os testes funcionais de aplicações foram absorvidos pelos próprios desenvolvedores de software ou pelo time de negócios, que por conta de suas atividades principais, não tinham tempo e nem conhecimento para realizar uma validação adequada, acarretando em falhas nos sistemas, aumento de custo, impacto na imagem da empresa, possíveis vulnerabilidades de segurança e impacto para o usuário final. Glenford Myers em seu livro “The Art of Software Testing” de 1979 já citava que quanto mais cedo o erro for descoberto, menor é o custo para o projeto, conforme a “Regra 10 de Myers”.

Para todo projeto de desenvolvimento de software, deve se considerar a atividade de testes de software. Além disso, é necessário uma análise e levantamento de como deve ser inserido. Ao realizar tal atividade, é possível entender o quão maduro o time e o próprio software está. Dependendo de seu tamanho, pode-se aplicar diversos tipos de testes. Sendo eles desde os mais simples e de rápida resposta como os Testes Manuais até os mais avançados com Testes Automatizados e de Performance.

Com o aumento da demanda dos “App’s” e a necessidade de testá-los para gerar um produto final de qualidade, foram desenvolvidas várias metodologias que tem como objetivo encontrar o máximo de falhas que possam estar presentes nessas aplicações e garantir que o que foi desenvolvido está implementado de maneira correta. Testes Manuais são uma boa solução para a garantia da qualidade, porém torna-se inviável quando é necessária a execução com uma alta frequência. Através de Testes Automatizados é possível executar um conjunto de casos de testes mais rapidamente, diminuir o esforço repetitivo, além de ajudar a reduzir a falha humana devido aos scripts atuarem de maneira padronizada.

Altas frequências de execução dos testes demandam uma necessidade de ter uma escalabilidade maior em um ambiente controlado. Para suprir essa necessidade de mercado, surgem os Device Farms, que ajudam na escalabilidade dos testes, sejam eles manuais ou automatizados, e que podem ser montados localmente ou via serviços pagos que disponibilizam dispositivos móveis conectados à nuvem.

Device Farms em nuvem são uma excelente opção com relação à redução de custo com equipamentos reais, seja em aquisição de adicionais ou por depreciação. Além disso, as execuções de testes podem ser realizadas dentro de um ambiente com controle de versões dos sistemas operacionais, rede e energia, descartando a necessidade de dispositivos físicos em posse do time de testes. Seu custo relativamente alto se torna totalmente irrisório quando se fala em ganho de produtividade e qualidade de entrega.

Se algum dia você já tentou automatizar testes para a plataforma iOS, com certeza se deparou com os desafios de conexão local, via porta USB, com os dispositivos móveis e interação com os objetos dos App’s. As maiores empresas de Device Farms já possuem uma arquitetura que elimina essa atividade intermediária de configuração no ambiente Apple (XCode, conta developer e appium). Portanto, torna-se praticamente plug-and-play a automatização dos testes, eliminando horas de esforço em atividades não-relacionadas a criação de scripts.

Remover tarefas repetitivas com certeza é um dos principais propósitos dos testes automatizados. Imagine agora se além de reduzir esforço humano em execuções repetitivas, eliminar a dependência de compra de equipamentos, facilitar a integração de dispositivos móveis com as ferramentas de automatização seja possível acelerar o processo de criação de scripts com frameworks que reduzem drasticamente a quantidade de linhas de código.

Os frameworks realizam uma abstração, unindo vários códigos e funcionalidades já implementadas. Além disso nos trazem a centralização de componentes que possibilitam maior agilidade nas execuções dos scripts automatizados, provendo uma cobertura mais ampla de validações com mais confiabilidade nos resultados.

Em prol de reduzir custos e centralizar as ferramentas mais atuais do mercado, frameworks foram desenvolvidos, que adicionado aos códigos de testes automatizados minimiza o tempo de configuração das arquiteturas dos projetos e acelera a produtividade em criação e manutenção de scripts. Quando implementado ao código, provê uma alta taxa de adaptabilidade, sendo possível realizar a inserção ou remoção de tecnologias ou ferramentas que sejam mais compatíveis com o projeto. Por exemplo, atualmente o Selenium é a ferramenta mais utilizada em Testes Automatizados, porém caso uma nova ferramenta se torne a melhor de mercado, basta realizar a substituição com pouca perda de código e pouca complexidade de implementação. Com a estrutura encapsulada, a necessidade de baixar diversas bibliotecas a cada novo projeto é eliminada.

Um bom exemplo a ser citado é a necessidade de criar métodos gigantescos com o Apache POI para manipular documentos e capturar evidências de forma mais organizada. Um framework de testes automatizados encapsula as bibliotecas do Apache, somadas as ações do Selenium e nos gera as evidências e documentos de forma automática após a execução de cada teste.

Dentro de todos esses benefícios proporcionados por frameworks, a everis desenvolveu o EFATHREE. Conforme imagem abaixo, o framework desenvolvido pela everis é capaz de proporcionar uma ótima experiência ao automatizador, onde o projeto terá uma liberdade maior de adaptação/utilização de ferramentas e aceleração de resultados.

Segundo Roger Pressman, escritor da área de Engenharia de Software:

“Qualidade e facilidade de manutenção são resultantes de um projeto bem feito.”

Portanto, vincular a qualidade de software com aceleradores, como Device Farms e Frameworks, irão facilitar os processos e agregar mais valor aos projetos e consecutivamente ao usuário final. Elevar a qualidade dos produtos digitais é fator imprescindível e a área de Qualidade de Software será fundamental e importante colaboradora para dar os próximos passos na evolução digital.

Written by

Exponential intelligence for exponential companies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store