tutorial de teste de automação: introdução

Índice

o que é teste de automação?

como o nome sugere. o teste de automação realiza atividades de teste de software e as executa por meio de um conjunto de ferramentas ou estrutura de automação. Em palavras simples, é um tipo de teste no qual uma ferramenta executa um conjunto de tarefas em um padrão definido automaticamente.

tira a pressão dos testadores manuais e permite que eles se concentrem em tarefas de maior valor-testes exploratórios, revisão dos resultados dos testes, etc. Essencialmente, uma máquina assume e implementa tarefas mundanas, repetitivas e confusas no tempo, como testes de regressão. O teste de automação é essencial para obter maior cobertura de teste em prazos mais curtos, bem como maior precisão dos resultados.

por que os testes de automação são críticos no ciclo de vida de um Software?

Imagine isso.

no seu primeiro dia como um QA, você tem que testar um aplicativo que inclui cerca de 100 campos que requerem entrada. Ao realizar testes exploratórios, você deve inserir a entrada manualmente em cada campo. Isso leva cerca de 10 minutos para fazer se você for muito rápido.

você pressiona enviar. Uma mensagem de erro é exibida. Parece uma exceção não tratada. Você relata o bug e se sente muito bem com um trabalho bem feito. Você repete o processo, encontra mais alguns bugs e tem um primeiro dia geralmente produtivo.

no dia seguinte, o desenvolvedor corrige os problemas e você precisa testar a nova versão do software, repetindo as mesmas etapas do dia anterior. Bug corrigido. Trabalho bem feito. Uma boa experiência do Usuário garantida, graças aos seus esforços.No terceiro dia, os desenvolvedores lançaram uma versão mais recente com recursos mais recentes. Mas, para garantir que os novos recursos não tenham quebrado os recursos de trabalho mais antigos, você deve repetir o processo novamente. Nenhum problema encontrado.

um mês em diante, os desenvolvedores estão lançando versões mais recentes continuamente, o que significa que você deve continuar testando o software, repetindo o mesmo processo (inserindo entrada de campo) todas as vezes. Você está entediado e cansado. Sua precisão começa a vacilar, como resultado do qual você acaba perdendo um bug – possivelmente um bastante óbvio.

acredite ou não, este é um cenário bastante comum para a maioria dos QAs. Não é possível fazer a mesma coisa repetidamente e ser perfeito a cada vez. É aqui que entra o teste de automação.

um software pode testar outro software?

Sim. Esse é o ponto principal dos testes de automação. Quando se trata de testes de regressão, investir esforço manual é fútil e um desperdício. Em vez de esperar que os humanos repetam os mesmos passos com a mesma velocidade, precisão e energia, é muito mais lógico programar uma máquina para fazer o mesmo.

quais testes devem ser automatizados?

Antes de criar uma estratégia de automação de teste, vamos dar uma olhada em quais testes são mais viáveis para automação:

  • Teste de Regressão: Regressão suites são crescentes, e exigem as mesmas variáveis para ser preenchido inúmeras vezes, para garantir que novas funcionalidades não mexa com mais funções. Isso pode ser facilmente automatizado.
  • teste de funcionalidades complexas: automatize todos os testes que exigem cálculos complexos, algo propenso a erros humanos.
  • testes de fumo: Execute suítes automatizadas para verificar a qualidade das principais funcionalidades. Isso economiza tempo oferecendo uma análise rápida de se uma compilação requer testes mais detalhados.
  • testes orientados por dados: automatize testes para validar funcionalidades que devem ser testadas repetidamente com vários conjuntos de dados.
  • testes de desempenho: automatize testes que monitoram o desempenho do software em diferentes circunstâncias. Fazer isso manualmente seria extremamente meticuloso e demorado.
  • testes funcionais: Toda vez que um desenvolvedor envia um PR, o teste funcional precisa ser executado rapidamente e fornecer feedback imediato. Isso é impossível de alcançar sem automação, especialmente à medida que as organizações aumentam de escala.

Introdução aos testes de automação

