Os testes de compatibilidade são uma componente integral de muitas estratégias de garantia de qualidade, permitindo às empresas verificar se o seu software funciona corretamente em diferentes plataformas. Mesmo para um programa exclusivo para computadores de secretária, há vários sistemas operativos importantes a ter em conta e centenas – se não milhares – de diferenças de hardware que podem afetar a estabilidade. Compreender o processo de teste de compatibilidade e as suas vantagens habituais pode ajudar a garantir um lançamento de produto eficaz, capaz de atingir o maior número possível de utilizadores.
Embora os testes de compatibilidade possam oferecer uma série de benefícios, existem também vários desafios significativos que uma equipa de testes de software tem de ultrapassar para maximizar o potencial desta técnica. Há também práticas específicas que estes departamentos devem empregar para obter os melhores resultados – e garantir uma cobertura global de testes abrangente.
Neste artigo, analisamos em pormenor os testes de compatibilidade, incluindo os passos essenciais que as equipas devem seguir, bem como as ferramentas de teste mais úteis atualmente disponíveis.
O que é o teste de compatibilidade em
testes e engenharia de software?
Os testes de compatibilidade examinam o software em diferentes dispositivos, hardware e firmware para garantir que o seu desempenho corresponde às expectativas da equipa. Cada utilizador pode estar a interagir com o seu programa num novo dispositivo, o que torna importante que a empresa possa garantir que todos tenham uma experiência semelhante. Os testes de compatibilidade, por exemplo, podem envolver a verificação de cada caraterística de uma aplicação para garantir que funciona em todos os principais sistemas operativos.
Sem testes de compatibilidade completos, é perfeitamente possível que uma empresa lance uma aplicação que não funcione em determinados dispositivos populares. Estas verificações devem ser exaustivas porque um problema pode surgir de várias formas – esta aplicação pode não funcionar com um tipo muito específico de placa gráfica, por exemplo. Quando combinados com outras formas de teste de software, as equipas de garantia de qualidade podem certificar-se de que o seu programa está pronto para ser lançado.
1. Quando e por que razão é necessário efetuar testes de compatibilidade para aplicações móveis, sítios Web, sistemas e navegadores cruzados?
As empresas realizam testes de compatibilidade na sua fase de testes de software, especificamente quando têm uma versão “estável” do programa que reflecte com precisão o seu comportamento para os clientes. Isto continua depois dos testes alfa, de aceitação e de outras formas de teste que procuram frequentemente a estabilidade geral e problemas relacionados com as características. Se uma aplicação se deparar com problemas durante a fase de teste de compatibilidade, isso deve-se normalmente a questões específicas relacionadas com a compatibilidade. A realização destas verificações demasiado cedo pode efetivamente torná-las redundantes, uma vez que pequenas alterações posteriores no ciclo de desenvolvimento do programa podem afetar radicalmente a compatibilidade.
Os testes de compatibilidade para browsers e software são importantes porque ajudam as empresas a lançar uma aplicação que sabem que funcionará adequadamente em praticamente todos os dispositivos possíveis. Por exemplo, os testes de compatibilidade entre navegadores ajudam a garantir que as pessoas que utilizam o Opera têm a mesma experiência que as que utilizam o Firefox e outros navegadores importantes. Normalmente, a equipa testa tantas variações de hardware/software quanto o tempo e o orçamento permitirem. Isto significa que devem dar prioridade, de forma inteligente, aos sistemas ou navegadores que os seus clientes têm maior probabilidade de utilizar, permitindo-lhes garantir uma ampla cobertura de testes e um produto viável.
2. Quando não é necessário efetuar testes de compatibilidade de software
As empresas podem criar uma aplicação à medida para um sistema operativo ou modelo específico, limitando enormemente o número de verificações necessárias. O teste de compatibilidade entre browsers no teste de software pode ser redundante se este programa não necessitar de um browser, por exemplo. O tempo também pode ser um fator importante na capacidade de uma empresa para realizar estes testes, embora as equipas de teste devam continuar a trabalhar para garantir que os principais sistemas e navegadores são compatíveis com o software. Há também certos projectos que não podem beneficiar de testes de compatibilidade básicos.
3. Quem está envolvido nos testes de compatibilidade?
Eis as principais pessoas que efectuam testes de compatibilidade em testes de software:
1. Desenvolvedores
A equipa de desenvolvimento verifica o desempenho da aplicação numa plataforma durante o desenvolvimento e este pode até ser o único dispositivo em que a empresa pretende lançar o programa.
2. Testers
As equipas de garantia de qualidade, internas à empresa ou contratadas externamente, verificam muitas configurações possíveis como parte da fase de teste de compatibilidade da aplicação, incluindo todos os principais sistemas operativos e navegadores.
3. Clientes
Os clientes da empresa podem ter hardware ou configurações que a equipa não conseguiu testar exaustivamente, o que pode fazer com que a sua experiência de utilizador seja a primeira verificação real dessa configuração específica.
Benefícios dos testes de compatibilidade
Os benefícios habituais dos testes de compatibilidade de software incluem:
1. Público mais vasto
Quanto mais exaustivamente uma equipa testar o seu software, mais dispositivos poderá lançar com confiança, garantindo que um vasto público em muitas plataformas possa usufruir da sua aplicação. Isto permite às empresas obter mais vendas de produtos no programa e pode também melhorar o número de críticas positivas que este software recebe dos utilizadores.
2. Melhora a estabilidade
O teste de compatibilidade no teste de software é essencial para destacar os problemas de estabilidade e desempenho, que muitas vezes podem ser mais pronunciados em diferentes dispositivos – especialmente se os criadores apenas conceberam esta aplicação para uma plataforma. Um teste de compatibilidade do sistema mostra à empresa o que os utilizadores (numa vasta gama de dispositivos) podem esperar do desempenho geral do software.
3. Aperfeiçoa o desenvolvimento
Estes testes também têm impactos significativos a longo prazo numa equipa de desenvolvimento. Por exemplo, os testes de compatibilidade móvel podem fornecer informações valiosas sobre o desenvolvimento de aplicações que as empresas podem ter em conta quando criam programas adicionais. Isto pode reduzir significativamente as despesas com testes de compatibilidade para projectos futuros, permitindo-lhes reutilizar as lições aprendidas com este processo.
4. Verifica outros testes
A maioria das formas de teste até agora são limitadas no seu âmbito e não testam todas as combinações possíveis de hardware ou software – estes testes poderiam efetivamente verificar estes resultados. Os testes de compatibilidade entre navegadores, por exemplo, validam as fases de garantia de qualidade pré-existentes, mostrando que os resultados são os mesmos quando o utilizador tem um navegador diferente.
5. Reduzir os custos
Os testes de compatibilidade também podem reduzir os custos do programa atual, ajudando as equipas a identificar problemas antes de uma aplicação ser lançada ao público – nesta altura, a correção de erros torna-se mais dispendiosa. Quanto mais variados forem os testes de uma equipa (e quanto maior for a sua taxa de cobertura de testes), mais barato será remover quaisquer erros à medida que forem surgindo.
Desafios dos testes de compatibilidade
Eis os desafios comuns que as empresas podem enfrentar quando implementam testes de compatibilidade em testes de software:
1. Tempo limitado
Embora as ferramentas de automatização e outras soluções possam acelerar significativamente os testes de compatibilidade através da simulação de uma série de dispositivos, este processo tem de continuar a respeitar o calendário de desenvolvimento da empresa. Isto significa que a equipa de testes tem de dar prioridade aos dispositivos e browsers mais comuns para garantir que recebem a audiência mais vasta (e mais populosa).
2. Falta de dispositivos reais
Estas verificações envolvem normalmente máquinas virtuais que simulam os componentes e as condições de dispositivos reais; isto é muito mais barato (e mais rápido) do que adquirir independentemente as peças e plataformas relevantes. No entanto, isto pode afetar a precisão destes resultados, especialmente porque o desempenho depende muitas vezes da forma como os utilizadores utilizam um dispositivo real.
3. Difícil de preparar para o futuro
Os testes de compatibilidade só podem ser efectuados com plataformas que já existem, o que significa que não podem garantir que a aplicação funcionará como esperado em futuras versões do Windows e do Google Chrome. As organizações só podem corrigir este problema após o lançamento, o que é frequentemente mais dispendioso, e a aplicação pode acabar por ficar obsoleta.
4. Manutenção das infra-estruturas
Se uma equipa decidir verificar uma quantidade significativa de plataformas internamente, isso pode resultar em taxas de infraestrutura elevadas. Os testes de compatibilidade para aplicações móveis, por exemplo, podem implicar a aquisição de uma série de dispositivos móveis reais. Embora seja mais exato do que um teste de compatibilidade de hardware simulado, é dispendioso e implica normalmente uma manutenção regular.
5. Elevado número de combinações
Os testes de compatibilidade têm em conta muitos factores que se cruzam, como o sistema operativo, o browser, o hardware, o firmware e até a resolução do ecrã. Mesmo que a equipa de testes disponha de muito tempo, seria efetivamente impossível ter em conta todas as possibilidades. Os testes de configuração e compatibilidade devem novamente dar prioridade às combinações de dispositivos mais prováveis.
Características dos ensaios de compatibilidade
As principais características dos testes de compatibilidade incluem:
1. Completa
Estas verificações devem ser capazes de isolar quaisquer possíveis problemas de compatibilidade que surjam entre dispositivos – ou a equipa pode acabar por lançar um programa defeituoso. Por exemplo, estas verificações devem garantir que todas as funcionalidades da aplicação são apresentadas como esperado, independentemente da resolução do ecrã do utilizador.
2. Expansivo
Os testes devem manter um equilíbrio entre profundidade e amplitude, ajudando as equipas a investigar uma série de problemas em muitas configurações de dispositivos. Os testes de compatibilidade entre navegadores analisam uma vasta gama de combinações de sistemas operativos e navegadores, garantindo um elevado nível de cobertura – por vezes com a ajuda de uma solução automatizada.
3. Bidirecional
Este processo envolve testes de compatibilidade com versões anteriores e posteriores; o primeiro permite à equipa ver como a sua aplicação funcionará em hardware mais antigo. Este último permite à equipa aceder a plataformas de ponta, ajudando-a a garantir um bom desempenho a longo prazo, mesmo que as suas capacidades de preparação para o futuro sejam bastante limitadas.
4. Repetível
Os problemas que estas verificações revelam devem ser fáceis de repetir por outros testadores e departamentos, mostrando que reflectem erros que os utilizadores provavelmente encontrarão. Se um teste de compatibilidade de um sítio Web indicar que determinadas funcionalidades não estão a funcionar num determinado navegador, a repetição ajuda os programadores a resolver o problema.
Tipos de testes de compatibilidade
Os principais tipos de testes de compatibilidade são os seguintes:
1. Teste de compatibilidade com versões anteriores
O teste de retrocompatibilidade envolve a verificação da aplicação utilizando versões mais antigas do hardware atual – isto é essencial porque restringir estas verificações a dispositivos modernos pode limitar significativamente o número de utilizadores. Muitas pessoas ainda utilizam sistemas operativos mais antigos, como o Windows 8, por exemplo.
2. Testes de compatibilidade futura
O teste de compatibilidade futura é semelhante, mas analisa as tecnologias modernas ou futuras para ver se a aplicação continuará a funcionar durante anos, apesar dos avanços e actualizações. Sem estes testes, o software pode mesmo deixar de funcionar com a próxima atualização do browser, por exemplo.
3. Teste de compatibilidade de navegadores
Os testes de compatibilidade do navegador do sítio Web garantem que uma aplicação Web ou um sítio Web pode funcionar em vários navegadores; isto é vital, uma vez que utilizam diferentes motores de apresentação. As equipas de garantia de qualidade testam mesmo a compatibilidade entre browsers, o que significa que verificam se cada browser consegue lidar com a aplicação em sistemas operativos diferentes.
4. Teste de compatibilidade móvel
O teste de aplicações móveis é um processo semelhante ao da verificação de aplicações desktop e web, especialmente porque o sistema operativo do telefone é outro fator importante. As aplicações para Android e iOS, por exemplo, são apresentadas em formatos totalmente diferentes e requerem um processo de desenvolvimento e de teste totalmente distinto para se adaptarem a ambos.
5. Teste de compatibilidade de hardware
Estas verificações analisam os componentes específicos que constituem a máquina e a forma como podem afetar um programa; isto é fundamental para praticamente qualquer tipo de dispositivo. Por exemplo, um computador pode ter uma placa gráfica que não consegue processar com êxito a interface de uma aplicação Web.
6. Teste de compatibilidade de dispositivos
Algumas aplicações ligam-se a dispositivos externos através de Bluetooth, banda larga ou uma ligação com fios. Uma aplicação pode precisar de se ligar a uma impressora, por exemplo. Estes testes destinam-se a garantir que o programa se relaciona com as ligações da própria plataforma e com quaisquer dispositivos a que possa aceder.
7. Teste de compatibilidade de rede
Se uma aplicação necessitar de uma funcionalidade de rede para ser executada – por exemplo, ligando-se a uma base de dados em linha através do servidor da empresa – isto requer numerosas verificações de compatibilidade. Isto assegura que o programa é capaz de funcionar a uma velocidade adequada com uma ligação de rede Wi-Fi, 4G ou 3G.
O que é que testamos nos testes de compatibilidade?
Os testadores de compatibilidade verificam normalmente o seguinte:
1. Desempenho
Um dos principais objectivos dos testes de compatibilidade é garantir a estabilidade, uma vez que alguns aspectos da aplicação podem ser totalmente incompatíveis com plataformas comuns. Ao analisar a capacidade de resposta geral deste programa, a equipa de testes garante que não existem falhas graves em determinados dispositivos.
2. Funcionalidade
Os testes de compatibilidade também verificam as características e funções gerais de uma aplicação para garantir que o software é capaz de fornecer os resultados correctos. Por exemplo, um sistema de gestão das relações com os clientes pode não conseguir oferecer dados de vendas ou análises gerais a utilizadores com um sistema operativo desatualizado.
3. Gráficos
Alguns browsers ou dispositivos podem ter dificuldade em processar determinados elementos gráficos por várias razões – e as verificações de compatibilidade podem ajudar nesse sentido. Um programa pode funcionar apenas em resoluções de ecrã específicas, a menos que os programadores alterem a forma como o programa apresenta o seu conteúdo.
4. Conectividade
Os testes de compatibilidade também analisam a forma como o programa se integra especificamente com o dispositivo do utilizador e com a sua própria base de dados, permitindo-lhe detetar dispositivos como impressoras. Estas verificações podem, por exemplo, revelar que a aplicação não consegue ligar-se à sua própria base de dados em redes 3G.
5. Versatilidade
Estas verificações garantem que a aplicação da empresa é suficientemente versátil para funcionar em versões antigas e novas do mesmo sistema operativo através de testes de compatibilidade com versões anteriores e posteriores. Isto garante que os utilizadores não ficam impedidos de aceder ao programa se o seu software estiver alguns anos desatualizado.
Tipos de resultados dos ensaios de compatibilidade
Os três principais resultados dos testes de compatibilidade são:
1. Resultados dos testes
A saída mais comum para estas verificações são os próprios resultados, que podem assumir muitas formas. Por exemplo, o teste de compatibilidade do navegador pode revelar que uma aplicação Web resulta numa fuga de memória no Microsoft Edge, enquanto a mesma aplicação não tem efeitos negativos nos navegadores baseados no Chrome. Em alternativa, a aplicação pode funcionar exatamente como a equipa espera nas plataformas relevantes.
2. Registos de testes
Os resultados dos testes também se manifestam sob a forma de registos da própria aplicação, que destacam quaisquer problemas de software descobertos através de mensagens de erro. Estes registos podem até identificar a parte específica de um programa que está a causar este erro. Para os testes de compatibilidade, em particular, os testadores devem estar familiarizados com a forma como estes registos se manifestam e apresentam estes problemas em diferentes plataformas.
3. Casos de teste
Os casos de teste de compatibilidade definem os testes que a equipa irá realizar e oferecem um espaço para registar os resultados num formato simples. Os testadores devem utilizar o seu conhecimento do software, em conjunto com os resultados e os registos, para identificar a causa de um problema. Quanto mais informações fornecerem, mais rapidamente os programadores poderão iniciar a correção de erros.
Tipos de defeitos detectados
através de testes de compatibilidade
Eis os erros mais comuns que os testes de compatibilidade podem identificar:
1. Escalonamento do layout
Um teste de compatibilidade de sítios Web pode mostrar se os elementos que compõem uma aplicação Web, ou mesmo páginas Web, se adaptam ao dispositivo do utilizador, especificamente à resolução e ao tamanho do seu ecrã. Consequentemente, alguns gráficos podem ser difíceis de visualizar em determinados navegadores.
2. Falhas de software
Os testes de compatibilidade permitem verificar mais facilmente se uma aplicação pode ser executada em algumas plataformas. Por exemplo, um programador de jogos pode descobrir os requisitos mínimos de sistema do seu produto verificando quais os dispositivos que falham devido a RAM e velocidade de processador insuficientes quando os testadores o lançam.
3. Problemas de validação HTML/CSS
Diferentes navegadores e dispositivos lêem o código de formas diferentes – alguns corrigem automaticamente erros de codificação simples, como não fechar corretamente uma etiqueta HTML. Os testes de compatibilidade do navegador podem identificar instâncias de CSS inválido que impedem a aplicação de gerar o seu conteúdo e até funções básicas.
4. Erros de reprodução de vídeo
Muitos leitores de vídeo modernos utilizam o HTML5 para transmitir vídeos em linha, o que pode constituir uma parte essencial da aplicação Web de uma empresa. No entanto, as equipas que verificam a compatibilidade do navegador do sítio Web podem descobrir que as funcionalidades de vídeo da sua aplicação não são compatíveis com navegadores desactualizados.
5. Segurança dos ficheiros
Os testes de compatibilidade na engenharia de software também podem encontrar problemas com a segurança dos ficheiros e a forma como esta varia entre dispositivos. Por exemplo, as versões mais recentes do Windows têm uma segurança de entrada/saída mais robusta. Isto pode levar a que a aplicação (como o software antivírus) tenha dificuldade em aceder aos ficheiros do dispositivo.
Processo de teste de compatibilidade
As etapas habituais dos testes de compatibilidade são:
1. Elaborar um plano de teste
Um plano de testes abrangente é fundamental para os testes de compatibilidade; a equipa de garantia de qualidade pode consultá-lo sempre que necessário durante as suas verificações. Por exemplo, isto especifica os dispositivos que irão testar e os critérios de aprovação ou reprovação; devem também estabelecer se irão utilizar a automatização de processos robóticos.
2. Configurar casos de teste
Os casos de teste são igualmente importantes, uma vez que descrevem as verificações de compatibilidade específicas que as equipas executam e os dispositivos específicos com que trabalham. Contém também os passos exactos que os testadores devem seguir e um espaço amplo para registarem o resultado e qualquer informação que ajude os criadores a reforçar a compatibilidade.
3. Estabelecer o ambiente de teste
É necessário um ambiente de teste isolado e independente, livre de influências externas, para garantir testes precisos, permitindo também que a equipa de garantia de qualidade identifique a origem dos problemas que descobrem. Além disso, os testadores podem efetuar as suas verificações na aplicação sem comprometer a versão “real” de forma alguma.
4. Executar os testes
Com os casos de teste e o ambiente totalmente preparados, a equipa pode começar os testes de compatibilidade – mesmo com uma solução automatizada, têm apenas um período de tempo limitado. Os testadores terão de dar prioridade aos sistemas operativos e configurações de dispositivos mais comuns para ter em conta este facto e garantir uma ampla cobertura de testes apesar destas limitações.
5. Novo teste
Quando os testes estiverem concluídos e os programadores receberem os casos de teste, modificarão a aplicação de forma a melhorar a sua compatibilidade, embora tal possa não ser possível para todos os dispositivos. Os testadores voltam então a verificar a aplicação e verificam se os problemas anteriormente detectados já não estão presentes e se não existem novos erros graves.
Métricas comuns de teste de compatibilidade
Eis algumas métricas comuns utilizadas para testes de compatibilidade:
1. Largura de banda
Os testes de compatibilidade de rede medem a forma como a aplicação se relaciona com várias redes, incluindo redes de dados de banda larga e móveis. A largura de banda mínima necessária para que o programa desempenhe as suas funções habituais e se ligue à base de dados da empresa pode ser demasiado elevada para uma ligação 3G média, por exemplo.
2. Utilização da CPU
Uma forma de os problemas de desempenho se manifestarem é através de uma utilização desproporcionadamente elevada da CPU – isto pode significar que o dispositivo simplesmente não cumpre os requisitos mínimos do programa. Os problemas da CPU também podem afetar o tempo de resposta da aplicação, limitando a sua funcionalidade e causando um atraso suficiente para desinteressar os utilizadores.
3. Escala de usabilidade do sistema
A Escala de Usabilidade do Sistema é uma forma comum de medir detalhes subjectivos de um programa, incluindo dez perguntas básicas sobre a usabilidade de uma aplicação. A pontuação SUS resultante é de 100 e pode diferir de uma plataforma para outra devido a erros gráficos.
4. Número total de defeitos
Esta métrica é uma constante na maioria dos tipos de teste, permitindo aos testadores compreender o estado atual do programa. Também é possível à equipa comparar os totais de defeitos entre as várias plataformas. Deste modo, os testadores podem identificar os erros que se devem a incompatibilidades.
5. Pontuação SUPRQ
Semelhante à pontuação SUS de uma aplicação, o Questionário de classificação percentual da experiência do utilizador normalizada é uma forma de os testadores classificarem uma aplicação em vários factores-chave, incluindo a usabilidade e o aspeto. Isto ajuda-os a identificar como os clientes podem ter dificuldade em utilizar a aplicação em determinados dispositivos.
7 Erros e Armadilhas na Implementação de Testes de Compatibilidade
Eis sete erros importantes a evitar quando se efectuam testes de compatibilidade:
1. Falta de dispositivos reais
Embora seja impossível testar em todas as combinações possíveis de dispositivos, uma equipa de testes pode beneficiar da utilização do maior número possível de dispositivos reais. Várias plataformas oferecem dispositivos “reais” através de soluções na nuvem, a fim de facilitar os testes de compatibilidade entre browsers de forma a refletir o desempenho nativo.
2. Evitar dispositivos mais antigos
Muitos utilizadores ainda acedem às suas aplicações em versões mais antigas do Windows ou do iOS; concentrar-se exclusivamente em novas edições de dispositivos e sistemas operativos populares poderia limitar o alcance de um produto. Se a equipa não alargar os seus testes a dispositivos “ultrapassados”, uma parte significativa do seu público poderá ter dificuldades em utilizar o programa.
3. Má gestão do tempo
Muitas vezes, há um grande volume de dispositivos e configurações que requerem um teste de compatibilidade, o que significa que a equipa tem de gerir o seu tempo para verificar o maior número possível de dispositivos. Isto é importante, uma vez que os testes estão normalmente ainda a decorrer perto do final do desenvolvimento; uma má gestão poderia limitar enormemente o número de verificações.
4. Programação incorrecta
É igualmente fundamental que as equipas se certifiquem de que realizam estes testes numa fase razoável do desenvolvimento do programa, de preferência após os testes alfa e a maioria das formas de testes funcionais. Desta forma, é mais fácil perceber se um problema é um defeito geral ou específico dos dispositivos que a equipa está a analisar.
5. Não ter em conta a resolução do ecrã
A resolução do ecrã pode ser um fator de compatibilidade muito maior do que muitas equipas de testes reconhecem – especialmente porque é personalizável e tem impacto na forma como um dispositivo apresenta elementos gráficos. Mesmo com um prazo cada vez mais curto para os testes de compatibilidade, é vital que as equipas de testes continuem a trabalhar para incluir este aspeto na sua estratégia.
Falta de conhecimentos especializados
Os testadores têm de ser altamente qualificados para verificar a compatibilidade do sítio Web, do navegador e do software, entre as muitas outras formas que estes testes podem assumir. Se um líder de testes atribuir a um dos membros da sua equipa a realização de verificações de compatibilidade e este não tiver experiência suficiente, isso pode atrasar os testes e limitar a sua precisão.
6. Não houve debate prévio
Uma vez que os testes de compatibilidade são muitas vezes demorados (e podem exigir uma vasta gama de dispositivos), as equipas devem estabelecer o âmbito das suas verificações logo na fase de garantia de qualidade. Por exemplo, devem ter uma ideia clara dos dispositivos ou configurações específicos que pretendem testar antes mesmo de começarem as verificações.
Melhores práticas para testes de compatibilidade
As melhores formas de garantir testes de compatibilidade de alta qualidade incluem:
1. Testar ao longo do desenvolvimento
Como o software muda significativamente de uma semana para a outra, isso pode afetar a compatibilidade do programa com os dispositivos a que se destina. As equipas têm de efetuar repetidamente testes de compatibilidade de software e entre browsers para se certificarem de que a aplicação continua a funcionar bem nestas plataformas após as alterações de desenvolvimento.
2. Utilizar dispositivos reais
Algumas ferramentas de teste de compatibilidade oferecem acesso a dispositivos simulados “reais”, capazes de se assemelharem à experiência do utilizador para essa plataforma. Isto permite-lhe assegurar a compatibilidade entre mais dispositivos, mantendo um elevado nível de precisão que não está presente em certas soluções automatizadas.
3. Priorizar os testes
Com um período de tempo limitado para realizar estas verificações, os testadores de compatibilidade poderão ter de dar prioridade aos dispositivos, browsers e sistemas operativos mais comuns. Do mesmo modo, a equipa de testes deve inspecionar primeiro as características mais críticas do software para garantir a funcionalidade básica nesses dispositivos.
4. Integrar técnicas ágeis
Algumas empresas optam por adotar uma abordagem baseada em sprints para os seus testes de compatibilidade, o que lhes permite atingir facilmente marcos de teste, como a verificação de um número específico de dispositivos. O método ágil incentiva a comunicação entre departamentos e, ao mesmo tempo, fornece uma estrutura de teste definida que pode garantir uma melhoria consistente e rápida.
5. Limitar o âmbito dos ensaios
As equipas de garantia de qualidade têm de saber quando devem terminar os seus testes e até aceitar um caso de incompatibilidade. Neste caso, o programador pode não alterar o software e pode, em vez disso, alterar os requisitos mínimos, se tal for demasiado difícil de contornar através da correção de erros.
Exemplos de casos e cenários de testes de compatibilidade
Os casos de teste de compatibilidade estabelecem as entradas da equipa de teste, a estratégia de teste e os resultados esperados; estes últimos são comparados com os resultados reais. Como as verificações abrangem muitos dispositivos e configurações, este é frequentemente um processo extenso.
Estes casos incluem normalmente:
– Teste se o HTML da aplicação Web é apresentado corretamente.
– Verifique se o código JavaScript do software é utilizável.
– Veja se a aplicação funciona em diferentes resoluções.
– Testar se o programa pode aceder ao diretório de ficheiros.
– Certifique-se de que a aplicação se liga a todas as redes viáveis.
Eis alguns exemplos específicos de testes de compatibilidade em testes de software para diferentes programas:
1. Aplicação de rede social
As redes sociais assumem normalmente a forma de aplicações Web nos navegadores e de aplicações móveis para os dispositivos correspondentes; ambos os tipos requerem testes igualmente exaustivos. Por exemplo, esta aplicação móvel deve estar totalmente operacional em dispositivos iOS e Android, no mínimo – com a equipa a verificar dispositivos antigos e novos em cada sistema operativo. Se um modelo específico de iPhone não conseguir processar ficheiros GIF animados, por exemplo, a equipa deve identificar a causa para garantir uma experiência de utilizador consistente.
2. Jogos de vídeo
Os jogos de vídeo oferecem geralmente opções gráficas personalizáveis que os utilizadores podem alterar para se adaptarem à sua máquina; isto inclui controlar a resolução do ecrã e assegurar que a IU é dimensionada adequadamente. Alguns problemas podem surgir dependendo do hardware específico do jogador – com erros de antialiasing que levam a gráficos granulados. Isto pode dever-se a uma placa gráfica comum que é incompatível com a renderização de texturas da empresa. Dependendo do problema exato, este pode até manifestar-se como uma falha do sistema quando determinados dispositivos iniciam o jogo.
3. Sistema CRM em nuvem
As soluções de gestão das relações com os clientes utilizam fortemente as bases de dados para recuperar informações sobre as suas transacções, fornecedores e outras facetas importantes do negócio, principalmente com a ajuda do armazenamento em nuvem. Os responsáveis pelos testes devem certificar-se de que esta base de dados e os seus serviços em nuvem funcionam em diferentes redes, incluindo 3G e 4G, se um utilizador precisar de aceder à mesma sem ligação à Internet. A equipa deve também inspecionar uma vasta gama de sistemas operativos, uma vez que certas falhas podem aparecer apenas em dispositivos Linux, por exemplo.
Testes de compatibilidade manuais ou automáticos?
A automatização pode ser muito útil para os testes de compatibilidade, permitindo às equipas verificar um elevado número de dispositivos muito mais rapidamente do que uma abordagem manual. No entanto, os testes manuais podem ser mais adequados quando se realizam verificações num número limitado de navegadores e dispositivos – por exemplo, um jogo de vídeo disponível apenas em duas plataformas. A facilidade de utilização do software é muitas vezes um fator essencial nos testes de compatibilidade e requer normalmente uma perspetiva humana que possa identificar melhor os problemas de representação gráfica. A automatização de processos robóticos pode ajudar neste aspeto através da implementação de robôs de software que podem imitar mais facilmente a abordagem de um utilizador humano aos testes de compatibilidade.
Para programas concebidos para uma vasta gama de dispositivos, como aplicações móveis e da Web, a automatização permite à equipa assegurar uma cobertura de teste mais ampla. Podem até utilizar a hiperautomatização para externalizar de forma inteligente estas verificações, de modo a garantir que os testadores humanos inspeccionem estas plataformas para verificar a funcionalidade específica do utilizador. Os testes de compatibilidade nos testes manuais continuam a ser obrigatórios para algumas tarefas – como verificar se a IU é apresentada corretamente em todos os dispositivos. Isto significa que a melhor abordagem pode ser uma estratégia combinada que pode testar mais dispositivos em geral através da automatização, aumentando o seu ritmo, sem deixar de ter em conta a importância da usabilidade.
O que é necessário para iniciar um teste de compatibilidade?
Os principais pré-requisitos para os testes de compatibilidade incluem normalmente:
1. Pessoal de ensaio qualificado
Os verificadores de compatibilidade têm geralmente requisitos de competências mais elevados do que outras formas de garantia de qualidade, devido ao facto de verificarem uma gama mais vasta de dispositivos e encontrarem frequentemente mais erros. Isto pode incluir a resolução de problemas, a comunicação e a atenção aos pormenores. Os chefes de equipa devem atribuir testadores com experiência na análise da mesma aplicação em várias plataformas.
2. Forte emulação de dispositivos
Pode ser difícil obter e testar todos os dispositivos físicos dentro do âmbito da equipa, tornando a emulação essencial para ver como as várias plataformas respondem ao mesmo programa. Este processo raramente é perfeito e os testadores devem olhar para os muitos emuladores e ferramentas de teste automatizadas disponíveis para ver qual deles oferece a maior precisão.
3. Âmbito claro dos testes
A equipa deve ter uma noção do seu âmbito antes do início das verificações, especialmente porque isso pode decidir o ritmo a que trabalham. Embora o programa possa ter como objetivo abranger muitas plataformas, os testadores devem identificar um ponto de corte adequado. Por exemplo, testar sistemas operativos lançados antes do Windows 7 pode conduzir a rendimentos decrescentes.
4. Gestão do tempo
O teste de compatibilidade pode ocorrer em qualquer altura da fase de garantia de qualidade, mas é normalmente guardado para o final do desenvolvimento – quando o programa está estável e com todas as funcionalidades completas. No entanto, os testadores devem considerar a compatibilidade muito antes disso, uma vez que, muitas vezes, consome muito tempo. Um planeamento robusto com antecedência ajuda a equipa a garantir que tem tempo suficiente para cada verificação.
Teste de compatibilidade
lista de controlo, dicas e truques
Seguem-se dicas adicionais que as equipas de garantia de qualidade devem ter em mente ao realizar testes de compatibilidade:
1. Não tenha como objetivo a cobertura absoluta
Embora todas as estratégias de teste tenham como objetivo maximizar a cobertura dos testes, normalmente param antes de atingir 100% devido aos rendimentos decrescentes com apenas pequenas melhorias para muito poucos utilizadores. No contexto da compatibilidade, as equipas devem compreender quando é que um número demasiado reduzido de clientes utilizaria um dispositivo para que estas verificações valessem a pena.
2. Dar prioridade às combinações entre navegadores
Os testes de compatibilidade entre navegadores envolvem a verificação de cada navegador em relação a vários sistemas operativos. Os testadores devem utilizar análises exaustivas sobre o seu público para determinar o mais popular de ambos e utilizá-las para orientar a sua abordagem. Podem até desenvolver uma matriz de compatibilidade de browsers, que estabelece o âmbito destas verificações e as suas diversas configurações.
3. Verificar a disposição
Garantir uma experiência consistente está no centro dos testes de compatibilidade e estas verificações devem ir mais além do que identificar se as funcionalidades do programa funcionam em diferentes dispositivos. As equipas devem também verificar a disposição geral do software, incluindo o alinhamento de quaisquer formulários ou tabelas, bem como a integridade do CSS e do HTML do programa.
4. Verificar APIs
As interfaces de programação de aplicações são um componente essencial da forma como os browsers lêem as aplicações, tornando-as vitais para os testes de compatibilidade entre browsers de uma equipa. Os diferentes navegadores Web têm as suas próprias chamadas API e as suas actualizações ao longo do tempo podem afetar a compatibilidade. Os testadores devem verificá-las regularmente, mesmo que a empresa utilize uma API semelhante para cada programa.
5. Examinar o certificado SSL
Os certificados SSL aumentam a segurança de um navegador, encriptando o tráfego da Web e permitindo que os utilizadores beneficiem dos protocolos HTTPS. Um sítio Web ou uma aplicação Web pode ter um certificado incompatível com determinados navegadores. Isto significa que os testadores devem validar o certificado em todas as principais plataformas para garantir que os utilizadores se sentem seguros no seu sítio Web.
6. Validar os leitores de vídeo
Os programas que apresentam vídeos, como os serviços de streaming ou os jogos móveis freemium suportados por anúncios, devem ser submetidos a testes para garantir que esses vídeos são apresentados em todos os dispositivos pretendidos. Para muitas das aplicações, estas verificações incluirão dispositivos móveis e de secretária e poderão analisar a qualidade, a velocidade e a taxa de fotogramas do vídeo.
5 melhores ferramentas e software de teste de compatibilidade
As ferramentas gratuitas e pagas mais eficazes para testar a compatibilidade incluem:
1. ZAPTEST Free & Enterprise Edition
O ZAPTEST oferece uma excelente funcionalidade nas suas edições Free e Enterprise (paga), ajudando empresas de qualquer dimensão (ou orçamento) nas suas verificações de compatibilidade. As empresas que escolhem a versão Enterprise do ZAPTEST podem até desfrutar de um retorno que é até 10 vezes o seu investimento original. A funcionalidade 1SCRIPT da solução está especificamente adaptada às necessidades dos testadores de compatibilidade, permitindo-lhes executar exatamente os mesmos testes em várias plataformas sem modificar o código para corresponder. Acrescente a funcionalidade RPA de última geração sem custos adicionais e terá uma solução completa de automatização de qualquer tarefa.
2. LambdaTest
O LambdaTest utiliza uma abordagem baseada na nuvem para fornecer 3.000 dispositivos automatizados – embora com um foco significativo em navegadores da Web, o que pode limitar a eficácia desta solução para determinados programas. A plataforma é especializada em testes contínuos, integrando o processo de garantia de qualidade mais estreitamente com o desenvolvimento. As verificações nesta aplicação também permitem que os utilizadores definam a sua resolução, tornando os testes de compatibilidade entre browsers muito mais fáceis. Esta solução oferece um modelo freemium, embora este inclua testes limitados sem atualização e sem dispositivos reais.
3. Pilha de navegadores
Semelhante ao LambdaTest, o BrowserStack fornece acesso a 3.000 dispositivos reais; seu catálogo também inclui opções legadas e beta para navegadores. Embora seja mais provável que as pessoas actualizem o seu browser do que o seu sistema operativo, pode ainda haver muitas pessoas a utilizar versões mais antigas – o BrowserStack tem em conta esta situação. Os utilizadores também podem efetuar testes de geolocalização para ver o aspeto dos sítios Web e das aplicações Web em diferentes países. No entanto, não existem opções gratuitas ou freemium, e o teste de dispositivos reais pode ser lento.
4. TestGrid
O TestGrid permite a realização de testes paralelos, permitindo que as equipas verifiquem várias combinações ao mesmo tempo para acelerar o processo. Esta solução também se integra bem com o fluxo de trabalho de teste e desenvolvimento – possivelmente facilitando uma abordagem ágil ao formar uma parte essencial dos sprints do departamento. No entanto, o TestGrid por vezes tem dificuldades em ligar-se a dispositivos e navegadores na nuvem. Para além disso, o programa é bastante limitado em termos de testes de carga, documentação e adição de novos dispositivos à configuração da empresa.
5. Navegador
O Browsera centra-se principalmente no teste de sítios Web para garantir que são apresentados corretamente em vários dispositivos, navegadores e sistemas operativos. Sendo uma abordagem baseada na nuvem, as equipas de garantia de qualidade não precisam de instalar este laboratório de testes virtual nos seus dispositivos. O Browsera também pode comparar os resultados para detetar de forma inteligente problemas de disposição e erros de JavaScript que podem passar despercebidos até mesmo a um testador humano. No entanto, o Browsera não tem suporte para vários navegadores comuns, incluindo o Opera, e oferece apenas a funcionalidade de teste básica gratuitamente.
Conclusão
Os testes de compatibilidade são essenciais para uma estratégia de garantia de qualidade bem sucedida, permitindo às equipas validar as suas aplicações numa vasta gama de dispositivos. Sem adotar esta técnica, as empresas podem não ter consciência de que o seu software só funcionará para grande parte do seu público-alvo após o lançamento. Isto custa muito tempo e dinheiro em comparação com os testes de pré-lançamento e aplicações como o ZAPTEST podem simplificar ainda mais este processo. Com o 1SCRIPT e muitas outras funcionalidades disponíveis gratuitamente, como os testes paralelos, a escolha do ZAPTEST como ferramenta de teste pode transformar qualquer projeto, dando às equipas total confiança na sua aplicação.