1. Identificação

  • Sistema: Gestão de Produtos (Loja do Bairro, caso fictício)
  • Versão testada: repositório-base entregue na Aula 1
  • Responsáveis: (nomes da dupla)
  • Data: 11/11/2026

2. Objetivo

Verificar, antes da entrega à Loja do Bairro, se o cadastro de produtos, o login e a proteção do formulário se comportam como esperado nas situações de maior risco, deixando o resultado registrado e repetível por outra pessoa.

3. Escopo

Será testado:

  • Validação de dados no cadastro de produto
  • Acesso a página restrita sem login
  • Login com credenciais incorretas
  • Proteção do formulário contra requisição forjada (CSRF)
  • Exibição segura de texto digitado pelo usuário
  • Cadastro de produto com dados válidos

Não será testado:

  • Registro de vendas e baixa de estoque (testes automatizados na Aula 3)
  • Desempenho e carga
  • Compatibilidade com outros navegadores
  • Publicação em servidor (SA3)

4. Ambiente de teste

  • Sistema operacional: (informe versão)
  • Navegador e versão: (informe)
  • Python: 3.10 ou superior
  • Flask: versão do requirements.txt
  • Endereço do sistema: o mostrado pelo terminal ao executar python app.py
  • Banco: arquivo local, com 5 produtos e 1 usuário de teste

5. Tipos de teste

TipoOnde é usado
ExploratórioReconhecimento inicial, antes de escrever os casos
Manual roteirizado, caixa-pretaCT01 a CT06, executados pela interface
Caixa-branca (leitura do código)Apenas para localizar o defeito quando um caso reprovar

6. Critério de aprovação

O sistema é aprovado nesta etapa quando os 6 casos têm status Aprovado e nenhum produto inválido foi gravado no banco durante os testes.

7. Casos de teste

Tabela de plano de testes

IDObjetivoPré-condiçãoPassosResultado esperadoResultado obtidoStatusAutomatizado?
CT-01Validação do cadastrofazer loginpreencher produto com Preço negativoerro não cadastrarerro✅manual
CT-02Acesso restritosem loginAbrir /produtos/novo sem loginacesso restritoerro=restrito✅manual
CT-03Conferir senhaCadastrar o usuárioAcessar a tela de loginsenha inválidasenha inválida✅manual
CT-04Proteção do formulário (CSRF)Fazer loginAcessar formulário de produto e teclar f12 e apagar o token do formulárioerroRequisição inválida✅manual
CT-05Exibição de textoFazer loginAcessar formulário de produto e cadastrar Produto chamado <b>teste</b>não executar códigoo código foi exibido✅manual
CT-06Cadastro válidoFazer loginAcessar formulário de produto e cadastrar Produto Smartvproduto exibido em produtoso produto foi exibido✅manual

Status: Passou, Falhou ou Bloqueado. Passos: escreva de forma que outra pessoa consiga repetir sem perguntar nada.

CT01: Cadastro com preço negativo

CampoConteúdo
IDCT01
TítuloCadastro com preço negativo
TipoManual, caixa-preta
Pré-condiçãoUsuário autenticado; anotar quantos produtos existem em /produtos
Dados de entradaNome Teste Preço; preço -10; estoque 5; categoria qualquer
Passos1. Abrir /produtos/novo 2. Preencher os campos com os dados acima 3. Clicar em Cadastrar produto 4. Abrir /produtos e contar os produtos
Resultado esperadoO formulário é reexibido com a mensagem “Informe um preço válido, igual ou maior que zero (ex.: 49,90).” junto do campo preço; os valores digitados continuam preenchidos; a quantidade de produtos na lista não muda
Resultado obtidoFormulário reexibido com a mensagem esperada e valores preservados; lista continuou com 5 produtos
StatusAprovado
Evidênciaevidencias/ct01-preco-negativo.png

CT02: Acesso a página restrita sem login

