БЛОК 4. Тест-дизайн техники — 14. Risk-based testing
🧭 Введение: почему «проверить всё» почти никогда невозможно
В реальном проекте у QA всегда ограничены время, окружения и ресурсы. Если пытаться протестировать всё одинаково глубоко, команда не успевает закрыть критичные риски к релизу.
Risk-based testing помогает принять инженерное решение: что проверяем в первую очередь, что проверяем проще, а что осознанно переносим.
💡 Совет:
Когда времени мало, не сокращайте случайно. Сокращайте по риску.
✅ Вывод:
Risk-based testing — это не «меньше тестов», а «правильный приоритет тестов».
⚠️ Проблема -> решение
Проблема: одинаковая глубина проверки для всех сценариев создаёт ложное равенство. Ошибка в неважном tooltip и ошибка в оплате не должны получать одинаковый вес.
Решение — оценивать риск как комбинацию вероятности и влияния, затем строить план проверки по уровню риска.
🟢 Если совсем просто:
Чем больнее и вероятнее проблема, тем раньше и глубже её тестируем.
🎯 Как понять, что этап прошёл успешно:
У вас есть приоритизированный тест-план, где critical/high риски закрываются до релиза в первую очередь.
🛠️ Чем помогает и как работает
Risk-based подход делает релизное тестирование управляемым. Он позволяет объяснить команде, почему проверялись именно эти сценарии и какие риски остаются.
Как это работает:
- Шаг 1: составляем список функций, потоков и зависимостей.
- Шаг 2: для каждой зоны оцениваем вероятность дефекта.
- Шаг 3: оцениваем влияние дефекта на бизнес/пользователя.
- Шаг 4: формируем риск-уровень (critical/high/medium/low).
- Шаг 5: назначаем глубину тестирования по уровню риска.
- Шаг 6: фиксируем остаточный риск и релизное решение.
✅ Вывод:
Risk-based testing связывает технические проверки с бизнес-риском релиза.
📚 Ключевые термины (простыми словами)
- Risk-based testing (тестирование на основе рисков) — подход, где объём и глубина тестов определяются риском.
- Probability (вероятность) — шанс, что дефект появится.
- Impact (влияние) — насколько сильно дефект повлияет на бизнес/пользователя.
- Risk Score (оценка риска) — итоговый уровень риска из вероятности и влияния.
- Risk Matrix (матрица рисков) — таблица, где риски разложены по уровням.
- Critical Path (критичный путь) — поток, поломка которого блокирует ключевую ценность продукта.
- Residual Risk (остаточный риск) — риск, который осознанно остаётся после тестирования.
- Release Recommendation (релизная рекомендация) — вывод QA о готовности релиза с учётом рисков.
1. Что такое риск в контексте тестирования
Для QA риск — это не «ощущение», а конкретная оценка: насколько вероятно, что сломается, и насколько больно это будет.
🟢 Если совсем просто:
Риск = шанс проблемы * цена этой проблемы.
🎯 Как понять, что этап прошёл успешно:
Для каждого важного сценария указаны вероятность и влияние.
Назначение:
Отделить действительно опасные зоны от второстепенных.
Простыми словами:
Мы оцениваем, где ошибка наиболее вероятна и наиболее дорогая.
Для новичка:
Если дефект может повлиять на деньги, доступы или данные пользователя — это почти всегда high/critical риск.
Аналогия:
Как в медицине: сначала лечат угрозу жизни, потом мелкие симптомы.
Пример:
Фича: ОплатаProbability: mediumImpact: criticalRisk: high/critical🔎 Как это происходит на практике:
- QA обсуждает риски с PO/Dev.
- Смотрит инциденты прошлых релизов.
- Помечает критичные потоки в тест-плане.
Характеристики:
- ✅ Прозрачная приоритизация.
- ✅ Меньше случайных решений.
- ✅ Легче защищать релизную позицию.
Когда использовать:
Всегда, особенно перед релизом и при дефиците времени.
✅ Вывод:
Риск-оценка — базовая часть зрелого QA-процесса.
2. Матрица рисков: практический инструмент
Risk matrix помогает быстро визуализировать приоритеты. Даже простая шкала 1–3 или 1–5 уже даёт хороший рабочий ориентир.
🟢 Если совсем просто:
Матрица рисков показывает, что тестировать первым, а что можно облегчить.
🎯 Как понять, что этап прошёл успешно:
Каждый ключевой сценарий имеет риск-уровень и связанный уровень тест-глубины.
Назначение:
Превратить субъективные обсуждения в структурное решение.
Простыми словами:
Это таблица приоритетов тестирования.
Для новичка:
Не обязательно строить сложную математику. Начните с «низкий/средний/высокий».
Пример:
Risk matrix (3x3):Impact \ Probability- Low / Medium / High Rule:- High*High => Critical- High*Medium => High- Medium*Medium => Medium🔎 Как это происходит на практике:
- QA заполняет матрицу по главным потокам.
- Согласует оценки с командой.
- На основе матрицы строит run order.
Характеристики:
- ✅ Видно, что важно для релиза.
- ✅ Упрощает коммуникацию на sync.
- ✅ Помогает управлять scope.
Когда использовать:
На этапе тест-планирования и перед release decision.
✅ Вывод:
Матрица рисков — рабочий язык между QA, Dev и бизнесом.
3. Глубина тестирования по уровню риска
В risk-based подходе разные зоны проверяются с разной глубиной. Это нормально и правильно, если критерии прозрачны.
🟢 Если совсем просто:
Critical проверяем глубоко, low — быстро и выборочно.
🎯 Как понять, что этап прошёл успешно:
В тест-плане явно прописано, какую глубину получает каждый риск-уровень.
Назначение:
Оптимально распределить время QA по ценности и опасности.
Простыми словами:
Не все сценарии равны — и тестировать их нужно по-разному.
Для новичка:
Сначала закрывайте риски, которые могут «положить» релиз.
Пример:
Critical risk:- full happy+negative+boundary+edge- cross-env checks Medium risk:- core happy+selected negative Low risk:- smoke-level validation✅ Вывод:
Глубина тестов должна соответствовать риску, а не быть одинаковой для всего.
4. Residual risk: что делать с тем, что не покрыли
Даже при хорошем плане часть рисков остаётся непокрытой из-за времени, среды или внешних ограничений. Это не провал, если риск зафиксирован и осознанно принят.
🟢 Если совсем просто:
Непокрытый риск нужно не скрывать, а явно зафиксировать.
🎯 Как понять, что этап прошёл успешно:
У релиза есть список остаточных рисков и согласованное решение по ним.
Назначение:
Сделать релизное решение прозрачным и ответственным.
Простыми словами:
QA честно показывает: что проверено, что не проверено, и чем это грозит.
Для новичка:
Фраза «не успели» без оценки риска — слабый формат коммуникации.
Пример:
Residual risk:- Mobile Safari payment retry not testedImpact: highMitigation: monitor + hotfix readiness✅ Вывод:
Residual risk — обязательная часть зрелой релизной коммуникации.
5. Пошаговый алгоритм risk-based testing
Ниже рабочий шаблон, который можно применять в каждой задаче перед релизом.
🟢 Если совсем просто:
Список зон -> оценка риска -> приоритеты -> тест-глубина -> остаточный риск.
🎯 Как понять, что этап прошёл успешно:
Есть понятный документ с рисками, покрытием и релизной рекомендацией.
Алгоритм:
- Составить список функций и потоков.
- Оценить вероятность и влияние по каждому потоку.
- Построить риск-матрицу и уровни.
- Назначить глубину тестирования по уровню.
- Выполнить план в risk-based порядке.
- Зафиксировать остаточные риски и рекомендации по релизу.
✅ Вывод:
Алгоритм помогает junior QA принимать зрелые решения под дедлайн.
📊 Сравнение: обычный подход vs risk-based
| Подход | Что происходит | Результат |
|---|---|---|
| Равномерное тестирование | Всё проверяется «примерно одинаково» | Критичные риски могут остаться без глубины |
| Risk-based testing | Проверка по приоритету риска | Критичные зоны закрываются в первую очередь |
✅ Must-Know для junior QA
- Risk-based testing = приоритет по риску, а не по удобству.
- Вероятность и влияние оцениваются отдельно.
- Критичные потоки проверяются глубже всех.
- Остаточные риски нужно явно фиксировать.
- Release recommendation должна ссылаться на риск-картину.
- Нельзя скрывать непокрытые high/critical риски.
- Матрица рисков должна быть согласована с командой.
❌ Частые мифы
❌ Миф:
Risk-based testing — это «тестируем меньше». ✅ Как правильно:
Это «тестируем приоритетно и осознанно». 📎 Почему это важно:
Иначе сокращение становится хаотичным и опасным.
Risk-based testing — это «тестируем меньше». ✅ Как правильно:
Это «тестируем приоритетно и осознанно». 📎 Почему это важно:
Иначе сокращение становится хаотичным и опасным.
❌ Миф:
Оценка риска — задача только менеджера. ✅ Как правильно:
QA обязан участвовать в оценке рисков, потому что это основа тест-приоритета. 📎 Почему это важно:
Без QA риск-оценка теряет техническую точность.
Оценка риска — задача только менеджера. ✅ Как правильно:
QA обязан участвовать в оценке рисков, потому что это основа тест-приоритета. 📎 Почему это важно:
Без QA риск-оценка теряет техническую точность.
❌ Миф:
Если что-то не протестировано, об этом лучше не говорить. ✅ Как правильно:
Непокрытые риски фиксируются как residual risk. 📎 Почему это важно:
Прозрачность снижает неожиданные инциденты и повышает доверие к QA.
Если что-то не протестировано, об этом лучше не говорить. ✅ Как правильно:
Непокрытые риски фиксируются как residual risk. 📎 Почему это важно:
Прозрачность снижает неожиданные инциденты и повышает доверие к QA.
❌ Миф:
Все баги одинаково важны. ✅ Как правильно:
Важность зависит от влияния и вероятности. 📎 Почему это важно:
Это определяет реальный приоритет исправления и тестирования.
Все баги одинаково важны. ✅ Как правильно:
Важность зависит от влияния и вероятности. 📎 Почему это важно:
Это определяет реальный приоритет исправления и тестирования.
❓ Часто спрашивают на собеседованиях
❓ Вопрос:
Что такое risk-based testing? ✅ Ответ:
Это подход, в котором приоритет и глубина тестирования определяются уровнем риска сценария.
Что такое risk-based testing? ✅ Ответ:
Это подход, в котором приоритет и глубина тестирования определяются уровнем риска сценария.
❓ Вопрос:
Как вы рассчитываете риск? ✅ Ответ:
Через оценку вероятности дефекта и его влияния на бизнес/пользователя, обычно с матрицей уровней.
Как вы рассчитываете риск? ✅ Ответ:
Через оценку вероятности дефекта и его влияния на бизнес/пользователя, обычно с матрицей уровней.
❓ Вопрос:
Что вы делаете, если не успеваете протестировать всё? ✅ Ответ:
Закрываю critical/high зоны, фиксирую residual risk по остальному и даю прозрачную release recommendation.
Что вы делаете, если не успеваете протестировать всё? ✅ Ответ:
Закрываю critical/high зоны, фиксирую residual risk по остальному и даю прозрачную release recommendation.
❓ Вопрос:
Что такое residual risk? ✅ Ответ:
Это риск, который остаётся после тестирования и осознанно принимается перед релизом.
Что такое residual risk? ✅ Ответ:
Это риск, который остаётся после тестирования и осознанно принимается перед релизом.
❓ Вопрос:
Как объяснить команде, почему сценарий в high приоритете? ✅ Ответ:
Через риск-оценку: высокая вероятность и/или высокое влияние на ключевой бизнес-поток.
Как объяснить команде, почему сценарий в high приоритете? ✅ Ответ:
Через риск-оценку: высокая вероятность и/или высокое влияние на ключевой бизнес-поток.
🚫 Типичные ошибки
Ошибка 1: Приоритизация «по настроению»
❌ Неправильно:
Ставить приоритеты без критериев вероятности и влияния.
✅ Правильно:
Использовать риск-матрицу и согласованные шкалы.
Почему:
Это убирает субъективность и споры.
Ошибка 2: Игнорируют low вероятность при high impact
❌ Неправильно:
Считать редкий, но критичный дефект «несущественным».
✅ Правильно:
Оценивать редкие high-impact риски как приоритетные.
Почему:
Именно они часто дают самые тяжёлые инциденты.
Ошибка 3: Не фиксируют residual risk
❌ Неправильно:
Завершить тестирование без списка непокрытых рисков.
✅ Правильно:
Явно документировать остаточные риски и mitigations.
Почему:
Это основа ответственного релизного решения.
Ошибка 4: Нет связи risk -> test depth
❌ Неправильно:
Critical и low сценарии тестируются одинаково.
✅ Правильно:
Глубина тестирования должна соответствовать уровню риска.
Почему:
Иначе ресурс тратится неэффективно.
🧩 Best Practices
- Держите простую, но регулярную риск-матрицу.
- Согласовывайте risk levels с PO и Dev до execution.
- Явно привязывайте тест-глубину к risk level.
- Перед релизом отдельно обсуждайте residual risks.
- Используйте историю инцидентов для уточнения вероятности.
- Всегда документируйте release recommendation в risk-терминах.
🏁 Заключение
Risk-based testing — это зрелый способ управлять качеством под ограничения.
Он помогает тестировать не «равномерно», а «разумно»: сначала то, что реально может сломать релиз.
Он помогает тестировать не «равномерно», а «разумно»: сначала то, что реально может сломать релиз.
Для junior QA это ключевой шаг от «исполнителя проверок» к инженеру, который влияет на релизные решения.