what is automation testing
Um guia completo para iniciar o teste de automação em seu projeto:
O que é teste de automação?
O teste de automação é uma técnica de teste de software para testar e comparar o resultado real com o resultado esperado. Isso pode ser alcançado escrevendo scripts de teste ou usando qualquer ferramenta de teste de automação. A automação de teste é usada para automatizar tarefas repetitivas e outras tarefas de teste que são difíceis de executar manualmente.
Você deseja iniciar o teste de automação em seu projeto, mas está lutando com as etapas mais básicas, conforme mencionado abaixo:
- Como introduzir automação em seu projeto?
- Como selecionar a melhor e certa ferramenta de automação?
- Como desenvolver scripts de forma eficaz?
- Como executar e manter scripts de teste?
- E, finalmente, quais são as melhores práticas que você precisa seguir para um teste de automação bem-sucedido?
Hoje, planejamos enriquecer seu conhecimento com uma série de tutoriais sobre “ Introdução aos testes de automação ”. Esta série de tutoriais de automação responderá todas as perguntas acima de maneira passo a passo com exemplos simples.
Vamos dar uma olhada na série de tutoriais sobre como iniciar a automação em seu projeto !!
Processo de automação ponta a ponta:
Tutorial # 1 : Melhor guia para iniciar a automação em seu projeto
Tutorial # 2: Tipos de testes automatizados e alguns equívocos
Tutorial nº 3: 10 etapas para introduzir automação em seu projeto
Tutorial nº 4: O Guia de A a Z sobre como selecionar a melhor ferramenta de automação
Tutorial # 5: Desenvolvimento de scripts e frameworks de automação
Tutorial # 6: Execução e relatórios de automação
Tutorial nº 7: Melhores práticas e estratégias de automação de teste
Dicas de automação:
Tutorial # 8: 10 dicas que você deve ler antes de automatizar seu trabalho de teste
Tutorial # 9: Como o planejamento de teste difere para projetos manuais e de automação
Tutorial # 10: Quando optar pela automação?
Tutorial nº 11: Desafios de teste de automação
Tutorial # 12: Guia para implementar a prova de conceito (POC) em automação
Tutorial # 13: Como selecionar casos de teste corretos para automação
Tutorial # 14: Como traduzir casos de teste manuais em scripts de automação
Carreira de automação:
Tutorial # 15: Dicas para se tornar um melhor testador de automação
Tutorial # 16: Automação de teste - é uma carreira especializada? Os testadores normais também podem fazer automação?
Ferramentas de automação populares:
Tutorial # 17: Selenium Tutorials 31+ Best Free Selenium Training Tutorials
Tutorial # 18: Tutoriais QTP
Tutorial # 19: Ferramenta de teste de serviços da Web SoapUI
Tutorial # 20: HP LoadRunner para teste de desempenho
Estruturas de automação:
Tutorial # 21: Por que precisamos do framework para automação
Tutorial # 22: Estruturas de automação mais populares
Automação em Agile:
Tutorial # 23: Como implementar automação eficiente no mundo ágil
Outras ferramentas de automação:
Tutorial nº 24: Melhores ferramentas de teste de automação
Tutorial # 25: Ferramenta de automação Sikuli GUI
Tutorial # 26: PowerShell: Automação de IU de aplicativo de desktop com PowerShell
Tutorial # 27: Catalon Automation Recorder (Selenium IDE Alternative)
Tutorial # 28: Ferramenta Geb: automação do navegador usando a ferramenta Geb
Tutorial # 29: AutoIt: como lidar com janelas pop-up usando AutoIt
Tutorial # 30: Pepino: Automação com Ferramenta de Pepino e Selênio
Tutorial # 31: Ferramenta de teste de transferidor para teste de ponta a ponta de aplicativos AngularJS
Teste de automação móvel:
Tutorial # 32: Tutorial prático do Appium Studio
Tutorial # 33: Tutorial Appium para iniciantes
Tutorial # 34: Tutorial do Selendroid: Android Mobile Automation Framework
Tutorial # 35: Tutorial Ranorex: uma ferramenta poderosa de teste para desktop, web e dispositivos móveis
Exemplos de automação específicos de domínio:
Tutorial # 36: Automação de aplicativos JAVA / J2EE
Preparação da entrevista para trabalhos de automação:
Tutorial # 37: Perguntas da entrevista de teste de automação
Tutorial # 38: Perguntas da entrevista de selênio
Vamos explorar o primeiro tutorial da série “The Ultimate Guide to Automation Testing” !!
O que você aprenderá:
- O que é teste de automação?
- Automação - um método econômico para testes de regressão
- Cenários que requerem automação
- Testes certos para automação
- O que NÃO automatizar?
- Exemplo simples de automação de teste
- O que são afirmações?
- Conclusão
- Leitura recomendada
O que é teste de automação?
Se um software pode fazer qualquer coisa, por que um software não pode testar um software?
Esta afirmação parece lógica para você?
Se sim, então parabéns, agora você está pensando na Automação de Testes, que é o ponto central que vamos discutir nesta série de tutoriais informativos.
Imagine-se no primeiro dia de trabalho como SQA. É apresentado a você um aplicativo a ser testado. É um aplicativo ERP que contém centenas de formulários e milhares de relatórios. Você começa seu teste exploratório abrindo um formulário que contém cerca de 50 campos diferentes.
Você tenta inserir dados aleatórios neste formulário que leva cerca de 20 minutos. Então você pressiona enviar. Wolla !! Uma mensagem de erro é exibida e parece uma exceção não tratada. Você fica muito feliz. Você orgulhosamente anota as etapas e relata o bug em seu sistema de gerenciamento de bug. Grande esforço, você se sente muito confiante e cheio de energia. Você continua o teste até o fim do dia e encontra mais alguns bugs. “Incrível primeiro dia”, você pensou.
Agora, no dia seguinte, o desenvolvedor corrigiu o problema e lança uma nova versão do build. Você testa o mesmo formulário com as mesmas etapas e descobriu que o bug foi corrigido. Você marca como fixo. Grande esforço. Você contribuiu para a qualidade do produto ao identificar esse bug e, à medida que esse bug é corrigido, a qualidade é melhorada.
Agora vem o terceiro dia, um desenvolvedor lançou novamente uma versão mais recente. Agora você precisa testar novamente esse formulário para ter certeza de que nenhum problema de regressão foi encontrado. Os mesmos 20 minutos. Agora você se sente um pouco entediado.
Agora imagine que daqui a 1 mês em diante, novas versões sejam lançadas constantemente e a cada lançamento, você tem que testar este formulário extenso mais 100 de outros formulários como este, apenas para ter certeza de que não há regressão.
Agora você está com raiva. Você parece cansado . Você começa a pular etapas. Você preenche cerca de 50% do total dos campos. Sua precisão não é a mesma, sua energia não é a mesma e, definitivamente, seus passos não são os mesmos.
E um dia, o cliente relata o mesmo bug da mesma forma. Você se sente patético. Você se sente inseguro agora. Você acha que não é competente o suficiente. Os gerentes estão questionando sua capacidade.
Eu tenho uma notícia para você; esta é a história de 90% dos testadores manuais por aí. Você não é diferente.
Os problemas de regressão são os mais dolorosos. Somos humanos. E não podemos fazer a mesma coisa com a mesma energia, velocidade e precisão todos os dias. Isso é o que as máquinas fazem. É para isso que é necessária a automação, para repetir os mesmos passos com a mesma velocidade, precisão e energia com que foram repetidos da primeira vez.
Eu espero que você entenda meu lado!!

