Тестирование на основе рисков (RBT) – это подход к тестированию программного обеспечения, который направлен на максимизацию эффективности ограниченного количества ресурсов. В идеальном мире проект разработки приложения не имел бы никаких ограничений, и каждый его компонент, особенность, функция и строка кода могли бы быть тщательно протестированы.
Однако эта картина не соответствует действительности. Зачастую сжатые сроки или ограниченный бюджет заставляют команды разработчиков максимально использовать доступные им ресурсы. Именно в таких ситуациях тестирование на основе рисков может быть наиболее эффективным.
Извлечение максимальной пользы от всех доступных ресурсов – важная часть управления проектами. Руководителям проектов разработки важно знать о таком подходе тестирования, в чем его суть, какие этапы оно включает в себя и какие дает преимущества. Рассмотрим тестирование на основе рисков более подробно.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.
Что такое тестирование на основе рисков (RBT)?
Тестирование на основе рисков – это подход к тестированию программного обеспечения, который основан на оценке рисков для определения оптимального распределения ресурсов. Когда у вас ограниченное количество ресурсов, вам необходимо определить, какие части вашего приложения представляют наибольший риск для вашего бизнеса, клиентов, персонала и фирменного стиля.
Тестирование на основе рисков задает два очень важных вопроса. Во-первых, насколько вероятно, что в коде приложения возникнет ошибка? Второй: насколько сильно эта ошибка повлияет на бизнес в целом?
Существует много различных факторов, которые влияют на уровень риска приложения. К ним относятся:
- сложный код;
- код, критически важный для функционирования приложения;
- нововведения в коде.
На уровень риска также сильно влияет тип разрабатываемой функции или продукта. Например, медицинские и финансовые приложения по своей сути несут больший риск, чем игровые, поскольку они содержат конфиденциальные данные пользователей.
Ошибки – довольно распространенное явление в проектах по разработке мобильных и веб-приложений. Даже в самых простых проектах разработки часто участвуют несколько разработчиков с разным уровнем квалификации, которые используют несколько кодовых баз и технологии с открытым исходным кодом. Все это увеличивает вероятность возникновения ошибок в приложении.
Тестирование на основе рисков помогает QA команде сосредоточить усилия по тестированию программного обеспечения на тех частях проекта, в которых наиболее вероятно появление ошибки, оказывающей наибольшее влияние на бизнес.
Как определяется риск?
Оценка риска может быть непростой задачей. Как определить, какие тесты должны быть приоритетными? Самый простой ответ – посмотреть на вероятность возникновения риска и его потенциальное воздействие. При подходе к тестированию, основанном на оценке риска, существует три основных аспекта приложения для определения уровня риска:
- Критичность
- Отток
- Сложность
Критичность
Под термином “критичность” команды управления рисками подразумевают степень воздействия ошибки. Анализ рисков показывает, что критичность, как правило, не распределяется равномерно по всему приложению. В большинстве приложений есть ядро критического кода, от которого зависит правильное функционирование всего продукта.
Критичность – это важный показатель, который необходимо учитывать при проведении анализа рисков. Ошибки, возникающие в наиболее критических областях кода, будут иметь гораздо большее влияние, чем ошибки, возникающие в других местах. Ошибка в критическом коде ядра приложения может привести к потере данных, утечке информации и другим негативным последствиям.
Отток
Когда мы говорим об оценке рисков, термин “отток” означает количество изменений, вносимых в любую часть приложения, хотя он имеет разные значения при использовании в других контекстах. Аспекты приложения, которым уделяется много внимания, например, изменения кода, обновления и т.д., с большей вероятностью будут содержать ошибки, чем те части, которые остаются неизменными.
При проведении анализа рисков приложения следует обратить особое внимание на области с высоким уровнем оттока. В них следует проводить более тщательный анализ рисков и тестирование, чтобы убедиться, что ваше приложение не содержит ошибок.
Сложность
Определение рисков рассматривает сложность программного кода как фактор высокого риска. Сложный код с гораздо большей вероятностью содержит ошибки, в отличие от простого кода. Измерение сложности кода может показаться субъективной или сложной задачей, но этот процесс можно упростить, рассмотрев все возможные пути в функции.
Большее количество путей означает, что для полного тестирования функции необходимо больше тест-кейсов. Функции, требующие большого количества тест-кейсов, являются более сложными и, как следствие, будут содержать больше ошибок.
Этапы тестирования на основе рисков
Теперь, когда стало понятнее, что такое тестирование на основе рисков и что конкретно представляет собой риск в приложениях и веб-сервисах, давайте подробнее рассмотрим сам процесс тестирования. Он включает в себя пять ключевых этапов:
- Идентификация риска
- Анализ риска
- Реакция на риск
- Определение объема тестирования
- Тестирование
Идентификация рисков
Первый шаг- идентификация потенциальных рисков. Она включает в себя определение, категоризацию и сортировку рисков, представляющих наибольшую угрозу.
Анализ рисков
После того как риски идентифицированы, классифицированы и отсортированы, можно приступать к их анализу. На этом этапе будут обсуждаться выявленные риски. Их необходимо проанализировать с точки зрения вероятности и возможных последствий. На основе этого анализа можно рассчитать степень риска, которому подвержен продукт. После этого шага становится понятнее, какие риски представляют наибольшую угрозу для вашей организации.
Реакция на риски
После стадий выявления и анализа вам необходимо спланировать, как вы будете реагировать на обнаруженные риски. На этом этапе вы определите цели и наиболее эффективные методы тестирования, а также рассмотрите временные и денежные затраты на тестирование конкретного программного обеспечения в сравнении с потенциальным риском.
Планирование тестирования
Этот этап, по сути, является заключительным перед началом тестирования. Лица, ответственные за принятие решений, должны согласовать объем тестов, бюджет на тестирование программного обеспечения и индивидуальные обязанности.
Тестирование
После того, как риски определены, проанализированы, а объем и бюджет утверждены, наступает время для проведения фактического тестирования. Чтобы оно было финансово эффективным, оно должно строго соответствовать объему и бюджету, установленным на предыдущих этапах процесса. После завершения этого этапа процесс может начаться снова, поскольку в приложение добавляется новый код и функциональности.
Преимущества тестирования на основе рисков
Существует множество потенциальных преимуществ применения подхода к тестированию на основе рисков. Мы не будем перечислять все, но выделим три основных плюса, о которых вам нужно знать:
- Производительность и экономическая эффективность.
- Ускоренное время выхода на рынок.
- Четкая информация о покрытии тестирования.
Производительность и экономическая эффективность
Тщательное тестирование каждого аспекта приложения занимает много времени и стоит много денег. Тестирование на основе рисков позволяет команде тестировщиков более эффективно использовать самый ценный ресурс – время. Внедрение этого вида тестирования повысит продуктивность ваших усилий. Проверке подвергаются только области с высокой вероятностью возникновения рисков, поэтому тестировщики могут сосредоточить свои усилия на самых важных частях приложения.
Этот подход более экономически эффективен, чем традиционное тестирование. Он учитывает ограниченность финансовых ресурсов и распределяет их в зависимости от потребностей и факторов риска, что помогает организациям экономить средства и расходовать их более целенаправленно и логично.
Скорость выхода на рынок
Тестирование на основе риска помогает быстрее выводить продукты на рынок. В современной, быстро развивающейся экономике, ориентированной на потребителя, выход на рынок первым может оказать большое влияние на будущий и долгосрочный успех вашей организации. Более продуктивное и целенаправленное тестирование при таком подходе ускоряет весь процесс, в результате чего продукция быстрее выходит на рынок.
Четкая информация о тестовом покрытии
Когда вы работаете над проектом разработки, не всегда понятно, что было или не было протестировано. Тестирование на основе рисков четко документирует, на какие аспекты приложения было выделено больше ресурсов и внимания. Эта информация поможет дальнейшему тестированию и обеспечит ясность для заинтересованных сторон.
Заключение
Тестирование на основе рисков – это разумный способ распределения ограниченных ресурсов. Оно помогает выделить области, в которых могут возникнуть ошибки, и соответствующим образом распределяет ресурсы тестирования.
Если вам нужна помощь в определении наилучшего способа дальнейшего тестирования программного обеспечения, обратитесь к коллеге по разработке приложений. Существует много различных подходов, которые вы можете использовать. Положитесь на свой опыт и технические знания, чтобы выбрать правильное направление.
Перевод статьи Jose Gomez «Risk-Based Testing: Process and Examples».