Melhor maneira de testar casos simples em jogos

9

Ao projetar e testar um novo jogo, na maioria das vezes, as pessoas que experimentam a funcionalidade se acostumam com as coisas e não tentam mais as "maneiras estúpidas". Portanto, se o desenvolvimento quebrar alguma coisa, pode ser um recurso que apenas um novo usuário se incomodaria em tentar. Quais são algumas das melhores maneiras de garantir que seu jogo tenha seus "casos estúpidos" testados quando finalmente for lançado ou após uma grande atualização? Metodologia, assistência de software, talvez até sites em que as pessoas testem você, etc.

eruciforme
fonte

Respostas:

9

Algumas coisas que eu diria são importantes:

Incentivar o teste da unidade do programador

Isso garantirá que certos erros estúpidos, se houver um teste de unidade para eles, não se repitam, porque o teste de unidade falhará se o fizer. Isso requer uma mudança na metodologia de programação, mas na minha opinião vale completamente a pena.

Automatize qualquer teste que você puder

Além do teste de unidade, crie um conjunto de testes automatizados de função e aceitação que são executados em todas as construções para garantir que certas construções sejam boas. Se você possui controles programáveis ​​e seu jogo geralmente é consistente, você pode testar muitos bugs automaticamente.

Criar um plano de teste multinível

Certifique-se de que seus testadores tenham um plano de teste que teste os bugs mais importantes. Isso deve ser em vários níveis:

  • Teste de fumaça: testa se o jogo não falha nos casos mais comuns.
  • Teste regular: testa casos mais incomuns.
  • Teste de imersão: corra o mais fundo possível, regredindo o maior número possível de bugs comuns. Teste também se o jogo pode permanecer por longos períodos de tempo (dias) sem travar.

Crie esse plano de teste e siga-o em todas as versões.

Jeff
fonte
11

Um tipo de abordagem de cobertura de código para casos de teste pode ser feita usando sinalizadores simples que são disparados depois que o bloco de código é executado no jogo. A exibição de quais sinalizadores foram disparados e não disparados na tela pode permitir que os testadores saibam quais casos foram cobertos e quais não foram.

Por mais simples que seja, ainda é eficaz desde que os sinalizadores tenham nomes significativos para que os testadores possam descobrir o que deve ser feito.

Essa técnica é creditada a Matthew Jack, que a implementou no Crysis.

David Young
fonte
3
conceito interessante, +1
falstro 23/07/10
Isso pode realmente ser automatizado. "Execute o jogo -debugFlags, cumprimente a saída e certifique-se de acertar o xnúmero de sinalizadores". +1
ashes999
3

Várias boas respostas aqui no lado da programação. Vou adicionar um que seja mais orientado ao design.

Faça com que seus projetistas de sistemas escrevam planos de teste de caso de ponta para testadores

Se eles souberem o que estão fazendo, é provável que a pessoa por trás do projeto de um sistema ou da criação de scripts de uma sequência no jogo conheça os casos extremos desse sistema e onde ele pode se deteriorar. Eles também devem ter uma idéia de onde o sistema interage com os outros. Peça que eles escrevam um plano de teste ou discutam com os testadores onde as coisas podem dar errado podem economizar tempo para todos.

wkerslake
fonte
1

Você deve investigar o chamado Teste de Macaco. Ele pode capturar muitos erros desse tipo:

https://secure.wikimedia.org/wikipedia/en/wiki/Monkey_test

Você também precisa organizar os testes de experiência do usuário com os "Kleenex testers", testadores que veem seu jogo pela primeira vez e que nunca mais os usarão. É um pouco caro e complicado de organizar, mas vale o esforço. Se o fizer, filme todos os testes com 3 câmeras: uma na tela, uma nos controles e outra no rosto do testador, a fim de detectar frustração.

Stéphane Bura
fonte
1

Ótima pergunta, cada resposta neste segmento é uma excelente resposta. Uma coisa a acrescentar:

Na minha experiência (30 anos de desenvolvimento de software): aplicativos e jogos são mais confiáveis ​​se pelo menos um membro do grupo de teste for um especialista em gorilas , mestre em testes ad-hoc, abusar de aplicativos e usar deliberadamente os jogos da maneira errada de encontrar bugs do tipo descrito no pôster original. Os testadores de gorila têm uma habilidade incomum - quando você encontrar um bom, mantenha-os em sua equipe.

Para um exemplo de teste eficaz de gorila, consulte: www.youtube.com/watch?v=8C-e96m4730;)

Para resumir as respostas neste tópico: estratégias eficazes de qualidade de software são multifacetadas , combinando várias abordagens para alcançar um alto nível de confiança na qualidade funcional e na confiabilidade do seu jogo.

cheeeseburger
fonte
0

Um truque interessante que ouvi de um amigo para testar gráficos; durante uma execução em bom estado através de um nível recorde de estatísticas de desempenho da GPU em intervalos regulares (polys na tela, por exemplo). Você pode reproduzir essa rota e, se os números mudarem fora de uma determinada tolerância, isso pode significar que algo não está mais sendo exibido corretamente.

coderanger
fonte
0

Uma coisa simples e fácil que ajuda muito, especialmente com testes de estresse e testes de rede. Torne possível para a sua IA jogar contra outra AI. Se você pode deixar seu jogo sozinho jogando sozinho ou com um pequeno grupo de IA na rede por um fim de semana, pode aprender muito.

Claro log tudo.

Kimau
fonte