O teste de aceitação é onde você descobre que o software criado não é o que o cliente e os usuários esperavam. Certo?
Há algumas décadas, isso acontecia com bastante frequência devido ao longo tempo desde que os requisitos foram especificados.
As práticas Agile têm feito muito para fechar esta lacuna. Mas mesmo quando sua adoção ao Agile é de alto nível, ainda é crucial ter testes de aceitação em seu arsenal porque isso envolve mais do que a verificação de requisitos.
Este artigo o informará sobre o que você precisa saber para colocá-lo para trabalhar de forma eficaz e garantir que você entregue software que seus clientes e usuários finais terão prazer em usar.
Historicamente, como usuário, você só veria um novo produto de software muito depois que a maioria dos desenvolvedores e testadores tivessem passado adiante.
Devido a essa longa lacuna, os testes de aceitação foram cruciais para determinar se o software satisfazia as expectativas e era funcional para seus usuários, em outras palavras: se ele era aceitável e apto para entrar em funcionamento. Somente se ele fosse adicionado a um ambiente de produção e utilizado no curso normal dos negócios.
No desenvolvimento ágil, os testes de aceitação são parte do processo e não uma reflexão posterior. Entretanto, a intenção ainda é a mesma: verificar se o software atende às expectativas do ponto de vista do cliente e dos usuários finais.
Quando você trabalha com uma equipe ágil e madura, você não verá nenhuma diferença entre as especificações e a verificação. Você colabora com a equipe para criar histórias de usuários e seus critérios de aceitação. E você ou eles escrevem esses critérios de aceitação em uma notação que as ferramentas podem se transformar em testes de aceitação automatizados.
O tremendo benefício é que o produto em desenvolvimento está sempre em um estado aceitável — sem mais surpresas desagradáveis.
Para fazer um teste de aceitação e decidir se você vai aceitar o software, você precisa de critérios claros. Estes são conhecidos como critérios de aceitação.
Os critérios de aceitação funcional dizem como o software precisa se comportar para ajudar seus usuários a fazer seu trabalho. Eles são sobre as funções, ou recursos, que seu software oferece.
Os critérios de aceitação não-funcionais especificam os requisitos para tudo mais. Eles são sobre como seu software faz o que faz: aspectos como acessibilidade, facilidade de uso, segurança e privacidade, velocidade, confiabilidade e muito, muito mais.
Durante o UAT, você executará um produto de software através de seus passos para garantir que ele atenda às suas expectativas como usuário e que seja viável para você. Em outras palavras, que ele o ajude a fazer seu trabalho e lhe proporcione os benefícios que você se propôs a obter.
Em equipes ágeis maduras e equipes que utilizam CI/CD, o teste de aceitação (automatizado) combina tanto o teste de aceitação do usuário quanto o teste de sistema.
Você mantém a centralidade do UAT no usuário através da estreita colaboração entre os usuários finais e a equipe de desenvolvimento, especificando os critérios de aceitação para cada história de usuário desenvolvida. A equipe de desenvolvimento então os utiliza para criar casos de testes automatizados que são executados sempre que uma integração é construída.
Você usa o teste de aceitação operacional para avaliar se pode executar e administrar corretamente um sistema de software. OAT também é chamado de Teste de Funcionamento de Prontidão (ORT) ou Teste de Prontidão e Garantia de Operações (OR&A).
Durante o OAT, você vai observar tudo o que precisa para manter um sistema de software funcionando sem problemas: sua segurança, sua escalabilidade, sua velocidade e desempenho, degradação graciosa sob picos de carregamento, etc. Você também observará sua capacidade de recuperação de falhas, seus procedimentos de backup e restauração, balanceamento de carregamento e muito mais.
Em resumo, a OAT é o principal tipo de teste de aceitação para todos os requisitos não-funcionais. Os únicos testes funcionais que você realizaria lidam com as funções necessárias para executar e verificar esses requisitos não-funcionais.
Você realiza testes regulamentares de aceitação quando o campo para o qual seu software é usado é regulado de qualquer forma.
Software para fins médicos talvez venha primeiro à mente. Você encontrará outros exemplos nas áreas aviação, automotiva, petróleo e gás, navegação, agricultura, pesca, etc. Dificilmente restará uma indústria onde você não tenha que lidar com regras e regulamentos.
Quando você faz testes de conformidade ou de regulamentação, você verifica se o software está em conformidade com as regras e regulamentações aplicáveis. Estes podem ser requisitos funcionais, mas muitas vezes não são funcionais. Pense, por exemplo, nas trilhas de auditoria necessárias para saber quem atualizou o quê e quando.
Testes de Aceitação Alpha e Beta são práticas para obter feedback antecipado de um número limitado de usuários finais e clientes, ou mesmo dos clientes dos clientes.
O objetivo é coletar feedback do uso real para corrigir quaisquer defeitos, tais como comportamento incorreto ou complicado antes de liberar seu software para o público em geral.
O teste de aceitação Alpha também é conhecido como Teste de Aceitação Interna. E o teste de aceitação Beta também é conhecido como Teste de Aceitação de Campo ou Teste de Aceitação Externo.
Ambos são formas informais de teste de aceitação do usuário. Os testes Alpha ou Beta obtêm acesso antecipado a novos recursos em troca de seu feedback. Eles não têm direito a voto na decisão de entrar no ar e não executam nenhum dos seus casos de teste.
Os testadores Alpha são geralmente usuários internos e talvez alguns clientes (potenciais) selecionados. Às vezes, equipes de teste independentes dedicadas realizam os testes Alpha.
Os testes Beta sucedem a fase Alpha. A diferença é que você permite a entrada de (muito) mais usuários finais externos.
Você executa testes formais de aceitação como o teste final antes que o novo software entre em funcionamento.
Entretanto, quando você pratica CI/CD ou trunk-based development com feature toggles, “go live” é quando você aciona o interruptor (a feature toggle) para tornar um recurso disponível a todos.
Portanto, mesmo assim, a ideia ainda é a mesma. Todos os testes de aceitação devem ser bem sucedidos antes do lançamento.
Se suas histórias de usuários ainda não possuem critérios de aceitação, crie-as. Faça isso em colaboração com profissionais de negócios, testadores e desenvolvedores. Confira a seção “Três Amigos como a Ideia Central do Behavior Driven Development” em Behavior Driven Development para descobrir o porquê.
Tomando os Critérios de Aceitação como entrada, criar pelo menos um caso de teste para cada um.
Preparar um ambiente de teste instalando o software e coletando os dados necessários para todos os casos de teste.
Quando todos os casos de teste forem bem-sucedidos, assinar o teste de aceitação.
Mesmo que não seja mais uma atividade separada, você precisará passar por estas etapas. Elas serão apenas parte de outras atividades de desenvolvimento. Por exemplo, você criaria critérios de aceitação como parte da coleta de requisitos ou da definição de histórias de usuários.