Microsoft Visual Studio 2005

Алексей Федоров

Роли в программном проекте

   Командная разработка

Ролевые версии

   Team Edition для архитекторов

   Team Edition для разработчиков

   Team Edition для тестировщиков

   Запись и воспроизведение тестов

   Нагрузочное тестирование

Управление тестированием

   Требования к системе

 

Об авторе. Алексей Федоров — сотрудник отдела стратегических технологий российского представительства компании Microsoft.

Предыдущая статья была посвящена бесплатным средствам, рассчитанным на начинающих программистов, студентов и непрофессиональных разработчиков, — группе продуктов Express Edition. В этом номере мы расскажем о группе продуктов, предназначенных для компаний, специализирующихся на разработке программного обеспечения: Visual Studio 2005 Team System: Team Foundation Server, Team Edition for Software Architects, Team Edition for Software Developers и Team Edition for Software Testers.

С появлением в линейке средств разработки продукта Visual Studio 2005 Team System Microsoft выходит за рамки базового процесса разработки «редактирование — компилирование — отладка» и предлагает средства, которые прежде можно было получить только от сторонних производителей. Средства, включенные в состав Visual Studio 2005 Team System, предназначены для более ранних шагов цикла разработки, такие как дизайн и архитектура, а также шаги, выполняемые после непосредственной разработки, — тестирование и развертывание. Включение подобных средств в состав Visual Studio 2005 позволяет использовать его на всех этапах создания программного продукта.

Роли в программном проекте

Задача любой формализованной методологии — структурировать процесс разработки программного обеспечения. В частности, любая методология определяет роли в программном проекте. Наиболее часто используются следующие роли:

  • архитектор — отвечает за высокоуровневую структуру приложения, требования, ключевые технологии для реализации, взаимодействие приложения с другими приложениями и инфраструктурой и т.п.;
  • разработчик — занимается написанием и отладкой кода. Предыдущие версии Visual Studio предназначались в первую очередь для этой роли;
  • тестировщик — отвечает за обнаружение ошибок, их исправление и должен убедиться в том, что приложение соответствует изначальным требованиям (функциональным и нефункциональным);
  • менеджер проекта — отвечает за ведение проекта, проектный офис, метрики, сроки и т.п.

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

Visual Studio 2005 Team System — это продукт, который должен облегчить задачи, выполняемые каждой ролью. В состав продукта входят три версии — Team Edition for Software Architects, Team Edition for Software Developers и Team Edition for Software Testers. Средства управления проектами интегрируются с Excel и Microsoft Project.

Командная разработка

В основу Visual Studio 2005 Team System положено серверное приложение под названием Team Foundation Server, состоящее из базы данных, управляемой СУБД Microsoft SQL Server (используемой для хранения проектных данных) и компонентов среднего уровня на базе Windows Server 2003, ASP .NET и Windows SharePoint Services. Основные компоненты Team Foundation Server показаны на рис. 1.

 

Рис. 1. Компоненты Team Foundation Server

Рис. 1. Компоненты Team Foundation Server

Задача Team Foundation Server — обеспечить инфраструктуру для совместной работы и обмена информацией между группами архитекторов, разработчиков, тестировщиков и менеджеров проекта. Клиентским компонентом является Team Foundation Client, который входит в состав всех продуктов семейства Team Edition, а также может использоваться продуктами Microsoft (Excel, Project) или продуктами других производителей.

Как видно из приведенной схемы, компоненты Team Foundation Server отвечают за управление требованиями и слежение за элементами проекта, обеспечивают автоматизацию сборки проекта, генерацию отчетов, а также интеграцию с другими подсистемами продуктов семейства Team Edition.

В состав Team Foundation входят средства создания проектов (Project Creation Wizard) с возможностями выбора шаблонов (по умолчанию используется шаблон MSF For Agile Development) и задания типов артефактов, итераций, отчетов, контроля версий, адреса проектного портала и т.п.; средства контроля версий, пришедшие на смену Visual SourceSafe и рассчитанные на объемные проекты с большим числом разработчиков. В процессе работы над проектом собирается большой объем информации (для этих целей служит SQL Server 2005). Эти данные могут быть отображены с помощью более чем 50 типов отчетов (на базе SQL Reporting Services), входящих в состав продукта (например, Work Item History — RecordCount, TransitionCount, RemainingWork, CompletedWork, BaselineWork; Code Churn — TotalLines, LinesAdded, LinesModified, LinesDeleted, Test Results — TotalTests, TestsFailed, AverageDuration и т.д.), и опубликованы на портале проекта (Project Portal на основе Windows SharePoint Services) через соответствующие Web-компоненты.

