Skip to content

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=1 on 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.go
  • internal/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