Skip to content

Commit 0bd761a

Browse files
committed
refactor(v+v): move checklist to .md, copy/download on v+v and conclusion pages
1 parent 6e51364 commit 0bd761a

File tree

3 files changed

+100
-95
lines changed

3 files changed

+100
-95
lines changed

pages/further_info/conclusion.qmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ Download checklists to **audit existing models** or **guide development of exist
7272

7373
Also, don't forget about the handy **verification and validation** checklist:
7474

75-
{{< downloadthis conclusion_resources/verification_validation_checklist.md dname="verification_validation_checklist" label="Download the verification and validation checklist" type="primary" >}}
75+
{{< downloadthis ../verification_validation/verification_validation_resources/verification_validation_checklist.md dname="verification_validation_checklist" label="Download the verification and validation checklist" type="primary" >}}
7676

7777
## Acknowledgements
7878

pages/verification_validation/verification_validation.qmd

Lines changed: 3 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -480,101 +480,10 @@ However, trying to do everything at once can feel overwhelming! Remember, verifi
480480

481481
To help you get started, we've put together a checklist you can copy into a [GitHub issue](../sharing/peer_review.qmd#github-issues) on your project. Use it to track which methods you've tried, what you want to tackle next, and which seem most relevant or feasible for your current context. This makes it easier to plan, prioritise, and document your verification and validation efforts over time.
482482

