The Industrial Evidence Chain testing regimen employs a defense-in-depth quality assurance strategy spanning four automated testing tiers:
+-----------------------------------------------------------------------------------+
| TESTING PYRAMID HIERARCHY |
+-----------------------------------------------------------------------------------+
| Tier 4: Live Research Benchmarks & Stress Tests |
| - Python Benchmark Harness (tests/benchmark_suite.py) |
| - Statistical Latency Distribution, Jitter, and Throughput |
+-----------------------------------------------------------------------------------+
| Tier 3: End-to-End Integration Test Suite |
| - Python Full Lifecycle Harness (tests/verify_api.py) |
| - Auth -> QR Resolve -> Ingest -> Media -> Anchor -> Tamper -> Verify |
+-----------------------------------------------------------------------------------+
| Tier 2: Backend Integration & Controller Tests |
| - IndustrialEvidenceChain.IntegrationTests |
| - WebApplicationFactory, In-Memory / Test DB, HTTP pipeline testing |
+-----------------------------------------------------------------------------------+
| Tier 1: Core Unit Tests |
| - IndustrialEvidenceChain.UnitTests |
| - Cryptographic Canonicalization, SHA-256 Hasher, ECDSA Digital Signature |
+-----------------------------------------------------------------------------------+
- Framework: xUnit (
2.9.3),FluentAssertions,Moq - Focus Areas:
EvidenceHashServiceTests: Asserts deterministic key sorting, whitespace elimination, coordinate normalization (6 decimals), and byte-for-byte SHA-256 digest reproducibility.DigitalSignatureServiceTests: Asserts ECDSA NIST P-256 keypair generation, valid signature verification, and signature rejection upon payload tampering.AssetServiceTests: Asserts asset code uniqueness and status transition validation.
- Framework:
Microsoft.AspNetCore.Mvc.Testing - Focus Areas:
- JWT Token generation and claims extraction.
- Role-Based Access Control enforcement across all HTTP verbs.
- Media upload streaming, 50MB file size limits, and MIME type validation.
- Runtime: Python 3.11 with
requestslibrary. - Workflow:
- Authenticates as Field Technician (
tech@proofchain.local). - Queries and validates industrial assets.
- Creates a new maintenance evidence record with GPS coordinates.
- Generates a synthetic inspection image and uploads to evidence media endpoint.
- Submits evidence record and captures canonical SHA-256 hash.
- Authenticates as Maintenance Manager (
manager@proofchain.local) and anchors hash to ledger. - Executes verification check: asserts
VERIFIEDstatus. - Authenticates as System Admin (
admin@proofchain.local) and invokes tamper endpoint on evidence description. - Re-executes verification check: asserts
INTEGRITY_MISMATCHstatus and tamper flag.
- Authenticates as Field Technician (
- Runtime: Python 3.11 with
scipy/numpystatistics. - Focus Areas:
- SHA-256 Canonical Hashing latency across 20 consecutive iterations.
- Blockchain Anchoring latency across 15 consecutive transactions.
- Verification & Ledger Query latency across 20 consecutive checks.
- Tamper Detection Accuracy rate across 15 deliberate database mutations.
- Storage Footprint Efficiency comparison (On-Chain vs. Off-Chain).