Sempre que tal situação surgir, você deve automatizar seu caso de teste. A automação de teste é sua amiga . Isso o ajudará a se concentrar em novas funcionalidades enquanto cuida das regressões. Com a automação, você pode preencher esse formulário em menos de 3 minutos.
O script preencherá todos os campos e informará o resultado junto com as capturas de tela. Em caso de falha, ele pode apontar o local onde o caso de teste falhou, ajudando você a reproduzi-lo com facilidade.
Automação - um método econômico para testes de regressão
Os custos de automação são muito mais altos inicialmente. Inclui o custo da ferramenta, depois o custo do recurso de teste de automação e seu treinamento.
Mas quando os scripts estão prontos, eles podem ser executados centenas de vezes repetidamente com a mesma precisão e bastante rapidamente. Isso economizará muitas horas de testes manuais. Assim, o custo diminui gradualmente e, em última análise, torna-se um método econômico para Teste de regressão .
como faço para encontrar a chave de segurança da rede
Cenários que requerem automação
O cenário acima não é o único caso em que você precisará de testes de automação. Existem várias situações que não podem ser testadas manualmente.
Por exemplo ,
- Comparando duas imagens pixel a pixel.
- Comparar duas planilhas contendo milhares de linhas e colunas.
- Testando um aplicativo sob a carga de 100.000 usuários.
- Benchmarks de desempenho.
- Testando o aplicativo em diferentes navegadores e em diferentes sistemas operacionais em paralelo.
Essas situações requerem e devem ser testadas por ferramentas.
Então, quando automatizar?
Esta é uma era de metodologia ágil no SDLC, onde o desenvolvimento e os testes ocorrerão quase em paralelo e é muito difícil decidir quando automatizar.
Considere as seguintes situações antes de entrar na automação
- O produto pode estar em seus estágios primitivos, quando o produto nem mesmo possui uma IU, nesses estágios devemos ter um pensamento claro sobre o que queremos automatizar. Os seguintes pontos devem ser lembrados.
- Os testes não devem ser obsoletos.
- Conforme o produto evolui, deve ser fácil escolher os scripts e adicioná-los.
- É muito importante não se empolgar e garantir que os scripts sejam fáceis de depurar.
- Não tente a automação da IU nos estágios iniciais, pois a IU está sujeita a mudanças frequentes, o que levará à falha dos scripts. Na medida do possível, opte por automação de nível de API / nível de não IU até que o produto se estabilize. A automação da API é fácil de corrigir e depurar.
Como decidir os melhores casos de automação:
A automação é parte integrante de um ciclo de teste e é muito importante decidir o que queremos alcançar com a automação antes de decidirmos automatizar.
Os benefícios que a automação parecem oferecer são muito atraentes, mas, ao mesmo tempo, um pacote de automação mal organizado pode estragar o jogo inteiro. Os testadores podem acabar depurando e corrigindo os scripts na maioria das vezes, resultando em perda de tempo de teste.