Проектная деятельность может проводиться согласно определенным методологиям. В состав продукта входит поддержка двух методологий Microsoft — MSF For Agile Development и MSF For CMMI Process Improvement. Также поддерживается классическая методология Microsoft Solutions Framework. Помимо этого можно использовать методологии сторонних поставщиков (BrightWorks, Osellus) или создавать собственные, отражающие такие подходы к созданию продуктов, которые сформированы внутри конкретной компании.

Более подробно с методологией MSF For Agile Development можно ознакомиться, загрузив соответствующие средства с сайта Microsoft по адресу: http://www.microsoft.com/downloads/details.aspx?FamilyId=9F3EA426-C2B2-4264-BA0F-35A021D85234&displaylang=en.

На рис. 2 показана архитектура Team Foundation, в том числе основные компоненты клиентской части, среднего звена и сервера. Отметим два хранилища данных на SQL Server 2005 — одно для сбора оперативной информации, а другое для хранения аналитических данных.

 

Рис. 2. Архитектура Team Foundation

Рис. 2. Архитектура Team Foundation

Как уже было сказано, Team Foundation служит в качестве основы для работы различных участников проекта — менеджеров, архитекторов, разработчиков и тестировщиков, для организации обмена информацией между ними. Для каждой конкретной роли — архитектора, разработчика, тестировщика — предлагается специализированная ролевая версия Team System, которые мы и рассмотрим далее.

В начало В начало

Ролевые версии

В состав Team Edition входят три ролевые версии: для архитекторов — Team Edition for Software Architects, для разработчиков — Team Edition for Software Developers и для тестировщиков — Team Edition for Software Testers. Основные компоненты этих продуктов показаны на рис. 3.

 

Рис. 3. Основные компоненты ролевых версий Team Edition

Рис. 3. Основные компоненты ролевых версий Team Edition

Team Edition для архитекторов

Продукт Team Architect Edition позволяет архитекторам программного обеспечения и инфраструктуры создавать и описывать все компоненты сервис-ориентированных приложений. Работа архитекторов построена на основе использования специализированных дизайнеров:

  • Distributed Application Designer — позволяет визуально создавать Web-сервисы и сервис-ориентированные архитектуры, обладает поддержкой расширений Web-сервисов (Web Services Enhancements, WSE) и возможностью проверки архитектуры на соответствие логической инфраструктуре. Включает следующие дизайнеры: Application Connection Designer, Logical Datacenter Designer, System Designer и Deployment Designer;
  • Logical Infrastructure Designer — позволяет визуально описывать сетевую инфраструктуру; содержит редактор настроек и ограничений; включает генератор и компилятор System Definition Model (SDM), модели, средства развертывания;
  • Class Designer — служит для визуального создания классов и генерации соответствующего кода.

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

На основе артефактов, созданных архитекторами, разработчики разрабатывают и тестируют код приложения. Для этих целей служит версия Team Edition для разработчиков.

Team Edition для разработчиков