CampoConteúdo
IDCT02
TítuloAcesso a página restrita sem login
TipoManual, caixa-preta
Pré-condiçãoNenhuma sessão aberta (usar janela anônima ou sair do sistema)
Dados de entradaEndereço /produtos/novo
Passos1. Abrir uma janela anônima 2. Digitar o endereço do sistema seguido de /produtos/novo 3. Observar a página exibida
Resultado esperadoO usuário é redirecionado para /login com a mensagem “Acesso restrito. Faça login para continuar.”; o formulário de produto não aparece
Resultado obtidoRedirecionado para a tela de login com a mensagem de acesso restrito
StatusAprovado
Evidênciaevidencias/ct02-sem-login.png

CT03: Login com senha errada

CampoConteúdo
IDCT03
TítuloLogin com senha errada
TipoManual, caixa-preta
Pré-condiçãoUsuário de teste cadastrado; nenhuma sessão aberta
Dados de entradaUsuário correto (o cadastrado); senha senhaerrada123
Passos1. Abrir /login 2. Preencher o usuário correto e a senha errada 3. Clicar em Entrar
Resultado esperadoPermanece na tela de login com a mensagem genérica “Usuário ou senha incorretos.”; a mensagem não informa qual dos dois está errado; nenhum acesso é liberado
Resultado obtidoTela de login com a mensagem genérica; acesso negado
StatusAprovado
Evidênciaevidencias/ct03-senha-errada.png

CT04: Envio do formulário sem o token CSRF

CampoConteúdo
IDCT04
TítuloEnvio do formulário sem o token CSRF
TipoManual, caixa-preta
Pré-condiçãoUsuário autenticado; anotar a quantidade de produtos
Dados de entradaNome Teste CSRF; preço 10,00; estoque 1; categoria qualquer; campo oculto csrf_token removido
Passos1. Abrir /produtos/novo 2. Abrir as ferramentas do desenvolvedor (F12) e, na aba Elements, localizar <input type="hidden" name="csrf_token"> 3. Apagar esse campo (ou alterar o valor) 4. Preencher os dados válidos e enviar 5. Conferir /produtos
Resultado esperadoO servidor responde com erro 403 e a mensagem “Requisição inválida. Recarregue o formulário e tente novamente.”; o produto não é gravado
Resultado obtidoPágina de erro 403 com a mensagem esperada; produto ausente da lista
StatusAprovado
Evidênciaevidencias/ct04-sem-csrf.png (mostrar o código de status 403, na aba Network, ou o texto da página)

CT05: Produto com HTML no nome

CampoConteúdo
IDCT05
TítuloProduto com HTML no nome
TipoManual, caixa-preta
Pré-condiçãoUsuário autenticado
Dados de entradaNome <b>teste</b>; preço 5,00; estoque 2; categoria qualquer
Passos1. Abrir /produtos/novo 2. Preencher com os dados acima 3. Enviar 4. Observar como o nome aparece em /produtos
Resultado esperadoO produto é cadastrado e o nome aparece literalmente como <b>teste</b>, sem negrito (o HTML é escapado)
Resultado obtidoNome exibido como texto puro, com os sinais de menor e maior visíveis
StatusAprovado
Evidênciaevidencias/ct05-html-escapado.png

CT06: Cadastro com dados válidos

CampoConteúdo
IDCT06
TítuloCadastro com dados válidos
TipoManual, caixa-preta
Pré-condiçãoUsuário autenticado; anotar quantos produtos existem
Dados de entradaNome Mouse sem fio; preço 89,90; estoque 20; categoria Eletrônicos
Passos1. Abrir /produtos/novo 2. Preencher com os dados acima 3. Clicar em Cadastrar produto 4. Observar a página exibida e a lista
Resultado esperadoRedireciona para /produtos com o aviso “Produto cadastrado com sucesso.”; o novo produto aparece no topo da lista com preço R$ 89,90 e estoque 20; ao apertar F5, nenhum produto é duplicado
Resultado obtidoRedirecionado para a lista com o aviso; produto no topo; F5 não duplicou
StatusAprovado
Evidênciaevidencias/ct06-cadastro-valido.png