Dissertação

{en_GB=New Language for Program Test Generation} {} EVALUATED

{pt=Estudantes de Ciência da Computação lidam com projetos interessantes em cadeiras de algoritmos, que são uma boa amostra de alguns dos problemas que podem ter que lidar quando estiverem a trabalhar numa empresa no futuro. Para cada projeto, os professores precisam de gastar tempo a criar um pequeno conjunto de testes feitos à mão que serão capazes de testar efetivamente muitas situações diferentes. Estes testes são depois inseridos em ferramentas de teste automático para avaliar os programas dos alunos. Esta medida acaba por ser não só muito consumidora de tempo mas também é carente de riqueza de avaliação visto que está longe de ser um processo exaustivo. Esta dissertação propõe a implementação de um sistema de avaliação alternativo capaz de receber uma especificação de um projeto e automaticamente gerar conjuntos de teste de acordo com as preferências do professor. Este sistema requere especificações sobre o formato de uma nova linguagem, chamada REX, cujo propósito é de formatar uma descrição de um projeto num conjunto de regras prontas a ser utilizadas por um gerador. Depois o gerador vai usar essa informação para gerar casos de teste na avaliação das implementações dos alunos. Os resultados da avaliação experimental demonstram que o sistema é capaz de gerar testes úteis e é capaz de descobrir erros nos programas dos alunos que os testes feitos à mão eram incapaz de o fazer, tudo sem requerer o uso de muitos recursos., en=Computer science students deal with interesting projects in algorithmic courses, which are a good sample of some of the problems they may face when working in a company in the future. For each project, professors need to spend time creating a small set of hand-crafted tests that will be able to effectively test many different situations. These tests are then inserted in automated testing tools to evaluate students’ programs. This approach ends up being not only very time consuming but also lacks in terms of richness of evaluation since it is far from being an exhaustive process. This dissertation proposes the implementation of an alternative evaluation system capable of receiving project specifications and automatically generating sets of tests according to the preferences of the professor. This system requires specifications under the format of a new language, named REX, whose purpose is to format a project description into a set of rules ready to be used by a generator. Then, the generator will use that information to generate test cases that can be used in the evaluation of students' implementations. The experimental evaluation’s results show that this system is able to generate useful tests and to discover errors in students' programs that the hand-crafted ones could not, all without requiring the use of many resources.}
{pt=Criação de Linguagem, Especificação de Input, Geração de Teste, Testar, en=Language Creation, Input Specification, Test Generation, Testing}

Novembro 14, 2019, 14:30

Orientação

ORIENTADOR

Mikolas Janota

Departamento de Engenharia Informática (DEI)

Professor Auxiliar

ORIENTADOR

Vasco Miguel Gomes Nunes Manquinho

Departamento de Engenharia Informática (DEI)

Professor Associado