Blog

Notes on testing what you ship.

Playwright, browser agents, and the QA decisions behind a calm release. Written by the people building Smoketest.

22 posts
Engineering11 min read

Can AI Write Your E2E Tests? What Actually Works in 2026

AI can now draft, generate, and execute end-to-end tests, but it still cannot decide what your product must guarantee. This guide compares the four approaches that work in 2026 and shows which one fits your team.

Engineering9 min read

Playwright Fixtures vs Page Object Model in 2026

Your Playwright suite needs shared authentication, test data, and selectors, but choosing between fixtures and page objects can create more structure than clarity. In 2026, start with fixtures for lifecycle and dependency injection, add thin page helpers where repetition is costly, and reserve a full POM for large suites with dedicated owners.

Engineering10 min read

Stagehand Error Handling in Production

Stagehand failures arrive as schema errors, stale actions, early agent exits, startup timeouts, and deployment faults, but the docs do not put them in one error-handling model. This guide classifies each failure, decides what deserves a retry, and shows how to preserve the prompt and action trail for the postmortem.

Engineering10 min read

getByRole vs data-testid: A Playwright Selector Strategy That Survives Redesigns

Your Playwright suite passed until a redesign moved a wrapper, changed a class, or renamed a button. Use role and label locators for user-facing contracts, reserve test IDs for elements without a dependable accessible identity, and migrate CSS selectors as you touch them.

Engineering10 min read

Stagehand Cost Optimization and the Cache Misses Nobody Warns You About

Stagehand looked cheap until the token bill arrived, and the cache you enabled keeps returning MISS on identical calls. Here is what actually drives cost per action, the undocumented hit-count threshold behind silent serverCache failures, and how to write instructions that cache.

Engineering9 min read

Stagehand vs Playwright, and When You Need Both

Every Stagehand vs Playwright comparison stops at 'AI is flexible, selectors are fast.' The real production question is where each one belongs in the same script. Here is the hybrid architecture, the caching mechanics that make AI actions deterministic, and cost math from primary sources.

Engineering11 min read

The Best Automated Regression Testing Software in 2026

Your release cadence has outrun the team's ability to recheck every working test, and another coded test suite may create as much maintenance as confidence. This guide compares eight regression testing options by who writes and maintains the tests, with pricing verified in July 2026.

Engineering10 min read

How to Fix the Playwright Strict Mode Violation

Your test just died with 'strict mode violation: locator resolved to 2 elements' and the click never happened. The error means your locator matched more than one element, and Playwright refuses to guess. Here are the four fixes in preference order, plus why the error message itself usually contains the answer.

Engineering9 min read

Persisting Auth Sessions in Stagehand v3

Stagehand v3 removed storageState() and userDataDir persistence is reported broken, so your agent logs in on every run. The reliable fix today is exporting cookies with context.cookies() and re-importing them with addCookies(), with Browserbase Contexts as the cloud equivalent.

Engineering9 min read

How to Fix Playwright TimeoutError

Playwright can report the same slow or missing element as an action, assertion, navigation, or test timeout, and changing the wrong setting wastes time. This guide maps each error string to its timeout, then shows how to fix the underlying wait instead of hiding it.

Engineering13 min read

The 8 Best Synthetic Monitoring Tools in 2026

Your uptime monitor says 200 OK while checkout has been broken for three days. Here are eight synthetic monitoring tools compared honestly, with pricing verified from each vendor's own site, organized by code-first vs no-code and uptime-ping vs full-test.

Engineering10 min read

Your Playwright Tests Pass Locally and Fail in CI

Your Playwright suite is green on your laptop and red in GitHub Actions, and the failure is always a timeout waiting for a locator. The cause is almost always an environment difference: CI is slower, headless, 1280x720, parallel, and missing your local env vars. Here is how to find which one, with a config that closes the gap.

Engineering9 min read

The Best BrowserStack Alternatives in 2026

BrowserStack alternatives organized by the reason you're switching. Cheaper device clouds, enterprise options, self-hosted routes, and the tools to pick when what you actually need is test verification, not a device cloud. All pricing verified July 2026.

Engineering13 min read

The 12 Best AI Testing Tools in 2026

Twelve AI testing tools, one honest comparison. Verified pricing, real categories, and what each tool is genuinely best at, from agentic test generation to managed coverage to production monitoring. Written by a team that builds one of them.

Engineering8 min read

How We Made Our AI Browser Agent Stop Clicking the Wrong Button

Letting an LLM pick page elements by description is flaky. Here's how we use Playwright's accessibility tree and aria-ref locators to give the model stable element IDs instead, with the real code from production.

Reliability7 min read

The Testing Pyramid Is Wrong for Startups

The testing pyramid was designed in 2009 for teams with dedicated QA and overnight test runs. For a five-person SaaS shipping daily, the right base isn't unit tests. It's smoke tests. Here's the case.

Engineering6 min read

Playwright Accessibility Testing with ARIA Snapshots and Role Assertions

Playwright gives you three accessibility-aware ways to assert on a page: getByRole, ARIA snapshots, and visual snapshots. Here's what each one catches, when to use it, and where axe-playwright fills the gap.

Engineering7 min read

Smoke Testing vs Regression Testing vs E2E Testing, and When You Need Each

Smoke, regression, and end-to-end testing get used interchangeably, but they answer different questions and run at different times. Here's how they relate and which one to build first.

Reliability7 min read

Your Uptime Monitor Says 200 OK While Your Checkout Is Broken

A 200 means your server answered. It says nothing about whether a user can actually log in, check out, or place an order. Here's a deploy that cost us thousands of orders while every dashboard stayed green, and why a ping could never have caught it.

Engineering9 min read

What Works (and What Breaks) Running Playwright MCP in Claude Code

Playwright MCP gives Claude Code a real browser to author and debug tests against. It's genuinely useful for some things and breaks predictably on others. A frank account from people who build browser testing for a living.

Engineering11 min read

What Is Smoke Testing? A Complete Guide for SaaS Teams

Smoke testing checks whether your product's critical tests (login, onboarding, checkout) still work after a deploy, before a user finds out they don't. Here's how it works and where it fits when you ship every day.

Company2 min read

Your monitor lied to you

Uptime checks tell you your server answered. They don't tell you your product worked. That gap is why we built Smoketest.

Give it one ticket.

Book a call and we will run it on a real ticket with you, then shape Smoketest around how your team ships.

Ready for QA
Done
ACM-436
Show proration on the invoice PDF
Passed, recording