Como escrever casos de teste eficazes
Software Teams

Como escrever casos de teste eficazes

Nos serviços financeiros, isso é chamado de “processo de criação e verificação”. Na gestão de riscos, é popularmente conhecido como “princípio dos quatro olhos”. Na gestão de armas nucleares dos EUA, é chamado de “conceito de duas pessoas”.

Em essência, todos eles fazem a mesma coisa: esses processos incluem um nível adicional de avaliação, confirmação, autorização ou aprovação para garantir a precisão, qualidade ou relevância do resultado.

No desenvolvimento de software, isso é chamado de teste ou garantia de qualidade. Simplificando, o teste de software avalia o código para garantir que ele esteja funcionando conforme o esperado. Para realizar essa atividade de forma eficaz, as equipes de qualidade usam uma ferramenta poderosa chamada caso de teste.

Nesta postagem do blog, exploramos o que é, por que é necessário, quando usá-lo e, o mais importante, como escrever casos de teste.

O que é um caso de teste?

Um caso de teste é um conjunto de ações, condições e dados de entrada usados para avaliar a qualidade de um aplicativo de software.

Digamos que você criou um formulário para capturar o nome e o e-mail do usuário para uma assinatura de boletim informativo. Seu caso de teste especificará o seguinte:

Ações [tanto voltadas para o usuário quanto internas]: tudo o que se espera que o usuário ou o software faça para concluir o fluxo de trabalho no software que está sendo desenvolvido.

  • O usuário insere um nome
  • O usuário insere um endereço de e-mail
  • O usuário clica em “Enviar”.
  • E-mail de confirmação enviado ao usuário
  • Dados salvos no banco de dados correspondente
  • Dados adicionados à respectiva lista de e-mails da newsletter

Condições: os requisitos que o usuário ou o sistema devem atender ao realizar suas ações.

  • Salve se a validação do campo nome for aceita, caso contrário, mostre uma mensagem de erro.
  • Salve se a validação do campo de endereço de e-mail for aceita, caso contrário, mostre uma mensagem de erro.
  • Adicione à lista de newsletter apenas se o usuário tiver confirmado seu endereço de e-mail.
  • Se o usuário já existir, mostre a mensagem de erro correspondente.

Dados de entrada: amostras do que é uma entrada aceitável para o recurso. Normalmente, as equipes de garantia de qualidade [QA] criam dados de teste que podem testar resultados positivos e negativos.

Por exemplo, se uma condição para validação do campo nome for “pode conter apenas letras do alfabeto e espaço”, os dados de teste seriam

  • Jane Doe, que atende aos critérios
  • Ad@m Sand!er, que não atende aos critérios

Papel dos casos de teste na engenharia de software

O método de caso de teste é uma abordagem abrangente, sistemática e repetível para testes de software. Embora seu objetivo principal seja garantir a qualidade do aplicativo, ele adiciona vários níveis de robustez e confiabilidade ao próprio processo de engenharia de software.

Identificação de defeitos: os casos de teste ajudam a identificar defeitos no software. Eles determinam se o aplicativo está seguro para entrar em produção.

Validação de requisitos: os casos de teste garantem que o que você criou é exatamente o que você pretendia desde o início. Isso é especialmente importante se você for uma organização de serviços que desenvolve software para partes interessadas externas com requisitos específicos.

Mitigação de riscos: os casos de teste avaliam um recurso quanto à segurança, desempenho e riscos financeiros. O analista de qualidade também inclui condições relativas à conformidade regulatória, padrões do setor etc. para garantir que todas as bases sejam cobertas.

Equilibrando o panorama geral: um novo recurso pode funcionar bem isoladamente. Mas, quando integrado ao restante do software, ele pode quebrar ou causar a quebra de algum outro recurso. Os casos de teste garantem que isso seja detectado antes de afetar a experiência do usuário na produção.

Um único caso de teste pode fazer tudo isso? Na verdade, não. Dependendo do recurso, software, sistemas, necessidades e objetivos organizacionais, existem vários tipos de casos de teste que as equipes de controle de qualidade escrevem.

Tipos de casos de teste

Existe um caso de teste para cada tipo de teste de software. Alguns dos mais comumente usados são os seguintes.

Caso de teste de funcionalidade: este caso de teste básico e fundamental avalia se um software funciona conforme o esperado. No mínimo, todo profissional de garantia de qualidade escreve isso.

Casos de teste de unidade: o teste de unidade avalia uma parte do recurso ou uma única unidade. Por exemplo, um QA pode escrever testes de unidade para verificar se o campo de endereço de e-mail atende a várias condições.

