Testes de compatibilidade, processo complexo em função das necessidades do projeto
Os testes de compatibilidade podem ter diferentes significados dependendo da organização ou do contexto, mas se tivéssemos de os definir numa frase, seria a seguinte:
Aqueles testes cujo objetivo principal é assegurar que a aplicação ou produto se apresenta e funciona conforme especificado, no maior número possível de combinações de hardware e software (sistema operativo, navegador, etc.), para chegar com sucesso ao maior número de utilizadores, garantindo principalmente a funcionalidade e a visualização do mesmo, independentemente do contexto de execução.
No mundo do testing, e dependendo do projeto que temos em mão, os testes de compatibilidade mais comuns concentram-se nas seguintes 4 áreas:
Hardware
Pensemos, por exemplo, nos jogos (telemóveis, PCs / Macs e inclusive web), precisamos de ter a certeza de que no mínimo o nosso produto funcionará num conjunto de plataformas alvo (em termos de processadores compatíveis, tamanho e resolução de ecrã, quantidade de memória e capacidade do chip gráfico) que deveremos testar devidamente.
Sistema operativo
Neste caso, o nosso foco principal será assegurar a compatibilidade do nosso produto com as versões anteriores (retrocompatibilidade) e atuais do sistema operativo, utilizando mais uma vez as plataformas alvo dos testes.
Navegadores
Se a aplicação a testar for uma aplicação web, iremos observar os últimos estudos disponíveis na Internet sobre as estatísticas de uso dos navegadores mais utilizados no mercado. Podemos assegurar que com os 4 navegadores mais comuns (Chrome, Firefox, Safari e Edge) estaremos a cobrir mais de 90% dos potenciais utilizadores das nossas aplicações web:
Não obstante, temos de ter também em consideração que cada um destes navegadores tem versões e pode haver defeitos visuais ou funcionais devido a questões relacionadas com a forma como cada navegador (e versão) interpreta o código HTML e CSS, por exemplo. Estes testes são conhecidos como Cross Browser Testing. Existem também ferramentas no mercado que permitem, dada uma série de navegadores, validar automaticamente as capturas de ecrã obtidas, através de um algoritmo de comparação de imagens, para assegurar que a construção e visualização de cada página seja consistente em todos os navegadores.
Dispositivos móveis
Com o aumento do uso dos smartphones e das aplicações nativas, e tendo em conta a vastíssima oferta de dispositivos Android, hoje em dia este tipo de testes são obrigatórios em qualquer projeto de desenvolvimento móvel. Não pode ser de outra forma, tendo em consideração os sistemas de classificação nas lojas de ambas as plataformas (Google Play no Android e App Store no iOS), e a facilidade de os desinstalar ou mudar para outras aplicações concorrentes, assegurar a compatibilidade deve ser um elemento chave dentro dos processos de teste do produto.
Quando a estratégia de QA definida prescreve a realização destes testes, é necessário, em primeiro lugar, levar a cabo uma análise detalhada dos nossos utilizadores e de quais são os dispositivos mais comuns nos quais se instala a aplicação e as versões da plataforma que utilizam. O objetivo desta análise é filtrar e concentrar o esforço dedicado aos testes, procurando o maior retorno do investimento, uma vez que é impossível cobrir todos os testes em todos os dispositivos existentes. Devemos tentar assegurar que cobrimos a maior percentagem possível de utilizadores com o menor conjunto possível de dispositivos. É bastante conveniente poder cruzar estes dados com as funcionalidades que mais nos interessam assegurar (por exemplo, os utilizadores com iPhone 12 realizam mais compras na app do que aqueles com um iPhone 8) para que, se necessário, possamos dar prioridade a alguns dispositivos em relação a outros.
O maior volume de testes de compatibilidade é realizado em dispositivos móveis
Atualmente, podemos afirmar que o maior volume de testes de compatibilidade é realizado em dispositivos móveis e, dada a sua frequência de atualização e o ritmo de aparecimento de novos terminais no mercado, dispor de uma coleção de dispositivos físicos não parece ser a melhor decisão em termos de custos, principalmente devido:
- Á necessidade de aquisição periódica de terminais para se adaptar à realidade do mercado e dos utilizadores finais, e à depreciação sofrida pelos terminais que já possuímos. Por outro lado, devemos ter presente que a obsolescência das versões iOS e Android significará que deixarão de ser úteis para este tipo de teste.
- Ao custo do tempo dedicado à manutenção (factory resets), ao ajuste manual das versões de OS do dispositivo para cada ciclo de teste, à criação de um sistema de reserva para os testers, possíveis avarias, peças sobressalentes, etc.
- Ás restrições de localização, especialmente com a pandemia e o teletrabalho, em que cada membro da equipa trabalha numa localidade diferente. O envio contínuo de telemóveis significa uma perda em tempo de utilização e no próprio custo do envio.
Por todas estas razões, a recomendação mais comum e prática é utilizar os serviços de fornecedores de dispositivos móveis físicos na cloud como a SauceLabs, partner de referência da Izertis e principal fornecedor deste tipo de soluções. Com estas ferramentas licenciadas, temos a capacidade de testar quase qualquer dispositivo, com qualquer versão do seu sistema operativo, simplesmente carregando a aplicação (apk ou ipa) na cloud, selecionando o dispositivo sobre o qual a queremos testar, e conectando-nos a ele remotamente para realizar o teste. Além disso, temos a possibilidade de realizar cross browser testing (tanto desktop como mobile) de forma transparente, com as mesmas vantagens que a utilização de dispositivos móveis (dispor de forma rápida do acesso a um equipamento com o sistema operativo que queremos e o navegador que queremos validar). Por último, apresentam uma série de utilidades muito práticas ao realizar os testes, como a captura de ecrã, a gravação de vídeo, a simulação de localização, a utilização da câmara do dispositivo, etc.
Finalmente, para realizar o planeamento, execução, monitorização e relatórios dos testes de compatibilidade, existem muitas soluções no mercado, como por exemplo o Xray (um plugin Jira), que permite trabalhar com o conceito de test environment, de forma a que apenas um teste seja definido e testado em N "ambientes". O test environment pode ser o sistema operativo ou plataforma, o navegador, o modelo do dispositivo, etc., e estes elementos podem ser combinados entre si. Alguns benefícios da utilização do test environment são:
- Evita a duplicação de testes, uma vez que se executa o mesmo em diferentes test environments.
- Permite ver o último estado dos testes nos diferentes environments.
- Rastreabilidade da cobertura para cada environment e da cobertura geral tendo em conta os resultados de cada environment.
- Criação de relatórios, incluindo os de rastreabilidade, para cada environment ou de forma global.
Em suma, algo que à primeira vista pode parecer simples, como a validação do correto funcionamento de uma aplicação em múltiplos sistemas ou dispositivos, pode complicar-se bastante em função das necessidades do projeto. Confie nos serviços de QA da Izertis e na nossa experiência com soluções SauceLabs para realizar os seus testes de compatibilidade. Quer seja de forma manual, automatizada, em navegadores ou dispositivos móveis, teste com a Izertis.