483-
```{.markdown}
484-
# Verification and validation
485-
486-
## Verification
487-
488-
Desk checking
489-
490-
* [ ] Systematically check code.
491-
* [ ] Keep documentation complete and up-to-date.
492-
* [ ] Maintain an environment with all required packages.
493-
* [ ] Lint code.
494-
* [ ] Get code review.
495-
496-
Debugging
497-
498-
* [ ] Write tests - they'll help for spotting bugs.
499-
* [ ] During model development, monitor the model using logs - they'll help with spotting bugs.
500-
* [ ] Use GitHub issues to record bugs as they arise, so they aren't forgotten and are recorded for future reference.
501-
502-
Assertion checking
503-
504-
* [ ] Add checks in the model which cause errors if something doesn't look right.
505-
* [ ] Write tests which check that assertions hold true.
506-
507-
Special input testing
508-
509-
* [ ] If there are input variables with explicit limits, design boundary value tests to check the behaviour at, just inside, and just outside each boundary.
510-
* [ ] Write stress tests which simulate worst-case load and ensure model is robust under heavy demand.
511-
* [ ] Write tests with little or no activity/waits/service.
512-
513-
Bottom-up testing
514-
515-
* [ ] Write unit tests for each individual component of the model.
516-
* [ ] Once individual parts work correctly, combine them and test how they interact - this can be via integration testing or functional testing.
517-
518-
Regression testing
519-
520-
* [ ] Write tests early.
521-
* [ ] Run tests regularly (locally or automatically via. GitHub actions).
522-
523-
Mathematical proof of correctness
524-
525-
* [ ] For parts of the model where theoretical results exist (like an M/M/s queue), compare simulation outputs with results from mathematical formulas.
526-
527-
## Validation
528-
529-
Face validation
530-
531-
* [ ] Present key simulation outputs and model behaviour to people such as: project team members; intended users of the model (e.g., healthcare analysts, managers); people familiar with the real system (e.g., clinicians, frontline staff, patient representatives). Ask for their subjective feedback on whether the model and results "look right". Discuss specific areas, such as whether performance measures (e.g., patient flow, wait times) match expectations under similar conditions.
532-
533-
Turing test
483+
{{< downloadthis verification_validation_resources/verification_validation_checklist.md dname="verification_validation_checklist" label="Download the verification and validation checklist" type="primary" >}}
534484

535-
* [ ] Collect matching sets of model output and real system, remove identifying labels, and present them to a panel of experts. Record whether experts can distinguish simulation outputs from real data. Use their feedback on distinguishing features to further improve the simulation.
536-
537-
Predictive validation
538-
539-
* [ ] Use historical arrival data, staffing schedules, treatment times, or other inputs from a specific time period to drive your simulation. Compare the simulation's predictions for that period (e.g., waiting times, bed occupancy) against the real outcomes for the same period.
540-
* [ ] Consider varying the periods you validate on—year-by-year, season-by-season, or even for particular policy changes or events—to detect strengths or weaknesses in the model across different scenarios.
541-
* [ ] Use graphical comparisons (e.g., time series plots) or statistical measures (e.g., goodness-of-fit, mean errors, confidence intervals) to assess how closely the model matches reality - see below.
542-
543-
Graphical comparison
544-
545-
* [ ] Create time-series plots of key metrics (e.g., daily patient arrivals, resource utilisation) for both the model and system. Create distributions of waiting times, service times, and other performance measures. Compare the model and system graphs.
546-
547-
Statistical comparison
548-
549-
* [ ] Collect real system data on key performance measures (e.g., wait times, lengths of stay, throughput) and compare with model outputs statistically using appropriate tests.
550-
551-
Animation visualisation
552-
553-
* [ ] Create an animation to help with validation (as well as communicaton and reuse).
554-
555-
Comparison testing
556-
557-
* [ ] If you have multiple models of the same system, compare them!
558-
559-
Input data validation
560-
561-
* [ ] Check the datasets used - screen for outliers, determine if they are correct, and if the reason for them occurring should be incorporated into the simulation.
562-
* [ ] Ensure you have performed appropriate input modelling steps when choosing your distributions.
563-
564-
Conceptual model validation
565-
566-
* [ ] Document and justify all modeling assumptions.
567-
* [ ] Review the conceptual model with people familiar with the real system to assess completeness and accuracy.
568-
569-
Experimentation validation
570-
571-
* [ ] Conduct warm-up analysis to determine appropriate initialisation period.
572-
* [ ] Use statistical methods to determine sufficient run length and number of replications.
573-
* [ ] Perform sensitivity analysis to test how changes in input parameters affect outputs.
574-
575-
Cross validation
576-
577-
* [ ] Search for similar simulation studies and compare the key assumptions, methods and results. Discuss discrepancies and explain reasons for different findings or approaches. Use insights from other studies to improve or validate your own model.
485+
```{.markdown}
486+
{{< include verification_validation_resources/verification_validation_checklist.md >}}
578487
```
579488

580489
## References
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# Verification and validation checklist
2+
3+
This checklist is from: Heather, A., Monks, T., Mustafee, N., & Harper, A. (2025). DES RAP Book: Reproducible Discrete-Event Simulation in Python and R. https://github.com/pythonhealthdatascience/des_rap_book. https://doi.org/10.5281/zenodo.17094155.
4+
5+
## Verification
6+
7+
Desk checking
8+
9+
* [ ] Systematically check code.
10+
* [ ] Keep documentation complete and up-to-date.
11+
* [ ] Maintain an environment with all required packages.
12+
* [ ] Lint code.
13+
* [ ] Get code review.
14+
15+
Debugging
16+
17+
* [ ] Write tests - they'll help for spotting bugs.
18+
* [ ] During model development, monitor the model using logs - they'll help with spotting bugs.
19+
* [ ] Use GitHub issues to record bugs as they arise, so they aren't forgotten and are recorded for future reference.
20+
21+
Assertion checking
22+
23+
* [ ] Add checks in the model which cause errors if something doesn't look right.
24+
* [ ] Write tests which check that assertions hold true.
25+
26+
Special input testing
27+
28+
* [ ] If there are input variables with explicit limits, design boundary value tests to check the behaviour at, just inside, and just outside each boundary.
29+
* [ ] Write stress tests which simulate worst-case load and ensure model is robust under heavy demand.
30+
* [ ] Write tests with little or no activity/waits/service.
31+
32+
Bottom-up testing
33+
34+
* [ ] Write unit tests for each individual component of the model.
35+
* [ ] Once individual parts work correctly, combine them and test how they interact - this can be via integration testing or functional testing.
36+
37+
Regression testing
38+
39+
* [ ] Write tests early.
40+
* [ ] Run tests regularly (locally or automatically via. GitHub actions).
41+
42+
Mathematical proof of correctness
43+
44+
* [ ] For parts of the model where theoretical results exist (like an M/M/s queue), compare simulation outputs with results from mathematical formulas.
45+
46+
## Validation
47+
48+
Face validation
49+
50+
* [ ] Present key simulation outputs and model behaviour to people such as: project team members; intended users of the model (e.g., healthcare analysts, managers); people familiar with the real system (e.g., clinicians, frontline staff, patient representatives). Ask for their subjective feedback on whether the model and results "look right". Discuss specific areas, such as whether performance measures (e.g., patient flow, wait times) match expectations under similar conditions.
51+
52+
Turing test
53+
54+
* [ ] Collect matching sets of model output and real system, remove identifying labels, and present them to a panel of experts. Record whether experts can distinguish simulation outputs from real data. Use their feedback on distinguishing features to further improve the simulation.
55+
56+
Predictive validation
57+
58+
* [ ] Use historical arrival data, staffing schedules, treatment times, or other inputs from a specific time period to drive your simulation. Compare the simulation's predictions for that period (e.g., waiting times, bed occupancy) against the real outcomes for the same period.
59+
* [ ] Consider varying the periods you validate on—year-by-year, season-by-season, or even for particular policy changes or events—to detect strengths or weaknesses in the model across different scenarios.
60+
* [ ] Use graphical comparisons (e.g., time series plots) or statistical measures (e.g., goodness-of-fit, mean errors, confidence intervals) to assess how closely the model matches reality - see below.
61+
62+
Graphical comparison
63+
64+
* [ ] Create time-series plots of key metrics (e.g., daily patient arrivals, resource utilisation) for both the model and system. Create distributions of waiting times, service times, and other performance measures. Compare the model and system graphs.
65+
66+
Statistical comparison
67+
68+
* [ ] Collect real system data on key performance measures (e.g., wait times, lengths of stay, throughput) and compare with model outputs statistically using appropriate tests.
69+
70+
Animation visualisation
71+
72+
* [ ] Create an animation to help with validation (as well as communicaton and reuse).
73+
74+
Comparison testing
75+
76+
* [ ] If you have multiple models of the same system, compare them!
77+
78+
Input data validation
79+
80+
* [ ] Check the datasets used - screen for outliers, determine if they are correct, and if the reason for them occurring should be incorporated into the simulation.
81+
* [ ] Ensure you have performed appropriate input modelling steps when choosing your distributions.
82+
83+
Conceptual model validation
84+
85+
* [ ] Document and justify all modeling assumptions.
86+
* [ ] Review the conceptual model with people familiar with the real system to assess completeness and accuracy.
87+
88+
Experimentation validation
89+
90+
* [ ] Conduct warm-up analysis to determine appropriate initialisation period.
91+
* [ ] Use statistical methods to determine sufficient run length and number of replications.
92+
* [ ] Perform sensitivity analysis to test how changes in input parameters affect outputs.
93+
94+
Cross validation
95+
96+
* [ ] Search for similar simulation studies and compare the key assumptions, methods and results. Discuss discrepancies and explain reasons for different findings or approaches. Use insights from other studies to improve or validate your own model.

0 commit comments

Comments
 (0)