ao fazer a transição do manual para o teste de automação, lembre-se dos seguintes pontos:

  • não aponte para 100% de automação de teste. Nem todos os testes podem ser automatizados. Mesmo entre os testes que podem ser automatizados, não defina um alvo inicial de automação completa.
  • defina uma meta realista. Por exemplo, comece movendo alguns testes para automação. Escreva casos de teste menores que possam ser facilmente reutilizados em testes futuros do mesmo software. Mapeie casos de teste com funções correspondentes para fornecer uma melhor cobertura de teste. Rotule casos de teste para que as equipes possam ter clareza sobre o que automatizar e relatar de forma mais eficaz.
  • Explore novas áreas do aplicativo com automação. Ao riscar as estratégias de automação, certifique-se de que os requisitos de negócios sejam levados tão a sério quanto as considerações técnicas.
  • saiba o que não automatizar. Isso ajuda a decidir o escopo da automação no início do processo de ideação. Os seguintes testes são melhor deixados para a cobertura manual:
  1. teste de experiência do Usuário: as ferramentas não podem replicar nenhuma jornada do usuário em sua totalidade. É impossível para um algoritmo prever como os usuários individuais irão interagir com um aplicativo. Para realmente julgar a qualidade da experiência do Usuário, atenha-se aos testadores humanos. Tente usar ferramentas de teste interativas manuais como BrowserStack Live.
  2. testes de acessibilidade: Ao testar o quão acessível é um aplicativo, não há substituto para o uso humano. Uma ferramenta não pode medir a acessibilidade porque as pessoas geralmente têm opiniões diferentes sobre o que conta como Acessível. Não é possível que uma ferramenta reconheça se o fluxo de trabalho do software está fornecendo acesso fácil para humanos reais.

  • Selecione as ferramentas certaso teste de automação depende inteiramente das ferramentas. Aqui está o que considerar ao escolher a ferramenta certa:
  1. a natureza do software: o aplicativo está sendo testado baseado na web ou baseado em dispositivos móveis?
    para testar o primeiro, use uma ferramenta como o Selenium para automatizar seus testes. Para este último, o Appium é uma das melhores ferramentas possíveis para automação.
  2. experiência do programador: escolha frameworks, linguagens e ferramentas que correspondam ao conforto e experiência dos testadores. Algumas das linguagens mais populares usadas para testes de automação incluem Java, JavaScript, Ruby, C#, etc.
  3. código aberto ou não: dependendo das restrições orçamentárias, pode-se optar por usar ferramentas de código aberto, como Selenium ou Appium, para fins de automação. No entanto, é importante lembrar que todas as ferramentas de código aberto não são inferiores às suas contrapartes comercialmente disponíveis. Por exemplo, o Selenium Webdriver é uma ferramenta de código aberto que é mais favorecida por testadores automatizados em todo o mundo.
  • selecione a grade de teste certa

a grade de teste refere-se à infraestrutura na qual todos os testes automatizados serão executados. Ele compreende uma série de dispositivos, navegadores e sistemas operacionais (várias versões) em que o software deve ser testado. É sempre melhor automatizar testes em dispositivos e navegadores reais. Isso garantirá que o software esteja sendo testado em condições reais do Usuário.

além disso, a grade de teste ideal deve permitir testes paralelos. Isso significa que os testadores devem ser capazes de executar vários testes em vários dispositivos simultaneamente. Isso reduz o tempo de teste, agiliza os resultados e oferece resultados em prazos mais curtos.

outra coisa a decidir é se a grade de teste deve ser hospedada no local ou na nuvem. Lembre-se de que a infraestrutura local é quase sempre Cara de configurar e manter. Requer manter o controle de novos dispositivos, navegadores e sistemas operacionais, atualizando-os e mantendo-os de acordo. Este é um desafio, uma vez que várias versões de cada um são lançadas todos os meses.

por outro lado, testar em uma grade baseada em nuvem é mais fácil, uma vez que a atualização e a manutenção seriam atendidas pela organização que oferece a grade. Por exemplo, o BrowserStack oferece uma grade de selênio na nuvem conectada a mais de 2.000 dispositivos e navegadores reais para teste. Os usuários simplesmente precisam se inscrever e começar a testar em uma grade robusta de selênio que está sendo constantemente atualizada para obter os melhores resultados possíveis.

o real device cloud da BrowserStack fornece mais de 2000 navegadores e dispositivos reais para testes instantâneos e sob demanda. A nuvem também fornece integrações com ferramentas populares de CI / CD, como Jira, Jenkins, TeamCity, Travis CI e muito mais. Além disso, existem ferramentas de depuração integradas que permitem aos testadores identificar e resolver bugs imediatamente. O BrowserStack também facilita o teste do Cypress em mais de 30 versões do navegador com paralelização instantânea e sem complicações.

Experimente o teste de automação gratuitamente

exemplo de automação de teste

ao testar manualmente o software, o testador usa uma montagem e um teclado para interagir com ele. Scripts e ferramentas de automação replicam essa interação, passo a passo.

neste exemplo, uma calculadora está sendo testada para ver se pode adicionar dois números e exibir o resultado. Manualmente, as etapas para fazer isso seria o seguinte:

Passo 1: Lançar a Calculadora
Passo 2: Pressione 2
Passo 3: Pressione +
Passo 4: Pressione 3
Passo 5: Pressione =
Passo 6: A tela exibe 5
Passo 7: Fechar Calculadora

Uma ferramenta de automação pode executar as mesmas etapas, com o seguinte script:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

