Plano e Estratégia de Testes Adaptada - celiapaivab/travel-manager-api GitHub Wiki

Plano e Estratégia de Testes Adaptada

Baseado na ISO-29119-3.
Material extraído do curso Liderança em Testes de Software com Júlio de Lima.
Saiba mais em www.juliodelima.com.br.

1. Épico e Estimativa Geral de Esforço em Testes

Gerenciar destinos de viagem
Garantir que todos os endpoints da API funcionem corretamente, respeitando regras de negócio, status codes e estrutura de resposta.
Esforço estimado: 30 horas (incluindo automação e revisão de relatórios)


2. User Stories e Estimativa de Esforço em Testes

Código Descrição Esforço Estimado
US01 Como usuário, quero me registrar. 4h
US02 Como usuário, quero fazer login. 4h
US03 Como usuário, quero acessar minhas informações. 3h
US04 Como usuário, quero adicionar destinos à lista de desejos. 5h
US05 Como usuário, quero acessar todos os destinos na minha lista. 3h
US06 Como usuário, quero buscar detalhes de um destino específico na minha lista. 5h
US07 Como usuário, quero atualizar as informações dos destinos na minha lista. 3h
US08 Como usuário, quero deletar um destino específico da minha lista. 3h

3. Condições de Teste e Camadas

US01: Como usuário, quero me registrar.

ID Condição Resultado Esperado Camada
CT01 O usuário poderá se cadastrar inserindo dados válidos. 201 Usuário registrado API
CT02 O usuário não poderá se cadastrar inserindo dados inválidos. 400 Campos obrigatórios ausentes ou inválidos API
CT03 O usuário não poderá se cadastrar com campos obrigatórios ausentes. 400 Campos obrigatórios ausentes ou inválidos API
CT04 O usuário não poderá se cadastrar com nome de usuário já cadastrado. 409 Nome de usuário já cadastrado API

US02: Como usuário, quero fazer login.

ID Condição Resultado Esperado Camada
CT05 O usuário poderá fazer login com credenciais válidas. 200 Login bem-sucedido API
CT06 O usuário não poderá fazer login com credenciais inválidas. 401 Usuário ou senha inválidos API
CT07 O usuário não poderá fazer login com campos obrigatórios ausentes. 400 Campos obrigatórios ausentes API

US03: Como usuário, quero acessar minhas informações.

ID Condição Resultado Esperado Camada
CT08 O usuário poderá acessar suas informações com autenticação válida. 200 Dados do usuário API
CT09 O usuário não poderá acessar suas informações sem autenticação válida. 401 Token não fornecido API
CT10 O usuário não poderá acessar suas informações com autenticação inválida. 403 Token inválido API
CT11 O usuário não poderá acessar informações de outro usuário. 404 Usuário não encontrado API

US04: Como usuário, quero adicionar destinos à lista de desejos.

ID Condição Resultado Esperado Camada
CT12 O usuário poderá registrar um destino com dados válidos. 201 Destino criado API
CT13 O usuário não poderá registrar um destino com campos obrigatórios ausentes. 400 Nome ou status ausente ou inválido API
CT14 O usuário não poderá registrar um destino com dados inválidos. 400 Nome ou status ausente ou inválido API
CT15 O usuário não poderá registrar um destino sem autenticação válida. 401 Token não fornecido API
CT16 O usuário não poderá registrar um destino com autenticação inválida. 403 Token inválido API

US05: Como usuário, quero acessar todos os destinos na minha lista.

ID Condição Resultado Esperado Camada
CT17 O usuário poderá acessar sua lista de destinos com dados e autenticação válida. 200 Lista de destinos API
CT18 O usuário não poderá acessar sua lista de destinos sem autenticação válida. 401 Token não fornecido API
CT19 O usuário não poderá acessar sua lista de destinos com autenticação inválida. 403 Token inválido API

US06: Como usuário, quero buscar detalhes de um destino específico na minha lista.

ID Condição Resultado Esperado Camada
CT20 O usuário poderá acessar as informações do destino com dados e autenticação válida. 200 Detalhes do destino API
CT21 O usuário não poderá acessar informações de destinos inexistentes. 404 Destino não encontrado API
CT22 O usuário não poderá acessar informações do destino sem autenticação válida. 401 Token não fornecido API
CT23 O usuário não poderá acessar informações do destino com autenticação inválida. 403 Token inválido API

