Skip to content

Add testing approaches (LBRON-1713) - #19

Open
brechtvdv wants to merge 20 commits into
masterfrom
brecht/lbron-1818
Open

Add testing approaches (LBRON-1713)#19
brechtvdv wants to merge 20 commits into
masterfrom
brecht/lbron-1818

Conversation

@brechtvdv

Copy link
Copy Markdown
Collaborator

No description provided.

@mirdono
mirdono self-requested a review August 4, 2026 08:12

@mirdono mirdono left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some suggestions. Since they are often opinion-based, they are obviously up for discussion.

Comment thread decide-project/write-up-uc0.0-data-space/write-up-data-quality-manager.md Outdated

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question: Are these slides and videos somewhere (publicly) available so we can link to them here?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix: 0872502

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix 06798ab

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was disabled to prevent load on the AI pipelines. I have turned it on now.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a real example: 717b5b2

#### 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elaborated: 00edbf8


### 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`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread decide-project/write-up-uc0.0-data-space/write-up-verifiable-credentials.md Outdated
### 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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fix 2c9be78


### Risks & mitigations

No risks have been identified.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added: 2d2fdea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants