void startVulnerabilityDetecting(
      ImmutableList<PluginMatchingResult<VulnDetector>> selectedVulnDetectors) {
    checkState(currentExecutionStage.equals(ExecutionStage.SERVICE_FINGERPRINTING));
    checkState(serviceFingerprintingTimer.isRunning());

    this.serviceFingerprintingTimer.stop();
    this.vulnerabilityDetectingTimer.start();
    this.currentExecutionStage = ExecutionStage.VULNERABILITY_DETECTING;
    this.selectedVulnDetectors = checkNotNull(selectedVulnDetectors);
  }
@Test
  public void startVulnerabilityDetecting_whenStageNotFingerprinting_throwsException() {
    ExecutionTracer executionTracer =
        new ExecutionTracer(
            portScanningTimer, serviceFingerprintingTimer, vulnerabilityDetectingTimer);

    assertThrows(
        IllegalStateException.class,
        () ->
            executionTracer.startVulnerabilityDetecting(
                pluginManager.getVulnDetectors(ReconnaissanceReport.getDefaultInstance())));
  }