Sentience enables self-healing, intent-driven QA for modern web applications.
Instead of brittle selectors and blind retries, Sentience verifies user-visible outcomes using structured snapshots from a live, rendered browser (post-SPA hydration).
Sentience does not parse static HTML and does not rely on vision by default.
Most QA pipelines fail for reasons unrelated to product bugs:
This produces flaky tests, low trust, and high maintenance cost.
Traditional tests retry actions. Sentience retries verification.
Sentience treats QA as a verification problem, not a scripting problem.
Intent → Deterministic actions → Verified outcome
Key principles:
┌─────────────┐
│ Test step │
│ "Dashboard" │
└──────┬──────┘
│
▼
┌─────────────────────────┐
│ Snapshot #1 │
│ confidence: 0.42 │
│ reason: dom_unstable │
└──────┬──────────────────┘
│ retry verification
▼
┌─────────────────────────┐
│ Snapshot #2 │
│ confidence: 0.78 │
│ stable │
└──────┬──────────────────┘
│
▼
┌─────────────────────────┐
│ ASSERT PASS ✓ │
│ "Dashboard" visible │
└─────────────────────────┘
sleep(5)await runtime.check(
exists("role=heading text~'Dashboard'"),
label="dashboard_loaded"
).eventually(
timeout_s=10,
min_confidence=0.7,
max_snapshot_attempts=3
)Sentience retries only while the page is unstable and stops deterministically.
┌─────────────────────┐
│ User expectation │
│ "Continue is ready" │
└─────────┬───────────┘
│
▼
┌──────────────────────────────┐
│ Rendered DOM snapshot │
│ - button │
│ - text: "Continue" │
│ - enabled: false → true │
└─────────┬────────────────────┘
│
▼
┌──────────────────────────────┐
│ ASSERT PASS ✓ │
│ enabled == true │
└──────────────────────────────┘
QA verifies what the user sees, not how the DOM happens to be structured today.
runtime.assert_(is_enabled("role=button text~'Continue'"))
runtime.assert_(is_checked("role=checkbox name~'Subscribe'"))
runtime.assert_(value_contains("role=textbox name~'Email'", "@"))If verification fails, Sentience reports:
state_mismatch, no_match)┌────────────────────────┐
│ Snapshot attempts │
│ confidence < threshold │
└──────────┬─────────────┘
│ exhausted
▼
┌────────────────────────┐
│ Vision verifier │
│ YES / NO question │
└──────────┬─────────────┘
│
▼
┌────────────────────────┐
│ ASSERT PASS / FAIL │
│ (logged + auditable) │
└────────────────────────┘
await runtime.check(
exists("text~'Order Complete'"),
label="order_complete"
).eventually(
min_confidence=0.7,
max_snapshot_attempts=2,
vision_provider=vision_llm
)Vision is used only when structure fails. No silent recovery. No hidden AI behavior.
For teams that need deeper inspection, Sentience Studio provides an optional visual layer on top of the same runtime assertions.
Studio can be used to:
All QA verification works in CI without Studio. Studio is a debugging aid, not a requirement.
Sentience complements existing QA tools:
Unit tests → Playwright/Cypress → Sentience verification
Sentience turns QA from brittle scripts into verifiable contracts.