Casos de teste de segurança: avaliam se o recurso atende aos padrões de segurança para entrar em produção. Normalmente, isso inclui testes de autorização, autenticação, conformidade com os padrões OWASP, etc.

Casos de teste de desempenho: valida se o novo recurso atende aos requisitos de velocidade, confiabilidade, escalabilidade e utilização de recursos.

Casos de teste de regressão: o teste de regressão garante que o novo recurso que você desenvolveu não afete nenhum dos recursos existentes no produto.

Além desses, casos de teste específicos também podem ser executados. Por exemplo, organizações orientadas para o design podem incluir casos de teste de interface do usuário [UI]. Produtos que executam parte de um fluxo de trabalho maior podem escrever muitos casos de teste de integração. Outros podem criar casos de teste de usabilidade específicos em torno de heurística, acessibilidade, inclusão, etc.

Como proprietário do produto, você decide o que seu software precisa fazer e cria casos de teste aplicáveis a isso. Você deve cobrir todos os cenários que são importantes para você.

Isso significa que um caso de teste é simplesmente um cenário de teste? De forma alguma.

Caso de teste x cenário de teste

Um caso de teste é um registro abrangente de como seu novo recurso deve se comportar [e como testá-lo]. Um cenário de teste é uma descrição de alto nível das ações que podem ocorrer [e, portanto, ser testadas].

Ampliando o exemplo anterior, o cenário de teste seria “testar a assinatura do boletim informativo”. No entanto, os casos de teste seriam:

  • Campo de nome do teste com um nome aceitável
  • Campo de nome do teste com caracteres especiais
  • Campo de nome do teste para nomes de celebridades
  • Campo de nome do teste com números
  • Campo de nome do teste para nomes fictícios ou substitutos, como John Doe
Caso de testeCenário de teste
DefiniçãoDocumentação abrangente sobre como testar um recursoBreve descrição de como o recurso deve funcionar da perspectiva do usuário final
NívelAções de baixo nível com responsabilidade granularAções de alto nível com responsabilidade geral
FocoComo testar [registro detalhado da funcionalidade pretendida]O que testar [breve registro dos resultados pretendidos]
FonteDerivado de cenários de testeDerivado de histórias de usuários e casos de uso comercial.
AbordagemConsidere uma resolução mais alta de possibilidades e teste exaustivamente.Imite cenários da vida real e teste de acordo com eles.

Agora que conhecemos as diferenças, vamos voltar nosso foco para o caso de teste e aprofundar o assunto.

Componentes de um caso de teste

Para recapitular, um caso de teste é uma documentação detalhada de tudo o que precisa ser testado para garantir que o software esteja funcionando conforme o esperado. Isso o torna abrangente, granular e multifacetado, envolvendo vários componentes.

Alguns dos componentes críticos de um caso de teste são:

ID do caso de teste: cada caso de teste tem um número. Isso pode parecer simples, mas para testar um aplicativo completamente, você realizará vários testes que parecem semelhantes. A ID do caso de teste ajuda a diferenciá-los.

Descrição: Descrição do que você está testando. No exemplo acima, isso poderia ser “Adicionar clientes potenciais reais e interessados ao nosso banco de dados de boletim informativo”.

Pré-requisitos: todos os pré-requisitos que devem ser atendidos para usar esse recurso. Por exemplo, discutimos a validação para cada campo acima. Além disso, outras condições podem incluir:

  • O usuário não deve já estar inscrito na newsletter.
  • O usuário não deve ter cancelado a assinatura do boletim informativo.

Etapas: etapas que o usuário ou o sistema devem seguir para concluir a avaliação e marcá-la como bem-sucedida.

  • O usuário insere um nome válido
  • O usuário insere um endereço de e-mail válido
  • O usuário marca a caixa de seleção de privacidade
  • O usuário clica no botão enviar

Resultados esperados: lista do que o sistema precisa fazer a seguir.

  • Se o nome de usuário for inválido, exiba uma mensagem de erro.
  • Se o ID do e-mail for inválido, exiba uma mensagem de erro.
  • Se o nome de usuário e o ID de e-mail forem válidos, salve no banco de dados respectivo.
  • Depois de salvar no banco de dados, envie um e-mail de confirmação ao usuário.

Resultados reais: são as observações do testador após a execução do caso de teste. É isso que será enviado de volta ao desenvolvedor caso algo não funcione corretamente.

  • Testei o campo de nome com Katy P3rry e ele foi aceito como uma entrada válida [embora contenha um número].

Com isso, você estará pronto para escrever casos de teste eficazes. Veja como.

