Como escrever casos de teste eficazes
Software Teams

Como escrever casos de teste eficazes

Nos serviços financeiros, ele é chamado de "processo do fabricante e verificador" No gerenciamento de riscos, é popularmente conhecido como o "princípio dos 4 olhos" No gerenciamento 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, a qualidade ou a relevância do resultado.

No desenvolvimento de software, isso é chamado de teste ou garantia de qualidade. Em termos simples, o teste de software avalia o código para garantir que ele esteja funcionando conforme o esperado. Para realizar essa atividade com eficiência, as equipes de qualidade usam uma ferramenta poderosa chamada caso de teste.

Nesta postagem do blog, exploraremos 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ê tenha criado um formulário para capturar o nome e o ID de e-mail do usuário para a assinatura de um boletim informativo. Seu caso de teste especificará o seguinte:

Ações [voltadas para o usuário e 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 criado.

  • 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 de boletim informativo

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

  • Salvar se a validação do campo de nome for aceita; caso contrário, mostrar mensagem de erro
  • Salvar se a validação do campo de endereço de e-mail for aceita; caso contrário, mostrar mensagem de erro
  • Adicionar à lista de boletins informativos somente 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 a validação do campo de nome for "só pode conter 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

Função dos casos de teste na engenharia de software

O método de caso de teste é uma abordagem abrangente, sistemática e repetível para o teste de software. Embora seu objetivo principal seja garantir a qualidade do aplicativo, ele acrescenta 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 é seguro para ser colocado em produção.

validação de requisitos: Os casos de teste garantem que o que você construiu é 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 que têm requisitos específicos.

Mitigação de riscos: Os casos de teste avaliam um recurso quanto a riscos de segurança, desempenho e financeiros. O analista de qualidade também inclui condições relacionadas à conformidade regulamentar, aos padrões do setor etc. para garantir que todas as suas bases estejam cobertas.

equilíbrio do quadro geral: Um novo recurso pode funcionar bem isoladamente. Porém, 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 caso de teste pode fazer tudo o que foi mencionado acima? Na verdade, não. Dependendo do recurso, do software, dos sistemas, das necessidades e das metas organizacionais, há vários tipos de casos de teste que as equipes de controle de qualidade escrevem.

Tipos de casos de teste

Há 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: Esse caso de teste básico e fundamental avalia se um software funciona como pretendido. No mínimo, todo QA 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 incluiria 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, as organizações orientadas por design podem incluir casos de teste de interface de usuário. Os 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 sobre heurística, acessibilidade, inclusão etc.

Como proprietário de um produto, você decide o que o 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 vs. cenário de teste

Um caso de teste é um registro abrangente de como o seu novo recurso deve se comportar [e como testá-lo]. Um cenário de teste é uma descrição de alto nível de quais ações podem acontecer [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 de teste com um nome aceitável
  • Testar o campo de nome com caracteres especiais
  • Campo de nome de teste para nomes de celebridades
  • Campo de nome de teste com números
  • Campo de nome de teste para nomes fictícios ou de espaço reservado, como John Doe
Caso de teste Cenário de teste
DefiniçãoDocumentação abrangente de como testar um recursoBreve esboç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 de negócios
AbordagemConsiderar uma resolução mais alta de possibilidades e testar minuciosamenteImitar cenários da vida real e testar de acordo com eles

Diferenças entre caso de teste e cenário de teste

Agora que já conhecemos as diferenças, vamos voltar nosso foco para o caso de teste e aumentar o zoom.

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 como pretendido. Isso o torna abrangente, granular e multifacetado, envolvendo vários componentes.

Alguns dos componentes essenciais de um caso de teste são:

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

Descrição: Descrição do que está sendo testado. No exemplo acima, pode ser: "Adicionar clientes potenciais reais e interessados ao nosso banco de dados de boletins informativos"

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

  • O usuário não deve já ter se inscrito no boletim informativo
  • O usuário não deve ter cancelado a assinatura do boletim informativo

Etapas: Etapas que o usuário ou o sistema deve 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 ID 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 em seguida.

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

Resultados reais: Essas são as observações do testador depois de executar o caso de teste. Isso é o 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ê está 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 comercial 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. A seguir, apresentamos uma estrutura robusta para você começar essa jornada.

1. Identificar 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 o boletim informativo.

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, haverá um cenário em que os usuários não pagantes poderão tentar se inscrever.

Portanto, examine minuciosamente os requisitos, as especificações e as histórias de usuários.

2. Defina os objetivos do caso de teste

Nesta etapa, defina o que você pretende alcançar com a execução dos testes. Por exemplo, se estiver apenas testando se o recurso está funcionando conforme planejado, você escreverá casos de teste funcionais.

No entanto, se também precisar que ele seja seguro e tenha bom desempenho, você também escreverá casos de teste correspondentes. Isso ajudará a simplificar seu

testes ágeis

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 todos os detalhes possíveis. Inclua o que precisa acontecer com base na ação do usuário/sistema. Por exemplo, você pode escrever:

  • Digite o nome no campo de nome
  • Se o nome contiver um número, exiba uma mensagem de erro: "Digite um nome com apenas letras e espaço"
  • Se o nome contiver caracteres especiais, exiba uma mensagem de erro: "Please enter a name with only letters and space" (Digite um nome com apenas letras e espaço)
  • Se o nome for um espaço reservado, exiba uma mensagem de erro: "Please enter a valid name" (Digite um nome válido)
  • Se o nome for validado, permita que o usuário envie

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

De fato, você também pode criar

modelos de documentos de requisitos do produto reutilizáveis

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 forma linear. Nesses casos, tente usar um fluxograma.

Quadros brancos ClickUp

Como fazer café como um fluxograma com o ClickUp Whiteboards ClickUp Whiteboards oferece uma tela em branco altamente personalizável para visualizar seu fluxo de trabalho de recursos. Não se sinta pressionado a 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 adesão deles antes de começar!

Defina o contexto: Enquanto o cenário de teste delineia o contexto comercial, você precisa delinear claramente a configuração do teste. Inclua a versão do software, o sistema operacional/navegador, o hardware, os formatos de data/hora, o fuso horário etc. Além disso, vincule todos os documentos e recursos que possam ser úteis durante a execução do teste.

4. Especifique os resultados esperados

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

  • E se o usuário já for um assinante? Você deve rejeitar a assinatura dele ou assinar novamente?
  • 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 assinatura antes? Você deve verificar novamente antes de assinar novamente?

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

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

Agora, nenhum recurso é uma ilha. No desenvolvimento de software, cada recurso está conectado a outro, o que significa que o teste tem várias pré-condições e pós-condições.

**Exemplos de pré-condições

  • Precisa ser um cliente pagante
  • Precisa fornecer um nome e um endereço de e-mail válidos
  • Precisa aceitar os termos e condições
  • Precisa usar a versão mais recente do Chrome
  • Precisa estar conectado pelo celular

**Exemplos de pós-condições

  • Precisa ser adicionado ao banco de dados
  • Precisa 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 e está querendo pegar o jeito dos testes, aqui estão alguns

ferramentas sem código para gerentes de produtos

.

Esses foram os princípios básicos, vamos aos detalhes.

Práticas recomendadas para escrever casos de teste

Vamos encarar os fatos: Escrever casos de teste é uma arte. Um bom caso de teste revelará bugs e defeitos que nem sequer foram visualizados nos requisitos. Por exemplo, e se o campo de 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 o fornecimento de software de alta qualidade, considere as práticas recomendadas a seguir.

Pense como um usuário

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

  • O que significa "nome"? Primeiro nome? Sobrenome? Ou ambos?
  • De quem é esse nome? Em vez disso, o texto do nome do campo deveria dizer "seu nome"?
  • Deve haver um texto de espaço reservado 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. Talvez você não crie 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 de um teste for aprovado ou reprovado, você saberá exatamente o que funcionou ou o que deu errado.

A inclusão de muitas variáveis em um teste complicará os problemas quando o teste falhar.

Não faça isso sozinho

Os casos de teste definem a qualidade do software. Embora seja o verificador no processo criador-verificador, ele precisa de outra camada de revisão por duas pessoas. Portanto, depois de escrever os casos de teste, faça uma revisão por pares.

Peça a um colega para dar uma olhada no que você escreveu. Incentive-o a encontrar falhas e a dar feedback crítico. Também é útil fazer isso em colaboração com analistas de negócios e desenvolvedores para obter uma compreensão mais clara da intenção deles.

♻️ Crie modelos reutilizáveis

Entre todas as práticas recomendadas para escrever casos de teste, a mais valiosa é a criação de modelos. Não importa se você está testando recursos semelhantes ou completamente diferentes, um modelo fornece estrutura aos seus pensamentos. Inclua os principais componentes, um mecanismo de numeração automatizado ou uma estrutura para apresentar todos os resultados do teste.

Modelo de caso de teste do ClickUp

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. Esse modelo para iniciantes é personalizável, permitindo que suas equipes façam mais com mais rapidez. E mais? Você também pode usar esse modelo para identificar os candidatos à automação e duplicar 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. Isso sem falar na documentação e na organização desses casos para facilitar o acesso.

Para fazer isso, escolha a ferramenta certa.

Ferramentas e recursos para gerenciamento de casos de teste

Um bom gerenciamento de casos de teste permite criar, organizar, executar, registrar e monitorar o que está sendo testado. Ele ajuda as equipes de teste a garantir o rigor sem perder a eficiência. 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 seu recurso, podem ser dois - ou seja, um positivo e um negativo. Pode ser três, se o caso de teste for condicional. Ou pode ser múltiplo.

Para gerenciar isso, você precisa de uma ferramenta robusta. Algumas das ferramentas

melhores ferramentas modernas de teste de controle de qualidade

são:

TestRail

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

BrowserStack

O BrowserStack é uma ferramenta de teste de aplicativos e navegadores. Ele oferece testes para aplicativos iOS e Android, bem como para 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 um dos mais populares

gerenciamento ágil de projetos

o Jira também funciona como um

software de controle de bugs

. Com o Jira, você pode escrever casos de teste, vinculando-os a histórias de usuários, bugs conhecidos ou outros problemas.

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

ClickUp 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 do ClickUp

Racionalize o gerenciamento de casos de teste com o ClickUp

Escrever casos de teste: ClickUp permite que as equipes gerenciem a eficiência do backlog com recursos robustos de rastreamento de bugs e problemas. Gerencie os casos de teste existentes e crie novos casos 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 entre os status ou usar a visualização de 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 coloque as coisas em produção mais rapidamente. Use 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 em seu projeto de desenvolvimento de software processo de desenvolvimento de produtos .

Use o ClickUp Automations para atribuir o testador certo a cada caso de teste. Quando o QA mudar de status, atribua-o automaticamente de volta ao desenvolvedor para revisão.

Com 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 predefinidos para estruturar seu processo de teste. Comece com os vários modelos de casos de teste ou modelos de relatório de bug .

Modelo de gerenciamento de testes do ClickUp

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

Para iniciantes, esse modelo também tem um documento abrangente "Como começar" para orientá-lo no processo.

Botão de ação roxo

Está se perguntando como escrever um relatório de teste? Temos um modelo para você. Faça o download e use o modelo amigável para iniciantes Modelo de relatório de teste do ClickUp para resumir os resultados de seus testes e entregá-los aos desenvolvedores.

Crie um ótimo software para cada caso com o ClickUp

No desenvolvimento de software, os testes desempenham o papel crucial de garantir que tudo esteja tudo certo. Ele fornece suporte em 360 graus.

Valida o trabalho da equipe de desenvolvimento. Confirma a adequação à intenção da equipe de negócios. Permanece fiel às necessidades de funcionalidade, desempenho, segurança e privacidade do usuário.

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

Independentemente de você estar seguindo um modelo ágil, em cascata ou híbrido de desenvolvimento de software, o ClickUp é repleto de recursos, projetado para ser altamente personalizável e se adaptar às suas necessidades exclusivas.

Além do gerenciamento de tarefas poderoso e multifacetado, o ClickUp também inclui um conjunto de testes, Automações de DevOps integrações e modelos que são muito eficazes. Veja você mesmo. Experimente o ClickUp gratuitamente hoje mesmo .