Меню


Site Logo

Принципы разработки

Планирование и тестирование.

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

Совместная работа.

Работа ведется в команде. Команда плотно взаимодействует с постановщиком задачи. Постановщик задачи устанавливает критерий успеха. Ведущий цели создает дизайн решения и обеспечивает покрытие тестами. Специалист по контролю качества выступает критиком этого решения и тем самым страхует от неудачи.

Повторное использование.

Решения или их элементы могут быть использованы повторно и это следует учитывать при их создании.

Конструкция программных решений

Программные решения компании Uniteller состоят из модулей. Эти модули устроены по одинаковому принципу и общаются друг с другом через четко определенные интерфейсы. Единица разработки – модуль.

Продукты — являются композитными приложениями и включают в себя необходимый набор модулей. Возможности конечного продукта определяется сочетанием модулей, входящих в него, и настройкой их взаимного поведения. Cтруктура продукта и в некотором роде возможности и свойства задаются его схемой. Схема может быть задана статически или может формироваться динамически.

Модули многократно используются повторно.

Составное приложение

Состав модуля

  • Документация:
    • Описание назначения (постановка задачи);
    • Описание поведения (сценарии использования);
    • Описание конечного автомата, реализующего поведение модуля;
    • Описание интерфейсов модуля (протоколы обмена).
  • Тесты, гарантирующие работоспособность модуля и соответствующие постановке задачи:
    • Чек-лист (перечень аспектов, которые необходимо контролировать);
    • Тест кейсы (скрипты автоматизированного тестирования).
  • Программный код, который проходит тесты.

Процесс разработки

  1. Ведущий по цели совместно с постановщиком задачи формулируют назначение модуля и критерии успеха (приемочные тесты).
  2. Ведущий по цели совместно с постановщиком задачи описывают сценарии использования модуля.
  3. Ведущий по цели создает чек лист, описывающий все аспекты, которые необходимо контролировать.
  4. Специалист по контролю качества верифицирует постановку, сценарии и чек-лист.
  5. Ведущий по цели проектирует конечный автомат модуля и протоколы.
  6. Специалист по контролю качества кода верифицирует конечный автомат модуля и протоколы.
  7. Ведущий по цели готовит тестовые скрипты для позитивных тест кейсов.
  8. Ведущий по цели пишет код. Код считается написанным, когда успешно проходят все тесты.
  9. Ведущий по цели пишет тестовые скрипты для всех остальных тест кейсов.
  10. Ведущий по цели дописывает код для прохождения всех тест кейсов.
  11. Ведущий по цели предъявляет модуль для проверки тест кейсами.
  12. Специалист по контролю качества верифицирует результаты разработки.

В случае, если в процессе работы обнаруживаются ошибки, команда возвращается к тому этапу, на котором была допущена ошибка, и переделывает этот этап и все последующие за ним заново.

Например:

  • Если ошибка совершена в программном коде, то разработчик исправляет код.
  • Если ошибка допущена в чек листе, то ведущий по цели исправляет его, затем исправляется код и тесты.
  • Если ошибка допущена в сценарии, то ведущий по цели и постановщик задачи исправляют сценарии, потом ведущий по цели завершает исправление сценариев и исправляет чек лист, конечный автомат и протоколы, затем исправляются код и тесты.