APLICANDO TESTES FUNCIONAIS NO JOGO UFCODE - Lima Capistrano, Yago; Guilherme Alves Noronha de Morais, João; Pantoja, Jean; Silva, Jefferson de Carvalho; Lelli Leitao Dantas, Valeria (Encontros Universitários da UFC, 2022)
O UFCode é um jogo estilo RPG de programação em Python que tem como finalidade ajudar os alunos nas disciplinas introdutórias de programação de uma forma divertida, ao mesmo tempo que estimula o raciocínio lógico. Com o objetivo de certificar a qualidade do jogo foram realizados testes funcionais no UFCode. Esses testes são conhecidos como testes de caixa preta, pois são especificados sem o conhecimento das operações internas do código. O teste funcional tem como propósito a identificação de bugs e a validação de requisitos. No UFCode foram realizados testes funcionais para as seguintes funcionalidades: seleção de problemas, movimentação do personagem, colisão com problemas e submissão de código. Inicialmente, os alunos envolvidos no projeto definiram os dados de entrada, o roteiro de teste e as saídas esperadas. Os testes foram executados de forma manual e exploratória com o intuito de verificar se o retorno do Jogo coincidia com a saída esperada. Quando um bug era encontrado, era feita a documentação do problema em uma página de issues do GitHub especificando os seguintes campos: título do bug, precondições, passos de execução do teste para a reprodução do bug, resultados obtidos e resultados esperados. Em paralelo, o jogo foi disponibilizado para duas turmas da UFC para que os alunos pudessem utilizá-lo de forma exploratória reportando bugs e propondo melhorias. Dessa forma, durante a execução desses testes funcionais foram encontrados vários bugs, por exemplo, descrição do problema incompleta impossibilitando a sua leitura; os personagens do jogo apresentavam problemas diferentes a cada interação; veredito incorreto do problema: o usuário escrevia um código apenas com a saída final esperada e o Jogo considerava como correto. Com base nos resultados dos testes funcionais, todos os bugs encontrados e as melhorias propostas foram reportados para os desenvolvedores que, no momento, estão trabalhando em uma nova versão do jogo.