Gotcha. So to really try to resolve this Iâd probably need more info, and youâre probably right that versioning would help create a more ideal solution. However, without knowing more, I can see at least two other possible approaches off-hand, aside from copying the test case into the execution entity (and there may be more with some more thought and/or knowing more about the workflow).
1: Define the test cases in a Rich Text field, with check boxes or whatever you prefer. And delineate each version with a header (H1), e.g. âAssembly test case #45 V1.0â. Then somewhere in the body of that section of the text, link to the Test Execution Entity for when you run that test. When you update the test case, copy/paste everything you want to update from it, create a new header âAssembly test case #45 V2.0â, collapse the previous one, and paste in the V1.0 contents and update. A little manual work, but not too bad, and you keep all the versions in one place.
Iâve shown a pseudo-example in the image below. Obviously Iâm linking to the wrong entity, in this case the Test Case itself. You can see the previous test case is collapsed at the bottom. I just copy/pasted the bottom one to make the top.
2: Another option might be to create a âselfâ relationship in a 1:1 configuration for the âTest Caseâ Type and name the two resulting fields âprevious versionâ and ânext versionâ. Then when you need to update the test case, create a new version and link to it in the ânext versionâ field, copy the contents of the old, go to the new, paste, and edit as-needed. Any Executions of that version of the Test Case get linked as normal in their own 1:1 relationship field. Again shown in my example image, this time outlined in blue, and obviously the relationship to âtasksâ here in my test Type would for you be a link to the âTest Executionâ.
Obviously all of these involve steps like copy/paste which you might see as being too much work for your needs. And these ideas may be totally non-workable, or just not an improvement on what youâre already doing. One thing Iâll say that I think this makes clear is that a âcopy entityâ function would be nice.
Part of what would be good to know to try to come up with better options is what really are the âpain pointsâ of your existing workflow, i.e. what takes the most time/effort and what other problems arise from these versioning issues, how often does versioning happen, how many maximum versions are you likely to have, etc.
Iâm also curious if any existing tools that you know of already handle this well and could be used as a good model.
Having said all that, I definitely want document history and possibly versioning, i.e. named versions. Iâm just less confident about how to best handle the complexities of maintaining history on relationships, backlinks, etc.
I suppose one simple option for dealing with e.g. a deleted entity would be to maintain the name of it in any entities it was linked to, in their history state, and the live link just doesnât work. Or, alternatively, to maintain a read-only archive of the deleted entity in the state in which it existed when it was linked from the version of the entity youâre looking at. But even trying to describe issues like this starts to make my head spin and is one reason Iâm wary of wanting to rely on this kind of deep and complex version handling.
Iâm glad I donât have to actually implement solutions to these problems and trust that @mdubakov and team will make good choices moving forward. They have done well so far.