Тестирование требований

20 сентября 2024
Дата публикации
Тестирование требований
  • Тестирование ПО
  • Обеспечение качества
Требования служат основой при разработке ИТ-продукта. Правильно сформированные и протестированные требования помогут компании выпустить ПО, которое соответствует ожиданиям клиентов и бизнеса.

Что такое требование?

Требование — это формальное выражение ожиданий, которым должен соответствовать ИТ-продукт. Оно может касаться функциональных возможностей, производительности и других аспектов, необходимых для успешного выполнения задач пользователем.

Тестирование требований — это проверка того, являются ли задокументированные требования к системе непротиворечивыми и осуществимыми на практике. Эта проверка выполняется до того, как начнётся реализация функциональности ПО.

Цель тестирования требований — удостовериться, что на основании описанных требований можно реализовать систему, протестировать и понять, что система должна делать.

Этапы тестирования требований

Для проведения проверки качества необходимы следующие виды документации в тестировании:
  • Тестируемый документ с требованиями к системе (например, ТЗ).
  • Сопроводительная документация (бизнес-правила, бизнес требования, документация к смежным системам/автоматизируемым процессам).

Тестирование требований: пример

Документ должен соответствовать некоторым показателям качества. Опишем эти критерии тестирования требований:
  • Корректность: требование описывает именно то, что должна делать система.
  • Недвусмысленность (однозначность, ясность): формулировки в требованиях могут быть одинаково интерпретированы всеми участниками проекта.
  • Полнота: представлена вся информация, необходимая для чёткого понимания требований.
  • Непротиворечивость: отсутствие требований, противоречащих друг другу.
  • Возможность проверки (тестируемость): поддаётся ли требование проверке.
  • Трассируемость (отслеживаемость): взаимосвязь требований различных уровней, возможность отследить каждое требование до уровня выше и ниже (если таковые имеются).
  • Возможность модификации (изменяемость): удобство организации документа, возможность быстро и полно внести изменения в требования.
Далее необходимо проверить соответствует ли документ указанным критериям. Ниже мы описали как тестировать требования. Для этого тестировщики выполняют следующие проверки:
  1. На корректность структуры документа: проверяется наличие необходимых разделов и информации в них, их соответствие утверждённому шаблону (если он есть). В этом случае проверяются полнота и возможность модификации.
  2. На наличие и полноту описания пользователей/ролей системы: например, в случае, если в автоматизируемом процессе участвует несколько человек, то необходимо проверить, все ли пользователи будущей системы учтены. В этом случае проверяются полнота, непротиворечивость и корректность.
  3. На соответствие функциональных требований бизнес целям: насколько полно покрыты бизнес-требования функциональными и нефункциональными требованиями. В этом случае проверяются полнота, непротиворечивость, трассируемость.
  4. На соответствие бизнес-правилам: поиск законодательных актов, нормативов, стандартов, правил и других документов, которые накладывают ограничения на процесс тестирования. В этом случае проверяются полнота, непротиворечивость, корректность
  5. На однозначность интерпретации: отсутствие двусмысленных слов. В этом случае проверяются непротиворечивость и тестируемость.
  6. На отсутствие противоречий: например, на макете в списке заявок пользователя отображена пиктограмма «Редактировать» для элемента со статусом «Принята в работу», а в текстовом описании требований описано, что редактирование возможно только для заявок со статусом «В очереди», что является противоречием. В этом случае проверяются полнота, непротиворечивость, корректность.
  7. На детализацию требований: использование детального текстового описания элементов интерфейса системы либо прототипов/макетов пользовательского интерфейса системы. В этом случае проверяется полнота.
  8. На полноту требований: например, если в требованиях перечислен список полей, обязательных к заполнению, то проверяется наличие проверок их заполнения при сохранении формы, а также описание поведения системы в случае невыполнения проверки. В этом случае проверяются полнота и корректность.
  9. На полноту описания сущностей в системе: например, в случае если описывается функция бронирования билета, проверяется наличие описания всех состояний брони, описаны ли все доступные действия для каждого из перечисленных состояний (возможность редактирования, отмены, удаления). В этом случае проверяются полнота и корректность.
  10. На полноту описания требований к взаимодействию с внешними системами: например, при оплате брони проверяется, корректно ли описано поведение системы в случае сбоя при оплате (отобразилось ли сообщение с причиной сбоя оплаты). В этом случае проверяются полнота и корректность.
  11. На наличие требований к доработке смежных систем или существующих модулей, если они потребуются в связи с реализацией текущего проекта. В этом случае проверяются полнота и корректность.

Виды требований в тестировании

Ниже мы разберём основные типы требований в зависимости от их природы и назначения.

Виды по назначению:

  1. Функциональные требования в тестировании определяют функции и особенности ПО, которые нужны пользователям.
  2. Нефункциональные требования описывают свойства системы и ограничения, которые она должна соблюдать. Это касается, например, надёжности и удобства сопровождения.

Виды по природе:

  1. Явные требования чётко изложены и легко понимаемы. Например: «Пользователь может просматривать меню и выбирать блюда».
  2. Неявные требования не всегда чётко прописаны, но важны для успешного функционирования системы. Они могут быть основаны на опыте использования и ожиданиях пользователей. Например: «ПО должно быть интуитивно понятным и удобным в использовании».
  3. Скрытые требования могут не быть явно упомянутыми, но критически важными для работоспособности системы. Например: «Приложение должно обрабатывать ошибки в случае сбоя соединения».

Преимущества тестирования требований для бизнеса

  • Улучшение качества ИТ-продукта: верификация требований позволяет выпустить ПО, которое лучше всего соответствует ожиданиям пользователей, что повышает прибыль компании.
  • Экономия времени и бюджета: проверка требований выполняется заранее. Как следствие, согласование документа проходит быстрее, так как дефекты уже выявлены и исправлены. Также качественная документация оставляет специалистам меньше пространства для ошибок.
  • Учёт интересов заказчика: тестирование требований позволяет минимизировать риски, например, когда в требованиях не были учтены бизнес-цели автоматизации процесса, не были проанализированы смежные процессы или не хватало деталей.
Любая из этих потенциальных проблем повышает вероятность того, что важные для бизнес-пользователей функции будут упущены при реализации системы и ПО не будет в полной мере удовлетворять потребности клиента.

Что будет, если не тестировать требования

  • Неправильное понимание потребностей клиента: без тестирования требований существует вероятность, что команда не поймет истинные потребности и ожидания клиентов. Это может привести к созданию ИТ-продукта, который не удовлетворяет запросы пользователей.
  • Увеличение затрат: непроверенные требования часто приводят к необходимости доработок на более поздних стадиях разработки. Исправление ошибок и изменений в уже готовом ИТ-продукте обходится дороже, чем их устранение на этапе разработки требований.
  • Несоблюдение сроков: изменение требований и исправление ошибок, возникающих из-за отсутствия тестирования требований, могут привести к значительным задержкам в графике проекта. Это может повлиять на репутацию компании.
  • Юридические и регуляторные риски: в некоторых сферах непроверенные требования могут привести к несоответствию законодательству и стандартам качества.
  • Отсутствие возможности измерения успеха: без чётких и проверяемых требований сложно определить, достигла ли команда своих целей. Это затрудняет оценку успеха проекта.
Тестирование требований — важная часть успешного процесса разработки ПО. Оно не только позволяет точно определить и понять потребности клиентов, но и служит основой для создания качественного ИТ-продукта, который соответствует ожиданиям рынка.

Вы заинтересованы в тестировании ПО? Наши QA-специалисты ответят на все ваши вопросы на бесплатной консультации.