Add testing approaches (LBRON-1713) - #19
Conversation
Updated the testing approach section to clarify manual testing procedures and risks associated with the Policy Impact Report.
mention survey
Added validation of decision applicability dates to the interface description.
mirdono
left a comment
There was a problem hiding this comment.
Left some suggestions. Since they are often opinion-based, they are obviously up for discussion.
|
|
||
| This risk is mitigated by adding a tooltip with the Linked Data definition of the link. For the example above, following tooltip now appears: The last date any part of the legislation is in force, if the date is known (can be seen as the end date of a dc:valid range for this resource). | ||
|
|
||
| Also, ABB created guidelines (slides and video) for each city that lists all possible links and demonstrates with an example decision what the enrichment should be. |
There was a problem hiding this comment.
Question: Are these slides and videos somewhere (publicly) available so we can link to them here?
There was a problem hiding this comment.
Videos still need to be uploaded to Youtube, but I have sent a mail with the question to add
|
|
||
| ### Pilot-specific testing | ||
|
|
||
| Each pilot has only a single environment, configured through its own docker-compose override capturing its specific setup (data sources, pilot-specific services). Rather than automated tests, pilots validate their environment manually — for example by running a pipeline or sharing datasets. |
There was a problem hiding this comment.
Suggestion: Maybe rephrase second sentence to something like "pilots can decide their own test approach."
Arguably, nothing stops the pilots from setting up automated tests for their app instance. But it is not offered out of the box, and requires (a lot of) effort on their part.
| The service uses a cron mechanism to periodically run the validations ([https://github.com/lblod/loket-report-generation-service/tree/master#reports](https://github.com/lblod/loket-report-generation-service/tree/master#reports)). By default, the SHACL validations will run every day at 03:00 ([https://github.com/lblod/app-decide/blob/development/config/reports/shacl-report.js#L35](https://github.com/lblod/app-decide/blob/development/config/reports/shacl-report.js#L35)). | ||
|
|
||
| During testing, we discovered that validating all decisions causes a high load on the triple store: a validation issue in one municipality typically recurs for every decision. Therefore, we added sampling to validate a limited set of 100 decisions in each validation run by default. | ||
| By navigating to the provided REST API `/shacl-reports/latest/issues`, cities see the results of the latest generated report. |
There was a problem hiding this comment.
Question: Can we explicitly link to the report on our TEST instance?
Currently, I would have to search in the dispatcher configuration to determine on which url this API can be accessed. It would be easier if we could link to if (or show an example if that is not possible), to give readers a better idea of what to expect from such reports.
Note, on our TEST environment the report-generation is currently still disabled. Is this intentional, still waiting for further improvements or something?
There was a problem hiding this comment.
This was disabled to prevent load on the AI pipelines. I have turned it on now.
There was a problem hiding this comment.
Fix e6069d2
To be tested when run is complete
| Testing can be done by navigating to the provided REST API `/shacl-reports/latest/issues` . | ||
|
|
||
| During DECIDe, we will monitor the validation results and analyze what their root causes are. | ||
| ABB uses the API to monitor the validation results and analyze what their root causes are. |
There was a problem hiding this comment.
Question: Can we add an example of such an analysis and actions take for it?
If we already used the API to discover issues and analyze them, I would shortly mention it as an example usage. This would make the statement here more convincing.
| #### High load on triple store | ||
|
|
||
| During testing, we discovered that validating all decisions causes a high load on the triple store: a validation issue in one municipality typically recurs for every decision. | ||
| Therefore, we added sampling to validate a limited set of decisions in each validation run. By default, 100 decisions are validated. |
There was a problem hiding this comment.
Question: Should we elaborate on this that it may cause issues to be missed?
By default the service is started with ONLY_KEEP_LATEST_REPORT: true. This may cause a report listing issues to be removed when a next report is generated. Alternatively, we could remove the environment variable so it defaults back to false.
|
|
||
| ### Risks & mitigations | ||
|
|
||
| There is a risk that it is unclear for the reviewer what a certain link means. For example, `eli:no_longer_in_force`. |
There was a problem hiding this comment.
Suggestion: I would rephrase this section a bit to emphasize the (imo) actual underlying risk.
I think the actual, underlying risk described here is that users may not know what exactly it means to give a thumbs up or down for a row. That the meaning of a link may be unclear is only one potential cause of this. Users might also not (fully) understand what the mentioned type means of what they have to do when a row is only partially correct.
Imo we tried to mitigate such things by (in random order):
- add tooltips in the HVT itself to explain what things mean; and
- providing supporting material (slides + video) explaining and demonstrating the usage of the HVT.
| ### Risks & mitigations | ||
|
|
||
| There was the risk that the Policy Impact Report would have its own validation visualization, separate from the human validation tool, which would increase the maintenance effort. | ||
| This is mitigated by showing a link to the Human Validation Tool and making sure the same filters are applied. For example, when the Policy Impact Report shows 17 decisions for the city of Freiburg with a positive impact on SDG 1, a user can review these exact 17 decisions for Freiburg in the Human Validation Tool. |
There was a problem hiding this comment.
Suggestion: Imo the actual mitigation is integrating the PIR validation in the HVT.
I think the actual mitigation for the described risk is that we developed the PIR validation within the HVT, along with the other validations. This allows to build it on the same principles, UI, UX, ... (for better or for worse.) The fact that you link to it from the PIR is just a consequence (if it was a different page within the same frontend we would still have a link). But passing sufficient data with the link so you immediately land on the correct HVT page is arguably a (significant) UX choice on our part.
|
|
||
| ### Risks & mitigations | ||
|
|
||
| No risks have been identified. |
There was a problem hiding this comment.
Suggestion: Imo the same risk as the PIR, having a validation separate from the HVT, applies here.
We could have developed a completely separate tool to validate RMZs (or codelist mapping in general). But choose to put in the same HVT for consistency etc. Albeit, putting it in the HVT was the logical decision here as there is no separate frontend for RMZs on our side (in contrast to the PIR scenario.)
No description provided.