Open Orlando-pt opened 1 year ago
Alguma ideia do que significam os seguintes argumentos/propriedades?
-Dlog_time_taken=true
-Dlog_age=true
-Dbalance_test_cov=true
-Dremove_covered_targets=false
-Darchive_all=true -Dnum_test_files=8
-Dlog_time_taken: apenas coloca um comentário no teste gerado com o tempo que o demorou a criar, do género // time taken: 4s
-Dlog_age: faz o msm q o anterior mas desta feita para a idade do test case
-Dbalance_test_cov: balanceia a test coverage. Basicamente, quando este argumento é chamado executa-se a seguinte função.
-Dremove_covered_targets: este argumento removia os targets que tinham acabado de ser covered do Set uncovered goals
. Na altura o PreMOSA n fazia isso por defeito, esta variável é usada p.e no código q removêmos por se ter inserido lógica no Archive.java
. Apesar de tudo, esta variável continua a ser usada aqui.
-Darchive_all: arquiva todos os test cases gerados. Apenas é utilizada neste if.
Na minha opinião, os 2 primeiros argumentos de log não têm importância, podemos desativá-los. Os 3 últimos desempenham lógica importante para o PreMOSA.
Entendido. Concordo, podemos descartar os dois primeiros argumentos. Só para confirmar log_time_taken
e log_age
são false
por defeito, certo?
sim, confirmo
Acho que a descrição do parâmetro defect_prediction_csv
está errada. Não deveria ser File in which defect scores are stored, certo?
O PreMOSA deve ser invocado com o default, i.e.,
-generateMOSuite -Dstrategy=MOSUITE
ou tem que ser executado com a strategy antiga
-generateSuite -Dstrategy=EVOSUITE
? Eu diria que é a former, mas queria confirmar contigo @Orlando-pt.
Acho que a descrição do parâmetro
defect_prediction_csv
está errada. Não deveria ser File in which defect scores are stored, certo?
Sim, correto. Mudei o comportamento da propriedade mas esqueci-me de lhe mudar novamente a descrição :/
O PreMOSA deve ser invocado com o default, i.e.,
-generateMOSuite -Dstrategy=MOSUITE
ou tem que ser executado com a strategy antiga
-generateSuite -Dstrategy=EVOSUITE
? Eu diria que é a former, mas queria confirmar contigo @Orlando-pt.
Com a segunda alternativa dá um erro.
* Defect Prediction Guidance: METHOD
* Finished analyzing classpath
* Generating tests for class org.jfree.data.category.DefaultIntervalCategoryDataset
* Test criterion:
- Branch Coverage
* Computation finished
[MASTER] 21:37:42.139 [logback-2] ERROR ClientNodeImpl - Error when generating tests for: org.jfree.data.category.DefaultIntervalCategoryDataset with seed 1688416657447. Configuration id : null
java.lang.UnsupportedOperationException: isMaximizationFunction() called on mock
at org.evosuite.ga.FitnessFunctionMock.isMaximizationFunction(FitnessFunctionMock.java:81)
at org.evosuite.ga.localsearch.DefaultLocalSearchObjective.addFitnessFunction(DefaultLocalSearchObjective.java:70)
at org.evosuite.ga.metaheuristics.GeneticAlgorithm.addFitnessFunction(GeneticAlgorithm.java:432)
at java.util.ArrayList.forEach(ArrayList.java:1259)
at org.evosuite.ga.metaheuristics.GeneticAlgorithm.addFitnessFunctions(GeneticAlgorithm.java:436)
at org.evosuite.strategy.MOSuiteStrategy.generateTests(MOSuiteStrategy.java:88)
at org.evosuite.TestSuiteGenerator.generateTests(TestSuiteGenerator.java:643)
at org.evosuite.TestSuiteGenerator.generateTestSuite(TestSuiteGenerator.java:220)
at org.evosuite.rmi.service.ClientNodeImpl.lambda$startNewSearch$0(ClientNodeImpl.java:140)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:750)
Não percebo. Com a segunda opção dá erro quando o stacktrace mostra coisas (e.g., at org.evosuite.strategy.MOSuiteStrategy.generateTests(MOSuiteStrategy.java:88)
) da primeira opção?
PreMOSA
In this issue it will be gathered information about PreMOSA.
How to run it
premosa
branchmaster/target/...
Fill in the missing arguments.