Feature Wiki
Tabs
Question Versioning in Test Object
Page Overview
[Hide]1 Initial Problem
With the feature request Versioning in Pool test questions that comes from a question pool are no longer duplicated for beeing used in tests. These questions are referenced in the tests instead. To support questions that are present in the tests only and the editing of referenced questions, a rule set for versioning is required in the test object.
2 Conceptual Summary
Pool questions that are referenced in tests needs to be editable. When such a question gets modied, the original question gets copied to the test. The modified copy is now an independent question having a new unique ID and behaves the same way as a question that got created in a test only.
For tests with a fixed question set the questions tab will offer a new functionality to update the currently added questions to use the lates version. When newer versions than the added ones are available the test author gets a hint on this fact. A question's versions can be checked via the versions tab when opening the question from within the test's question tab.
For random tests the currently available synchronization mechnism to update to the latest set of questions / state of questions will be kept, but it is using references to the latest question versions instead of copies of the question.
When questions (or pools) gets deleted, a copy of the question is decoupled for and stored within the consumer. It does not matter if a question is used by a learning module, a test with a fixed set of questions or a random test.
2.1 Test Question Editing
Handling of regular editing processes in the questions tab:
- An independent question that is only in the test gets edited
- This question always has the version 1
- Since the question has not yet been answered by participants, there is no need for a new version
- The question is changed without further effects
- A question that comes from a pool and is referenced in a test gets edited
- The editing examiner / test author HAS write persmission to the pool from which the question originated
- The actor is asked whether the question should be decoupled or should be deposited as a new version in the pool
- New version in the pool: The version of the pool question is counted up AND the field "last_used_version" is updated with this new version at the same time because of the instant use in the test
- Every change (save request) to the question does cause a version increment in the pool.
- Decoupling: The question gets copied to the test and builds an independent question with its own unique ID in version 1
- New version in the pool: The version of the pool question is counted up AND the field "last_used_version" is updated with this new version at the same time because of the instant use in the test
- The actor is asked whether the question should be decoupled or should be deposited as a new version in the pool
- The editing examiner / test author DOES NOT have write persmission to the pool from which the question originated
- The question gets copied to the test and builds an independent question with its own unique ID in version 1
- The editing examiner / test author HAS write persmission to the pool from which the question originated
2.2 Test Question Correction
Handling of question editing processes using the question correction feature:
We assume that the question correction feature will be overhauled according to the original concept, so that questions can not be destroyed and the test results can be consistently recalculated for every possible change to any question. (This need is covered by the request for a Reduce Functionality in »Corrections«-tab)
- Modifying questions using the question correction feature does not differ from the regular editing of questions prior to running the test.
- Independent questions in the test are easily changed, the version is not counted up, existing results are recalculated.
- Referenced questions will be converted to independent questions or gets a new version in the question pool optionally when write permissions on the pool are granted.
2.3 Synchronisation of Random Test Questions
The synchronization of a so-called shadow stage of questions for random tests, as it exists so far, is eliminated. A random test references questions from pools just as a test with fixed question does it as well. A random test does register the latest version for every relevant question that is available in the pool, as this is the state known to the test author at this time.
An automatic synchronization of new versions to the test is expressly not desired. The test author would have to agree to the new question versions before. A test author can still initiate a manual synchronization of new versions instead.
2.4 Deletion of Questions / Question Pools
For the fact of referenced questions instead of independent question duplicates, the handling of deletion processes needs to be revised:
- A deletion must continue to be possible. If the user actually agrees to a deletion of questions that are referenced in consumers, a derived independent question of the respective referenced version must be generated in the consumers.
- However, the deletion should strongly not be recommended by a confirmation dialog to keep existing statistical data.
- Alternative ways to hide questions in pools should be created, so discarded questions does not disturb in the user interface.
2.5 Inserting Questions from Pools or Other Tests
From Pools
When inserting questions into a test object the question can either come from a pool or from another test object. For the insertion of questions from a question pool, a single question can only be referenced once in a test object.
From Tests
When inserting questions from other test objects, referenced and independent questions need to be differed:
- For questions that are referenced in the other test, just a reference to the question in the pool is inserted to the test.
- For independent questions that are stored in the test object, a duplicated question is inserted as a new independent question.
When inserting questions the question browser lists all questions whose parent (test or pool object) are accessible for the user with the read permission. When searching for a question within another test object the user has read permission for, of course the independent questions are listed as well as referenced questions unless the user does not have read permission to the respective pool object.
3 User Interface Modifications
3.1 List of Affected Views
- Questions-tab in test
- Question Editing
3.2 User Interface Details
When editing a question within a test object that is referenced from a pool every modification can be deposited as a new question version within the pool as long as the editor has write permissions to the pool. A confirmation is shown for any change to the question:
3.3 New User Interface Concepts
None.
4 Technical Information
The introduction of an opportunity to qualify question edits for the users is not recommended to keep the complexity as low as possible within the code base as well as in the user interface. All edits to questions will consider the rules of versioning.
This feature request relies on the following other requests:
5 Contact
- Author of the Request: Heyser, Björn [bheyser]
- Maintainer: {Please add your name before applying for an initial workshop or a Jour Fixe meeting.}
- Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}
6 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- ...
7 Discussion
JourFixe, ILIAS [jourfixe], 19 NOV 2018 : We highly appreciate this suggestion and schedule this feature for 6.0. Before implementing this feature we need to clarify the concept for Unique IDs for Test Questions.
Kunkel, Matthias [mkunkel] @ SIG EA, 13 NOV 2019 : The separation of the Test&Assessment has been postponed to ILIAS 7 because the project cannot be finished satisfactorily until 'Coding Completed' at NOV 29. Therefore, this feature won't make it into ILIAS 6 but is now suggested for ILIAS 7. Please add it to the JF agenda to schedule it again.
8 Implementation
{The maintainer has to give a description of the final implementation and add screenshots if possible.}
Test Cases
Test cases completed at {date} by {user}
- {Test case number linked to Testrail} : {test case title}
Approval
Approved at {date} by {user}.
Last edited: 13. Nov 2019, 09:33, Kunkel, Matthias [mkunkel]