US07: Como usuário, quero atualizar as informações dos destinos na minha lista.

ID Condição Resultado Esperado Camada
CT24 O usuário poderá atualizar as informações do destino com dados e autenticação válida. 200 Destino atualizado API
CT25 O usuário não poderá atualizar as informações do destino com status inválido. 400 Status inválido API
CT26 O usuário não poderá atualizar informações de destino inexistentes. 404 Destino não encontrado API
CT27 O usuário não poderá atualizar informações do destino sem autenticação válida. 401 Token não fornecido API
CT28 O usuário não poderá atualizar informações do destino com autenticação inválida. 403 Token inválido API

US08: Como usuário, quero deletar um destino específico da minha lista.

ID Condição Resultado Esperado Camada
CT29 O usuário poderá deletar um destino com dados e autenticação válida. 200 Destino removido com sucesso API
CT30 O usuário não poderá deletar um destino inexistente. 404 Destino não encontrado API
CT31 O usuário não poderá deletar um destino sem autenticação válida. 401 Token não fornecido API
CT32 O usuário não poderá deletar um destino com autenticação inválida. 403 Token inválido API

4. Missões de Teste Exploratório

Missão 1 - Registro de usuário com strings longas

  • Explore o endpoint de registro
  • Com heurística de teste de Strings longas
  • Para descobrir como o sistema lida com usernames e senhas contendo dados inválidos.

Missão 2 - Registro de usuário com caracteres asiáticos

  • Explore o endpoint de registro
  • Com heurística de teste de Caracteres asiáticos
  • Para descobrir como o sistema lida com usernames e senhas contendo dados inválidos.

Missão 3 - Registro de usuário com caracteres especiais

  • Explore o endpoint de registro
  • Com heurística de teste de Caracteres especiais
  • Para descobrir como o sistema lida com usernames e senhas contendo dados inválidos.

Missão 4 - Registro de usuário com números

  • Explore o endpoint de login
  • Com heurística de VADER - Data
  • Para descobrir como o sistema lida com usernames e senhas contendo apenas números

Missão 5 - Login de usuário não existente

  • Explore o endpoint de login
  • Com heurística de VADER - Data
  • Para descobrir como o sistema responde ao tentar logar com um usuário que não existe.

Missão 6 - Funcionamento CRUD de destinos

  • Explore todos os endpoints de destinos (POST, GET, PUT, DELETE)
  • Com heurística de VADER - Verb
  • Para descobrir se cada endpoint responde corretamente apenas aos métodos esperados.

Missão 7 - Autenticação de endpoints

  • Explore todos os endpoints protegidos com autenticação
  • Com heurística de VADER - Authorization
  • Para descobrir se o sistema impede acesso sem token válido, com token inválido ou com token expirado.

Missão 8 - Criação de destino com status inválido

  • Explore o endpoint de registro de destino
  • Com heurística de VADER - Data
  • Para descobrir como o sistema reage quando um destino é criado com status inválido.

Missão 9 - Edição de destino com com status inválido

  • Explore o endpoint de registro de destino
  • Com heurística de VADER - Data
  • Para descobrir como o sistema reage ao tentar atualizar um destino com status inválido.

Missão 10 - Edição de destinos com campos ausentes

  • Explore o endpoint de edição de destino
  • Com heurística de VADER - Data
  • Para descobrir como o sistema reage ao tentar atualizar um destino com campos da requisição ausentes.

5. Testes Não-Funcionais

Tipo Teste Resultado Esperado
Performance Smoke Test Endpoint respondendo em até 3s no percentil 90, 5s máximo, sem falhas acima de 1%.

Observação: Os mesmos testes de performance foram aplicados a todos os endpoints da API, utilizando os mesmos stages e thresholds, garantindo consistência na avaliação do desempenho do sistema.


6. Automação de Testes

Todos os casos de teste foram automatizados.

