E2E Testing Methodology

Test like your users think

Persona-driven testing validates user journeys, not just features. AI vision analysis catches what automation misses.

The Testing Blind Spot

Feature tests verify code works. Persona tests verify users succeed.

Traditional E2E

  • Login form submits successfully
  • Search returns results
  • Filter applies correctly
  • Data displays in table

Persona-Driven

  • Can a trial user find the key feature before giving up?
  • Is the value proposition clear within 10 seconds?
  • Can keyboard users complete the signup flow?
  • What makes power users switch to a competitor?

Your tests pass. Your users still fail.

How It Works

Three steps to uncover UX issues automated tests can't see.

1 2 3

Define Personas

Create fictional users with specific backgrounds, goals, and behaviors. Each persona represents a distinct way someone might use your app.

Run Journeys

Execute task-based tests as each persona would naturally use your app. Capture screenshots at every decision point.

AI Analyzes

A vision model reviews every screenshot in context of the persona and task, identifying UX issues, accessibility problems, and design gaps.

The Three Pillars

Personas

Fictional users with specific backgrounds, goals, and behaviors. Each one represents a distinct archetype who would use your app differently.

4 attributes per persona

Journeys

Task-based tests that simulate real user sessions, plus free exploration to catch issues that goal-focused tests miss.

4-6 tasks + exploration per persona

Vision Analysis

AI reviews screenshots in context of persona and task, catching UX issues, accessibility problems, and design inconsistencies.

Sees what automation can't

Example Personas

Start with these templates, then create personas based on your actual users.

FV

First-Time Visitor

New User

"Is the site's purpose clear within 10 seconds?"

Onboarding Navigation Help/About
PR

Power User

Researcher

"I need exact data, fast."

Complex Search Filtering Data Export
AA

A11y Auditor

Accessibility Tester

"Can I navigate using only a keyboard?"

Focus States Headings Screen Reader
UX

UI/UX Designer

Design Reviewer

"Is this consistent and polished?"

Hierarchy Spacing Responsive

A Language for Feedback

Four observation types capture everything tests find.

success Goal achieved smoothly

"Search returned relevant results immediately with clear highlighting."

note Room for improvement

"Filter options work but could be more discoverable."

confusion Unclear what to do

"Clicked 'Submit' but no confirmation appeared - did it work?"

frustration Goal blocked

"Back button returned to wrong page, lost all entered data."

See It In Action

persona-trial-user.spec.ts TypeScript
/**
 * Persona: Alex - Trial Evaluator
 * Background: PM at a Series A startup, has 10 min between meetings
 * Goal: Determine if the product delivers on its landing page promise
 */

test('find the feature from the demo video', async ({ page }) => {
  await page.goto('/dashboard');
  collector.screenshot(page, 'dashboard-first-look');

  // Look for "AI Analysis" feature shown in marketing
  const feature = page.getByRole('button', { name: /ai|analyze/i });

  if (await feature.isVisible({ timeout: 5000 })) {
    collector.observe('success', 'Found promoted feature quickly');
  } else {
    collector.observe('frustration', 'Cannot find advertised feature');
  }
});

Ready to test like your users think?

Read the Guide