В прошлом месяце я много размышлял о тестировании на основе рисков и выделил три основные мысли на эту тему, которыми я хочу поделиться в этой статье.  Если не на основе рисков, то на основе чего? Около месяца назад я написал в Твиттере: Каковы альтернативы тестированию на основе рисков? «На основе требований?» Я бы сказал, что это разновидность тестирования на основе рисков. Тестирование всего подряд без какой-либо системы? Это либо плохая идея («надеемся на удачу»), либо она нацелена на риск неизвестных неизвестностей. Любой другой вариант. Потому что что-то в этом термине мне не нравится. Мой вопрос был навеян «противоположной» эвристикой из моего рассказа о типах тестирования: если существует какая-то категория, то как называются вещи, не входящие в эту категорию? Применительно к термину тестирования на основе рисков: как называется тестирование, не основанное на рисках? Из ответов на мой твит стало ясно, что не меня одного беспокоит этот термин. Я хотел даже написать статью, вдохновленную этими ответами. Однако один из ответивших, Джеймс Томас (James Thomas), опередил меня и написал отличную статью «Отказ от тестирования на основе рисков». В ней он поддерживает точку зрения Стью Крока (Stu Crock) о том, что все основано на риске. Однако, если это все, что нужно сказать, «тестирование на основе рисков» становится бессмысленным термином: «Если риск носит эндемический характер, он теряет какую-либо объяснительную ценность». И Джеймс не так использует термин «риск» по отношению к своей работе: «Я хочу говорить о рисках чего, кому и когда. Если я занимаюсь (как бы я это назвал) тестированием на основе риска, я работаю на данном низком уровне». Я все еще не уверен, что в ближайшее время начну использовать термин «тестирование на основе риска», но его использование, описанное Джеймсом, по крайней мере имеет для меня какой-то смысл. Недавно меня попросили помочь командам с проведением тестирования на основе рисков. Я спросил, какая из четырех следующих форм тестирования на основе риска их интересует. 1. Расстановка приоритетов выполнения тест-кейсов в зависимости от риска. К каждому тест-кейсу вы добавляете маркер «уровеня риска». Выбираете тест-кейсы для выполнения и сортируете их по уровню риска, чтобы определить порядок выполнения. 2. Тестовый подход к историям и/или эпикам на основе рисков. Основываясь на своем понимании истории или эпика, вы продумываете риски. То есть сценарии, которых вы либо хотите избежать, либо хотите, чтобы они произошли. Затем вы разрабатываете тесты на основе этих рисков или сценариев. 3. (Пред)обработка историй и/или эпиков на основе рисков. Вместо того, чтобы ждать, когда вам нужно будет начать тестирование, как в предыдущей форме, вы продумываете риски во время (предварительной) обработки. Затем информация о рисках используется не только для тестирования, но и для проектирования и разработки. 4. Тестовая стратегия проекта на основе рисков. Это похоже на вариант 2, но с большим размахом: весь проект вместо рассказа или эпика. В результате риски также будут более высокими, что делает эту форму анализа рисков менее полезной в качестве исходных данных для тест-дизайна. Но это может быть полезно, чтобы направить усилия тестирования в целом на риски Давным-давно меня учили определять уровень риска, принимая в расчет негативное воздействие и вероятность. Негативное воздействие — это нежелательные последствия для пользователя или бизнеса. «Вероятность» можно разделить на вероятность некорректной работы и частоту использования. Размышления о тестировании на основе рисков заставили меня вспомнить этот урок и осознать, что на самом деле я использовал более подробный список, чтобы оценить, насколько велик и опасен риск: Негативное воздействие: негативное воздействие на пользователя и/или клиента; негативное воздействие на компанию; легкость/скорость восстановления, когда что-то идет не так; легкость/скорость восстановления после того, как что-то пошло не так; легкость/скорость реализации обходного решения; легкость/скорость устранения основной проблемы. Вероятность некорректной работы: уровень сложности процесса; уровень сложности кода; количество зависимостей в коде; количество последних изменений кода в этой области; сумма технического долга. Частота использования или возникновения. Без сомнения, этот список далеко не полный. Однако он показывает, что если вы обсуждаете риск только на уровне воздействия и вероятности, вы многое упускаете. Понимание требует наличия различных точек зрения.  Некоторые присваивают обоим факторам числовые значения и перемножают их, чтобы определить уровень риска. Я считаю это проблематичной тактикой, но не буду вдаваться в это сегодня.  Всех начинающих тестировщиков приглашаем на открытое занятие «Карьера в тестировании для начинающих» в OTUS. На бесплатном вебинаре мы: — узнаем, что такое тестирование и как стать хорошим тестировщиком; — разберёмся, какими навыками и знаниями нужно обладать, чтобы успешно пройти собеседование; — познакомимся с базовыми инструментами. Регистрация открыта по ссылке.  Переводчик, редактор