Test Strategy¶
This document defines how IQV Integration API quality evidence is classified.
Code that exists is not the same as a live deployment that was validated.
Three evidence levels¶
| Level | Name | Meaning |
|---|---|---|
| IMPLEMENTED | Code / scripts present | Feature exists in the repository |
| AUTOMATED TESTED | Unit / script / static suite | Reproducible automated checks passed in CI or local pipelines |
| LIVE E2E VALIDATED | Real OS / Docker lab | Installer/update/reboot/health exercised on a real machine or daemon |
Never treat Level 1 or 2 success as Level 3 success.
Test levels¶
Level 1 — Unit / component¶
go test ./... -count=1on packages that contain*_test.go- PowerShell/Bash script unit tests under
scripts/**/tests/ - PowerShell AST parse /
bash -n(syntax only)
These prove isolated behavior. They do not prove Windows Service, systemd, or Docker deployment success.
Level 2 — Integration¶
Optional MongoDB-backed tests (examples):
internal/inbound/workorder/mongo_integration_test.gointernal/outbound/machineevents/mongo_integration_test.go
Default pipeline behavior: CONDITIONAL / SKIPPED unless:
text
MONGODB_INTEGRATION_TEST_URI=<non-production URI>
INTEGRATION_ACTOR_USER_ID=<valid ObjectId> # when required by the test
Never point these at production databases.
Level 3 — Deployment E2E¶
Real environments:
| Deployment | Live E2E (read both historical lab pages and commit-scoped notes) |
|---|---|
| Windows Native Service | Historical lab YES (45 PASS). Operator-declared e2202ac subset also recorded. |
| Ubuntu systemd | Offline install / reboot / NO-OP LIVE PASS. Inbound POST BLOCKED / RETEST REQUIRED. |
| Linux Docker | Older pages: mixed / ForceRedeploy fail then code fix. Operator-declared e2202ac qualification recorded separately. |
| Windows Docker | Older pages: RETEST REQUIRED. Operator-declared e2202ac qualification recorded separately. |
Canonical comparison: Live E2E Acceptance.
See:
Status vocabulary (EN/TR consistent)¶
| Status | Meaning |
|---|---|
| PASS | Executed and succeeded (live or automated, as labeled) |
| AUTOMATED PASS | Automated suite passed |
| FAIL | Executed and failed |
| NOT RUN | Not executed |
| NOT E2E VALIDATED | Implemented (and maybe automated) but no live deployment E2E |
| CONDITIONAL | Requires env/tooling (e.g. Mongo integration URI) |
| SKIPPED | Intentionally skipped (missing tool/prerequisite) |
Standard validation commands¶
text
go fmt ./...
go vet ./...
go test ./... -count=1
go build ./cmd/iqv-integration-api
Script / docs tooling (when available):
```text
PowerShell AST parse of scripts/windows/*/.ps1¶
bash -n on scripts/linux/*/.sh¶
powershell -File scripts/windows/common/tests/.Tests.ps1 bash scripts/linux/common/tests/.sh mkdocs build -f mkdocs.en.yml --strict mkdocs build -f mkdocs.tr.yml --strict ```
Known environment skips on the Windows development lab used for this documentation cycle:
| Check | Status | Reason |
|---|---|---|
go test -race ./... |
SKIPPED | Requires cgo; not available in that environment |
| PSScriptAnalyzer | SKIPPED | Tool not installed |
| ShellCheck | SKIPPED | Tool not installed |
| Docker daemon E2E | NOT RUN | No Docker daemon for live compose/build E2E |