O trabalho faz parte de uma pesquisa em que envolve geração de código de teste unitário por uma LLM, a partir de um documento de Casos de Uso de um projeto. A fim de gerar o código de teste unitário, são gerados dois artefatos intermediários, os quais são: requisitos de um Caso de Uso e Casos de Teste de todos os requisitos gerados previamente. Finalmente, a LLM é instruída a escrever o código de teste unitário de um Caso De Teste.
O documento de Casos de Uso é de um projeto web chamado "SuperFrog Scheduler". SuperFrog é o mascote da Universidade Cristã de Texas, e tem participação em vários eventos anualmente, como esportes, mídia e caridades. O projeto tem a função de facilitar o agendamento e administração dos aparecimentos dos alunos que participam como SuperFrog.
O Caso de Uso que será analisado neste trabalho será o Caso de Uso 18: The Spirit Director generates TCU Honorarium (Payment for services) Request Forms.
O trabalho consiste em escrever 2 testes unitários, usando a biblioteca pytest, para dois casos de teste diferentes. Será providenciado o documento de Casos de Uso (superfrog.pdf) e todos os artefatos intermediários gerados - requisitos e casos de teste - (trabalho_artefatos.md). Também deverá ser entregue código de teste unitário gerado por LLM para cada caso. Logo, deverá ser entregue:
- Código de teste unitário escrito manualmente para cada caso de teste
- Codigo de teste unitário gerado por LLM para cada caso de teste
Nomeie os arquivos de acordo com seu conteúdo:
Por exemplo: teste_llm.py
. teste_manual.py
.
O código deve passar no teste. O código de teste precisa da implementação do código principal para que rode. Este código pode ser puramente para o teste passe, e não precisa ser uma implementação real.
Vou saber identificar se os códigos são escritos por LLM. Não tente a sorte!
Os Casos de Testes para serem estudados são: Test Case 3: Retrieve Completed Appearance Requests e Test Case 5: Generate TCU Honorarium Request Forms.
Leia o caso de uso e todos os artefatos intermediários (requisitos e casos de testes), e não apenas os casos escolhidos! Será necessário entender sobre o que se trata o Caso de Uso, o fluxo do processo e o contexto para escrever os testes. Os artefatos intermediários são a chave da construção do código.
Caso não tenha o python instalado, baixe o executável do site. Depois da instalação, baixe o pytest usando pip install pytest
no terminal ou no terminal do VSCode (ou outra ferramenta de sua escolha).
Para rodar o código de teste, use pytest nome_do_arquivo.py
.
A pesquisa em que esta atividade está incluída tem o objetivo de tirar conclusões de código de teste unitário escrito por LLM e por humanos e fazer uma análise qualitativa. Esta primeira etapa consiste da produção do código de teste unitário humano. As próximas etapas envolverão a permutação dos códigos dos alunos, e um questionário para fins de pesquisa. Para isso, é essencial que o código escrito seja escrito manualmente, para que os dados obtidos sejam relevantes para a condução da pesquisa.
DÚVIDAS: janine.m@poli.ufrj.br