Unidade 9 / 11

Garantia de qualidade (QA), depuração e testes automatizados

Ganhos:

  • Capacidade de compreender camadas funcionais, de regressão, de casos extremos e de teste de colisão e produzir cenários de teste e listas de casos extremos com inteligência artificial
  • Capacidade de acelerar a depuração escrevendo código de teste automático com inteligência artificial e extraindo padrões em log e análise de falhas
  • Conseguindo entender que o diagnóstico de erros da inteligência artificial não é uma evidência e sim uma hipótese, a causa deve ser comprovada com logs e reprodução, e a importância do relatório de erros ser reprodutível.

Quando um jogo é lançado, os jogadores o jogam de maneiras que o desenvolvedor não imaginou: ficando presos em paredes, explorando inventário, alcançando lugares impossíveis, provocando travamentos. Garantia de qualidade (QA — garantia de qualidade); É o processo de testar sistematicamente o jogo antes do lançamento e encontrar e corrigir erros (bugs), travamentos, instabilidades e experiências ruins. Este é um dos elos mais trabalhosos, mas críticos, na produção de jogos. A IA acelera o controle de qualidade em vários pontos: geração de casos de teste, análise de relatórios de bugs, revisão de logs, gravação automática de código de teste, depuração e refinamento de etapas de produção. Mas a IA não substitui a intuição e a avaliação da sensação do jogo por um testador humano.

Nesta unidade você aprenderá como usar IA em controle de qualidade e depuração; Você aprenderá design de cenário de teste, análise de log, redação automática de testes e disciplina de relatório de erros.

Camadas de controle de qualidade e local de IA

O controle de qualidade é multicamadas. Teste funcional: o recurso funciona (a porta abre, carrega a gravação). Teste de regressão: a nova mudança quebrou o que funcionava antes? Teste de casos extremos: entradas incomuns (redefinir estoque, duas chaves ao mesmo tempo, valores limítrofes). Teste de desempenho/crash: o jogo é estável. Teste de jogabilidade/experiência: divertido, intuitivo. A IA é forte nos quatro primeiros: geração de cenários, listagem de casos extremos, escrita de código de teste, análise de logs. A última – a experiência – pertence ao homem.

Fluxo de controle de qualidade passo a passo:

  1. Gere casos de teste (lista de casos funcionais e extremos com IA).
  2. Escreva testes automatizados (código para verificações repetitivas).
  3. Execute e colete (registrar erros, logs, falhas).
  4. Analisar (examinar o log e o padrão de erro com IA).
  5. Relate e verifique (relatório de bug claro e reproduzível; correção de teste).
Dica: é difícil encontrar casos extremos porque o designer joga seu jogo "certo". Pergunte à IA “o que um jogador tentaria se quisesse quebrar este sistema?” Liste explorações e casos extremos.

Teste automático: deixe a repetição para a máquina

Testar manualmente as mesmas coisas em cada versão é cansativo e sujeito a erros. O teste automatizado coloca essas verificações no código: uma função retorna o resultado correto toda vez que é chamada, é um sistema no estado esperado. Unity e Unreal oferecem estruturas de teste; A IA é rápida em escrever esses testes. É especialmente valioso para regressão: se uma alteração interromper algo que estava funcionando antes, o teste ficará vermelho. Revise os testes que a IA produz, certificando-se de que eles verifiquem o que é realmente significativo – um teste em branco é pior do que nenhum teste.

Cuidado: Na depuração, a IA às vezes produz uma explicação inventada como uma "causa provável" (alucinação). Não aceite a causa de um bug só porque a IA lhe disse; Prove a causa registrando, reproduzindo e testando. O diagnóstico incorreto atrasa a localização do caminho certo.

Reprodução: o coração da depuração

O primeiro requisito para corrigir um bug é reproduzi-lo de forma confiável. Um bug descrito como “acontece às vezes” não pode ser corrigido porque você não pode verificar se a correção funcionou. Portanto, o trabalho mais valioso da depuração é restringir as condições exatas sob as quais o bug ocorre (quais etapas, qual situação, em que momento). A IA ajuda a restringir isso: você pode fornecer os sintomas e as etapas de reprodução parcial e dizer “sugerir condições e estratégia de restrição que podem desencadear esse comportamento”. Mas você realmente reduz o jogo executando o jogo; A IA gera hipóteses, você as elimina.

Especialmente os erros relacionados ao tempo (condição de corrida) e ao estado da memória são insidiosos; estes ocorrem apenas em uma sequência ou carga específica. Para tais erros, é fundamental adicionar informações de carimbo de data/hora e status ao log; A IA pode analisar esse log rico e ver o padrão (“o erro sempre acontece quando esses dois eventos acontecem recentemente”). Lembre-se da regra de ouro da depuração: primeiro entenda e depois corrija. A correção sem compreensão esconde o erro, mas não o resolve e muitas vezes cria um novo erro em outro lugar.

três mini cases