Quando executar o script acima, exatamente o mesmo resultado (5) é apresentado. Em vez de ter que passar pelas etapas manuais, basta escrever o script e deixar a ferramenta cuidar do resto.

como passar do Manual para o teste de automação

para começar: faça duas perguntas.

  1. o que automatizar?
  2. como automatizar?

O Que Automatizar?

  • automatize os testes necessários para um ciclo de lançamento frequente. Isso pode incluir testes de fumaça, testes de regressão e similares. Basicamente, automatize testes que aceleram todo o ciclo de teste. Lembre-se, menor intervenção manual é igual a resultados mais rápidos.
  • automatize os testes com base na prioridade técnica e comercial. Pense assim: a automação deste teste ajudaria o negócio? Automatizar esse teste ajudaria a simplificar as complexidades técnicas? Se a resposta for sim para qualquer uma das perguntas, automatize.
  • automatize com base na usabilidade. Alguns testes, como testes de compatibilidade entre navegadores, simplesmente funcionam melhor quando executados manualmente. A dependência de ferramentas também pode limitar o potencial de automação para uma determinada equipe ou organização de testes.

leia mais: 10 práticas recomendadas de automação de teste a seguir

como automatizar?

para começar, lembre-se de que nem todos os testes podem ser automatizados. Ao aderir às três estratégias na seção anterior, torna-se mais fácil iniciar testes automatizados de maneira prática.

  • comece pequeno. 100% automação não é o objetivo, e também não é possível. Escreva casos de teste menores porque eles são mais fáceis de manter e reutilizar. Mova um pequeno número de testes para uma plataforma de automação, execute os testes, analise os resultados e decida se o processo provou ser benéfico para o processo de desenvolvimento de software.
  • se benefícios significativos vierem da operação, mova mais testes para a automação. Comece a mover os testes não apenas em volume, mas também aumente o tipo de testes que estão sendo automatizados. Lembre-se de que este ainda é um estágio experimental. É possível que certos testes se revelem ineficientes na automação e tenham que ser movidos de volta para testes manuais.
  • mapeie casos de teste com cada método ou função para obter uma melhor cobertura de teste. Rotule seus casos de teste para facilitar a identificação, para que a equipe possa saber rapidamente quais testes automatizar. Isso também ajuda a implementar melhores relatórios.
  • ao iniciar o teste de automação, comece explorando novas áreas do aplicativo manualmente. Em seguida, crie um plano de risco que detalha o que precisa ser automatizado, com base nas prioridades comerciais e técnicas.
  • use o analytics para determinar as preferências do usuário final. Crie uma lista de navegadores e dispositivos com os quais os usuários têm maior probabilidade de acessar o software. Isso ajuda o teste de automação a cobrir as interfaces certas e otimiza o desempenho do software nos caminhos certos do Usuário.

Experimente testes automatizados na nuvem de dispositivos reais

manutenção de automação de teste

uma vez criados, os conjuntos de testes de automação devem ser mantidos. À medida que o software evolui e a base de código se expande, os scripts de automação precisam ser modificados e atualizados para incorporar novos recursos e funções. Mesmo mudanças minúsculas na interface do usuário podem interromper os testes e fazer com que eles falhem. Ao projetar casos de teste, os testadores de automação precisam levar em conta o esforço e os custos de manutenção.

a abordagem de manutenção de automação de teste funciona a partir de duas perspectivas principais:

  • falha de teste: ao depurar testes com falha, procura possíveis problemas de manutenção. O script de teste não foi atualizado adequadamente? Uma mudança no código do software interferiu no script de teste? Esta é uma maneira fácil de identificar quais áreas exigem esforços de manutenção.
  • mudança nas dependências ou ferramentas: A equipe ou organização alterou APIs, ferramentas de relatórios, bancos de dados, etc.? Nesse caso, os testes podem precisar ser alterados ou atualizados para se alinhar com novos conjuntos de ferramentas. Para conseguir isso, desenvolvedores e testadores obviamente precisarão ser treinados na nova infraestrutura para que possam acompanhar os esforços de manutenção no futuro.

quais são os elementos-chave de uma estratégia eficaz de automação de teste?

o teste de automação é parte integrante de qualquer ecossistema de testes. Sem mudar para uma configuração de automação, testes abrangentes se tornam difíceis, assim como o cumprimento de prazos cada vez mais curtos. Consequentemente, é importante iniciar os protocolos de teste de automação o mais cedo possível de uma forma que equilibre e complemente os testes manuais.Experimente as etapas descritas acima e experimente o suficiente para descobrir quais abordagens produzem resultados ótimos. Não se preocupe em falhar algumas vezes antes de encontrar o ponto ideal que permite uma automação eficaz sem comprometer a validação humana.

Write a Comment

O seu endereço de email não será publicado.