Pular para o conteúdo
Jogos Digitais
Nesta página
  1. Objetivos de aprendizagem
  2. Pré-requisitos
  3. Materiais
  4. Conceitos
  5. Exemplos
  6. Tutorial passo a passo
  7. Imagens
  8. Indicação da interface
  9. O código completo
  10. Explicação do código
  11. Resultado esperado
  12. Problemas comuns
  13. Exercício guiado
  14. Desafio individual
  15. Desafio avançado (opcional)
  16. Critérios de avaliação
  17. Checklist de conclusão
  18. Extensão

Módulo 10 · Aula 10.2 · Plano de testes e relatório de falha

Carga horáriaDificuldadeFerramentaCompetências
8 h/a⭐⭐papel, editor de texto, GodotC5, C8

Objetivos de aprendizagem

  1. Escrever um plano de testes: o que testar, como e o que deveria acontecer.
  2. Escrever um relatório de falha (bug report) que outra pessoa consiga repetir.
  3. Classificar falhas por gravidade.
  4. Testar o jogo de outra dupla e receber o teste do próprio jogo sem levar para o lado pessoal.

Pré-requisitos

Aula 10.1; um jogo pronto (Projeto 6 ou anterior).

Materiais

Modelos atividades/modelos/plano-de-testes.md e atividades/modelos/relatorio-de-falha.md; jogos da turma.

Conceitos

Plano de testes. Uma tabela. Cada linha é um caso de teste: o que fazer e o que deveria acontecer. Escrever o resultado esperado antes de testar é o que transforma "joguei e achei legal" em teste de verdade (lembre do caixa da Aula 10.1).

NºO que fazerResultado esperadoResultado obtidoPassou?
1chegar na porteira sem a chaveaviso "A porteira está trancada. Ache a chave!" e não passa
2pegar a chavechave some; placar "Chave: achou!"
3sair em menos tempo que o recordetela de fim mostra o novo melhor tempo

De onde tirar os casos. Das regras do jogo (cada regra vira pelo menos um caso), dos limites (borda da tela, tempo zerado, primeiro recorde) e das coisas que um jogador apressado faz (apertar duas teclas juntas, apertar Espaço na tela de fim).

Teste automático e teste manual. Os jogos de referência do curso têm testes automáticos (testes/godot/): scripts que apertam teclas e conferem resultados sozinhos. Eles pegam o que dá para medir (posição, placar, tempo). O teste manual, com gente jogando, pega o resto: "a câmera dá enjoo", "não entendi para onde ir". Os dois se completam.

Relatório de falha. Quem acha o erro quase nunca é quem conserta. Por isso o relatório precisa permitir repetir a falha:

CampoExemplo bomExemplo ruim
títuloPorteira abre sem a chave quando se chega de costasporta bugada
passos para repetir1. começar; 2. ir até a porteira sem pegar a chave; 3. virar de costas; 4. andar para trás até encostarsei lá, fui andando
esperadonão abre e mostra o aviso
obtidoabrenão funciona
frequência3 de 3 tentativasàs vezes
gravidadealta: dá para terminar sem a chave
ambienteGodot 4.7.2, computador 5 do laboratório
anexofoto da tela ou GIF

(A falha do exemplo foi inventada para ensinar a escrever; no Chave da Porteira a área Perto foi feita para perceber o jogador dos dois lados, de frente ou de costas.)

Gravidade.

NívelQuer dizerExemplo
críticao jogo fecha ou travaerro de execução ao pegar a chave
altadá para ganhar ou perder sem quereratravessar parede
médiaatrapalha, mas dá para jogaraviso some rápido demais
baixadetalhepalavra com erro de digitação

Como receber um relatório. O relatório fala do jogo, não de quem fez. A resposta é "obrigado, vou tentar repetir", não "no meu computador funciona".

Exemplos

O teste automático do Chave da Porteira tem 41 verificações em 7 grupos: mapa, tela de início, montagem, movimento, câmera, porteira e chave, fim e melhor tempo. Leia a lista dos nomes (são frases em português) como exemplo de plano de testes escrito.

Tutorial passo a passo

Parte A. Ler um plano pronto (60 min)

  1. Rode testes/godot/testar_porteira.gd (instruções em testes/godot/LEIAME.md) ou leia o arquivo. Liste as 41 frases dos confira(...).
  2. Quais regras do jogo não têm teste? (Por exemplo: "o aviso some depois de 2,5 s".)

Parte B. Plano do próprio jogo (120 min)

  1. Copie o modelo plano-de-testes.md para a pasta do seu projeto.
  2. Escreva pelo menos 15 casos, com o resultado esperado preenchido, cobrindo regras, limites e o jogador apressado.

Parte C. Testar o jogo de outra dupla (140 min)

  1. Troque de computador com outra dupla. Rode o plano dela no jogo dela, preenchendo "obtido" e "passou?".
  2. Para cada falha, um relatório (relatorio-de-falha.md), com foto da tela.
  3. Depois, 10 minutos de jogo livre, sem plano: anote o que estranhou.

Parte D. Devolver e corrigir (100 min)

  1. Entregue os relatórios. Cada dupla tenta repetir as falhas recebidas, corrige as de gravidade crítica e alta, e anota no diário.

Imagens

Não há capturas nesta aula. Os relatórios da turma levam fotos da tela do próprio jogo.

Indicação da interface

Sem interface nova. Foto da tela no Windows: tecla Print Screen ou Windows + Shift + S (Ferramenta de Captura).

O código completo

Trecho de testes/godot/testar_porteira.gd, para mostrar como um caso de teste vira código:

print("Porteira trancada")
var lugar_porteira := porteira.global_position
jogador.global_position = lugar_porteira + Vector3(0, 0.1, -tam * 0.6)
jogador.rotation.y = PI
await esperar_fisica(5)
confira("aviso de porteira trancada", aviso.visible and aviso.text.contains("trancada"), aviso.text)
confira("porteira continua fechada", not porteira.aberta)
await segurar("frente", 1.5)
confira("porteira fechada segura o jogador", jogador.global_position.z < lugar_porteira.z - 0.3, str(jogador.global_position))

Explicação do código

  • Os passos para repetir viraram linhas: pôr o jogador perto da porteira, virar de frente, segurar a seta.
  • Cada confira é uma linha do plano: o nome é o resultado esperado; a condição confere o obtido.

Resultado esperado

Plano de testes com 15 casos, relatórios de falha para outra dupla e correções registradas no diário.

Problemas comuns

SintomaCausaSolução
"tudo passou"casos fáceis demais, ou esperado escrito depois de jogarincluir limites e jogador apressado; escrever o esperado antes
quem conserta não consegue repetirpassos vagospassos numerados, do começo do jogo
discussão na troca de relatórioscrítica pessoalfalar do jogo, com o relatório na mão

Exercício guiado

O relatório diz só "às vezes atravessa a parede". O que falta? (Resposta: os passos para repetir, em qual parede, com que tecla, quantas vezes em quantas tentativas, e o computador.)

Desafio individual

Transforme três casos do seu plano em verificações automáticas, copiando o estilo do testar_porteira.gd.

Desafio avançado (opcional)

Faça um teste que rode a partida inteira sozinho (o curso usou um "passeio automático" assim para gravar o GIF do Chave da Porteira, Aula 10.6).

Critérios de avaliação

  • Plano com esperado escrito antes do teste.
  • Relatórios repetíveis, com gravidade e foto.
  • Correções registradas.

Checklist de conclusão

Extensão

Escreva um relatório de falha de algum aplicativo que você usa no celular. Seguiu todos os campos?