Como escrever casos de teste eficazes com exemplos

Escrever um bom caso de teste requer tanto lógica de negócios quanto perspicácia tecnológica. Você precisa entendê-lo do ponto de vista do usuário no mundo real, bem como da perspectiva tecnológica no mundo digital. Abaixo está uma estrutura robusta para você começar essa jornada.

1. Identifique cenários de teste

Antes de escrever casos de teste, entenda os cenários reais em que o recurso será usado. Leia a história do usuário, estude o documento de requisitos ou até mesmo discuta as especificações com o desenvolvedor.

Por exemplo, os cenários de teste no exemplo anterior seriam: O usuário assina com sucesso a newsletter.

Nesta etapa, é importante perguntar se o documento de requisitos descreve o usuário de alguma forma específica.

Por exemplo, se você estiver criando uma funcionalidade de boletim informativo apenas para clientes pagantes, terá um cenário em que usuários não pagantes podem tentar se inscrever.

Portanto, analise cuidadosamente os requisitos, as especificações e as histórias dos usuários.

2. Defina os objetivos do caso de teste

Nesta fase, defina o que você deseja alcançar ao executar seus testes. Por exemplo, se você estiver apenas testando se o recurso está funcionando conforme o planejado, você criará casos de teste funcionais.

No entanto, se você também precisar que ele seja seguro e tenha bom desempenho, você também escreverá casos de teste correspondentes. Isso ajudará a otimizar seu processo de teste ágil e apresentar os resultados à equipe de desenvolvimento.

3. Escreva etapas claras e concisas

Esta etapa é mais do que apenas delinear o fluxo de trabalho. É tudo o que o controle de qualidade precisa fazer para garantir que o recurso funcione conforme o esperado.

Seja minucioso: entre em tantos detalhes quanto possível. Inclua o que precisa acontecer com base na ação do usuário/sistema. Por exemplo, você pode escrever:

  • Insira o nome no campo de nome
  • Se o nome contiver um número, exiba uma mensagem de erro: “Digite um nome contendo apenas letras e espaços”.
  • Se o nome contiver caracteres especiais, exiba uma mensagem de erro: “Digite um nome com apenas letras e espaços”.
  • Se o nome for um espaço reservado, exiba uma mensagem de erro: “Insira um nome válido”.
  • Se o nome for validado, permita que o usuário envie

Torne-os reutilizáveis: a maioria dos recursos se sobrepõe a outros recursos anteriores. Por exemplo, os campos para assinaturas de boletins informativos podem ser semelhantes aos campos para criação de novas contas de usuário. Reutilize-os o máximo possível para manter a consistência e a eficiência.

Na verdade, você também pode criar modelos reutilizáveis de documentos de requisitos de produtos, a partir dos quais é mais fácil extrair cenários e casos de teste.

Desenhe o processo: para recursos complexos, pode ser difícil documentar todos os casos de teste de maneira linear. Nesses casos, tente usar um fluxograma.

Quadros brancos ClickUp
Como fazer café usando um fluxograma com o ClickUp Whiteboards

O ClickUp Whiteboards oferece uma tela em branco altamente personalizável para visualizar o fluxo de trabalho de seus recursos. Não sinta a pressão de fazer isso sozinho. Crie seus fluxogramas e compartilhe-os com todas as partes interessadas — analistas de negócios, desenvolvedores, gerentes de testes, etc. — e obtenha a aprovação deles antes de começar!

Defina o contexto: embora o cenário de teste descreva o contexto comercial, você precisa descrever claramente a configuração do teste. Inclua a versão do software, sistema operacional/navegador, hardware, formatos de data/hora, fuso horário etc. Além disso, inclua links para quaisquer documentos e recursos que possam ser úteis durante a execução do teste.

4. Especifique os resultados esperados

Esta é a resposta para o que acontece se! Então, o que acontece se o campo nome for validado? O que acontece se o campo nome não for validado?

  • E se o usuário já for um assinante? Você deve rejeitar a assinatura dele ou renová-la?
  • E se o usuário não for um cliente pagante, você deve pedir que ele pague agora?
  • E se o usuário tiver cancelado a inscrição anteriormente? Você deve verificar novamente antes de reinscrever?

Dessa forma, descreva os resultados esperados para cada possibilidade. Quanto mais complexo for o recurso, mais longa será a lista.

5. Inclua pré-condições e pós-condições

Hoje em dia, nenhum recurso é uma ilha. No desenvolvimento de software, cada recurso está conectado a algo mais, o que significa que os testes têm várias pré-condições e pós-condições.

