void startServiceFingerprinting(
      ImmutableList<PluginMatchingResult<ServiceFingerprinter>> selectedServiceFingerprinters) {
    checkState(currentExecutionStage.equals(ExecutionStage.PORT_SCANNING));
    checkState(portScanningTimer.isRunning());

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

    assertThrows(
        IllegalStateException.class,
        () -> executionTracer.startServiceFingerprinting(ImmutableList.of()));
  }