6. NFR Verification

Levi’s Buy Plan Platform · non-functional verification, one page
v2 · Sprint 13
verified Jul 9, 2026

1 · Security behaviors verified VERIFIED · test suite

  • Password hashing with bcrypt — hashes never returned in any response
  • SQL injection: 100% blocked — all 6 payloads (DROP, OR 1=1, UNION…) handled safely
  • Account lockout after 3 failed attempts, 60-second cooldown
  • JWT expiry enforced at 12 hours; tampered/expired tokens rejected (403)
  • RBAC enforced by guards at the class level; unauthorized roles rejected
  • Log masking: passwords redacted, emails obfuscated (t***t@e***e.c***m)
  • Anti-enumeration: identical 404 for “not found” and “no access”

2 · Data integrity verified VERIFIED · test suite

  • Transaction rollback verified — database errors inside a transaction roll back cleanly, never leaving partial writes
  • 50,000-row batch exports completed intact
  • Referential integrity enforced — foreign-key violations caught and mapped, not silently accepted
  • Duplicate detection active — files with duplicate composite keys rejected; concurrent duplicate creates handled safely
  • Multi-table joins validated across all four hierarchy levels
  • Environment isolation: the database search path is reset on every connection release

3 · Resilience & failover verified VERIFIED · test suite

  • Storage failover: S3 failures fall back to local storage automatically — uploads succeed and remain readable when S3 is unavailable
  • Graceful under S3 timeout & throttling — both fall back without error to the caller
  • Connection retry logic recovers from transient database failures and continues serving subsequent queries
  • Connection-pool auto-recovery in under 30 seconds, degrading gracefully (HTTP 503) while recovering
  • Partial-failure handling: mixed success/failure batches complete for the good items without degrading the system
  • Multi-tenant isolation explicitly asserted — zero cross-environment access

4 · Performance (validated, P95) MEASURED · load validation records

OperationP95Condition
Dashboard load< 1 sadmin engagement & finalization KPIs
Store list< 1 s500-store listing
Planning save< 2 smulti-level plan write with recalculation
Excel export< 20 smulti-level buy-plan workbook
100K-row upload< 5 minvalidate + persist, end to end
1M-row capacity< 400 MBpeak memory — capacity proven at full volume
Code-path timings from the automated suite confirm efficient hot paths underneath these numbers: planning queries with historical + AI joins in < 5 ms, upload validate-and-persist in < 50 ms, single-workbook export in ≈ 100 ms.

5 · Concurrency under load MEASURED · load validation records

50–100 concurrent users sustained under load testingno degradation
Baseline · single export9.4 exports/s
concurrent22.1 exports/s×2.4
10× concurrent51.5 exports/s×5.5
Throughput rose with concurrency and no degradation was flagged. Under load, 50,000-row batches added only 1.2–6.9 MB of heap — memory stays bounded as volume scales.

6 · Operations readiness DOCUMENTED · ops & deployment records

  • Structured JSON logs with correlation IDs — every request traceable end to end across services
  • Production alarms on CPU >80%, memory >90%, and error rate >1% — each backed by a runbook
  • Graceful degradation configured: 503 + Retry-After served during pool recovery
  • Tested rollback with database snapshots, plus automated post-deploy smoke tests on every release
  • Log retention: 30 days with automated archival to S3 under lifecycle policies

7 · Methodology

SOURCESections 1–3 are derived from automated test execution (192 suites, 3,986 tests, Jul 9 2026 — bundled log); sections 4–5 from load/performance validation records; section 6 from operational configuration and deployment records.