Помимо традиционных средств для разработки приложений, обеспечиваемых на уровне функциональности Visual Studio Professional Edition (написание и редактирование кода, компиляция, отладка, развертывание), в версию Team Edition для разработчиков входит ряд существенных дополнений, среди которых:

  • средства статического анализа кода — выполняют нечто схожее с грамматическим анализом кода. Компилятор выполняет проверку синтаксиса и убеждается в том, что объекты, параметры и другие элементы кода допустимы для данного языка программирования. Средства статического анализа кода проверяют семантику и нарушения безопасности, стиля кодирования, руководств по производительности. Для проверки кода на С/С++ Microsoft предлагает PREFast — средство, работающее с .NET и обычным кодом, а также средство FxCop, которое базируется на наборе рекомендаций .NET Class Design Guideline, опубликованных на сайте Microsoft по адресу: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpcon NETFrameworkDesignGuidelines.asp;
  • средства профилирования — для того чтобы получить максимальную производительность кода, Microsoft предлагает ряд профилировщиков кода, входящих в состав Visual Studio 2005 Team System и интегрированных в среду разработки. Доступны два типа профилировщиков:

    - профилировщик на основе «проб» (Sampling profiler) — отслеживает выполнение приложения и по окончании сообщает данные о производительности,

    - инструментальный профилировщик (Instrumented profiler) — во время компиляции вставляет в код определенные «метки» и сохраняет данные в хранилище Team System при достижении приложением определенной «метки»;

  • средства модульного тестирования — модульное тестирование на основе атрибутов стало популярным способом проверки качества кода. В состав Visual Studio 2005 Team System входят интегрированные средства создания, слежения и выполнения модульных тестов непосредственно из среды разработчика. Ближайший аналог средств модульного тестирования, входящих в состав Visual Studio 2005 Team System, — NUnit (http://www.nunit.org). Также см. публикацию Microsoft Press, посвященную методологии Test Driven Development, — «Test Driven Development in Microsoft .NET» (Microsoft Press, 2004).

Модульное тестирование предполагает, что для каждого метода класса пишется определенный тест. Такой тест проверяет все возможные способы поведения класса (в соответствии со спецификацией) и сообщает об обнаруженных ошибках. Модульные тесты очень полезны при регрессивном тестировании, так как могут выполняться над каждым классом в проекте для того, чтобы убедиться, что изменения в одном классе не привели к изменениям в других (рис. 4).

 

Рис. 4. Средства тестирования в Visual Studio 2005 Team System

Рис. 4. Средства тестирования в Visual Studio 2005 Team System

Team Edition для тестировщиков

В составе Visual Studio 2005 Team System для тестировщиков средства для нагрузочного тестирования и измерения производительности Web-приложений. Важно отметить то, что средства нагрузочного тестирования входят непосредственно в средство разработки и тесно интегрированы как со средой, так и с механизмами сбора данных и создания отчетов.

Запись и воспроизведение тестов

Такой подход позволяет обеспечить максимально тесное взаимодействие разработчиков и тестировщиков. При использовании Visual Studio 2005 Team System больше нет необходимости в обмене списком ошибок и в последующем слежении за их исправлением — все данные (описания ошибок с необходимым контекстом) доступны из одной среды, а соответствующие работы (Work Items) назначаются непосредственным исполнителям.

В Visual Studio 2005 Team System появилась возможность записи действий тестировщиков при работе с Web-приложения и последующего воспроизведения таких записей. Такие записанные тесты хранятся в виде XML-файлов — они могут быть сохранены в системе контроля версий вместе с кодом приложения и другими артефактами периода разработки.

Нагрузочное тестирование

После того как тест Web-приложения записан и сохранен, он может быть воспроизведен на инфраструктуре Web-фермы с соответствующими нагрузочными данными. Условия загрузки настраиваются с помощью мастера Load Test Creation Wizard и сохраняются в виде XML-файлов; они также могут быть сохранены в системе контроля версий вместе с кодом приложения и другими артефактами периода разработки.

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

Тестировщики могут просматривать результаты тестов и создавать отчеты об ошибках на основе данных, полученных при нагрузочном тестировании. Указанные отчеты содержат поля для разработчиков, позволяющие в точности повторить обнаруженную проблему, а также информацию, собранную в процессе выполнения приложения. Таким образом, разработчики не только видят отчет, но и получают возможность проанализировать данные, вызвавшие ошибку.

Помимо этого, как было отмечено выше, Visual Studio 2005 Team System поддерживает механизмы модульного тестирования, которое может выполняться и в нагруженном состоянии.

В начало В начало

Управление тестированием

Все тесты, создаваемые в Visual Studio 2005 Team System, включая модульные тесты, воспроизводимые Web-тесты и нагрузочные тесты, управляются из окна Test Manager среды разработчика. Это позволяет разработчикам, тестировщикам и менеджерам проектов получать информацию о статусе и полноте выполнения всех тестов для данного программного проекта. К тому же все тесты могут быть сохранены в системе контроля версий Visual Studio 2005 Team Foundation Server.

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

Дополнительную информацию о продукте можно получить на сайте Microsoft по адресу: http://lab.msdn.microsoft.com/teamsystem/default.aspx.

Требования к системе

Поддерживаемые операционные системы: Windows 2000, Windows XP Home, Windows XP Pro, Windows Server 2003. Системные и программные требования представлены в табл. 1 и 2.

 

Таблица 1. Системные требования

Таблица 1. Системные требования

Таблица 2. Программные требования

Таблица 2. Программные требования

***

В следующий раз мы ознакомимся с еще одним продуктом семейства Visual Studio 2005 — Visual Studio 2005 Tools for Office, предназначенным для создания приложений на основе продуктов семейства Microsoft Office (Word, Excel и Outlook).

КомпьютерПресс 7'2005


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует