Тестирование в разработке, управляемой функциональностью (FDD)

Одной из моделей создания программного обеспечения является Feature-Driven Development – разработка, управляемая функциональностью. Рассмотрим, какую роль в нем играет тестирование.

Тестировщик » QA-блог » Модели » Тестирование в разработке, управляемой функциональностью (FDD)

Feature-Driven Development: место для тестировщика

Разработка, управляемая функциональностью, – это одна из гибких технологий создания ПО. В FDD сначала создают план по функциям, которые должны быть в приложении, а затем их проектируют и реализуют.

На изображение тестирование в разработке, управляемой функциональностью (FDD).

В FDD каждая новая версия продукта выходит через 2 недели, поэтому она имеет много общего с итеративной моделью.

5 процессов FDD

FDD включает в себя следующие пять базовых процессов:

  1. Разработка общей модели;
  2. Составление списка функций;
  3. Планирование функции;
  4. Дизайн функции;
  5. Реализация функции.

Рассмотрим их по порядку.

1. Разработка общей модели

Этим процессом начинается общее проектирование продукта. В нем анализируются задачи, которые должно решать будущее ПО, и контекст применения программы. Для каждой области применения (Domain) составляются описания и предлагаются модели для реализации задач. 

Команда проекта может делать это в отдельных группах. Затем все модели обсуждаются и оцениваются. После этого из них выбираются те, которые войдут в общую модель ПО.

2. Создание списка функций

В этом процессе формируется перечень функций, которые должны быть разработаны. Для этого области применения разбиваются на подобласти (Subject Areas) – процедуры со своими шагами, при этом в качестве шагов – функции.

Функции должны быть полезными для клиента. А еще они должны быть такого размера, чтобы разработка каждой из них заняла не более 2 недель. Если более 2 недель – значит, эту функцию надо разбить на несколько. 

После этого общее проектирование завершается. Следующие три процесса повторяются для каждой из функций.

3. Планирование функции

В этом процессе формируется план создания функции. Для этого функции распределяются между ведущими разработчиками по принципу однородности или смежности. При необходимости они могут быть объединены в классы.

При планировании учитывается сложность реализации функций, нагрузка на команду, потенциальные риски и другие аспекты разработки.

4. Дизайн функции

В этом процессе для каждой функции производится ее проектирование. Для этого каждый ведущий разработчик определяет конкретный состав функций для дизайна и реализации в течение данной 2-недельной итерации. 

Для удобства дизайна используются диаграммы последовательности (графическая схема последовательного взаимодействия объектов при выполнении функции).

5. Реализация функции

В этом процессе производится программирование функции. Разработчики пишут код и занимаются его отладкой. По мере готовности каждая функция включается в основную сборку. Этим FDD напоминает инкрементную модель.

Реализация функции – основной процесс в данной методологии, команда разработчиков тратит на него наибольшую часть своих ресурсов.

Преимущества Feature-Driven Development

  • Работа с ожиданиями клиента для снижения рисков;
  • Изначальное понимание общего функционала ПО;
  • Наличие списка функций помогает мониторить прогресс разработки;
  • Предсказуемость в затрачиваемых ресурсах на разработку;
  • Прозрачность для клиента;
  • Стабильность в случае масштабного проекта;
  • При необходимости – новые участники проекта входят в курс дела очень быстро.

Роль тестирования в FDD

Тестирование (Quality Assurance, QA) в Feature-Driven Development имеет следующую специфику применения:

  • Тестирование требований по функциям очень важно для устранения «неприятных сюрпризов»;
  • Функциональное тестирование как преобладающий вид QA;
  • Модульное тестирования каждой функции обязательно перед ее включением в сборку.

Резюме

Разработка, управляемая функциональностью (Feature-Driven Development, FDD), предусматривает составление списка функций и затем их постепенную реализацию. FDD состоит из 5 процессов, имеет много похожего с итеративной и инкрементной моделями разработки. QA в FDD играет важную роль на этапах дизайна и реализации функций, особенно модульное тестирование.

на изображение автор Михаил Кулешов

Автор Михаил Кулешов

Михаил, профессиональный партнерский маркетолог, является основателем компании South Media OÜ, которая была создана в 2018 году и базируется в Таллинне. С 2016 года Михаил уехал из Финляндии и жил как настоящий «цифровой кочевник» в IT-индустрии, путешествуя по миру только с ноутбуком. Михаил работает и пишет статьи, связанные с IT-индустрией.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *