Зачем Тестирование на Основе Рисков?

Ни один проект не имеет неограниченных ресурсов. Невозможно тестировать всё одинаково. Тестирование на основе рисков отвечает на ключевой вопрос: На чём сосредоточить усилия?

Ответ: на областях с наивысшим риском — где дефекты наиболее вероятны И где их последствия наиболее серьёзны.

Понимание Риска

Риск = Вероятность × Влияние

  • Вероятность: Насколько вероятно существование дефекта в этой области?
  • Влияние: Если дефект есть, насколько серьёзны последствия?

Факторы Вероятности

ФакторПовышает Вероятность
Сложность кодаСложные алгоритмы, много условий
Новая технологияПервый опыт с фреймворком или API
Опыт разработчикаДжуниор или новый член команды
Частота измененийЧасто модифицируемый код
Точки интеграцииНесколько взаимодействующих систем
Жёсткие срокиКод, написанный под давлением
ИсторияОбласть с множеством прошлых дефектов

Факторы Влияния

ФакторПовышает Влияние
Финансовые транзакцииПотеря денег, неправильные списания
Безопасность/приватностьУтечка данных, несанкционированный доступ
Критичность безопасностиФизический вред пользователям
Основной пользовательский потокВход, оформление заказа, ключевые функции
Регуляторные требованияНарушения compliance, штрафы
Репутация бизнесаПубличные сбои
Целостность данныхНеобратимая потеря или повреждение данных

Продуктовые vs Проектные Риски

Продуктовые Риски

Потенциальные проблемы качества ПО:

РискВероятностьВлияниеУровень
Ошибка обработки платежейСредняяКритическоеВысокий
Поиск возвращает неверные результатыНизкаяВысокоеСредний
CSS сломан на мобильныхСредняяСреднееСредний
Опечатка на странице помощиНизкаяНизкоеНизкий

Проектные Риски

Угрожают процессу тестирования:

РискВероятностьВлияниеСнижение
Тестовое окружение недоступноВысокаяВысокоеРезервное окружение, Docker
Требования меняются в середине спринтаСредняяВысокоеПроцесс контроля изменений
QA-инженер заболелНизкаяВысокоеCross-training
API третьей стороны недоступенСредняяСреднееMock-сервисы

Матрица Рисков

graph TB subgraph Матрица Рисков HH[ВЫСОКАЯ Вероятность
ВЫСОКОЕ Влияние
Критический] HL[ВЫСОКАЯ Вероятность
НИЗКОЕ Влияние
Средний] LH[НИЗКАЯ Вероятность
ВЫСОКОЕ Влияние
Высокий] LL[НИЗКАЯ Вероятность
НИЗКОЕ Влияние
Низкий] end style HH fill:#F44336,color:#fff style HL fill:#FFC107,color:#000 style LH fill:#FF9800,color:#fff style LL fill:#4CAF50,color:#fff

Как Использовать Матрицу

УровеньПодход к Тестированию
КритическийВсе техники: функциональное, негативное, граничное, безопасности, производительности, исследовательское
ВысокийПолное покрытие: функциональное + негативное + граничное
СреднийСтандартное: функциональные кейсы, ключевые негативные
НизкийМинимальное: smoke-тесты, базовая валидация

Процесс Тестирования на Основе Рисков

graph LR RI[1. Идентификация
Рисков] --> RA[2. Анализ
Рисков] RA --> RP[3. Приоритизация
на Основе Рисков] RP --> TE[4. Выполнение
Тестов] TE --> RM[5. Мониторинг
Рисков] RM --> RI style RI fill:#4CAF50,color:#fff style RA fill:#2196F3,color:#fff style RP fill:#FF9800,color:#fff style TE fill:#9C27B0,color:#fff style RM fill:#F44336,color:#fff

Шаг 1: Идентификация

Участники: QA, разработчики, product owners, архитекторы, эксплуатация.

Техники: Мозговой штурм, анализ исторических данных о дефектах, анализ требований на сложность, ревью архитектуры.

Шаг 2: Анализ

Для каждого риска: Вероятность (1-5) × Влияние (1-5) = Балл Риска.

Шаг 3: Приоритизация

Приоритет% УсилийГлубина
Критический (15-25)40%Все техники
Высокий (10-14)30%Функциональное + негативное + граничное
Средний (5-9)20%Функциональное + ключевые негативные
Низкий (1-4)10%Smoke-тесты

Шаг 4: Выполнение

Выполнять тесты в порядке приоритета. Если время закончится, наиболее рисковые области уже протестированы.

Шаг 5: Мониторинг

