Skip to content
PПромтбук
RUEN
01Аудит

Матрица функциональной регрессии

Exhaustive матрица: список ВСЕХ интерактивных функций × текущий статус (pass / partial / fail / not tested) × cross-browser/device. Не выборка — система.

Smoke = «работает ли вообще». Regression matrix = «работает ли всё, что было, и в каком состоянии». Это не выборочный тест, а структурированный pass с галочкой на каждую функцию.

Без matrix регрессии незаметны: фича B сломалась после релиза, никто не открыл этот flow в smoke — пользователь поймает первым.

Product: {{product_url}} Scope: {{scope}}

1. Что такое «функция»

Функция = одна observable действие, которое пользователь может вызвать и проверить outcome.

  • ✓ «Кликнуть Save в settings — изменения сохраняются» — функция
  • ✓ «Скролл вверх по странице с длинным контентом» — функция
  • ✓ «Cmd+K открывает search palette» — функция
  • ✗ «Settings page exists» — это не функция, это страница
  • ✗ «UI выглядит хорошо» — это не функция, это design audit

Каждая функция: action → expected outcome → fail criteria.

2. Inventory всех функций (часть 1)

Это самое долгое. Сядь и пройди по всем surfaces из product-capability-map. Для каждой страницы / экрана / поверхности выпиши:

  • header → каждая ссылка → destination + state
  • sidebar → каждая ссылка / collapse / expand
  • breadcrumbs → каждый сегмент кликабелен и работает
  • search palette → открытие / закрытие / навигация по результатам / select
  • back button → возвращает на previous + scroll position
  • forward button → если был back

Interactive functions per page

Для каждой страницы:

  • все buttons → каждая (включая secondary, tertiary, link-style)
  • все forms → каждое поле + submit + error states
  • все toggles / switches / radios / checkboxes
  • все modals → открыть / закрыть / dismiss outside / ESC
  • все dropdowns / selects → open / select / multi-select
  • все sortable / filterable / paginatable lists

Cross-cutting functions

  • copy-to-clipboard на caждой иконке копирования
  • share buttons (если есть)
  • favorite / bookmark / pin
  • export / download
  • print stylesheet
  • theme switch (light/dark)
  • locale switch (если bilingual)
  • keyboard shortcuts (все)
  • drag-and-drop (если есть)
  • file upload (если есть)

Auth / session functions

  • login (каждый provider)
  • signup
  • logout
  • password recovery
  • email verify
  • session expire → re-auth flow
  • multi-tab session sync

Notifications / async functions

  • toast appears на success
  • error toast на failure
  • email-уведомление дошло
  • push (если есть)
  • in-app notification badge

3. Матрица состояний

Когда у тебя список ~80-200 функций, разнеси по матрице:

FunctionBrowserDeviceStatusLast testedIssue
Cmd+K searchChrome 132Desktoppass2026-05-20
Cmd+K searchSafari 18Desktoppartial2026-05-20Cmd+K не работает на Safari, нужен Cmd+K + clear
Cmd+K searchChromeMobilepass2026-05-20Touch open работает
Copy code buttonAllAllpass2026-05-20
Favorite toggleAllAllfail2026-05-20После logout teряет state — bug #234
..................

Status definitions

  • pass — работает 100% expected
  • partial — работает но с известным limitation (i.e. без анимации, без скролла, не работает offline)
  • fail — broken — пользователь не может выполнить
  • not tested — не проверено в этом раунде (важно: НЕ assume «pass»)
  • flaky — иногда работает, иногда нет (race condition или non-determinism)

Matrix coordinates

  • Browser: Chrome (latest + Chrome-2), Safari (latest), Firefox (latest), mobile Safari, mobile Chrome
  • Device: Desktop (≥1280px), Tablet (768-1024), Mobile (≤640px)
  • Network: WiFi (default), Slow 3G (для critical flows)
  • Auth: logged-out, logged-in, admin (если roles есть)

Не tested all coordinates всё — выбрать coverage. Для критических — все coordinates. Для edge — main coordinate.

4. Что приоритизировать

После заполнения у тебя ~80-200 строк × 3-5 coordinates = ~300-1000 ячеек. Не «протестировать всё» — это работа на неделю. Approach:

Tier 1 (test always)

  • Все auth functions (signup, login, logout, recovery)
  • Все navigation (header, sidebar, primary CTAs)
  • Все search / filter / sort
  • Все critical flows (5-7 из critical-flow-e2e-plan)
  • Все payment / billing

Tier 2 (test на major release)

  • Settings / preferences
  • Sharing / exports
  • Notifications
  • Theme / locale switches

Tier 3 (test ежеквартально или при изменениях)

  • Edge interactions (multi-tab, browser back, etc.)
  • Print stylesheet
  • Keyboard shortcuts depth

5. Workflow: как реально проходить

Round 1: full pass

Один человек, один день. Прокликать всё из inventory. Не углубляться в каждый bug — отметить status + одна строка описания. Цель: snapshot, не fix.

Round 2: drill into fails

Каждый fail → repro steps + screenshot/video + browser/device. Превратить в issue.

Round 3: re-test after fixes

Перед релизом — repeat Tier 1.

Maintenance: на каждый deploy

Перед deploy: re-test затронутых функций + Tier 1 smoke. После deploy: визуальный smoke (см. post-deploy-smoke-plan).

6. Tools

  • Spreadsheet (Google Sheets, Excel) — primary tracking, простое и работает
  • Test Management Tool (TestRail, Xray) — если команда >10 и формальные процессы
  • Playwright + matrix — автоматизировать Tier 1 (см. critical-flow-e2e-plan)
  • Browserstack / Sauce Labs — для cross-browser/device coverage без 5 устройств на столе
  • Screenshot diffing (Percy, Chromatic, Argos) — для visual regression на каждый PR

7. Anti-patterns

  • ❌ Тестировать «всё одинаково тщательно» — Tier 1 deep + Tier 3 surface ОК
  • ❌ Matrix без status definitions — «работает» vs «partially работает» расходятся в interpretation
  • ❌ Не пересматривать matrix — функции добавляются, matrix устаревает за месяц
  • ❌ One-person matrix без peer review — bias, важные функции забываются
  • ❌ Manual matrix навсегда — Tier 1 должен переходить в automated tests
  • ❌ Status «not tested» = «pass» — assume → пропустишь bug
  • ❌ Тестировать только в Chrome — Safari + Firefox разнятся в важных вещах
  • ❌ Тестировать только desktop — half users на mobile
  • ❌ Не записывать видео для fails — repro заняет вдвое больше времени

8. Output

  1. Inventory list: ~80-200 функций в Markdown / Spreadsheet
  2. Filled matrix с status per coordinate
  3. Top-10 critical fails + issue tracker links
  4. Tier 1 automation roadmap — что в первую очередь автоматизируем
  5. Re-test schedule — какие функции pre-release, какие quarterly
  6. Coverage report: % функций tested per coordinate (target ≥ 90% для Tier 1)
К подразделу «Аудит»
Похожие промты