Конкуренция в сфере разработки программного обеспечения очень высокая. Чтобы добиться успеха, компании стремятся с минимально возможными затратами создавать продукты максимально высокого качества. И справиться с этой задачей без эффективно настроенного QA-процесса практически невозможно.
Но проблема заключается в том, что дедлайны и бюджет редко позволяют специалистам по обеспечению качества одинаково тщательно тестировать все функции приложения. Им приходится решать, на выполнение каких задач стоит потратить больше усилий и времени, а какие не требуют столь пристального внимания. Как же они принимают такие важные решения? Полагаться на субъективное мнение членов команды — не самый оптимальный вариант. Правильно определять цели и рационально расставлять приоритеты позволяет тестирование на основе рисков.
Если вы ещё не знакомы с этим подходом, оставайтесь с нами. В этой статье мы поговорим о том, что такое тестирование на основе рисков, каковы его преимущества и что представляет собой процесс управления рисками при тестировании программного обеспечения.
Что такое тестирование на основе рисков?
Для начала давайте вспомним, что такое риск. Под риском мы подразумеваем возможность возникновения какого-либо события, которое может оказать неблагоприятное влияние на проект. Уровень риска определяется двумя факторами: вероятность наступления события и величина ущерба, который оно может нанести.
И именно уровень риска может служить надёжным параметром для расстановки приоритетов в тестировании программного обеспечения. Очевидно, что при неограниченном количестве возможных тестовых сценариев и ограниченных ресурсах имеет смысл приложить максимум усилий на тестирование функций, которые используются чаще всего и некорректная работа которых может нанести наибольший ущерб.
То есть, QA команда должна ответить на два вопроса о каждой функции:
- Как часто используется этот элемент?
- Насколько значительным будет ущерб, если он не будет работать, как ожидается?
Представим, что специалисты по обеспечению качества работают над тестированием банковского приложения. Перед ними стоит задача проверить работу двух функций:
- Перевод средств. Эта функция используется чаще всего. И её некорректная работа окажет значительное негативное влияние на бизнес.
- Поиск ближайшего банкомата. Эта функция используется реже. Да, скорее всего, пользователи будут слегка озадачены, если приложение покажет банкомат через дорогу от того места, где он действительно находится. Но такая незначительная ошибка вряд ли окажет существенное воздействие на работу компании.
Очевидно, что QA команде нужно будет приложить значительно больше усилий для тестирования первой функции. Конечно, это очень упрощенный пример. (В реальности приложения намного сложнее и специалисты должны проверять работу сотен элементов.) Но он наглядно показывает, в чём суть тестирования на основе рисков.
Такой подход позволяет оптимизировать ресурсы и получить максимальную пользу от тестов. Расставляя приоритеты задачам, специалисты по обеспечению качества ориентируются на результаты предварительной оценки рисков.
Теперь давайте подробнее рассмотрим, что такое процесс управления рисками при тестировании программного обеспечения.
Процесс управления рисками при тестировании программного обеспечения.
Процесс управления рисками может варьироваться в зависимости от компании и сложности разрабатываемого продукта. Но, как правило, он включает следующие этапы:
- Выявление рисков. Первый шаг — это создание списка всего, что теоретически может сломаться. Составить его QA специалистам помогает анализ требований, мозговые штурмы, консультации с экспертами, опыт предыдущих проектов и т. д. Основная цель на этом этапе — выявить как можно больше потенциальных угроз.
- Оценка рисков. После того, как список составлен, команда может переходить к следующему шагу — анализу рисков. Специалисты оценивают каждую потенциальную угрозу на основе двух факторов: вероятность возникновения и возможный ущерб, который будет нанесён. На этом этапе часто используют матрицу рисков (мы рассмотрим эту концепцию в следующем разделе).
- Составление плана реагирования. После того, как риски идентифицированы и оценены, необходимо составить план, как их предотвратить. Основываясь на полученных данных, QA менеджер может приступить к составлению стратегии тестирования. Те модули, элементы и функции, неправильная работа которых несёт в себе значительные риски, будут тестироваться максимально тщательно. Результаты оценки также определяют, насколько опытные специалисты будут работать над той или иной задачей.
- Мониторинг рисков. На этом этапе специалисты занимаются выявлением новых рисков, повторной оценкой найденных ранее, а также корректировкой плана реагирования.
Теперь, когда вы лучше понимаете процесс управления рисками при тестировании, давайте остановимся подробнее на матрице для определения приоритетов и оценки рисков.
Матрица рисков.
Для анализа рисков команды QA часто используют матрицу, где на одной стороне располагается уровень вероятности возникновения события, а на другой — степень потенциального воздействия на проект. Это позволяет разделить все риски на группы:
- Частое событие, значительное воздействие. QA команда должна тщательно протестировать этот элемент.
- Редкое событие, значительное воздействие. QA команда должна протестировать этот элемент.
- Частое событие, незначительное воздействие.QA команда может протестировать этот элемент.
- Редкое событие, незначительное воздействие. QA команда может протестировать этот элемент, если позволит время и бюджет.
Конечно, в зависимости от проекта такая матрица может быть более подробной. Тогда возможным рискам будет присваиваться больше уровней вероятности. Например, частые, возможные, случайные, редкие, крайне редкие. Что касается степени потенциального воздействия, она может делиться на катастрофическую, критическую, серьёзную, приемлемую, незначительную.
Преимущества тестирования на основе рисков.
Как видите, тестирование на основе рисков позволяет компаниям эффективно управлять ограниченными ресурсами. Такой подход помогает QA командам оптимизировать свою работу, правильно расставлять приоритеты, находить самые критические ошибки раньше, а также видеть степень тестового покрытия на каждом этапе жизненного цикла разработки программного обеспечения. Таким образом, главные преимущества тестирования на основе рисков — это снижение затрат на разработку, сокращение времени выхода на рынок и повышение качества приложений.