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.
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 |