ID Condição Resultado Esperado Camada
01 Registrar novo usuário com dados válidos 201 Usuário registrado API
02 Registrar novo usuário com username inválido 400 Username inválido API
03 Registrar novo usuário com senha inválida 400 Senha inválida API
04 Registrar novo usuário com username ausente 400 Campos obrigatórios ausentes API
05 Registrar novo usuário com senha ausente 400 Campos obrigatórios ausentes API
06 Registrar novo usuário já existente 409 Nome de usuário já cadastrado API
07 Fazer login de usuário com credenciais válidas 200 Login bem-sucedido API
08 Fazer login de usuário com nome inválido 401 Usuário ou senha inválidos API
09 Fazer login de usuário com senha inválida 401 Usuário ou senha inválidos API
10 Fazer login de usuário com nome ausente 400 Campos obrigatórios ausentes API
11 Fazer login de usuário com senha ausente 400 Campos obrigatórios ausentes API
12 Acessar informações do usuário com autenticação válida 200 Dados do usuário API
13 Acessar informações do usuário com autenticação ausente 401 Token não fornecido API
14 Acessar informações do usuário com autenticação inválida 403 Token inválido API
15 Acessar informações de usuário com token expirado 403 Token inválido API
16 Registrar informações de um novo destino com dados válidos 201 Destino criado API
17 Registrar informações de um novo destino apenas com dados obrigatórios 201 Destino criado API
18 Registrar informações sem o dado obrigatório nome 400 Nome ausente API
19 Registrar informações sem o dado obrigatório status 400 Status ausente API
20 Registrar informações com dado obrigatório nome inválido 400 Nome inválido API
21 Registrar informações com dado obrigatório status inválido 400 Status inválido API
22 Registrar informações de um novo destino sem autenticação válida 401 Token não fornecido API
23 Registrar informações de um novo destino com autenticação inválida 403 Token inválido API
24 Acessar lista de destinos do usuário com autenticação válida 200 Lista de destinos API
25 Acessar lista de destinos do usuário sem autenticação válida 401 Token não fornecido API
26 Acessar lista de destinos do usuário com autenticação inválida 403 Token inválido API
27 Acessar informação de destino específico com autenticação válida 200 Detalhes do destino API
28 Acessar destino inexistente com autenticação válida 404 Destino não encontrado API
29 Acessar destino com autenticação ausente 401 Token não fornecido API
30 Acessar destino com autenticação inválida 403 Token inválido API
31 Atualizar nome do destino com autenticação válida 200 Destino atualizado API
32 Atualizar status do destino com autenticação válida 200 Destino atualizado API
33 Atualizar detalhes do destino com autenticação válida 200 Destino atualizado API
34 Atualizar data do destino com autenticação válida 200 Destino atualizado API
35 Atualizar status com dado inválido 400 Status inválido API
36 Atualizar destino inexistente 404 Destino não encontrado API
37 Atualizar destino sem autenticação válida 401 Token não fornecido API
38 Atualizar destino com autenticação inválida 403 Token inválido API
39 Deletar destino com autenticação válida 200 Destino removido com sucesso API
40 Deletar destino inexistente com autenticação válida 404 Destino não encontrado API
41 Deletar destino sem autenticação válida 401 Token não fornecido API
42 Deletar destino com autenticação inválida 403 Token inválido API

7. Mapeamento dos Dados de Teste

Dado Tipo Responsável Status
Usuário válido ("username": "maria.silva", "password": "123456") Entrada QA Criado
Token válido (usuário autenticado) Configuração QA Disponível
Destino válido (name: "Rio de Janeiro", status: "wishlist",""details": "Visitar praia", "date": "2025-12-04") Entrada QA Criado
Ambiente de testes (http://localhost:3000) Configuração QA Ativo

8. Defeitos Conhecidos

ID Defeito Camada
BUG-01 API permite registro de usuário com nome acima do limite esperado API
BUG-02 API permite registro de usuário com senha acima do limite esperado API
BUG-03 API permite registro de usuário com username e senha acima do limite esperado API
BUG-04 API permite registro de username com caracteres asiáticos API
BUG-05 API permite registro de senha com caracteres asiáticos API
BUG-06 API permite registro de username e senha com caracteres asiáticos API
BUG-07 API permite registro de username com caracteres especiais API
BUG-08 API permite registro de senha com caracteres especiais inválidos API
BUG-09 API permite registro de username e senha com caracteres especiais inválidos API
BUG-10 API não valida tipo de dado para username numérico API
BUG-11 API não valida tipo de dado para password numérico API
BUG-12 API não valida tipo de dado para username e password API
BUG-13 O servidor retorna 404 em vez de 405 ao trocar o método HTTP API
BUG-14 Atualização de destino aceita status vazio API
BUG-15 Atualização de destino sem campo "name" API
BUG-16 Atualização de destino sem campo "status" API
BUG-17 Atualização de destino sem campo "details" API
BUG-18 Atualização de destino sem campo "date" API