Engineering · TestPulse
Evidence-first AAA diagnosis. Nothing collapses into a verdict.
TestPulse is a Python package that diagnoses 802.1X, RADIUS, EAP-TLS and TACACS+ from the wire evidence you already have. Every diagnosis answers four things separately — observed outcome, cause family, why, fix direction — and refuses to collapse them into one confident verdict. Runs on your machine. Points at your own AAA server. Grades itself against faults it can't see the answer to.
The four primary use cases
Diagnosis · Forensics · Prognosis · Classification.
Each use case is a typed finding contract with its own held-out evaluation set. A cause family does not ship until it has cleared six graduation gates against faults injected onto a real wire.
01 · Diagnosis
Named cause, evidence attached.
Structured diagnosis across RADIUS, TACACS+, 802.1X, EAP-TLS. Cause families with detection thresholds and expected counters. Returns a named class, not free text — never "RADIUS is flaky".
→ observed outcome, cause family, why, fix direction
02 · Forensics
Timeline and provenance.
Reconstruct exactly what happened across logs, capture, directory and endpoint sources. Every claim is traceable to the packet or line it came from. Provenance travels with the record.
→ ladder diagram, EAPOL trace, packet-anchored timeline
03 · Prognosis
What will fail next.
Forecasts on observed drift and recurrence. Advisory only — a prognosis never executes an action, never sends a device-level command, never modifies configuration. It flags what will break so a human decides.
→ risk forecast with confidence band, not a promise
04 · Classification
Route findings to the right hands.
Every finding carries a cause family, severity and target role so it lands with the person who can act on it. Classification is the coordination layer between diagnosis and action.
→ role-aware routing, no cross-scope leakage
Additional capabilities
Compliance and AI Validation, built in — not bolted on.
Compliance
The finding trail is the record.
Every diagnosis, every capture, every escalation and every abstention lands in an evidence bundle keyed by run id. The bundle is verifiable independently of TestPulse itself. Compliance officers read the bundle, not a summary.
AI Validation
Graded, not launched.
The engine is scored blind against faults it can't see the answer to. A cause family clears six graduation gates — breadth, mastery, PCAP-anchored evidence, abstention, adversarial resilience, cross-lens correctness — before it ships to live diagnosis.
The evidence loop
Inject → diagnose blind → grade → reinforce → graduate.
A labelled fault goes on the real wire, derived from the network's own source of truth. The engine reasons from packets alone (label held out — no leakage). The verdict is scored against the answer key, with evidence gating to stop false credit. Correct runs are gold-anchored into the corpus; wrong ones are kept as counter-examples. Only after all gates clear does the family ship to live diagnosis.
The rule: a cause family isn't "supported" until the engine has proved it. Marketing pages don't get to move that line.
Get TestPulse Pro, point it at your lab, see what it finds.
The wheel, an SBOM, release notes, a User Guide, and — if you don't have gear to point at — the Virtual Lab that TestPulse was developed against. All from a single downloads page.