Esta série explica como um pacote de automação pode se tornar eficiente o suficiente para selecionar os casos de teste certos e produzir os resultados certos com os scripts de automação que temos.
Além disso, abordei as respostas a perguntas como quando automatizar, o que automatizar, o que não automatizar e como criar estratégias de automação.
Testes certos para automação
A melhor maneira de lidar com esse problema é apresentar rapidamente uma “Estratégia de Automação” adequada ao nosso produto.
A ideia é agrupar os casos de teste para que cada grupo nos dê um tipo de resultado diferente. A ilustração abaixo mostra como podemos agrupar nossos casos de teste semelhantes, dependendo do produto / solução que estamos testando.

Vamos agora mergulhar fundo e entender o que cada grupo pode nos ajudar a alcançar:
# 1) Faça um conjunto de testes de todas as funcionalidades básicas Testes positivos . Este pacote deve ser automatizado e, quando este pacote é executado em qualquer construção, os resultados são mostrados imediatamente. Qualquer falha de script neste conjunto leva ao defeito S1 ou S2, e esse build específico pode ser desqualificado. Portanto, economizamos muito tempo aqui.
Como uma etapa adicional, podemos adicionar este conjunto de testes automatizados como parte do BVT (testes de verificação de compilação) e verificar os scripts de automação de QA no processo de construção do produto. Portanto, quando o build estiver pronto, os testadores podem verificar os resultados do teste de automação e decidir se o build é adequado ou não para instalação e posterior processo de teste.
Isso atinge claramente os objetivos de automação, que são:
- Reduza o esforço de teste.
- Encontre Bugs nos estágios anteriores.
#dois) Em seguida, temos um grupo de Testes de ponta a ponta .
Em grandes soluções, testar uma funcionalidade de ponta a ponta é a chave, especialmente durante os estágios críticos do projeto. Devemos ter alguns scripts de automação que abordam testes de solução de ponta a ponta também. Quando esta suíte é executada, o resultado deve indicar se o produto como um todo está funcionando como esperado ou não.
O conjunto de testes de automação deve ser indicado se alguma das peças de integração estiver quebrada. Este conjunto não precisa abranger todos os pequenos recursos / funcionalidades da solução, mas deve abranger o funcionamento do produto como um todo. Sempre que temos um alfa ou um beta ou qualquer outra versão intermediária, esses scripts são úteis e dão algum nível de confiança ao cliente.
Para entender melhor, vamos supor que estamos testando um portal de compras online , como parte dos testes de ponta a ponta, devemos cobrir apenas as etapas principais envolvidas.
Conforme fornecido abaixo:
- Login de usuário.
- Navegue e selecione itens.
- Opção de pagamento - cobre os testes de front-end.
- Gerenciamento de pedidos de back-end (envolve a comunicação com vários parceiros integrados, verificação de estoque, envio de e-mail para o usuário, etc.) - isso ajudará no teste de integração de peças individuais e também no ponto crucial do produto.
Portanto, quando um desses scripts é executado, ele garante que a solução como um todo está funcionando bem.
# 3) O terceiro conjunto é o Testes baseados em recursos / funcionalidades .
Pra exemplo , Podemos ter a funcionalidade de navegar e selecionar um arquivo, portanto, quando automatizarmos isso, podemos automatizar os casos para incluir a seleção de diferentes tipos de arquivos, tamanhos de arquivos etc, para que o teste de recursos seja feito. Quando houver qualquer alteração / adição a essa funcionalidade, esta suíte pode servir como uma suíte de regressão.
# 4) O próximo na lista seria Testes baseados em IU. Podemos ter outro pacote que testará funcionalidades puramente baseadas na IU, como paginação, limitação de caracteres da caixa de texto, botão de calendário, menus suspensos, gráficos, imagens e muitos desses recursos centrados apenas na IU. A falha desses scripts geralmente não é muito crítica, a menos que a IU esteja completamente inativa ou certas páginas não estejam aparecendo como esperado!
# 5) Podemos ter mais um conjunto de testes que são simples, mas muito trabalhosos para serem realizados manualmente. Testes tediosos, porém simples, são os candidatos ideais para automação, por exemplo, inserir detalhes de 1000 clientes no banco de dados tem uma funcionalidade simples, mas extremamente tediosa para ser realizado manualmente, tais testes devem ser automatizados. Do contrário, eles acabam sendo ignorados e não testados.
O que NÃO automatizar?
Abaixo estão alguns testes que não devem ser automatizados.
# 1) Testes negativos / testes de failover
Não devemos tentar automatizar testes negativos ou de failover , quanto a esses testes, os testadores precisam pensar analiticamente e os testes negativos não são realmente diretos para fornecer um resultado de aprovação ou reprovação que pode nos ajudar.
Os testes negativos precisarão de muita intervenção manual para simular um tipo de cenário real de recuperação de desastre. Apenas para exemplificar, estamos testando recursos como confiabilidade de serviços da web - para generalizá-lo aqui, o principal objetivo de tais testes seria causar falhas deliberadas e ver como o produto consegue ser confiável.
Simular as falhas acima não é simples, pode envolver a injeção de alguns stubs ou o uso de algumas ferramentas intermediárias e a automação não é a melhor maneira de proceder aqui.
# 2) Testes ad hoc
Esses testes podem não ser realmente relevantes para um produto em todos os momentos e isso pode até ser algo em que o testador poderia pensar naquele estágio de iniciação do projeto, e também o esforço para automatizar um teste ad-hoc deve ser validado contra a criticidade do recurso abordado pelos testes.
Por exemplo , Um testador que está testando um recurso que lida com compactação / criptografia de dados pode ter feito testes ad-hoc intensos com a variedade de dados, tipos de arquivos, tamanhos de arquivos, dados corrompidos, uma combinação de dados, usando algoritmos diferentes, em vários plataformas etc.
Quando planejamos automação podemos querer priorizar e não fazer a automação exaustiva de todos os testes ad hoc apenas para esse recurso e acabar com um pouco de tempo para automatizar os outros recursos-chave.
# 3) Testes com pré-configuração massiva
Existem testes que exigem alguns pré-requisitos enormes.
Por exemplo, Podemos ter um produto que se integra com um software de terceiros para algumas das funções, como o produto se integra com qualquer sistema de fila de mensagens que requer instalação em um sistema, configuração de filas, criação de filas etc.
Os 3rdO software de terceiros pode ser qualquer coisa e a configuração pode ser complexa por natureza e se esses scripts forem automatizados, eles ficarão para sempre dependentes da função / configuração desse software de terceiros.
Os pré-requisitos incluem:
No momento, as coisas podem parecer simples e claras, já que as duas configurações laterais estão sendo feitas e está tudo bem. Vimos em várias ocasiões que quando um projeto entra na fase de manutenção, o projeto é movido para outra equipe, e eles acabam depurando esses scripts onde o teste real é muito simples, mas o script falha devido a um 3rdproblema de software do partido.
O acima é apenas um exemplo, em geral, fique de olho nos testes que possuem pré-configurações trabalhosas para um teste simples que se segue.
Exemplo simples de automação de teste
Quando você está testando um software (na web ou desktop), normalmente usa um mouse e teclado para executar suas etapas. A ferramenta de automação imita essas mesmas etapas usando scripts ou uma linguagem de programação.
Por exemplo , se você estiver testando uma calculadora e o caso de teste for que você tem que somar dois números e ver o resultado. O script executará as mesmas etapas usando o mouse e o teclado.
como abrir arquivos apk no windows
O exemplo é mostrado abaixo.
Etapas do caso de teste manual:
- Calculadora de lançamento
- Pressione 2
- Pressione +
- Pressione 3
- Pressione =
- A tela deve exibir 5.
- Feche a calculadora.
Script de automação:
//the example is written in MS Coded UI using c# language. (TestMethod) public void TestCalculator() { //launch the application var app = ApplicationUnderTest.Launch('C:\Windows\System32\calc.exe'); //do all the operations Mouse.Click(button2); Mouse.Click(buttonAdd); Mouse.Click(button3); Mouse.Click(buttonEqual); //evaluate the results Assert.AreEqual('5', txtResult.DisplayText,”Calculator is not showing 5); //close the application app.Close(); } O script acima é apenas uma duplicação de suas etapas manuais. O script é fácil de criar e de entender também.
O que são afirmações?
A penúltima linha do script precisa de mais explicações.
Assert.AreEqual (“5”, txtResult.DisplayText, ”Calculadora não está mostrando 5);
Em cada caso de teste, temos algum resultado esperado ou previsto no final. No script acima, temos a expectativa de que “5” seja mostrado na tela. O resultado real é o resultado que é exibido na tela. Em cada caso de teste, comparamos o resultado esperado com o resultado real.
O mesmo vale para os testes de automação. A única diferença aqui é que, quando fazemos essa comparação na automação de teste, ela é chamada de outra coisa em cada ferramenta.
Algumas ferramentas chamam de “ Afirmação ”, Alguns chamam de“ posto de controle ”E alguns chamam de“ validação ”. Mas basicamente, isso é apenas uma comparação. Se esta comparação falhar, para Por exemplo. uma tela está mostrando 15 em vez de 5, então esta afirmação / ponto de verificação / validação falha e seu caso de teste é marcado como falhado.
Quando um caso de teste está falhando devido a uma afirmação, isso significa que você detectou um bug por meio da automação do teste. Você deve relatá-lo ao seu sistema de gerenciamento de bug, como normalmente faz em testes manuais.
No script acima, realizamos uma asserção na penúltima linha. 5 é o resultado esperado, txtResult . DisplayText é o resultado real e se eles não forem iguais, será exibida uma mensagem que “Calculadora não está mostrando 5”.
Conclusão
Freqüentemente, os testadores encontram prazos de projetos e ordens para automatizar todos os casos para melhorar as estimativas de teste.
Existem algumas percepções “erradas” comuns sobre automação.
Eles são:
- Podemos automatizar cada caso de teste.
- A automatização de testes reduzirá enormemente o tempo de teste.
- Nenhum bug é introduzido se os scripts de automação estiverem funcionando sem problemas.
Devemos deixar claro que a automação pode reduzir o tempo de teste apenas para certos tipos de testes. Automatizar todos os testes sem nenhum plano ou sequência levará a scripts massivos que exigem manutenção pesada, falham com frequência e também precisam de muita intervenção manual. Além disso, em produtos em constante evolução, os scripts de automação podem se tornar obsoletos e precisar de verificações constantes.
Agrupar e automatizar os candidatos certos economizará muito tempo e proporcionará todos os benefícios da automação.
Este excelente tutorial pode ser resumido em apenas 7 pontos.
Teste de automação:
- É o teste feito de maneira programática.
- Utiliza a ferramenta para controlar a execução dos testes.
- Compara os resultados esperados com os resultados reais (afirmações).
- Pode automatizar algumas tarefas repetitivas, mas necessárias ( Por exemplo. Seus casos de teste de regressão).
- Pode automatizar algumas tarefas que são difíceis de fazer manualmente (Por exemplo.Cenários de teste de carga).
- Os scripts podem ser executados rápida e repetidamente.
- É rentável a longo prazo.
Aqui, a automação é explicada em termos simples, mas isso não significa que seja sempre simples de fazer. Existem desafios, riscos e muitos outros obstáculos envolvidos nisso. Existem várias maneiras pelas quais a automação de teste pode dar errado, mas se tudo correr bem, os benefícios da automação de teste são realmente enormes.
Próximos nesta série:
Em nossos próximos tutoriais, discutiremos vários aspectos relacionados à automação.
Esses incluem:
- Tipos de testes automatizados e alguns equívocos.
- Como introduzir automação em sua organização e evitar armadilhas comuns ao fazer a automação de teste.
- O processo de seleção de ferramentas e comparação de várias ferramentas de automação.
- Desenvolvimento de scripts e frameworks de automação com exemplos.
- Execução e relatórios de Automação de Teste.
- Melhores práticas e estratégias de automação de teste.
Você está ansioso para saber mais sobre cada conceito de Teste de Automação? Fique atento e fique atento à nossa lista de tutoriais futuros desta série e sinta-se à vontade para expressar suas opiniões na seção de comentários abaixo.
Leitura recomendada
- Processo de teste de automação de 10 etapas: como iniciar o teste de automação em sua organização
- Tutorial Geb - Teste de automação de navegador usando a ferramenta Geb
- Sikuli GUI Automation Testing Tool - Guia do Iniciante Parte 2
- Guia passo a passo para implementar a prova de conceito (POC) em testes de automação
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Os testadores estão perdendo o controle sobre os testes devido à automação?
- Desafios de teste manual e de automação
- 10 dicas que você deve ler antes de automatizar seu trabalho de teste