Риски меняются во время тестирования. Обновляйте реестр непрерывно.

Упражнение: Создать Реестр Рисков и Приоритизировать Тест-Кейсы

Вы — QA-лид онлайн-портала здравоохранения, где пациенты могут:

  • Регистрироваться и управлять профилем (включая историю болезни)
  • Записываться на приём к врачам
  • Просматривать результаты анализов и медицинские записи
  • Общаться с врачами через защищённую переписку
  • Оплачивать консультации онлайн
  • Получать уведомления о рецептах

Регуляторный контекст: Система должна соответствовать HIPAA для конфиденциальности данных пациентов.

Ваша задача:

  1. Создать реестр рисков с минимум 10 рисками
  2. Оценить каждый (Вероятность 1-5, Влияние 1-5)
  3. Категоризировать в матрице рисков
  4. Назвать 5 тест-кейсов для первоочередного выполнения
  5. Объяснить корректировку при сокращении сроков на 30%
Подсказка

Нарушения HIPAA влекут штрафы $100-$50,000 за нарушение. Медицинские данные — самая чувствительная категория. Ошибки записи могут привести к пропуску критической помощи. Уведомления о рецептах должны быть своевременными и точными.

Пример решения

Реестр Рисков

IDРискТипВИБаллПриоритет
R1Медицинские записи видны неавторизованным пользователямПродуктовый2510Критический
R2Уведомление о рецепте отправлено не тому пациентуПродуктовый2510Критический
R3Защищённая переписка не зашифрованаПродуктовый3515Критический
R4Двойное списание с пациентаПродуктовый3412Высокий
R5Запись допускает перекрывающиеся слотыПродуктовый4312Высокий
R6Результаты анализов показывают неверные значенияПродуктовый2510Критический
R7Слишком долгий таймаут сессии (HIPAA требует короткий)Продуктовый3412Высокий
R8Тестовое окружение без маскирования данныхПроектный4416Критический
R9Интеграция с EHR больницы не работаетПроектный3412Высокий
R10QA-команда не знакома с требованиями HIPAAПроектный339Средний

Топ-5 Тест-кейсов

  1. Контроль доступа: Пациент A не может видеть записи Пациента B (R1 — критично для HIPAA)
  2. Шифрование переписки: Сообщения зашифрованы при передаче и хранении (R3)
  3. Точность уведомлений о рецептах: Уведомление соответствует правильному пациенту и рецепту (R2)
  4. Точность результатов анализов: Лабораторные значения отображаются корректно с единицами (R6)
  5. Таймаут сессии HIPAA: Сессия истекает после требуемого периода бездействия (R7)

Корректировка при -30% Времени

Сохранить полные усилия (Критические): R1, R2, R3, R6 — не подлежат обсуждению для HIPAA.

Сократить усилия (Высокие): R4, R5, R7, R9 — только happy path и ключевые негативные сценарии.

Отложить (Средние/Низкие): R10 — решить через документацию. Косметическое тестирование — отложить полностью.

Коммуникация: «При сокращении сроков на 30% мы сохраняем полное покрытие для критичных областей HIPAA (контроль доступа, шифрование, точность данных пациентов). Мы сокращаем покрытие для платежей и расписания, принимая повышенный риск. Рекомендуем пост-релизный спринт для отложенных областей.»

Тестирование на Основе Рисков в Agile

  • Sprint Planning: Определить риски для user stories спринта. Stories с высоким риском тестируются первыми.
  • Daily Standup: Сообщать об обнаруженных рисках. Если в «безопасной» области найдены баги — эскалировать.
  • Sprint Review: Обновить реестр рисков по итогам спринта.
  • Retrospective: Обсудить точность оценки рисков. Улучшить для следующего спринта.

Профессиональные Советы

  1. Привлекайте всю команду к идентификации рисков. Разработчики знают, где код хрупок. Product Owners знают, что критично для бизнеса. Ops знают, что ломалось раньше.

  2. Обновляйте реестр непрерывно. Риск не статичен. Область высокого риска может стать низкорисковой после тщательного тестирования. Новые риски появляются при изменениях дизайна.

  3. Используйте данные о дефектах для калибровки. Если область стабильно имеет больше дефектов, увеличьте балл вероятности для следующего релиза.

  4. Документируйте решения. Когда сокращаете тестирование низкорисковой области, зафиксируйте это. Если дефект сбежит, вы сможете объяснить логику, а не выглядеть небрежными.

  5. Это не о том, чтобы тестировать меньше. Это о том, чтобы тестировать умнее. Тот же объём усилий, но направленный туда, где это создаёт наибольшую ценность.