Personas
Fictional users with specific backgrounds, goals, and behaviors. Each one represents a distinct archetype who would use your app differently.
E2E Testing Methodology
Persona-driven testing validates user journeys, not just features. AI vision analysis catches what automation misses.
Feature tests verify code works. Persona tests verify users succeed.
Your tests pass. Your users still fail.
Three steps to uncover UX issues automated tests can't see.
Create fictional users with specific backgrounds, goals, and behaviors. Each persona represents a distinct way someone might use your app.
Execute task-based tests as each persona would naturally use your app. Capture screenshots at every decision point.
A vision model reviews every screenshot in context of the persona and task, identifying UX issues, accessibility problems, and design gaps.
Fictional users with specific backgrounds, goals, and behaviors. Each one represents a distinct archetype who would use your app differently.
Task-based tests that simulate real user sessions, plus free exploration to catch issues that goal-focused tests miss.
AI reviews screenshots in context of persona and task, catching UX issues, accessibility problems, and design inconsistencies.
Start with these templates, then create personas based on your actual users.
New User
"Is the site's purpose clear within 10 seconds?"
Researcher
"I need exact data, fast."
Accessibility Tester
"Can I navigate using only a keyboard?"
Design Reviewer
"Is this consistent and polished?"
Four observation types capture everything tests find.
"Search returned relevant results immediately with clear highlighting."
"Filter options work but could be more discoverable."
"Clicked 'Submit' but no confirmation appeared - did it work?"
"Back button returned to wrong page, lost all entered data."
/**
* 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');
}
});