Exemplos de pré-requisitos

  • É necessário ser um cliente pagante.
  • É necessário fornecer um nome e endereço de e-mail válidos.
  • É necessário aceitar os termos e condições
  • É necessário usar a versão mais recente do Chrome.
  • É necessário fazer login pelo celular

Exemplos de pós-condições

  • Precisa ser adicionado ao banco de dados
  • É necessário aceitar a assinatura no e-mail de confirmação.
  • Precisa ser adicionado à lista de boletins informativos no CRM.

Se você é um líder de produto que deseja se familiarizar com testes, aqui estão algumas ferramentas sem código para gerentes de produto.

Esses foram os fundamentos básicos, agora vamos ao que interessa.

Melhores práticas para escrever casos de teste

Vamos ser sinceros: escrever casos de teste é uma arte. Um bom caso de teste irá revelar bugs e defeitos que nem sequer foram visualizados nos requisitos. Por exemplo, e se o campo do nome tivesse dois espaços? Ou se o sobrenome do usuário tivesse um hífen?

Para garantir que seus casos de teste sejam voltados para a entrega de software de alta qualidade, considere as seguintes práticas recomendadas.

🧠 Pense como um usuário

Antes de escrever seus casos de teste, pense da perspectiva do usuário. Seja crítico e detalhista. No exemplo que discutimos até agora, você pode perguntar:

  • O que significa “nome”? Nome próprio? Sobrenome? Ou ambos?
  • De quem é esse nome? O nome do campo deveria ser “seu nome” em vez disso?
  • Deve haver um texto provisório para orientar o leitor?
  • Se o usuário inserir um nome inválido, a mensagem de erro deve identificar o que está errado?

Coloque-se no lugar do usuário. Explore várias possibilidades e até mesmo casos extremos. Você pode não criar casos de teste para todos, mas explorá-los ajuda a fortalecer o recurso.

🎯 Concentre-se em uma coisa de cada vez

Não escreva um caso de teste funcional que também seja um caso de teste de usabilidade e um caso de teste de banco de dados. Faça uma coisa de cada vez. Dessa forma, quando o resultado do teste for aprovado/reprovado, você saberá exatamente o que funcionou ou o que deu errado.

Incluir muitas variáveis em um único teste complicará as questões quando o teste falhar.

👫 Não faça isso sozinho

Os casos de teste definem a qualidade do software. Mesmo sendo o verificador no processo de criação e verificação, ele precisa de outra camada de revisão por duas pessoas. Portanto, depois de escrever os casos de teste, peça para que sejam revisados por colegas.

Peça a um colega para revisar o que você escreveu. Incentive-o a encontrar falhas e dar feedback crítico. Também ajuda fazer isso em colaboração com analistas de negócios e desenvolvedores para obter uma compreensão mais clara de suas intenções.

♻️ Crie modelos reutilizáveis

Entre todas as melhores práticas na criação de casos de teste, a mais valiosa é a criação de modelos. Quer esteja a testar funcionalidades semelhantes ou completamente diferentes, um modelo proporciona estrutura aos seus pensamentos. Inclua componentes-chave, um mecanismo de numeração automatizado ou uma estrutura para apresentar todos os resultados dos testes.

Modelo de caso de teste do ClickUp

O modelo de caso de teste do ClickUp é um exemplo simples, mas poderoso, de como você pode melhorar drasticamente a eficiência e a visibilidade com uma estrutura repetível. Este modelo para iniciantes é personalizável, permitindo que suas equipes realizem mais tarefas com mais rapidez. E mais: você também pode usar este modelo para identificar candidatos à automação e redobrar seus esforços de controle de qualidade.

🛠️ Use as ferramentas certas

Em uma equipe de desenvolvimento de software, escrever casos de teste abrangentes para recursos complexos pode ser uma tarefa demorada. Sem falar na documentação e organização deles para facilitar o acesso.

Para isso, escolha a ferramenta certa.

Ferramentas e recursos para gerenciamento de casos de teste

Uma boa gestão de casos de teste permite que você crie, organize, execute, registre e monitore o que está testando. Ela ajuda as equipes de teste a garantir a rigor sem perder a eficiência. Ela ajuda as equipes de desenvolvimento a ver os bugs com clareza.

Embora os benefícios sejam infinitos, os desafios também o são. A regra geral para o número de casos de teste por recurso é “tantos quantos forem necessários”. Dependendo do recurso, podem ser dois, ou seja, um positivo e um negativo. Podem ser três, se o caso de teste for condicional. Ou podem ser vários.

Para gerenciar isso, você precisa de uma ferramenta robusta. Algumas das melhores ferramentas modernas de teste de controle de qualidade são:

