Esta postagem é sobre como automatizamos esses processos para garantir a qualidade sem sacrificar a velocidade ou flexibilidade. Como cientista líder de automação, sou responsável por automatizar testes em todos os aspectos dos três produtos principais do < S T R O N G >. Isso inclui o projeto de bibliotecas de teste e arquitetura de estrutura unificada capaz de abranger a interface do usuário e o teste de regressão da API de back-end.
O desafio
Os domínios da web do < S T R O N G > contêm milhares de páginas em muitos idiomas diferentes. O escopo de verificar cada atualização dessas páginas é simplesmente muito grande para cientistas de controle de qualidade executarem manualmente. Envolve o uso de ferramentas de dicionário para avaliar se os rótulos fazem sentido nos idiomas corretos em cada página afetada. Precisávamos de uma solução mais sofisticada para lidar com esse problema.
O principal desafio era reduzir o esforço humano e o trabalho o máximo possível, por isso decidimos tentar automatizar o máximo possível de etapas de teste de conteúdo.
Primeiro, tivemos que descobrir como testar rótulos em diferentes idiomas. Seria quase impossível acompanhar todas as alterações de rótulo em todos os idiomas suportados e temos recursos de manutenção de teste limitados, portanto, codificar valores de texto não teria sido uma boa solução. Essa ferramenta tinha que ser capaz de avaliar todos os idiomas suportados por conta própria.
O segundo problema era a capacidade de lidar com qualquer página e subpágina. Seria quase impossível atualizar a ferramenta de teste cada vez que uma nova página ou subpágina fosse lançada, então a ferramenta tinha que ser capaz de se adaptar às novas páginas instantaneamente.
Terceiro, tivemos que encontrar uma maneira de extrair todos os rótulos de texto de qualquer site. Isso significa que não podemos confiar em seletores de elementos específicos – eles precisam ser universais. Isso ocorre devido à forma como nosso site é apresentado ao cliente. Alguns conteúdos da página só podem ser vistos de endereços IP de países específicos, portanto, precisávamos de uma maneira de iterar por endereço IP.
No final, a interação humana ainda é necessária para finalizar a avaliação do resultado do teste. Portanto, também precisávamos de uma ferramenta de relatório sofisticada para exibir os resultados. Quanto mais claros e simples eles fossem apresentados, mais reduziria o esforço humano.
A solução
Depois de listar nossos requisitos, entendemos que soluções regulares não seriam suficientes. Após uma consideração cuidadosa, uma longa investigação e muitos experimentos de tentativa e erro, implementamos um módulo de IA que atendeu às nossas demandas de qualidade para esse problema. Escolhemos um módulo de IA bem treinado com bibliotecas baseadas em Selenium.
O módulo AI nos ajuda a determinar o idioma do texto (para detectar incompatibilidades de idioma) e nos permite inspecionar automaticamente se as traduções estão em vigor ou não. Não houve necessidade de codificar cada etiqueta em todos os idiomas em cada página, pois a IA funciona perfeitamente, independentemente da contagem de etiquetas, idioma ou página. Também requer muito pouca manutenção.
Para resolver o desafio de localização de IP, decidimos usar uma máquina de virtualização Docker para construir imagens isoladas de ambiente virtual – contêineres. Esses contêineres precisavam ter todos os arquivos de teste e dependências necessários e ser capazes de estabelecer conexões de túnel VPN, independentemente de quem ou o que está executando a imagem e onde eles estão. Eles também precisavam exportar e armazenar artefatos de teste – relatórios com resultados, capturas de tela e quaisquer bugs encontrados – para avaliação, investigação adicional e arquivamento na máquina host ou ferramenta de CI.
Após várias tentativas de exibir os resultados do teste, descobrimos que os relatórios HTML “Allure” são a maneira mais conveniente para o visualizador finalizar os resultados do teste, portanto, essa biblioteca também foi incluída no contêiner da máquina virtual.
O resultado
Quase todos os nossos testes de conteúdo agora dependem dessa solução. Isso nos ajuda a cumprir prazos, reduzindo significativamente o esforço humano necessário para testar novas traduções. Além disso, nos ajudou a encontrar vários bugs em nossa implementação de linguagem que seriam muito difíceis de encontrar manualmente. Como o teste é totalmente automatizado, não importa mais se há um ou vários novos idiomas ou quantas páginas novas estão surgindo. Não precisamos mais revisar todas as alterações individualmente. Essa ferramenta relata quaisquer incompatibilidades que encontrar e o cientista só precisa revisar os rótulos suspeitos e tomar uma decisão final. O esforço humano necessário foi reduzido significativamente.
O que o futuro guarda?
Ainda temos vários novos desafios a resolver. Alguns deles incluem inspeções visuais da estrutura do site, texto, tamanho da fonte, sobreposições e problemas gerais de experiência do cliente. No momento, eles estão sendo testados manualmente, mas após o grande sucesso da ferramenta de inspeção de linguagem de conteúdo, temos trabalhado para automatizar ainda mais pontos-chave. O uso mais amplo de módulos baseados em IA pode ser a chave para garantir a qualidade de nosso site.








