Введение в среду для коллективной разработки Team Foundation Server (TFS)

В данной статье описано использование Team Foundation Server (TFS) и Microsoft Visual Studio Team System (VSTS) в условиях коллективной разработки программного обеспечения. Здесь представлены основные характеристики TFS и VSTS и взаимодействие групп разработки и тестирования при разработке программного обеспечения. TFS интегрирует в себе системы контроля версий, отслеживания процесса работы над проектом, создания и отображения отчетов, управления проектом и автоматизированный процесс сборки, и, следовательно, повышает эффективность работы группы разработки.

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

1. Разработка
2. Тестирование
3. Сборка
4. Развертывание
5. Выпуск продукта

Процесс разработки программного обеспечения с использованием Team Foundation Server

С помощью TFS группа разработки может хранить исходный код в централизованно управляемом хранилище. Тогда есть возможность создавать сборки с использованием сервера сборки и исходных файлов из этого хранилища и затем передавать их группе тестирования. На рис. 1.1 показан процесс коллективной разработки ПО с использованием TFS и взаимосвязь сред разработки и тестирования.


Рис. 1.1 Процесс коллективной разработки ПО с использованием Team Foundation Server.

Группа тестирования берет версии сборок приложений из места публикации результатов сборки и выполняет их в своей среде тестирования, сочетая ручное и автоматизированное тестирование. TFS сохраняет результаты тестирования и использует их для обеспечения обратной связи по качеству сборки. Группа тестирования также может создавать рабочие элементы или дефекты (особый тип рабочих элементов), по которым группа разработки должна предпринять некоторые действия. Эти рабочие элементы позволяют группе тестирования отслеживать работу группы разработки.

Работа в среде разработки, тестирования и выпуска продукта

В больших организациях с несколькими группами разработки каждая группа использует отдельный TFS, включая хранилища исходного кода и сервера сборки. На рис. 1.2 показан пример взаимодействия двух групп разработки, передающих сборки приложений группе тестирования.


Рис. 1.2 Взаимодействие двух групп разработки и группы тестирования.

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

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

В ходе процесса разработки ПО можно выделить ряд ключевых взаимодействий разработчиков с TFS. Например, как разработчик вы взаимодействуете с TFS следующим образом:

1. Осуществляете доступ к дефектам и задачам, находящимся в TFS, и таким образом выясняете, что необходимо сделать. Например, рабочие элементы могут быть назначены руководителем проекта, другим разработчиком или группой тестирования.
2. Используете VSTS Source Control Explorer для доступа к хранилищу исходного кода в TFS и загрузки последней версии исходного кода в локальное рабочее пространство или свой рабочий компьютер.
3. Выполнив задачи, оговоренные рабочим элементом, возвращаете свой код в хранилище исходного кода.
4. Check-in-событие (событие регистрации изменений) может запустить процесс непрерывной интеграции, который использует Team Build.
5. Если сборку создать не удалось, создается новый рабочий элемент для отслеживания неудачного создания сборки.

Процессы тестирования

Член группы тестирования взаимодействует с TFS следующим образом:

1. Загружает плановую сборку из места публикации результатов сборки.
2. С помощью различных инструментов VSTS выполняет ручное и автоматизированное тестирование, включая тестирование безопасности, производительности и Web-тестирование.
3. Загружает результаты тестирования в базу данных TFS Test Result для дальнейшего использования.
4. Регистрирует в TFS дефекты, выявленные при тестировании, как рабочие элементы.
5. Объявляет открытые дефекты исправленными после тестирования последней версии сборки.

Физические среды разработки и тестирования

Размер сред разработки и тестирования и количество компьютеров в них могут быть различными в зависимости от размера группы и проекта. На рис. 1.3 показана типичная физическая среда разработки и тестирования.


Рис. 1.3 Физическая среда разработки и тестирования

Среда разработки

Среда разработки обеспечивает процессы разработки и сборки продукта. Среда разработки включает следующие компьютеры:

1. Team Foundation Server
2. Сервер сборки
3. Сервер для хранения результатов сборки
4. Рабочие станции разработчиков

Если группа разработки работает с TFS удаленно или если эта группа особенно велика, что обусловливает проблемы с производительностью центрального сервера TFS, для повышения производительности можно настроить прокси-TFS.

Среда тестирования

Среда тестирования состоит из одной или более тестовых рабочих станций, на которых установлена Visual Studio Team Edition for Software Testers. Они используются для управления процессом тестирования и проведения функционального тестирования, системного тестирования, тестирования безопасности, производительности и Веб-тестирования. Члены группы используют TFS для управления, дефектами и другими рабочими элементами, а также результатами тестирования.
Среда тестирования также может включать Visual Studio Team Test Load для нагрузочного тестирования.

Заключение

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