TestRail

O TestRail é uma plataforma de gerenciamento de testes para documentar e acompanhar planos de testes. Inclui recursos para rastreabilidade, cobertura, automação de testes e análises. Ele se integra nativamente a várias ferramentas de desenvolvimento de software e oferece uma API abrangente.

BrowserStack

O BrowserStack é uma ferramenta de teste de aplicativos e navegadores. Ele oferece testes para aplicativos iOS e Android, bem como sites em vários navegadores. Inclui módulos específicos para testes visuais, testes de acessibilidade, observabilidade de testes, automação de baixo código e muito mais.

Jira

Como uma das ferramentas de gerenciamento de projetos ágeis mais populares, o Jira também funciona como um software de rastreamento de bugs. Com o Jira, você pode escrever casos de teste, vinculando-os a histórias de usuários, bugs conhecidos ou outras questões.

No entanto, como o Jira não foi projetado para gerenciamento de casos de teste, os recursos de relatórios e automação podem ser limitados.

ClickUp

O ClickUp para equipes de software é uma ferramenta de gerenciamento de projetos completa, projetada para dar suporte a todos os aspectos do processo de engenharia. O gerenciamento de casos de teste não é exceção.

Gerenciamento de casos de teste ClickUp
Otimize o gerenciamento de casos de teste com o ClickUp

Criação de casos de teste: o ClickUp permite que as equipes gerenciem sua eficiência de backlog com recursos robustos de rastreamento de bugs e problemas. Gerencie casos de teste existentes e crie novos com o ClickUp. Use formulários para equipes de software para capturar solicitações/bugs e convertê-los automaticamente em tarefas para a equipe.

Visibilidade para operações: você pode visualizá-lo como um quadro Kanban com todos os status ou usar a visualização do calendário para agendá-los. Gerencie as tarefas da equipe de controle de qualidade com a visualização de carga de trabalho do ClickUp e leve as coisas para a produção mais rapidamente. Use o modelo de rastreamento de bugs e problemas do ClickUp para ter uma visão geral de todos os testes em seu projeto de desenvolvimento de software.

Automação no gerenciamento de projetos: integre perfeitamente o gerenciamento de casos de teste ao seu processo de desenvolvimento de produtos.

Use as automações do ClickUp para atribuir o testador certo a cada caso de teste. Quando o controle de qualidade mudar de status, atribua-o automaticamente de volta ao desenvolvedor para revisão.

Com o ClickUp para equipes ágeis, crie listas de verificação reutilizáveis para serem adicionadas automaticamente às tarefas. Configure o ClickUp Brain para ajudar as equipes de controle de qualidade a escrever relatórios mais rapidamente.

Melhores práticas já configuradas: use as dezenas de modelos pré-concebidos para estruturar seu processo de teste. Comece com os vários modelos de casos de teste ou modelos de relatório de bugs.

Modelo de gerenciamento de testes do ClickUp

Em seguida, experimente o modelo de gerenciamento de testes do ClickUp para otimizar seus cenários, casos e execuções de teste. Com esse modelo, acompanhe o processo, avalie os resultados e colabore com a equipe de desenvolvimento em bugs/problemas.

Para iniciantes, este modelo também possui um documento abrangente sobre “Como começar” para guiá-lo pelo processo.

Quer saber como escrever um relatório de teste? Temos um modelo para você. Baixe e use o modelo de relatório de teste ClickUp, fácil de usar para iniciantes, para resumir os resultados dos seus testes e entregá-los aos desenvolvedores.

Crie um ótimo software para cada caso com o ClickUp

No desenvolvimento de software, os testes desempenham um papel crucial para garantir que tudo esteja funcionando corretamente. Eles oferecem suporte completo.

Isso valida o trabalho da equipe de desenvolvimento. Confirma a adequação à intenção da equipe de negócios. Mantém-se fiel às necessidades do usuário em termos de funcionalidade, desempenho, segurança e privacidade.

Gerenciar um processo tão crítico e abrangente exige um conjunto de ferramentas bem pensado. É exatamente isso que o ClickUp oferece.

Quer você siga o modelo ágil, Waterfall ou um modelo híbrido de desenvolvimento de software, o ClickUp vem repleto de recursos, projetados para serem altamente personalizáveis e se adaptarem às suas necessidades específicas.

Além do gerenciamento de tarefas poderoso e multifacetado, o ClickUp também inclui um conjunto de testes, automações DevOps, integrações e modelos que fazem a diferença. Veja por si mesmo. Experimente o ClickUp gratuitamente hoje mesmo.