jose / smell-free-tests-evosuite

GNU Lesser General Public License v3.0
0 stars 1 forks source link

Erro ao executar "RottenGreenTests" #5

Open fc51111 opened 2 years ago

fc51111 commented 2 years ago

Tal como tinha referido, estive a fazer uns testes e a correr a versão atual do EvoSuite localmente para ver se econtrava alguns erros. Por acaso, até encontrei um problema relacionado com o smell "RottenGreenTests".

O erro surge porque a contagem dos smells dá um valor negativo e, ao tentar normalizar o resultado, há uma exceção porque não pode ser feita a normalização de valores negativos. Para começar, este é o código que está a dar problemas:

image

O problema surge porque, por alguma razão, size == firstException. Ora, sendo que firstException corresponde a uma posição, então sabemos que firstException < size. Até pensei que isto podia acontecer porque o test case estava vazio, mas essa situação já está coberta nos unit tests e não dá problemas. Fiz uns prints e os problemas estão a surgir com tamanhos completamente aleatórios: no último caso, o test case tinha size 30...

Tentei recriar o problema com classes dummy, mas não tive sucesso.

Assim sendo, estou a pensar adicionar mais um if para verificar se size > firstException. Acho que é uma solução um pouco "bruta", mas não entendo mesmo a causa do problema. Será que o EvoSuite está a remover statements e não está a atualizar o "lastExecutionResult"? Eu pensava que nesse caso "lastExecutionResult" ficava a null...