Caso 1 – Busca de casos extremos. Em um RPG, a equipe testou o sistema de inventário em jogabilidade “normal” e achou-o sólido. Eles fizeram a IA dizer “tente quebrar esse inventário” e geraram 30 cenários extremos; 4 deles foram erros verdadeiros (divisão de item de peso 0, descarte simultâneo). Corrigido antes da publicação.

Caso 2 — A análise de log resolveu a falha. Um jogo estava travando aleatoriamente; os logs de falhas tinham centenas de linhas. Quando a IA recebeu os logs e solicitou o padrão, foi revelado que o travamento sempre ocorria em uma transição de cena específica e com pouca memória. Com essa pista, o programador encontrou o vazamento de memória; A taxa de acidentes caiu para zero.

Caso 3 — Retorno de erro de diagnóstico. Um programador confiou na explicação da IA ​​de que “este erro é causado por esta função” e mexeu nela durante meio dia; nenhum resultado saiu. Quando ele esclareceu e registrou novamente as etapas de produção, o erro estava em um lugar completamente diferente. Lição: Os diagnósticos de IA são hipóteses, não provas.

Quatro modelos copiáveis

1) Geração de caso extremo/cenário de exploração:

Sua função: testador de controle de qualidade malicioso. Descrevo o seguinte sistema: [sistema, regras]. Tarefa: liste 20 cenários extremos que tentarão quebrar, explorar ou colocar este sistema em um estado inesperado. Para cada um: o que tentar, resultado esperado, possível erro.

2) Escrita de teste automatizado:

Motor: [Unidade 2022.3/Unreal 5.3]. Estrutura de teste: [especificar].Escreva testes automatizados para a seguinte função/sistema: [descrição/código].Inclua caso normal, caso limite e entrada defeituosa.Certifique-se de que cada teste verifique algo realmente significativo; Escrevendo testes vazios/sem sentido.

3) Análise de log/travamento:

Abaixo estão os registros de falhas/erros do jogo: [log].Tarefa: marcar padrões recorrentes, condições comuns (cena, memória, tempo) e possíveis causas raiz.Apresentar cada causa como uma "hipótese a ser comprovada"; fale claramente. Diga-me também como verificar.

4) Esclarecimento sobre o relatório de bug:

Torne o seguinte relatório de erro vago claro e reproduzível: [relatório bruto]. Saída: título, reprodução passo a passo, resultado esperado, resultado real, frequência, ambiente. Se houver informações faltantes, liste quais informações são necessárias.

Alerta fraco / Alerta forte

Alerta fraco:

Há um bug no meu jogo, corrija-o.

Sem contexto, sem registro, sem reprodução; A IA é preditiva e o risco de alucinações é alto.

Alerta poderoso:

Há um bug no meu jogo Unity 2022.3: o inventário às vezes dobra quando o jogador salva e carrega rapidamente. Reprodução: [etapas].Código relacionado: [colar]. Log: [colar].Tarefa: listar as possíveis causas raízes como hipóteses a serem comprovadas, fornecer como verificar e possível correção para cada uma delas. Inventar uma causa inexistente; Se você não tiver certeza, me avise.

A reprodução, o código, o log e a solicitação de “apresentar como hipótese” tornam o diagnóstico confiável.

Tabela de camada de controle de qualidade

camada

O que isso testa?

Contribuição de IA

participação humana

funcional

O recurso funciona?

Script, código de teste

Decisão de admissão

regressão

A coisa velha está quebrada?

teste automático

Decisão de escopo

caso extremo

entrada incomum

Produção de roteiro

prioridade

Falha/desempenho

determinação

Análise de registros

Confirmação da causa raiz

Experiência

entretenimento, intuição

limitado

completamente humano

Erros comuns

  • Apenas testando a jogabilidade "normal". Os casos extremos explodem após o lançamento.
  • Confundir o diagnóstico de IA como prova. O porquê é comprovado por log e testes.
  • Escrevendo testes automatizados vazios. Testes sem sentido dão a ilusão de confiança.
  • Relatório de bug vago. Um erro não reproduzível não pode ser corrigido.
  • Ignorando o teste de regressão. Cada correção pode causar novos erros.

Em resumo

QA é a disciplina que deixa o jogo pronto para o jogador. IA; gera cenários extremos, escreve testes automatizados, analisa logs e esclarece relatórios de erros. Mas os seus diagnósticos são hipóteses, a avaliação da experiência é humana e cada correção requer um novo teste. Replique o reflexo “quem pode quebrar isso e como” com IA; Você coleta as evidências.

Tarefa de aplicativo

Escolha um sistema do seu jogo. Tenha 20 cenários gerados com o modelo de “geração de cenários de exploração/casos extremos” e teste realmente os 5 mais arriscados. Crie um relatório reproduzível para um bug encontrado com o modelo "Refinamento de relatório de bug".

lista de verificação

  • [] Criei um caso extremo com "Quem pode quebrar isso e como?"
  • [] Escreveu e revisou testes automatizados para verificações recorrentes.
  • [ ] Considerei o diagnóstico de IA como uma hipótese e comprovei com log/teste.
  • [] Eu relatei erros de forma reproduzível.
  • [] Testei novamente cada correção para regressão.