Em teoria, os programas ou ferramentas de Automação de Teste devem tornar as coisas mais fáceis para os testadores, poupar tempo e nos fornecer um cobertor de relaxamento adicional para nossa cobertura de avaliação.
E muitas organizações falham em implementar uma infraestrutura de automação de teste escalonável, forte e boa que retorne os recursos que são investidos e podem salvá-los. Alguns trabalhos de automação de teste escritos "jogam fora" e outros são mantidos em uma luta contínua com seus objetivos de obter um pacote de automação estável.
Ao longo dos anos, observei muitas empresas tentando executar seus esforços de automação, observei projetos escritos descartados, frameworks trocados e gerentes sendo demitidos por não cumprirem o que foi prometido ou definido como meta.
Existem muitos motivos para o fracasso, embora a automação faça todo o sentido a longo prazo, precisamos entender que é muito mais difícil do que parece.
Abaixo estão alguns dos motivos que você deve conhecer antes de pular e começar a construir seu projeto de automação de teste:
Analisar e fazer perguntas: Um trabalho de automação de teste é um trabalho como qualquer outro projeto de aplicativos e deve ser tratado como um; Como você processaria o planejamento de um projeto de software? Deixe esta ideia direcioná-lo quando você pensa em implementar seu projeto de automação de teste. Quem você escolheria para o trabalho? Quem usará o produto produzido? Qual linguagem ou estrutura é mais adequada para o trabalho? Você entenderia os desafios e suas diretrizes e daria uma olhada? Você escreveria uma arquitetura da qual nada sabe por conta própria ou ligaria para um consultor para aconselhá-lo com algumas reflexões?
Todas essas perguntas são simplesmente a ponta deste iceberg do que você deveria se perguntar antes de escrever uma linha de código ou mesmo uma situação de teste.
Conjunto de habilidades inadequado: Deixe-me fazer uma pergunta. Você permitiria pior ou um programador não experiente, alguém que não entende como compor um ótimo código limpo e pesquisável - estilize o design de seu aplicativo e escreva-o do zero? Acho que a resposta é não. Então, por que tantas empresas pensam que a qualidade poderia ser implementada por alguém na infraestrutura de Automação de Avaliação sem a experiência e o conjunto de habilidades? Se a equipe dedicada não tem experiência e conhecimento e você não planeja contratar alguém que tenha, então você precisa pensar em usar ferramentas de automação sem código.
Expectativas / abordagem irrealistas: vou dividir isso em duas partes. O primeiro é um entendimento errôneo do ROI (retorno do investimento) da automação de teste e o segundo componente é uma estrutura de expectativas não realistas por tempo. Existe um trabalho tão bom quanto ele é feito por você, e você não pode esperar algo sem investir tempo para agregar valor. Falei com um engenheiro de controle de qualidade que me disse que obteve 6 horas semanais para compor uma infraestrutura secreta. O que você deve esperar que ele alcance 6 horas?
Para fazer este trabalho, você precisa perguntar:
- Quais são exatamente os objetivos que você deseja alcançar junto com sua automação de teste?
- O que seria considerado um valor fantástico pelos esforços / tempo?
- Quais são os critérios de realização?
- Quanto tempo / dinheiro você está disposto a gastar para que isso aconteça?
A automação não é uma atribuição de "iniciar e esquecer". Você quer reconhecer que é um processo contínuo que requer manutenção, um esforço de grupo e avanço.
Devo reconhecer que, infelizmente, pelo que tenho visto, algumas empresas percebem que fornecer a um engenheiro de controle de qualidade um trabalho secreto é apenas uma forma de preservar um trabalhador ou adicionar um pouco de " tempero " em sua rotina semanal. Não me interpretem mal, não estou dizendo que não devemos conservar nossos trabalhadores ou dar-lhes tempo para aprender e progredir, estou apenas dizendo que deve estar alinhado com expectativas realistas e de transparência para o trabalhador, que por si só .
Planejamento insuficiente: um projeto fantástico de automação deve começar com um plano de alto nível e um plano, que se desenvolverá em um estilo técnico abrangente. Mesmo a estratégia "tamanho único" pode ser catastrófica para o seu sucesso. O que funcionou perfeitamente para uma única empresa não indica necessariamente que faria o trabalho para você. Esse anúncio pode ser verdadeiro sobre a escolha de um instrumento. Sempre que você realmente não precisa usar a tecnologia em questão, ela vira palavra da moda. Isso é extremamente importante observar. Existe um grande número de ferramentas comerciais e de código aberto que podem oferecer um alto valor pelo dinheiro, sem nem mesmo considerar as alternativas e os benefícios / alternativas que essas ferramentas podem oferecer. Escolha uma ferramenta que atenda às suas necessidades. Aqui estão meus dois centavos - é muito melhor pagar por uma solução do que perder muito tempo (isso será muito mais caro do que a etiqueta de custo do programa).
Agora, enquanto continuamos a discutir a maneira de planejar nosso design, teremos que pensar sobre nossa arquitetura técnica abrangente e requisitos de negócios. Aqui estão apenas alguns dos aspectos que você deve levar em consideração:
- Imagine empregos, módulos, fluxos de negócios que as pessoas examinariam?
- Qual é a política planejada para cada fase de execução? (Sanidade, regressão, pacote dedicado de CI / CD?)
- Quais são os principais fluxos / funcionalidade compartilhados / comuns / repetidos?
- Como planejamos cada teste para um breve artefato autônomo? (SetUp e TearDown, dependência de dados externos em vez de dados de avaliação gerados, o que precisa ser executado antes de cada teste, classe de suíte?)
- Como evitamos que uma avaliação "interrompa" outra se elas forem executadas simultaneamente?
- Como podemos produzir uma atmosfera escalonável, limpa e apropriada? (Servidores simulados, casos de banco de dados, script de limpeza, preferências de navegador, configurações de grade / servidor, instalação e limpeza, ambientes virtuais ou contêineres docker).
- O que exatamente construir ferramentas se usarmos?
- Exatamente como nossas dependências podem ser gerenciadas?
- Onde nosso projeto está armazenado?
- Quantos engenheiros estão trabalhando no projeto e a forma como o gerenciamento de variantes seria gerenciado?
- Quais ferramentas de CI são melhores para realizar nossas compilações?
- Você implementará o fluxo de trabalho de CI / CD?
- Onde você executará seus testes e recursos que poderá usar para projetar sua própria plataforma de execução? (Você recebeu os fundos para comprar licenças de solução em nuvem? Você tem as ferramentas ou suporte para estabelecer sua própria infraestrutura de servidor Selenium?)
- Exatamente que tipo de testes em breve serão automáticos? (API, conceitos visuais, processos de servidor, Web / UI Automation, Mobile - Android / IOS).
- Existem grandes coleções de dados, fluxos longos, processos complicados, integrações que exigiriam avaliação adicional?
- O que devemos testar através da GUI e o que poderia ser mais seguro para verificar através da API?
- Exatamente quais logs, mecanismos de relatório, manipuladores e ouvintes precisaremos implementar para criar nossa avaliação de causa raiz e depuração mais simples? (O que é um pacote de automação de uma hora se você dedicar um dia para entender o resultado?)
- Quais métricas / relatórios / resultados as execuções devem fornecer?
- Quais são exatamente as integrações que realmente queremos? (Programas de relatórios, ferramentas ALM, rastreadores de bugs, programas de gerenciamento de avaliação).
- Quem pode compor a infraestrutura e quem deve implementar os testes? (Pode haver uma ramificação entre os dois?)
- Quem é o responsável por oferecer aos engenheiros de automação os fluxos de negócios / casos de teste / lógica de negócios que deveriam ser automáticos?
- Existem estágios POC (Prova de conceito) definidos para determinar as metas futuras?
Estas são apenas algumas das perguntas em poucas palavras e o que você deve tirar disso é que
Uma opção de ferramenta adequada, planejamento / design superior provavelmente produzirá a diferença entre o fracasso e o sucesso.
Automatizando tudo : Um ponto importante a se notar é que não o que pode ou deve ser automático. Às vezes, percepção ou decisões de gerenciamento erradas, automatizamos tudo que vem à cabeça do testador ou convertemos cegamente casos de teste em scripts. Em primeiro lugar, nem todas as avaliações são adequadas para automatizar. Em segundo lugar, os próprios casos de teste não são aceitáveis para o trabalho. Isso termina em um monte de testes automáticos insustentáveis que são impossíveis de manter e, infelizmente, na maioria das vezes, isso vai levar a demarcar muito do nosso trabalho escrito. Não há valor adicional em automatizar se sua empresa não tiver os fundos para manter equipes de automação com dezenas de milhares de instâncias de teste que ocasionalmente verificam a mesma lógica de negócios.
Também precisaremos produzir um plano claro sobre o que precisa para manter cada construção de automação. O que está incluído em nossa regressão? O que é descrito como nossa Sanidade? O que é seguro e confiável o suficiente para entrar em nosso pipeline de CI / CD?
A Automação de Teste precisa de planejamento, compreensão, comprometimento e dedicação sólidos para entregar o valor apropriado.
Falta de habilidades / instrução adequada, Escolha incorreta de ferramentas, recursos insuficientes, falta de preparação adequada, Antecipação irreal, tudo o que pode fazer um projeto falhar.
Espero que este relatório tenha um impacto positivo e ajude alguns de vocês a seguir uma mentalidade produtiva.