/** * Determine if there is an existing test case covering this goal * * @param tests * a {@link java.util.List} object. * @return a boolean. */ public boolean isCovered(List<TestCase> tests) { for (TestCase test : tests) { if (isCovered(test)) return true; } return false; }
/** * Determine if there is an existing test case covering this goal * * @param tests * a {@link java.util.List} object. * @return a boolean. */ public boolean isCoveredByResults(List<ExecutionResult> tests) { for (ExecutionResult result : tests) { if (isCovered(result)) return true; } return false; }
/** * <p> * isCovered * </p> * * @param test * a {@link org.evosuite.testcase.TestCase} object. * @return a boolean. */ public boolean isCovered(TestCase test) { TestChromosome c = new TestChromosome(); c.test = test; return isCovered(c); }
public boolean isCoveredBy(TestSuiteChromosome testSuite) { int num = 1; for (TestChromosome test : testSuite.getTestChromosomes()) { logger.debug("Checking goal against test "+num+"/"+testSuite.size()); num++; if (isCovered(test)) return true; } return false; }
private Set<Integer> getAdditionallyCoveredGoals( List<? extends TestFitnessFunction> goals, Set<Integer> covered, TestChromosome best) { Set<Integer> r = new HashSet<Integer>(); ExecutionResult result = best.getLastExecutionResult(); assert (result != null); // if (result == null) { // result = TestCaseExecutor.getInstance().execute(best.test); // } int num = -1; for (TestFitnessFunction goal : goals) { num++; if (covered.contains(num)) continue; if (goal.isCovered(best, result)) { r.add(num); if (Properties.PRINT_COVERED_GOALS) LoggingUtils.getEvoLogger().info("* Additionally covered: " + goal.toString()); } } return r; }
for (TestFitnessFunction goal : goals) { if (!coveredGoals.contains(goal)) { if (goal.isCovered(test)) { addsNewGoals = true; coveredGoals.add(goal);
/** * Name generation assumes that certain coverage criteria are included. If we haven't targeted them yet, * we need to determine the covered goals. This may require re-executing the tests with observers. * * @param results */ private void addGoalsNotIncludedInTargetCriteria(List<ExecutionResult> results) { List<Properties.Criterion> requiredCriteria = new ArrayList<>(Arrays.asList(new Properties.Criterion[] { Properties.Criterion.OUTPUT, Properties.Criterion.INPUT, Properties.Criterion.METHOD, Properties.Criterion.METHODNOEXCEPTION, Properties.Criterion.EXCEPTION})); requiredCriteria.removeAll(Arrays.asList(Properties.CRITERION)); results = getUpdatedResults(requiredCriteria, results); for(Properties.Criterion c : requiredCriteria) { TestFitnessFactory<? extends TestFitnessFunction> goalFactory = FitnessFunctions.getFitnessFactory(c); List<? extends TestFitnessFunction> goals = goalFactory.getCoverageGoals(); for(ExecutionResult result : results) { for(TestFitnessFunction goal : goals) { if(goal.isCovered(result)) result.test.addCoveredGoal(goal); } } } }
/** * Helper function if this is used without a chromosome * * @param result * @return */ public boolean isCovered(ExecutionResult result) { TestChromosome chromosome = new TestChromosome(); chromosome.setTestCase(result.test); chromosome.setLastExecutionResult(result); chromosome.setChanged(false); return isCovered(chromosome, result); }
/** {@inheritDoc} */ @Override public double getFitness(TestSuiteChromosome suite) { ExecutionTracer.enableTraceCalls(); int coveredGoals = 0; for (T goal : getCoverageGoals()) { for (TestChromosome test : suite.getTestChromosomes()) { if (goal.isCovered(test)) { coveredGoals++; break; } } } ExecutionTracer.disableTraceCalls(); return getCoverageGoals().size() - coveredGoals; } }
/** * Return the number of covered goals * * @param testClass * @param allGoals * @return */ public static Set<TestFitnessFunction> getCoveredGoals(Class<?> testClass, List<TestFitnessFunction> allGoals) { // A dummy Chromosome TestChromosome dummy = new TestChromosome(); dummy.setChanged(false); // Execution result of a dummy Test Case ExecutionResult executionResult = new ExecutionResult(dummy.getTestCase()); Set<TestFitnessFunction> coveredGoals = new HashSet<TestFitnessFunction>(); List<JUnitResult> results = executeTests(testClass); for (JUnitResult testResult : results) { executionResult.setTrace(testResult.getExecutionTrace()); dummy.setLastExecutionResult(executionResult); for(TestFitnessFunction goal : allGoals) { if(coveredGoals.contains(goal)) continue; else if (goal.isCovered(dummy)) coveredGoals.add(goal); } } return coveredGoals; }
TestFitnessFunction goal = (TestFitnessFunction) goals.get(index_component); if (goal.isCovered(dummy)) { covered.set(index_component); coverage_matrix[index_test][index_component] = true;
/** * <p> * isCovered * </p> * * @param tc * a {@link org.evosuite.testcase.TestChromosome} object. * @return a boolean. */ public boolean isCovered(TestChromosome tc) { if(tc.getTestCase().isGoalCovered(this)){ return true; } ExecutionResult result = tc.getLastExecutionResult(); if (result == null || tc.isChanged()) { result = runTest(tc.test); tc.setLastExecutionResult(result); tc.setChanged(false); } return isCovered(tc, result); }