Test Matrix
Columns: Platform · Deployment Model · Test Type · Scenario · Automated · Live E2E · Destructive · Expected Result · Notes
Vocabulary: Test strategy. Live vs automated: Overview. Commit-scoped operator notes: Live E2E.
Automated = reproducible script/Go test exists. Live E2E = real host. Destructive = mutates a running install or injects failure.
Windows Native
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| Windows |
Native |
Script |
Clean install helpers / preserve |
Yes |
Yes (lab pages + e2202ac declared) |
Yes |
Service + health |
Install.Tests.ps1 |
| Windows |
Native |
Script |
Prerequisites / Admin / AMD64 |
Partial |
Yes |
No |
Fail closed if missing |
Live on service E2E page |
| Windows |
Native |
Script |
Mongo service + TCP |
No (live) |
Yes |
No |
Mongo running, not installed by API |
|
| Windows |
Native |
Script |
go vet / test / build / check / migrate |
No (live) |
Yes |
No |
Exit 0 |
Source-based installer |
| Windows |
Native |
Go+script |
Service quoting / ImagePath |
Yes |
Yes |
No |
CreateService exe+argv |
imagepath_test.go |
| Windows |
Native |
Live |
LocalService + delayed start + Mongo dep + recovery |
No |
Yes |
No |
SCM settings match |
|
| Windows |
Native |
Script |
Port ownership / ServiceRepair |
Yes |
Yes |
Yes |
Own PID is not EXIT 15 |
PortOwnership.Tests.ps1 |
| Windows |
Native |
Live |
Firewall Domain/Private |
No |
Yes |
Yes |
One inbound rule |
|
| Windows |
Native |
Live |
health/live + ready |
No |
Yes |
No |
HTTP 200 |
|
| Windows |
Native |
Live |
Reboot auto-start |
No |
Yes |
Yes |
No manual Start-Service |
|
| Windows |
Native |
Script |
NO-OP same commit |
Yes |
Yes |
No |
No backup/restart |
UpdateDecision.Tests.ps1 |
| Windows |
Native |
Script |
ForceRedeploy |
Yes |
Yes |
Yes |
Full pipeline |
|
| Windows |
Native |
Script |
Config preserve |
Yes |
Yes |
No |
SHA unchanged |
|
| Windows |
Native |
Script+live |
Rollback AfterBinarySwap |
Yes |
Yes |
Yes |
Restore + exit ≠ 0 |
Lab injection |
| Windows |
Native |
Live |
Uninstall / reinstall |
No |
Yes |
Yes |
Runtime kept by default |
|
Windows Docker
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| Windows |
Docker |
Script |
EnvFile / HostPort / ContainerPort |
Yes |
Declared e2202ac; older pages RETEST |
No |
Mapping ${IQV_HOST_PORT}:${HTTP_PORT} |
DockerDeploy.Tests.ps1 |
| Windows |
Docker |
Script |
External Mongo / host.docker.internal |
Yes |
Declared e2202ac |
No |
Localhost URI fail |
|
| Windows |
Docker |
Script |
Port ownership vs native 4242 |
Yes |
Partial older labs |
No |
Only HostPort conflicts |
|
| Windows |
Docker |
Live |
Clean install + live/ready |
No |
Declared e2202ac |
Yes |
Container healthy |
Older attempts failed tooling |
| Windows |
Docker |
Live |
Reboot |
No |
Declared e2202ac |
Yes |
unless-stopped |
|
| Windows |
Docker |
Script+live |
NO-OP |
Yes |
Declared e2202ac |
No |
No recreate |
|
| Windows |
Docker |
Script+live |
ForceRedeploy |
Yes |
Declared e2202ac |
Yes |
Recreate |
|
| Windows |
Docker |
Script+live |
Controlled rollback + metadata |
Yes |
Declared e2202ac |
Yes |
Snapshot restore, Mongo untouched |
-TestFailAt AfterComposeUp |
| Windows |
Docker |
Script |
Config/env preservation |
Yes |
Declared e2202ac |
No |
Env not overwritten |
|
| Windows |
Docker |
Script |
Image cleanup safety |
Yes |
No |
Yes |
No system prune -a |
|
Linux Native
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| Linux |
Native |
Script |
Package SHA / no Go toolchain |
Yes |
Yes (offline package) |
No |
Mismatch refuses deploy |
package_linux_test.sh |
| Linux |
Native |
Script |
Prebuilt install / actor / NO-OP / ForceRedeploy |
Yes |
Partial live |
Yes |
SHA decision |
prebuilt_deploy_test.sh |
| Linux |
Native |
Live |
Clean install + systemd |
No |
LIVE PASS (older page) |
Yes |
Unit active |
|
| Linux |
Native |
Live |
Reboot |
No |
LIVE PASS |
Yes |
enable + restart on-failure |
|
| Linux |
Native |
Live |
NO-OP |
No |
LIVE PASS |
No |
Same SHA |
|
| Linux |
Native |
Script |
Rollback IQV_TEST_FAIL_AT=Health |
Yes |
NOT E2E VALIDATED |
Yes |
Previous binary |
|
| Linux |
Native |
Live |
Inbound POST |
No |
BLOCKED / RETEST |
No |
Needs real actor |
Not in e2202ac list |
| Linux |
Native |
Script |
Uninstall preserve |
Yes |
NOT E2E VALIDATED |
Yes |
Env kept |
|
Linux Docker
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| Linux |
Docker |
Script |
Package + image SHA |
Yes |
Declared e2202ac |
No |
No load on mismatch |
package_docker_linux_test.sh |
| Linux |
Docker |
Script |
docker load, no pull/build |
Yes |
Declared e2202ac |
Yes |
Offline only |
docker_deploy_test.sh |
| Linux |
Docker |
Script |
External Mongo / reject loopback |
Yes |
Declared e2202ac |
No |
URI as-is |
|
| Linux |
Docker |
Script |
Port / ss header not occupancy |
Yes |
Older LIVE PASS after fix |
No |
EXIT 15 only for LISTEN |
|
| Linux |
Docker |
Live |
Clean install + health |
Mock auto; live declared e2202ac |
Declared e2202ac |
Yes |
live/ready |
|
| Linux |
Docker |
Live |
Reboot |
No |
Declared e2202ac |
Yes |
unless-stopped |
|
| Linux |
Docker |
Script+live |
NO-OP same image |
Yes |
Declared e2202ac |
No |
No restart |
|
| Linux |
Docker |
Script+live |
New-image update |
Yes |
Declared e2202ac |
Yes |
Swap image |
|
| Linux |
Docker |
Script+live |
ForceRedeploy --force-recreate |
Yes |
Older LIVE FAIL; e2202ac declared PASS |
Yes |
New container |
Code fix after older fail |
| Linux |
Docker |
Script+live |
Immutable rollback |
Yes |
Declared e2202ac |
Yes |
Snapshot; Mongo untouched |
--test-fail-at AfterComposeUp |
| Linux |
Docker |
Script |
Metadata preservation on failed update |
Yes |
Declared e2202ac |
No |
Success metadata not written |
|
| Linux |
Docker |
Live |
Inbound functional POST |
No |
Declared e2202ac |
No |
200/partial with real actor |
|
| Linux |
Docker |
Script |
Auto-update timer default off |
Yes |
No |
No |
No network when disabled |
auto_update_test.sh |
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| Any |
N/A |
Unit/HTTP |
JSON/XML inbound |
Yes |
Optional lab POST |
No |
Contract + envelope |
308 func Test across 42 files |
| Any |
N/A |
Integration |
Mongo persist |
Conditional |
No default CI |
Yes |
Skip without URI |
Never production URI |
Release acceptance (summary)
| Platform |
Deployment Model |
Test Type |
Scenario |
Automated |
Live E2E |
Destructive |
Expected Result |
Notes |
| All |
All shipped |
Checklist |
Release acceptance |
Partial |
Per platform |
Mixed |
Honest gaps listed |
v1.0.0 not tagged here |