diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21EditForm.java b/src/main/java/org/olat/course/nodes/iq/QTI21EditForm.java
index 61f8dfb1b5acbdc31d569d2b7a886de2eb7e7c2b..bdc1595ee794675ed7e14dbeb72c1f8f561f6827 100644
--- a/src/main/java/org/olat/course/nodes/iq/QTI21EditForm.java
+++ b/src/main/java/org/olat/course/nodes/iq/QTI21EditForm.java
@@ -35,6 +35,8 @@ import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.gui.control.generic.modal.DialogBoxController;
+import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.course.assessment.AssessmentHelper;
 import org.olat.fileresource.FileResourceManager;
 import org.olat.ims.qti.process.AssessmentInstance;
@@ -70,14 +72,17 @@ public class QTI21EditForm extends FormBasicController {
 	private MultipleSelectionElement showResultsOnHomePage;
 	private MultipleSelectionElement scoreInfo, showResultsDateDependentButton;
 	private DateChooser startDateElement, endDateElement;
-	private MultipleSelectionElement testDateDependentButton;
+	private MultipleSelectionElement testDateDependentEl;
 	private DateChooser startTestDateElement, endTestDateElement;
 	private StaticTextElement minScoreEl, maxScoreEl, cutValueEl;
 	private MultipleSelectionElement showResultsOnFinishEl, assessmentResultsOnFinishEl;
+	private FormLayoutContainer reportLayout;
 	
 	private final boolean needManualCorrection;
 	private final ModuleConfiguration modConfig;
 	private final QTI21DeliveryOptions deliveryOptions;
+	
+	private DialogBoxController confirmTestDateCtrl;
 
 	@Autowired
 	private QTI21Service qtiService;
@@ -100,7 +105,7 @@ public class QTI21EditForm extends FormBasicController {
 		formLayout.add(testLayout);
 		initFormInfos(testLayout);
 		
-		FormLayoutContainer reportLayout = FormLayoutContainer.createDefaultFormLayout("report", getTranslator());
+		reportLayout = FormLayoutContainer.createDefaultFormLayout("report", getTranslator());
 		reportLayout.setElementCssClass("o_qti_21_configuration");
 		reportLayout.setFormTitle(translate("report.config"));
 		reportLayout.setRootForm(mainForm);
@@ -119,9 +124,10 @@ public class QTI21EditForm extends FormBasicController {
 
 	protected void initFormReport(FormItemContainer formLayout) {
 		boolean testDateDependent = modConfig.getBooleanSafe(IQEditController.CONFIG_KEY_DATE_DEPENDENT_TEST);
-		testDateDependentButton = uifactory.addCheckboxesHorizontal("qti_datetest", "qti.form.test.date", formLayout, new String[]{"xx"}, new String[]{null});
-		testDateDependentButton.select("xx", testDateDependent);
-		testDateDependentButton.addActionListener(FormEvent.ONCLICK);
+		testDateDependentEl = uifactory.addCheckboxesHorizontal("qti_datetest", "qti.form.test.date", formLayout, new String[]{"xx"}, new String[]{null});
+		testDateDependentEl.select("xx", testDateDependent);
+		testDateDependentEl.setHelpTextKey("qti.form.test.date.help", null);
+		testDateDependentEl.addActionListener(FormEvent.ONCLICK);
 	
 		Date startTestDate = modConfig.getDateValue(IQEditController.CONFIG_KEY_RESULTS_START_TEST_DATE);
 		startTestDateElement = uifactory.addDateChooser("qti_form_start_test_date", "qti.form.date.start", startTestDate, formLayout);
@@ -229,15 +235,31 @@ public class QTI21EditForm extends FormBasicController {
 		//
 	}
 	
+	@Override
+	protected void event(UserRequest ureq, Controller source, Event event) {
+		if(confirmTestDateCtrl == source) {
+			if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
+				update();
+				reportLayout.setDirty(true);
+			} else {
+				testDateDependentEl.uncheckAll();
+			}
+		}
+		super.event(ureq, source, event);
+	}
+
 	@Override
 	protected boolean validateFormLogic(UserRequest ureq) {
 		boolean allOk = super.validateFormLogic(ureq);
 		
 		startTestDateElement.clearError();
-		if(testDateDependentButton.isSelected(0)) {
+		if(testDateDependentEl.isSelected(0)) {
 			if(startTestDateElement.getDate() == null) {
 				startTestDateElement.setErrorKey("form.legende.mandatory", null);
 				allOk &= false;
+			} else if(endTestDateElement.getDate() != null && startTestDateElement.getDate().after(endTestDateElement.getDate())) {
+				startTestDateElement.setErrorKey("error.begin.after.end", null);
+				allOk &= false;
 			}
 		}
 
@@ -246,6 +268,9 @@ public class QTI21EditForm extends FormBasicController {
 			if(startDateElement.getDate() == null) {
 				startDateElement.setErrorKey("form.legende.mandatory", null);
 				allOk &= false;
+			} else if(endDateElement.getDate() != null && startDateElement.getDate().after(endDateElement.getDate())) {
+				startDateElement.setErrorKey("error.begin.after.end", null);
+				allOk &= false;
 			}
 		}
 
@@ -256,9 +281,14 @@ public class QTI21EditForm extends FormBasicController {
 	protected void formInnerEvent(UserRequest ureq, FormItem source, FormEvent event) {
 		if(showResultsOnFinishEl == source
 				|| showResultsOnHomePage == source
-				|| showResultsDateDependentButton == source
-				|| testDateDependentButton == source) {
+				|| showResultsDateDependentButton == source) {
 			update();
+		} else if(testDateDependentEl == source) {
+			if(testDateDependentEl.isAtLeastSelected(1)) {
+				confirmTestDates(ureq);
+			} else {
+				update();
+			}
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
@@ -271,8 +301,8 @@ public class QTI21EditForm extends FormBasicController {
 		resetDateChooser(startDateElement, showResultsDateDependentButton);
 		resetDateChooser(endDateElement, showResultsDateDependentButton);
 		
-		resetDateChooser(startTestDateElement, testDateDependentButton);
-		resetDateChooser(endTestDateElement, testDateDependentButton);
+		resetDateChooser(startTestDateElement, testDateDependentEl);
+		resetDateChooser(endTestDateElement, testDateDependentEl);
 	}
 	
 	private void resetDateChooser(DateChooser dateElement, MultipleSelectionElement parentEl) {
@@ -334,10 +364,16 @@ public class QTI21EditForm extends FormBasicController {
 		
 		update();
 	}
+	
+	private void confirmTestDates(UserRequest ureq) {
+		String title = translate("qti.form.test.date");
+		String text = translate("qti.form.test.date.confirm");
+		confirmTestDateCtrl = activateOkCancelDialog(ureq, title, text, confirmTestDateCtrl);
+	}
 
 	@Override
 	protected void formOK(UserRequest ureq) {
-		modConfig.setBooleanEntry(IQEditController.CONFIG_KEY_DATE_DEPENDENT_TEST, testDateDependentButton.isSelected(0));
+		modConfig.setBooleanEntry(IQEditController.CONFIG_KEY_DATE_DEPENDENT_TEST, testDateDependentEl.isSelected(0));
 		
 		modConfig.setDateValue(IQEditController.CONFIG_KEY_RESULTS_START_TEST_DATE, startTestDateElement.getDate());
 		modConfig.setDateValue(IQEditController.CONFIG_KEY_RESULTS_END_TEST_DATE, endTestDateElement.getDate());
diff --git a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_de.properties
index a6bfcc3a716063fd46175f4e30e3829f154636c3..4fb33f3acac63995f5e623e3e6a4e82203f5a2aa 100644
--- a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_de.properties
@@ -49,6 +49,7 @@ disclaimer=Information
 disclaimer.file.invalid=Gewisse Informationen k\u00F6nnen nicht angezeigt werden weil die referenzierte Datei {0} nicht mehr vorhanden ist. Bitte benachrichtigen Sie die Kursleitung.
 error.assessment.pulled=Das Test wurde von Ihrem Tutor eingezogen.
 error.assessment.stopped=Das Test wurde beendet.
+error.begin.after.end=Das Beginn-Datum muss vor dem Ende-Datum liegen.
 error.entry.locked=Die gew\u00E4hlte Lernressource wird momentan von {0} editiert. Bitte w\u00E4hlen Sie eine andere Lernressource oder versuchen Sie es sp\u00E4ter nochmals.
 error.reopean.failed=Wieder\u00F6ffnen des Tests k\u00F6nnte nicht gemacht werden
 error.self.undefined.long=Es ist kein Selbsttest f\u00FCr "{0}" definiert. W\u00E4hlen Sie einen unter "Selbsttest-Konfiguration" aus.
@@ -144,6 +145,8 @@ qti.form.summary.detailed=Detailliert (mit L\u00F6sungen)
 qti.form.summary.none=Keine Eingabe notwendig.
 qti.form.summary.section=Sektionszusammenfassung (ohne L\u00F6sungen)
 qti.form.test.date=Testzeitraum festlegen
+qti.form.test.date.confirm=W\u00E4hrend dem Testzeitraum kann der Test gestartet werden. Sobald die "bis-Zeit" erreicht ist, wird der Test automatisch beendet. Dies auch dann, wenn die definierte Testzeit noch nicht aufgebraucht ist.
+qti.form.test.date.help=$\:qti.form.test.date.confirm
 qti.form.test.title=Test
 reopen=Erneut starten
 reopen.explanation=Dieser Test wurde beendet. Sie k\u00F6nnen den Test erneut starten. Der Testteilnehmende kann den Test dann dort weiterf\u00FChren, wo er aufgeh\u00F6rt hat. Falls der Test auf 1 Versuch beschr\u00E4nkt ist, m\u00FCssen außerdem die Versuche zur\u00FCckgesetzt werden, damit der Testteilnehmende den Test weiterf\u00FChren kann.
diff --git a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
index a93bf18231b11a2c19ef9805c2a07e60899ae145..0a8e8e7f86489c13239170d6b2803ea30766c634 100644
--- a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_en.properties
@@ -47,6 +47,7 @@ disclaimer=Information
 disclaimer.file.invalid=Some information cannot be displayed because the referenced file {0} is not available anymore. Please contact your course administrator.
 error.assessment.pulled=The assessment is finished.
 error.assessment.stopped=Your tutor pull your test.
+error.begin.after.end=The start date must be before the end date.
 error.entry.locked=The learning resource selected is currently edited by {0}. Please select another learning resource or try again later.
 error.reopean.failed=Reopeing the test cannot be done.
 error.resource.corrupted=The learning resource cannot be interpreted. It seems corrupted or with the wrong format.
@@ -142,6 +143,8 @@ qti.form.summary.section=Section abstract (without solutions)
 qti.form.summary.sections=Section summary
 qti.form.summary.solutions=Solution
 qti.form.test.date=Set assessment period
+qti.form.test.date.confirm=During the test  period the test can be started. As soon as the "until-time" is reached, the test will be finished automatically. This occurs also if the time limit is not yet reached.
+qti.form.test.date.help=$\:qti.form.test.date.confirm
 qti.form.test.title=Test
 reopen=Start again
 reopen.explanation=This test has been finished. You can restart the test. The test participant continues the test where he left it. If the test is limited to 1 attempt, the number of attempts must be reset so the test participants can continue the test.
diff --git a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_fr.properties
index 447a54aba29c8ec6b083fedfc1adbc1b54c49e28..8e1da36c37156d2fe36363a5f8da91ef7b06fc88 100644
--- a/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/nodes/iq/_i18n/LocalStrings_fr.properties
@@ -45,6 +45,7 @@ disclaimer=Mentions l\u00E9gales
 disclaimer.file.invalid=Certaines informations ne peuvent pas \u00EAtre affich\u00E9es, car le fichier r\u00E9f\u00E9renci\u00E9 {0} n'est plus existant. Veuillez pr\u00E9venir la direction du cours.
 error.assessment.pulled=Le test a \u00E9t\u00E9 retir\u00E9 par votre coach.
 error.assessment.stopped=Le test est termin\u00E9.
+error.begin.after.end=La date de d\u00E9but doit se trouver avant la date de fin.
 error.entry.locked=La ressource d'\u00E9tude choisie est actuellement \u00E9dit\u00E9e par un utilisateur. Veuillez choisir une autre ressource d'\u00E9tude SVP.
 error.resource.corrupted=L'object didactique n'a pas pu \u00EAtre lu. Il semble soit corrompu soit au mauvais format.
 error.self.undefined.long=Aucun auto-test d\u00E9fini pour "{0}". Choisissez dans "Configuration auto-test".