QMS Nordic
PrivacyTermsSecuritySub-processorsAI ActValidation

← Software validation pack

Test evidence report — QMS Nordic platform

Test evidence report — QMS Nordic platform
Document IDQMSN-TER-001
Applies toQMS Nordic v1.5.0
Part ofThe software validation pack
ProducedOn every change, automatically. This revision reflects the suite as it stood at v1.5.0.

This report states what our automated tests actually establish, and — more usefully to you — what they do not. It exists because a traceability matrix that names a test tells you a test exists; it does not tell you what the test asserts, whether it runs against a real database, or whether it would notice if the behaviour changed.

This is our evidence, not yours. It reduces what you need to execute under template T4; it does not replace it. An auditor assesses your testing, and no vendor test can cover your configuration, your data, or your process.


1. What runs, and when

The suite runs on every change and blocks the build. A change that breaks a test cannot be released, which is what makes the rest of this document worth reading.

At v1.5.0 the suite is 15 files, 306 tests: 262 executed and 44 skipped.

The 44 skipped are not failures and not hidden. 43 of them require a live database connection and are skipped when one is not configured — so they run in continuous integration against a database rebuilt from the migration history, and are skipped on a developer machine without credentials. Two files are affected in full: esignature-audit.integration (22) and document-lifecycle.integration (21). When you ask for a test run as evidence, ask for one in which those two executed — they produce the isolation, signature and audit-chain evidence, and a run showing 44 skipped produced none of it.

The 44th is a single case in ai-eval held back separately.


2. What each suite establishes

2. What each suite establishes
SuiteTestsWhat it establishes
validation-pack91This pack is internally consistent: every requirement identifier resolves, the URS and matrix carry exactly the registered set, no document cites an ID we do not ship, version stamps agree with package.json, and no repository path leaks into a customer document.
render-md30The renderer that produces every page of this pack from its source markdown does not corrupt it — a defect here would silently change what a document says.
lifecycle-gates25Document state transitions refuse what they should refuse. This is the suite behind URS-DOC-03.
validation-pack-docx28The .docx you download matches the document you read.
esignature-audit (integration)22Signature and audit-trail integrity against a real database, including the hash chain and the append-only triggers.
ai-eval22AI drafting produces documents of the expected shape, and refuses rather than inventing when it lacks grounding.
document-lifecycle (integration)21Lifecycle, access control and retention against a real database.
helpdesk-email19Inbound email is attributed to the right organisation and cannot cross between them.
token-weights14AI usage is metered at the published rate, including the commercial contract that spoken audio earns the same markup as text.
ai-draft13The drafting pipeline records what it generated, continues rather than truncating, and reports provider failures as failures instead of producing an empty document.
classifier7Device classification produces the expected class for known inputs.
rules-engine5The rule pack derives the obligations it should from a classification.
docx-roundtrip3The Edit-in-Word handoff preserves content and custom properties.
security-headers3Transport and content-security headers are present.
tenant-isolation3The application-layer tenant guard holds: a query from one organisation cannot read another's records.
checklist-templates-rls (integration)6Shared audit-checklist templates are readable by every organisation and writable by none, as the application role against a real database.
periodic-review + (integration)13Document review reminders: the 30-day window, the weekly dedupe, urgency once overdue, and the daily job end to end (URS-DOC-05).
reportability9Vigilance clocks run from the awareness date: Article 87's 2, 10 and 15 days; Part 803's 5 and 30.
capa-gates (integration)5CAPA cannot skip its actions, verify early, or close without a verified effectiveness check (§8.5.2(f)). Module evidence M-CAPA.
complaint-gates (integration)5A reportable complaint cannot close with its report outstanding; a report cannot be recorded on an unflagged one. M-CMP.
management-review-gates (integration)4Planned → conducted → closed in order; no closure without §5.6.3 outputs; frozen once closed. M-MR.
training-gates (integration)4Completed by the trainee; verified by a different person, by identity. M-TRN.
supplier-gates (integration)6Unique code; five qualification statuses; approval dated; an auditor cannot change it. M-SUP.
equipment-gates + calibration-gates (integration)7Unique asset code; status changes with reason; certificates by the right roles with due after performed. M-EQP.
software-gates (integration)4A software problem cannot close before its resolution is verified, nor by the engineer who resolved it. M-SW.
submission-gates (integration)4Evidence pins to a section; empty external evidence is refused; removal is on the trail. M-SUB.

3. What this evidence does not establish

Stated plainly, because the gap between "tested" and "validated" is where supplier assessments go wrong.

3. What this evidence does not establish
It is not a signed results reportThere is no per-release document with an approver's signature attesting to a specific run. This report describes the suite; it does not attest to one execution of it. If your procedure requires signed test evidence, that signature is yours to apply after you execute T4.
Passing tests are not proof of correctnessA test proves the behaviour it asserts. Several faults reached production during 2026-08 that this suite did not catch — see the release record — because no test asserted the thing that broke.
Coverage is not measuredWe do not publish a coverage figure, and would not want you to rely on one. Coverage measures which lines ran, not whether the right things were asserted.
Nothing here covers your configurationYour organisation's roles, document types, retention period and rule pack are yours. No test of ours exercises them.
AI output is not deterministicThe AI suites assert shape, grounding and refusal behaviour. They cannot assert that a generated document is correct, and you should not treat AI output as validated content.

4. How to use this under T4

  1. Read §2 and identify which of your T4 test cases we already exercise.
  2. For each, decide whether our assertion covers your intended use. Where it does, you may reduce scope and cite this report as the reason.
  3. For anything in §3, or anything specific to your configuration, execute it yourself. That is the bulk of T4 and is not reducible.
  4. Record the version you relied on — v1.5.0 — in your T5. Evidence has to stay retrievable at the version you validated against.

5. Asking us for a run

You may ask for the output of a test run at any release, and we will provide it. Ask for one in which the two integration suites executed rather than skipped; a run showing 44 skipped is a run without a database, and the isolation and signature evidence is precisely what those two produce.


QMSN-TER-001 · v1.5.0 · pack rev. J (2026-09-07)
Published at qmsnordic.com/legal/validation/test-evidence. Cite the version above in your validation record — a pack is evidence, and evidence has to stay retrievable at the version you validated against.

© 2026 Aitech International ApS · Denmark · All rights reserved.QMS Nordic™ is owned, developed, and copyright-protected by Aitech International ApS.
PrivacyTermsSecuritySub-processorsAI ActValidationHome