Desafio técnico · Estágio em QA
Primeira etapa do processo seletivo da Forte Tecnologias
O Ipê Pedidos é o sistema de pedidos de um viveiro fictício. Ele foi feito só para este desafio e tem defeitos. Seu trabalho é testá-lo como uma pessoa de QA faria: achar os problemas, relatar cada um de um jeito que o time consiga reproduzir e mostrar como você pensa os testes.
Você entra com o código de acesso e a senha que recebeu por e-mail. Cada código tem um ambiente só seu: o que você cadastra não aparece para mais ninguém. O botão "Restaurar dados de exemplo" devolve o ambiente ao estado inicial quando você quiser.
Prazo e entrega
- Prazo: domingo, 22/11/2026, às 23h59.
- Tempo estimado: umas 4 horas. Dá para dividir em vários dias.
- Como entregar: responda ao e-mail em que recebeu o acesso, anexando:
- um PDF com as partes A, B e C (e a D, se ela for um plano escrito);
- se fizer a parte D em código, o link de um repositório público ou um arquivo .zip;
- seu histórico acadêmico, emitido por você no SUAP ou no portal da sua faculdade;
- os dias e turnos em que você pode estagiar.
- Identifique o PDF e o código só pelo seu código de acesso, sem o seu nome. A correção é feita sem saber de quem é cada entrega.
Regras
- O trabalho é individual.
- Pode pesquisar e usar IA. No fim do PDF, diga qual ferramenta usou e para quê. Na entrevista, você vai reproduzir ao vivo alguns dos bugs que relatou.
- Teste pela interface e pela API descrita abaixo. Não faça teste de carga, varredura automática nem tentativa de invadir o servidor: os problemas que importam estão nas regras do sistema.
- O ambiente registra data, hora e endereço de cada acesso à API.
- Dúvidas: responda ao e-mail. Se a dúvida for sobre o enunciado, a resposta vai para todos os candidatos.
- O processo é da Forte Tecnologias e não tem relação com disciplinas ou notas de nenhuma instituição de ensino. Os dados que você enviar (currículo, histórico e entrega) são usados só neste processo.
As regras do sistema
Você entra como a vendedora Bruna Lima. A empresa tem outro vendedor, o Rafael Souza.
H1. Clientes
- Campos: nome (obrigatório, de 3 a 80 caracteres), CPF ou CNPJ (obrigatório, válido e único no cadastro; pode ser digitado com ou sem pontuação), e-mail (obrigatório, formato válido), telefone (opcional), cidade (obrigatória) e UF (obrigatória, uma das 27).
- A busca por nome ignora maiúsculas, minúsculas e acentos: "jose" encontra "José".
H2. Produtos
- A lista mostra nome, unidade, preço, estoque e situação. Produto com estoque 0 aparece como "Esgotado" e não pode entrar em pedido.
H3. Novo pedido
- A vendedora escolhe um cliente e adiciona itens. A quantidade é um número inteiro, de 1 até o estoque disponível.
- O resumo mostra subtotal, desconto, frete e total, e se atualiza a cada mudança.
- Ao confirmar, o pedido nasce com a situação "Aberto" e o estoque dos produtos é baixado.
H4. Desconto e frete
- Desconto pelo subtotal: abaixo de R$ 500,00, nenhum; de R$ 500,00 até R$ 1.999,99, 5%; a partir de R$ 2.000,00, 10%.
- O desconto é arredondado para o centavo mais próximo. Meio centavo arredonda para cima.
- Frete pelo endereço do cliente: Imperatriz/MA é grátis; as demais cidades do Maranhão pagam R$ 25,00; outros estados pagam R$ 60,00.
- O frete é grátis para qualquer destino quando o valor depois do desconto chega a R$ 1.500,00.
- Total = subtotal − desconto + frete.
H5. Meus pedidos
- A vendedora vê e acessa só os próprios pedidos.
- Ela pode cancelar um pedido "Aberto", e o estoque dos itens volta. Pedido "Faturado" ou "Cancelado" não pode ser cancelado.
O que fazer
A. Teste exploratório e relatório de bugs (40 pontos)
Explore o sistema e registre os bugs que encontrar. Para cada um, informe:
- título curto;
- passos para reproduzir, a partir dos dados de exemplo;
- resultado esperado, citando a regra (H1 a H5);
- resultado obtido;
- evidência: print, vídeo curto ou a requisição e a resposta da API;
- severidade (crítica, alta, média ou baixa), com uma frase explicando por quê.
A qualidade do relato pesa tanto quanto a quantidade. Um bug que ninguém consegue reproduzir vale pouco, e um relato que contradiz as regras acima perde ponto.
Modelo de relato:
B1. Exportar pedidos gera planilha vazia
Passos: 1) Entrar no sistema. 2) Abrir Meus pedidos. 3) Clicar em "Exportar".
Esperado (H9): planilha com os pedidos da lista.
Obtido: planilha só com o cabeçalho.
Evidência: video-b1.mp4
Severidade: média. A vendedora não consegue levar os pedidos para fora do sistema, mas ainda os consulta na tela.
O exemplo é inventado: o Ipê Pedidos não tem exportação nem regra H9.
B. Casos de teste (25 pontos)
Escreva casos de teste para a regra H4 (desconto e frete). Para cada caso, informe as entradas (itens ou subtotal, e o destino) e o desconto, o frete e o total esperados. Pense nos limites e nas combinações. Uma tabela basta. Se executar os casos no sistema, marque quais passaram e quais falharam.
C. Priorização e comunicação (15 pontos)
Imagine que você testa o app de uma loja virtual. É sexta, 17h, e há um deploy marcado para as 18h. Você encontrou três bugs:
- pela tela "Esqueci minha senha", dá para trocar a senha de outro cliente informando só o e-mail dele;
- o cupom de 10% é aplicado duas vezes quando o cliente volta da tela de pagamento para o carrinho;
- o ícone do carrinho fica desalinhado no celular.
O que você faz, e em que ordem? Escreva a mensagem que mandaria para o time, em até 10 linhas.
D. Automação (20 pontos)
Escreva testes automatizados na ferramenta que preferir: Python com pytest e requests, JavaScript com
Playwright ou Jest, Postman com Newman, entre outras. Sugestão: testar o
POST /api/pedidos/simular contra a regra H4. Entregue o código com um README que explique
como rodar.
Os testes devem verificar a regra, não o comportamento atual do sistema. Se o sistema estiver errado, o teste tem que falhar.
Se você ainda não escreve testes automatizados, entregue um plano escrito de automação: o que testaria, com qual ferramenta e como. O plano vale até 8 pontos.
API
Endereço base: https://endereço-deste-ambiente. Primeiro faça login para
receber um token. Depois envie o token em todas as chamadas, no cabeçalho
Authorization: Bearer <token>. Valores em reais vêm como número (por exemplo,
1450.5).
| Método e rota | O que faz |
|---|---|
POST /api/login | Corpo {"codigo", "senha"}. Devolve {"token"} |
GET /api/produtos | Lista os produtos |
GET /api/clientes?busca= | Lista os clientes, filtrando pelo nome |
POST /api/clientes | Cria um cliente. Corpo {"nome", "documento", "email", "telefone", "cidade", "uf"} |
POST /api/pedidos/simular | Calcula sem gravar. Corpo {"clienteId", "itens": [{"produtoId", "quantidade"}]}. Devolve {"subtotal", "desconto", "frete", "total"} |
POST /api/pedidos | Cria o pedido. Mesmo corpo da simulação |
GET /api/pedidos | Lista os pedidos da vendedora |
GET /api/pedidos/{id} | Mostra um pedido |
POST /api/pedidos/{id}/cancelar | Cancela um pedido |
POST /api/reset | Restaura os dados de exemplo do seu ambiente |
Exemplo com curl:
export BASE=https://endereço-deste-ambiente
TOKEN=$(curl -s -X POST "$BASE/api/login" \
-H 'content-type: application/json' \
-d '{"codigo":"SEU-CODIGO","senha":"SUA-SENHA"}' | sed 's/.*"token":"\([^"]*\)".*/\1/')
curl -s -X POST "$BASE/api/pedidos/simular" \
-H "authorization: Bearer $TOKEN" \
-H 'content-type: application/json' \
-d '{"clienteId":1,"itens":[{"produtoId":1,"quantidade":10}]}'
# {"subtotal":129,"desconto":0,"frete":0,"total":129}
Avaliação e próximas etapas
- O desafio vale 100 pontos: A 40, B 25, C 15 e D 20. Duas pessoas da Forte corrigem cada entrega, separadamente.
- As três maiores notas, a partir de 50 pontos, seguem para uma conversa de até 15 minutos por vídeo, em 25 ou 26/11.
- Nota final: desafio 60%, conversa 30% e coeficiente de rendimento 10%. O resultado sai em 27/11.
- Horário incompatível com o estágio elimina do processo, por isso informe sua disponibilidade na entrega.