Управление жизненным циклом приложений с visual studio
Разработка приложений для современных платформ включает гораздо больше, чем просто написание кода. Эти действия, называемые DevOps (разработка + операции), охватывают весь жизненный цикл приложения и включают планирование и отслеживание работы, проектирование и реализацию кода, управление репозиторием исходного кода, выполнение сборок, управление непрерывной интеграцией и развертываниями, тестирование (включая модульные тесты и тесты пользовательского интерфейса), выполнение всевозможной диагностики в средах разработки и рабочих средах и отслеживание производительности приложения и поведения пользователей в режиме реального времени с помощью телеметрии и анализа.
В следующих таблицах описано, какие функции DevOps в Visual Studio применяются при работе с Unity, а какие — нет. Дополнительные сведения о самих функциях см. в документации по ссылкам.
Средства Agile
Ссылка для справки: о средствах гибкой разработки и гибком управлении проектами (с использованием Azure Boards или TFS, включая Team Explorer Everywhere)
Общий комментарий: все возможности планирования и отслеживания не зависят от типа проекта и языков программирования.
Функция | Поддерживается в Xamarin | Дополнительные комментарии |
---|---|---|
Управление невыполненной работой и спринтами | Да | |
Отслеживание трудозатрат | Да | |
Совместная работа в комнате команды | Да | |
Канбан-доски | Да | |
Визуализация хода выполнения и отчеты о ходе выполнения | Да |
Моделирование
Функция | Поддерживается в Xamarin | Дополнительные комментарии |
---|---|---|
Схемы последовательностей | Нет | |
Графы зависимости | Нет | |
Иерархия вызовов | Нет | |
Конструктор классов | Нет | |
Обозреватель архитектуры | Нет | |
UML-схемы (вариант использования, действие, класс, компонент, последовательность и DSL) | Нет | |
Схемы слоев | Нет | |
Проверка слоев | Нет |
Функция | Поддерживается в Xamarin | Дополнительные комментарии |
---|---|---|
Использование системы управления версиями Team Foundation (TFVC) или Azure Repos | Да | Проекты Unity представляют собой наборы файлов, которые можно добавлять в системы управления версиями так же, как любые другие проекты. Однако существует ряд особенностей, которые описаны ниже. |
Приступая к работе с Git в Azure Repos | Да | См. примечания после таблицы. |
Улучшение качества кода | Да | |
Поиск изменений кода и других журналов | Да | |
Использование карт кода для отладки приложений | Да |
Особые замечания, касающиеся управления версиями с помощью Unity:
Среда Unity отслеживает метаданные активов игры в виде единой непрозрачной библиотеки, которая по умолчанию скрыта. Чтобы синхронизировать файлы и метаданные, необходимо сделать метаданные видимыми и хранить их в виде более управляемых блоков. Дополнительные сведения см. в разделе Использование внешних систем управления версиями с помощью Unity (документация по Unity).
Не все файлы и папки в проекте Unity подходят для управления версиями, как описано в указанной выше статье. Папки Assets и ProjectSettings можно добавить, но папки Library и Temp добавлять не следует. Дополнительный список создаваемых файлов, которые не следует передавать в систему управления версиями, см. в обсуждении Как использовать Git для систем управления версиями в Unity3D? на сайте StackOverflow. Многие разработчики также написали собственные статьи по этой теме в своих блогах.
Двоичные активы в проекте Unity, например текстуры или звуковые файлы, могут занимать много места. Многие системы управления версиями, например хранилище GIT, сохраняют уникальную копию файла для каждого внесенного изменения, даже если оно затрагивает лишь небольшую часть файла. Это может привести к переполнению репозитория GIT. Чтобы решить эту проблему, разработчики Unity часто добавляют в репозиторий только окончательную версию активов, используя для промежуточного хранения другие средства, такие как OneDrive, DropBox или git-annex. Этот подход имеет смысл, так как в отличие от изменений исходного кода управлять версиями таких активов не требуется. Разработчики также обычно устанавливают принудительный текстовый режим сериализации активов в редакторе проекта, чтобы файлы сцен сохранялись в текстовом, а не в двоичном формате, что позволяет объединять копии в системе управления версиями. Дополнительные сведения см. в разделе Параметры редактора (документация по Unity).
Аннотация: Рассматривается концепция управления программным проектом на всех этапах его жизненного цикла и реализация этой концепции в Visual Studio 2012. Приводятся принципы управления жизненным циклом приложения в Visual Studio, а также реализация возможностей архитектурного проектирования, разработки и тестирования приложений.
Презентацию к данной лекции Вы можете скачать здесь.
Цель лекции:
Получить общее представление об управлении жизненным циклом приложений и реализации этой концепции в Visual Studio 2012.
Введение
Управление жизненным циклом приложений (applicationlifecyclemanagement - ALM ) - это концепция управления программным проектом на всех этапах его жизни [24]. Для реализации этой концепции компания Microsoft предлагает решение на основе Visual Studio и TeamFoundationServer (TFS). Технологии ALM в Visual Studio позволяют разработчикам контролировать жизненный цикл создания ПО , сокращая время разработки, устраняя издержки и внедряя непрерывный цикл реализации бизнес-ценностей.
Управление жизненным циклом приложения в Visual Studio базируется на следующих принципах:
- продуктивность (productivity);
- интеграция (integration);
- расширяемость (extensibility).
Продуктивность обеспечивается возможностью совместной работы и управлением сложностью продукта. Все элементы проекта (требования, задачи, тестовые случаи, ошибки, исходный код и построения) и отчеты централизованно управляются через TFS. Инструменты визуального моделирования архитектуры, возможности управления качеством код, инструменты тестирования позволяют управлять сложностью продукта.
Интеграция обеспечивается возможностями Visual Studio по предоставлению всем участникам проекта информации о состоянии дел, что упрощает коммуникацию между членами команды и обеспечивает прозрачность хода процесса проектирования.
Расширяемость обеспечивается API-интерфейсом служб TFS и интегрированной средой разработки (integrateddevelopmentenvironment - IDE ). API- интерфейс служб TFS позволяет создавать собственные инструменты и расширять существующие, а IDE - конечным пользователям и сторонним разработчикам добавлять инструменты с дополнительными функциями.
При создании программного продукта необходимо в начале спроектировать архитектуру, что возлагается на архитектора программного продукта. На основе архитектуры осуществляется разработка, что является предназначением разработчика программного продукта. Созданный продукт необходимо тестировать на его соответствие требованиям заказчика, что осуществляет тестировщик . Visual Studio и TFS обеспечивают совместную командную работу архитектора, разработчика и тестировщика, предоставляя им необходимый инструментарий и функциональные возможности для выполнения требуемых работ .
Архитектурное проектирование
В Visual Studio для архитектурного проектирования используются инструменты визуального проектирования на основе языка UML , которые предназначены для следующего:
- визуализации архитектурных аспектов проектируемой системы;
- создания моделей структуры и поведения системы;
- разработки шаблонов для проектирования системы;
- документирования принятых решений.
Диаграммы UML позволяют визуально описывать приложение , наглядно представлять архитектуру и документировать требования к приложению.
Архитектурные инструменты в Visual Studio 2012 Ultimate позволяют создавать шесть видов схем и документ ориентированных графов:
- схема классов UML;
- схема последовательностей UML;
- схема вариантов использования UML;
- схема активности UML;
- схема компонентов UML;
- схема слоев.
Документ ориентированных графов позволяет создать граф зависимостей, отображающий отношения между компонентами архитектурных артефактов. Графы зависимостей, обеспечивают визуальные способы проверки кода , анализа зависимостей между файлами.
Разработка приложения
Основным средством разработки в VisualStudio2012 является интегрированная среда разработки ( IDE ). IDE -среда интегрирована со средствами модульного тестирования и обеспечивает возможности выявления неэффективного, небезопасного или плохо написанного кода, управление изменениями и модульное тестирование как кода, так и базы данных .
Важным инструментом разработчика программного обеспечения является модульное тестирование , которое реализуется в среде UnitTestFramework. Назначением модульных тестов является проверка того, что код работает правильно с точки зрения программиста. Модульные тесты формируются на более низком уровне, чем другие виды тестирования, и проверяют работают ли лежащие в их основе функции так, как ожидается. Для модульного тестирования используется метод прозрачного ящика, для которого требуется знание внутренних структур кода.
Модульные тесты помогают обнаружить проблемы проектирования и реализации. Кроме того, модульный тест является хорошей документацией по использованию проектируемой системы. Хотя модульное тестирование требует дополнительного программирования, но его применение окупается за счет сокращения затрат на отладку приложения.
Модульные тесты являются важным элементом регрессионного тестирования. Регрессионное тестирование представляет собой повторное тестирование части программы после внесения в неё изменений или дополнений. Цель регрессионного тестирования - выявление ошибок, которые могут появиться при внесении изменений в программу
В VisualStudio 2012 имеется функция "Анализ покрытия кода", которая проводит мониторинг того, какие строки кода исполнялись в ходе модульного тестирования. Результатом анализа покрытия кода является выявление областей кода, которые не покрыты тестами.
Важным аспектом создания качественного программного продукта является соблюдение разработчиками правил и стандартов организации в написания кода. В VisualStudio 2012 имеются функции анализа кода, которые позволяют проанализировать код, найти типичные ошибки, нарушения стандартов и предложить меры по устранению ошибок и нарушений. Наборы правил анализа кода поставляются с VisualStudio 2012. Разработчики могут настроить свои проекты на определенный набор правил, а также добавить свои специфичные правила анализа кода.
В процессе анализа кода используются метрики кода, которые дают количественные оценки различных характеристик кода. Метрики позволяют определить сложность кода и его изолированные области, которые могут привести к проблемам при сопровождении приложения. В VisualStudio 2012 используются следующие метрики кода:
Для анализа производительности и эффективности использования ресурсов приложением в VisualStudio 2012 имеются инструменты профилирования. Профилирование представляет собой процесс наблюдения и записи показателей о поведении приложения. Инструментарий профилирования (профилировщики) позволяют обнаружить у приложения проблемы с производительностью. Такие проблемы, как правило, связаны с кодом, который выполняется медленно, неэффективно или чрезмерно использует системную память . Профилирование обычно используется для выявления участков кода, которые в ходе выполнения приложения выполняются часто или долгое время.
Профилировщики бывают с выборкой и инструментированием. Профилировщики с выборкой делают периодические снимки выполняющегося приложения и записывают его состояние. Профилировщики с инструментированием добавляют маркеры отслеживания в начало и конец каждой исследуемой функции. В процессе работы профилировщика маркеры активизируются , когда поток исполнения программы входит в исследуемые функции и выходит из них. Профилировщик записывает данные о приложении и о том, какие маркеры были затронуты в ходе исполнения приложения. В VisualStudio 2012 поддерживается профилирование с выборкой и с инструментированием. Для анализа производительности необходимо:
- создать сеанс новый сеанс производительности;
- с помощью Обозревателя производительности задать свойства сеансы;
- запустить сеанс, выполняя приложение и профилировщик;
- проанализировать данные в отчетах по производительности.
Большинства корпоративных приложений работает с базами данных, что определяет необходимость разработки и тестировании приложений совместно с базами данных командой проекта. В VisualStudio 2012 имеется инструментарий создания баз данных и развертывания изменений в них. Для этого используется автономная разработка схем баз данных, которая позволяет вносить изменения в схемы без подключения к производственной базе данных. После внесения изменений в среду разработки VisualStudio 2012 позволяет протестировать их в самой среде разработки и/или выделенной среде тестирования. Кроме того, VisualStudio 2012 позволяет сгенерировать псевдореальные данные для проведения тестов. При положительных результатах тестирования VisualStudio 2012 позволяет сгенерировать сценарии для обновления производственной базы данных . Цикл разработки базы данных приложения состоит из следующих шагов:
- перевод схемы базы данных в автономный режим;
- итеративная разработка приложения с базой данных;
- тестирование схемы базы данных;
- построение и развертывание базы данных и приложения.
Для совершенствования процесса отладки приложений в VisualStudio 2012 имеется функция интеллектуального отслеживания работы программы IntelliTrace. Функция IntelliTrace конфигурируется с помощью следующих разделов:
- Общие (General);
- Дополнительно (Advanced);
- События IntelliTrace (IntelliTrace Events);
- Модули (Modules).
Раздел Общие позволяет включить и отключить функцию IntelliTrace и задать запись только событий либо дополнительной информации, включающей события, данные диагностики, вызовы и отслеживание на уровне методов. В разделе Дополнительно задается расположение для генерируемого файла журнала и его максимальный размер. В разделе События IntelliTrace перечисляются все события диагностики, которые будут собираться в ходе отладки приложения. Раздел Модули определяет список модулей, для которых необходимо собирать данные в процессе отладки приложения. При записи событий, происходящих в приложении, происходит их перехват при работе приложения и информация о событиях фиксируется в журнале. При отладке с IntelliTrace можно приостановить интерактивный сеанс отладки и просмотреть события или вызовы. Также имеется возможность остановки выполнения приложения и пошаговое движение назад и вперед в интерактивном сеансе отладки, а также воспроизведение записанного сеанса отладки.
Тестирование приложения
Тестирование приложения является необходимым этапом управления жизненным циклом приложения. Тестирование выполняет разработчик в процессе создания кода приложения, а также тестировщик при проверке качества разрабатываемого программного продукта.
VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса.
Нагрузочные тесты используются для исследования работоспособности приложения путем моделирования множества пользователей, которые работают с программой одновременно. Система позволяет использовать большое количество виртуальных пользователей на локальных и удаленных компьютерах при выполнении нагрузочного теста. В Visual Studio Ultimate имеется три встроенных шаблона нагрузки: постоянный, пошаговый и с учетом эталона. Выбор шаблона нагрузки определяется целям нагрузочного теста.
Тесты пользовательского интерфейса позволяют автоматически сформировать код теста, путем записи действий пользователя при работе с приложением, и впоследствии выполнять эти тесты автоматически.
Архитектура средств тестирования в VisualStudio 2012 приведена на рис. 6.1. Центральное место занимает платформа модульного-тестирования. Доступ к средствам тестирования может осуществляться из обозревателя тестов, командной строки и при построении приложения через TeamBuild. Платформа тестирования обеспечивает подключение плагинов тестирования. В составе VisualStudio 2012 установлены плагины MS-TestManaged и MS-TestNative. Плагины сторонних разработчиков (NUnit, xUnit. net , MbUnit и другие) можно подключить к платформе юнит-тестирования.
Средства модульного тестирования ориентированы на использование разработчиками в процессе написания кода.
Для тестировщиков в VisualStudio 2012 Ultimate имеется специализированный инструмент - MicrosoftTestManager, который позволяет создавать планы тестирования, формировать, добавлять и удалять тестовые случаи, определять и управлять физическими и виртуальными тестовыми средами, выполнять ручные и автоматические тесты.
Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement, которая интегрирована с TeamFoundationServer 2012, и представляет собой диспетчер виртуальной среды. Лаборатория тестирования предоставляет следующие возможности:
- создание, управление и освобождение сред, состоящих из одной или более виртуальных машин;
- автоматическое развертывание построений в виртуальных средах;
- выполнение ручных и автоматических тестов в виртуальных средах;
- использование снимков, позволяющих быстро вернуть среды к заданному состоянию;
- сетевая изоляция виртуальных сред.
Администрирование виртуальной среды LabManagement производит диспетчер MicrosoftSystemCenterVirtualMachineManager (SCVMM), с помощью которого производят необходимые настройки виртуальной тестовой лаборатории.
В VisualStudio 2012 и TeamFoundationServer добавлено средство взаимодействия с пользователями разработанных программных продуктов, которое по запросу позволяет сформировать отзыв пользователя в базе данных для последующей обработки командой проекта.
Ключевые термины
Краткие итоги
VisualStudio и TeamFoundationServer представляют решение компании Microsoft по управлению жизненным циклом приложений. Управление жизненным циклом приложения в Visual Studio базируется на принципах продуктивности, интеграции и расширяемости. В Visual Studio для архитектурного проектирования используются инструменты визуального моделирования на основе языка UML . Основным средством разработки в VisualStudio2012 является интегрированная среда разработки IDE , которая интегрирована со средствами модульного тестирования. VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса. Инструментами тестировщика при создании приложений является специализированный инструмент - MicrosoftTestManager. Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement.
Аннотация: Рассматривается концепция управления программным проектом на всех этапах его жизненного цикла и реализация этой концепции в Visual Studio 2012. Приводятся принципы управления жизненным циклом приложения в Visual Studio, а также реализация возможностей архитектурного проектирования, разработки и тестирования приложений.
Презентацию к данной лекции Вы можете скачать здесь.
Цель лекции:
Получить общее представление об управлении жизненным циклом приложений и реализации этой концепции в Visual Studio 2012.
Введение
Управление жизненным циклом приложений (applicationlifecyclemanagement - ALM ) - это концепция управления программным проектом на всех этапах его жизни [24]. Для реализации этой концепции компания Microsoft предлагает решение на основе Visual Studio и TeamFoundationServer (TFS). Технологии ALM в Visual Studio позволяют разработчикам контролировать жизненный цикл создания ПО , сокращая время разработки, устраняя издержки и внедряя непрерывный цикл реализации бизнес-ценностей.
Управление жизненным циклом приложения в Visual Studio базируется на следующих принципах:
- продуктивность (productivity);
- интеграция (integration);
- расширяемость (extensibility).
Продуктивность обеспечивается возможностью совместной работы и управлением сложностью продукта. Все элементы проекта (требования, задачи, тестовые случаи, ошибки, исходный код и построения) и отчеты централизованно управляются через TFS. Инструменты визуального моделирования архитектуры, возможности управления качеством код, инструменты тестирования позволяют управлять сложностью продукта.
Интеграция обеспечивается возможностями Visual Studio по предоставлению всем участникам проекта информации о состоянии дел, что упрощает коммуникацию между членами команды и обеспечивает прозрачность хода процесса проектирования.
Расширяемость обеспечивается API-интерфейсом служб TFS и интегрированной средой разработки (integrateddevelopmentenvironment - IDE ). API- интерфейс служб TFS позволяет создавать собственные инструменты и расширять существующие, а IDE - конечным пользователям и сторонним разработчикам добавлять инструменты с дополнительными функциями.
При создании программного продукта необходимо в начале спроектировать архитектуру, что возлагается на архитектора программного продукта. На основе архитектуры осуществляется разработка, что является предназначением разработчика программного продукта. Созданный продукт необходимо тестировать на его соответствие требованиям заказчика, что осуществляет тестировщик . Visual Studio и TFS обеспечивают совместную командную работу архитектора, разработчика и тестировщика, предоставляя им необходимый инструментарий и функциональные возможности для выполнения требуемых работ .
Архитектурное проектирование
В Visual Studio для архитектурного проектирования используются инструменты визуального проектирования на основе языка UML , которые предназначены для следующего:
- визуализации архитектурных аспектов проектируемой системы;
- создания моделей структуры и поведения системы;
- разработки шаблонов для проектирования системы;
- документирования принятых решений.
Диаграммы UML позволяют визуально описывать приложение , наглядно представлять архитектуру и документировать требования к приложению.
Архитектурные инструменты в Visual Studio 2012 Ultimate позволяют создавать шесть видов схем и документ ориентированных графов:
- схема классов UML;
- схема последовательностей UML;
- схема вариантов использования UML;
- схема активности UML;
- схема компонентов UML;
- схема слоев.
Документ ориентированных графов позволяет создать граф зависимостей, отображающий отношения между компонентами архитектурных артефактов. Графы зависимостей, обеспечивают визуальные способы проверки кода , анализа зависимостей между файлами.
Разработка приложения
Основным средством разработки в VisualStudio2012 является интегрированная среда разработки ( IDE ). IDE -среда интегрирована со средствами модульного тестирования и обеспечивает возможности выявления неэффективного, небезопасного или плохо написанного кода, управление изменениями и модульное тестирование как кода, так и базы данных .
Важным инструментом разработчика программного обеспечения является модульное тестирование , которое реализуется в среде UnitTestFramework. Назначением модульных тестов является проверка того, что код работает правильно с точки зрения программиста. Модульные тесты формируются на более низком уровне, чем другие виды тестирования, и проверяют работают ли лежащие в их основе функции так, как ожидается. Для модульного тестирования используется метод прозрачного ящика, для которого требуется знание внутренних структур кода.
Модульные тесты помогают обнаружить проблемы проектирования и реализации. Кроме того, модульный тест является хорошей документацией по использованию проектируемой системы. Хотя модульное тестирование требует дополнительного программирования, но его применение окупается за счет сокращения затрат на отладку приложения.
Модульные тесты являются важным элементом регрессионного тестирования. Регрессионное тестирование представляет собой повторное тестирование части программы после внесения в неё изменений или дополнений. Цель регрессионного тестирования - выявление ошибок, которые могут появиться при внесении изменений в программу
В VisualStudio 2012 имеется функция "Анализ покрытия кода", которая проводит мониторинг того, какие строки кода исполнялись в ходе модульного тестирования. Результатом анализа покрытия кода является выявление областей кода, которые не покрыты тестами.
Важным аспектом создания качественного программного продукта является соблюдение разработчиками правил и стандартов организации в написания кода. В VisualStudio 2012 имеются функции анализа кода, которые позволяют проанализировать код, найти типичные ошибки, нарушения стандартов и предложить меры по устранению ошибок и нарушений. Наборы правил анализа кода поставляются с VisualStudio 2012. Разработчики могут настроить свои проекты на определенный набор правил, а также добавить свои специфичные правила анализа кода.
В процессе анализа кода используются метрики кода, которые дают количественные оценки различных характеристик кода. Метрики позволяют определить сложность кода и его изолированные области, которые могут привести к проблемам при сопровождении приложения. В VisualStudio 2012 используются следующие метрики кода:
Для анализа производительности и эффективности использования ресурсов приложением в VisualStudio 2012 имеются инструменты профилирования. Профилирование представляет собой процесс наблюдения и записи показателей о поведении приложения. Инструментарий профилирования (профилировщики) позволяют обнаружить у приложения проблемы с производительностью. Такие проблемы, как правило, связаны с кодом, который выполняется медленно, неэффективно или чрезмерно использует системную память . Профилирование обычно используется для выявления участков кода, которые в ходе выполнения приложения выполняются часто или долгое время.
Профилировщики бывают с выборкой и инструментированием. Профилировщики с выборкой делают периодические снимки выполняющегося приложения и записывают его состояние. Профилировщики с инструментированием добавляют маркеры отслеживания в начало и конец каждой исследуемой функции. В процессе работы профилировщика маркеры активизируются , когда поток исполнения программы входит в исследуемые функции и выходит из них. Профилировщик записывает данные о приложении и о том, какие маркеры были затронуты в ходе исполнения приложения. В VisualStudio 2012 поддерживается профилирование с выборкой и с инструментированием. Для анализа производительности необходимо:
- создать сеанс новый сеанс производительности;
- с помощью Обозревателя производительности задать свойства сеансы;
- запустить сеанс, выполняя приложение и профилировщик;
- проанализировать данные в отчетах по производительности.
Большинства корпоративных приложений работает с базами данных, что определяет необходимость разработки и тестировании приложений совместно с базами данных командой проекта. В VisualStudio 2012 имеется инструментарий создания баз данных и развертывания изменений в них. Для этого используется автономная разработка схем баз данных, которая позволяет вносить изменения в схемы без подключения к производственной базе данных. После внесения изменений в среду разработки VisualStudio 2012 позволяет протестировать их в самой среде разработки и/или выделенной среде тестирования. Кроме того, VisualStudio 2012 позволяет сгенерировать псевдореальные данные для проведения тестов. При положительных результатах тестирования VisualStudio 2012 позволяет сгенерировать сценарии для обновления производственной базы данных . Цикл разработки базы данных приложения состоит из следующих шагов:
- перевод схемы базы данных в автономный режим;
- итеративная разработка приложения с базой данных;
- тестирование схемы базы данных;
- построение и развертывание базы данных и приложения.
Для совершенствования процесса отладки приложений в VisualStudio 2012 имеется функция интеллектуального отслеживания работы программы IntelliTrace. Функция IntelliTrace конфигурируется с помощью следующих разделов:
- Общие (General);
- Дополнительно (Advanced);
- События IntelliTrace (IntelliTrace Events);
- Модули (Modules).
Раздел Общие позволяет включить и отключить функцию IntelliTrace и задать запись только событий либо дополнительной информации, включающей события, данные диагностики, вызовы и отслеживание на уровне методов. В разделе Дополнительно задается расположение для генерируемого файла журнала и его максимальный размер. В разделе События IntelliTrace перечисляются все события диагностики, которые будут собираться в ходе отладки приложения. Раздел Модули определяет список модулей, для которых необходимо собирать данные в процессе отладки приложения. При записи событий, происходящих в приложении, происходит их перехват при работе приложения и информация о событиях фиксируется в журнале. При отладке с IntelliTrace можно приостановить интерактивный сеанс отладки и просмотреть события или вызовы. Также имеется возможность остановки выполнения приложения и пошаговое движение назад и вперед в интерактивном сеансе отладки, а также воспроизведение записанного сеанса отладки.
Тестирование приложения
Тестирование приложения является необходимым этапом управления жизненным циклом приложения. Тестирование выполняет разработчик в процессе создания кода приложения, а также тестировщик при проверке качества разрабатываемого программного продукта.
VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса.
Нагрузочные тесты используются для исследования работоспособности приложения путем моделирования множества пользователей, которые работают с программой одновременно. Система позволяет использовать большое количество виртуальных пользователей на локальных и удаленных компьютерах при выполнении нагрузочного теста. В Visual Studio Ultimate имеется три встроенных шаблона нагрузки: постоянный, пошаговый и с учетом эталона. Выбор шаблона нагрузки определяется целям нагрузочного теста.
Тесты пользовательского интерфейса позволяют автоматически сформировать код теста, путем записи действий пользователя при работе с приложением, и впоследствии выполнять эти тесты автоматически.
Архитектура средств тестирования в VisualStudio 2012 приведена на рис. 6.1. Центральное место занимает платформа модульного-тестирования. Доступ к средствам тестирования может осуществляться из обозревателя тестов, командной строки и при построении приложения через TeamBuild. Платформа тестирования обеспечивает подключение плагинов тестирования. В составе VisualStudio 2012 установлены плагины MS-TestManaged и MS-TestNative. Плагины сторонних разработчиков (NUnit, xUnit. net , MbUnit и другие) можно подключить к платформе юнит-тестирования.
Средства модульного тестирования ориентированы на использование разработчиками в процессе написания кода.
Для тестировщиков в VisualStudio 2012 Ultimate имеется специализированный инструмент - MicrosoftTestManager, который позволяет создавать планы тестирования, формировать, добавлять и удалять тестовые случаи, определять и управлять физическими и виртуальными тестовыми средами, выполнять ручные и автоматические тесты.
Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement, которая интегрирована с TeamFoundationServer 2012, и представляет собой диспетчер виртуальной среды. Лаборатория тестирования предоставляет следующие возможности:
- создание, управление и освобождение сред, состоящих из одной или более виртуальных машин;
- автоматическое развертывание построений в виртуальных средах;
- выполнение ручных и автоматических тестов в виртуальных средах;
- использование снимков, позволяющих быстро вернуть среды к заданному состоянию;
- сетевая изоляция виртуальных сред.
Администрирование виртуальной среды LabManagement производит диспетчер MicrosoftSystemCenterVirtualMachineManager (SCVMM), с помощью которого производят необходимые настройки виртуальной тестовой лаборатории.
В VisualStudio 2012 и TeamFoundationServer добавлено средство взаимодействия с пользователями разработанных программных продуктов, которое по запросу позволяет сформировать отзыв пользователя в базе данных для последующей обработки командой проекта.
Ключевые термины
Краткие итоги
VisualStudio и TeamFoundationServer представляют решение компании Microsoft по управлению жизненным циклом приложений. Управление жизненным циклом приложения в Visual Studio базируется на принципах продуктивности, интеграции и расширяемости. В Visual Studio для архитектурного проектирования используются инструменты визуального моделирования на основе языка UML . Основным средством разработки в VisualStudio2012 является интегрированная среда разработки IDE , которая интегрирована со средствами модульного тестирования. VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса. Инструментами тестировщика при создании приложений является специализированный инструмент - MicrosoftTestManager. Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement.
Примечание
Для простоты в этом разделе не рассматривается обновление баз данных в рамках процесса развертывания. Однако выполнение добавочных обновлений функций баз данных является требованием многих сценариев корпоративного развертывания, и вы можете узнать, как это сделать дальше в этой серии руководств. Дополнительные сведения см. в разделе развертывание проектов баз данных.
Общие сведения
процесс развертывания, показанный здесь, основан на сценарии Fabrikam, Inc., описанном в разделе Enterprise веб-развертывания: обзор сценария. Прежде чем изучите этот раздел, ознакомьтесь с обзором сценария. По сути, в этом сценарии рассматривается, как организация управляет развертыванием достаточно сложного веб-приложения, решения диспетчера контактовна различных этапах типичной корпоративной среды.
На высоком уровне решение диспетчера контактов проходит через эти этапы в рамках процесса разработки и развертывания:
- разработчик проверяет некоторый код на Team Foundation Server (TFS) 2010.
- TFS создает код и выполняет все модульные тесты, связанные с командным проектом.
- TFS развертывает решение в тестовой среде.
- Группа разработчиков проверяет и проверяет решение в тестовой среде.
- Администратор промежуточной среды выполняет развертывание "что если" в промежуточной среде, чтобы определить, будет ли развертывание вызывать проблемы.
- Администратор промежуточной среды выполняет динамическое развертывание в промежуточной среде.
- Решение проходит приемочное тестирование пользователем в промежуточной среде.
- Пакеты веб-развертывания импортируются вручную в рабочую среду.
Эти этапы формируют часть цикла непрерывной разработки.
На практике процесс немного сложнее, как можно увидеть, когда мы рассмотрим каждый этап более подробно. Fabrikam, Inc. использует другой подход к развертыванию для каждой целевой среды.
В оставшейся части этого раздела рассматриваются следующие ключевые этапы этого жизненного цикла развертывания.
- Предварительные требования. Настройка серверной инфраструктуры перед размещением логики развертывания.
- Начальная разработка и развертывание: что необходимо сделать перед первым развертыванием решения.
- Развертывание для тестирования: как упаковывать и развертывать содержимое в тестовую среду автоматически при возврате разработчиком нового кода.
- Развертывание в промежуточное хранение. Развертывание конкретных сборок в промежуточной среде и выполнение развертываний "что если", чтобы гарантировать, что развертывание не приведет к возникновению каких-либо проблем.
- Развертывание в рабочейсреде. Импорт веб-пакетов в рабочую среду, если сетевая инфраструктура предотвращает удаленное развертывание.
Предварительные требования
Первая задача в любом сценарии развертывания заключается в том, чтобы серверная инфраструктура соответствовала требованиям средств и методов развертывания. В этом случае Fabrikam, Inc. настроила свою серверную инфраструктуру следующим образом:
- TFS настроен для включения коллекции командных проектов, контроллеров сборки и агентов сборки. дополнительные сведения см. в разделе настройка Team Foundation Server для автоматического веб-развертывания .
- тестовая среда настроена для приема удаленных развертываний с помощью службы веб-Deployment Agent ("удаленный агент"), как описано в разделе сценарий: настройка тестовой среды для веб-развертывания и настройка веб-сервера для публикации веб-развертывание (удаленный агент).
- Промежуточная среда настроена для приема удаленных развертываний с помощью конечной точки обработчика веб-развертывание, как описано в разделе сценарий: Настройка промежуточной среды для веб-развертывания и Настройка веб-сервера для публикации веб-развертывание (обработчик веб-развертывание).
- рабочая среда настроена таким образом, чтобы администратор вручную импортировал пакеты веб-развертывания в службы IIS (IIS), как описано в статье о настройке рабочей среды для веб-развертывания и настройке веб-сервера для публикации веб-развертывание (автономное развертывание).
Начальная разработка и развертывание
Прежде чем компания Fabrikam, Inc. сможет развернуть решение диспетчера контактов в первый раз, необходимо выполнить следующие задачи:
- Создание нового командного проекта в TFS.
- создайте файлы проекта Microsoft Build Engine (MSBuild), которые содержат логику развертывания.
- Создайте определения сборки TFS, которые активируют процессы развертывания.
Создание новой команды Project
- администратор TFS, вадим валтерс, создает новый командный проект для приложения, как описано в разделе создание группы Project в TFS. Затем ведущий разработчик, Мэтт Хинк, создает скелетное решение. Он проверяет свои файлы в новом командном проекте в TFS, как описано в разделе Добавление содержимого в систему управления версиями.
Создание логики развертывания
мэтт хинк создает различные пользовательские файлы проекта MSBuild, используя подход с файлами разбиения проекта, описанный в разделе общие сведения о Project файле. Мэтт создает:
- Файл проекта с именем Publish. proj , который запускает процесс развертывания. этот файл содержит MSBuild целевых объектов, которые создают проекты в решении, создают веб-пакеты и развертывают пакеты в среде целевого сервера.
- Файлы проекта для конкретной среды с именами env-dev. proj и env-Stage. proj. Они содержат параметры, характерные для тестовой среды и промежуточной среды соответственно, например строки подключения, конечные точки службы и сведения об удаленной службе, которая будет принимать веб-пакет. Рекомендации по выбору правильных параметров для конкретных целевых сред см. в разделе Настройка свойств развертывания для целевой среды.
чтобы запустить развертывание, пользователь выполняет файл Publish. proj с помощью MSBuild или Team Build и задает расположение соответствующего файла проекта конкретной среды (Env-Dev. proj или Env-Stage. proj) в качестве аргумента командной строки. Затем файл Publish. proj импортирует файл проекта конкретной среды, чтобы создать полный набор инструкций по публикации для каждой целевой среды.
Способ работы этих файлов пользовательских проектов не зависит от механизма, используемого для вызова MSBuild. например, можно использовать командную строку MSBuild напрямую, как описано в разделе общие сведения о файле Project. Файлы проекта можно запустить из командного файла, как описано в разделе Создание и запуск командного файла развертывания. Кроме того, можно запускать файлы проекта из определения сборки в TFS, как описано в разделе Создание определения сборки, поддерживающего развертывание.
в каждом случае конечный результат совпадает — MSBuild выполняет объединенный файл проекта и развертывает решение в целевой среде. Это обеспечивает большую гибкость при запуске процесса публикации.
После создания пользовательских файлов проекта Мэтт добавляет их в папку решения и выполняет их возврат в систему управления версиями.
Создание определений построений
Как окончательная задача подготовки, Мэтт и Вадим работают вместе для создания трех определений сборки для нового командного проекта:
- Деплойтотест. Это позволяет построить решение диспетчера контактов и развернуть его в тестовой среде каждый раз, когда происходит возврат.
- Деплойтостагинг. При этом ресурсы из указанной предыдущей сборки развертываются в промежуточной среде, когда разработчик помещает сборку в очередь.
- Деплойтостагинг-WhatIf. При этом выполняется развертывание в промежуточной среде, когда разработчик помещает сборку в очередь.
В последующих разделах приводятся дополнительные сведения о каждом из этих определений сборки.
Развертывание для тестирования
Группа разработчиков компании Fabrikam, Inc. обслуживает тестовые среды для выполнения различных действий тестирования программного обеспечения, таких как проверка и проверка, тестирование на удобство использования, тестирование совместимости, прямое или произвольное тестирование.
Группа разработки создала определение сборки в TFS с именем деплойтотест. В этом определении сборки используется триггер непрерывной интеграции. Это означает, что процесс сборки выполняется каждый раз, когда член группы разработчиков Fabrikam, Inc. выполняет возврат. При запуске сборки определение сборки будет следующим образом:
- Создайте решение ContactManager. sln. Это, в свою очередь, создает каждый проект в решении.
- Выполните все модульные тесты в структуре папок решения (если решение успешно построено).
- Запустите пользовательские файлы проекта, управляющие процессом развертывания (если решение успешно построено и проходят все модульные тесты).
Конечный результат заключается в том, что если решение успешно построено и прошло модульные тесты, веб-пакеты и другие ресурсы развертывания развертываются в тестовой среде.
Как работает процесс развертывания?
Определение сборки деплойтотест предоставляет эти аргументы для MSBuild:
Свойства пакета деплойонбуилд = true и деплойтаржет = используются при сборке проектов в решении Team Build. если проект является проектом веб-приложения, эти свойства указывают MSBuild создать пакет веб-развертывания для проекта. Свойство таржетенвпропсфиле сообщает файлу Publish. proj , где найти файл проекта конкретной среды для импорта.
Подробное пошаговое руководство по созданию определения сборки, подобно этому, см. в разделе Создание определения сборки, поддерживающего развертывание.
Файл Publish. proj содержит целевые объекты, которые создают каждый проект в решении. Однако он также включает условную логику, которая пропускает эти целевые объекты сборки, если вы выполняете файл в Team Build. Это позволяет воспользоваться преимуществами дополнительных функций сборки, предоставляемых Team Build, таких как возможность выполнять модульные тесты. Если сборка решения или модульные тесты завершились ошибкой, файл Publish. proj не будет выполнен и приложение не будет развернуто.
Условная логика достигается путем вычисления свойства буилдингинтеамбуилд . это MSBuild свойство, которое автоматически устанавливается в значение true при использовании Team Build для построения проектов.
Развертывание в промежуточное хранение
Когда сборка отвечает всем требованиям группы разработчиков в тестовой среде, группе может потребоваться развернуть ту же сборку в промежуточной среде. Промежуточные среды обычно настраиваются таким образом, чтобы они соответствовали характеристикам рабочей или "живой" среды, например, с точки зрения серверных спецификаций, операционных систем и программного обеспечения и сетевой конфигурации. Промежуточные среды часто используются для нагрузочного тестирования, приемочного тестирования пользователей и более подробных внутренних проверок. Сборки развертываются в промежуточной среде непосредственно с сервера сборки.
Определения сборки, используемые для развертывания решения в промежуточной среде, деплойтостагинг-WhatIf и деплойтостагинг, имеют следующие характеристики:
- Они вообще ничего не создают. Когда Вадим развертывает решение в промежуточной среде, он хочет развернуть определенную существующую сборку, которая уже проверена и проверена в тестовой среде. Для определения сборки необходимо только запустить пользовательские файлы проекта, которые управляют процессом развертывания.
- Когда Вадим запускает сборку, он использует параметры сборки, чтобы указать, какая сборка содержит ресурсы, которые он хочет развернуть на сервере сборки.
- Определения сборки не запускаются автоматически. Вадим вручную помещает сборку в очередь, когда ему требуется развернуть решение в промежуточной среде.
Это высокоуровневая процедура развертывания в промежуточной среде.
- Администратор промежуточной среды, Вадим Валтерс, помещает сборку в очередь с помощью определения сборки деплойтостагинг-WhatIf . Вадим использует параметры определения сборки, чтобы указать, какую сборку нужно развернуть.
- Определение сборки деплойтостагинг-WhatIf запускает пользовательские файлы проекта в режиме "что если". При этом создаются файлы журнала, как если бы Вадим выполнял динамическое развертывание, но фактически не вносит никаких изменений в целевую среду.
- Вадим проверяет файлы журнала, чтобы определить последствия развертывания в промежуточной среде. В частности, Вадим хочет проверить, что будет добавлено, что будет обновлено и что будет удалено.
- Если Вадим удовлетворен тем, что развертывание не внесет нежелательные изменения в существующие ресурсы или данные, он помещает сборку в очередь с помощью определения сборки деплойтостагинг .
- Определение сборки деплойтостагинг запускает пользовательские файлы проекта. Они публикуют ресурсы развертывания на основном веб-сервере в промежуточной среде.
- Контроллер инфраструктуры веб-фермы (WFF) синхронизирует веб-серверы в промежуточной среде. Это сделает приложение доступным на всех веб-серверах фермы серверов.
Как работает процесс развертывания?
Определение сборки деплойтостагинг предоставляет эти аргументы для MSBuild:
Свойство таржетенвпропсфиле сообщает файлу Publish. proj , где найти файл проекта конкретной среды для импорта. Свойство аутпутрут переопределяет встроенное значение и указывает расположение папки сборки, содержащей ресурсы, которые требуется развернуть. Когда Вадим помещает сборку в очередь, он использует вкладку Параметры для предоставления обновленного значения для свойства аутпутрут .
Дополнительные сведения о том, как создать определение сборки подобным образом, см. в разделе развертывание определенной сборки.
Определение сборки деплойтостагинг-WhatIf содержит ту же логику развертывания, что и определение сборки деплойтостагинг . Однако он включает дополнительный аргумент WhatIf = true:
В файле Publish. proj свойство WhatIf указывает, что все ресурсы развертывания должны быть опубликованы в режиме "что если". Иными словами, файлы журнала создаются так, как если бы развертывание выполнялось раньше, но в целевой среде ничего не изменилось. Это позволяет оценить влияние предложенного развертывания (в частности, то, что будет добавлено, что будет обновлено и что будет удалено), прежде чем действительно внести изменения.
Дополнительные сведения о настройке развертываний "что если" см. в разделе выполнение развертывания "What If".
После развертывания приложения на основном веб-сервере в промежуточной среде WFF будет автоматически синхронизировать приложение на всех серверах фермы серверов.
Дополнительные сведения о настройке WFF для синхронизации веб-серверов см. в статье Создание фермы серверов с помощью платформы веб-фермы.
Развертывание в рабочей среде
При утверждении сборки в промежуточной среде группа Fabrikam, Inc. может опубликовать приложение в рабочей среде. Рабочая среда — это то место, где приложение переходит в активное расположение, и достигает целевой аудитории конечных пользователей.
Рабочая среда находится в сети периметра с выходом в Интернет. Это изолировано от внутренней сети, содержащей сервер сборки. Администратор рабочей среды, Lisa Andrews), должен вручную скопировать пакеты веб-развертывания с сервера сборки и импортировать их в службы IIS на основном рабочем веб-сервере.
Это высокоуровневая процедура развертывания в рабочей среде:
- Группа разработчиков рекомендует Lisa, что сборка готова к развертыванию в рабочей среде. Команда рекомендует Lisa расположение пакетов веб-развертывания в транзитной папке на сервере сборки.
- Lisa собирает веб-пакеты с сервера сборки и копирует их на основной веб-сервер в рабочей среде.
- Lisa использует диспетчер IIS для импорта и публикации веб-пакетов на основном веб-сервере.
- Контроллер WFF синхронизирует веб-серверы в рабочей среде. Это сделает приложение доступным на всех веб-серверах фермы серверов.
Как работает процесс развертывания?
Диспетчер IIS включает мастер импорта пакетов приложений, который упрощает публикацию веб-пакетов на веб-сайте IIS. Пошаговое руководство по выполнению этой процедуры см. в разделе Установка веб-пакетов вручную.
Заключение
В этом разделе приведена схема жизненного цикла развертывания для типичного веб-приложения корпоративного уровня.
Этот раздел является частью серии руководств, в которых содержатся рекомендации по различным аспектам развертывания веб-приложений. На практике существует множество дополнительных задач и вопросов на каждом этапе процесса развертывания, и их невозможно охватить в одном пошаговом руководстве. Дополнительные сведения см. в следующих руководствах:
Аннотация: Рассматривается концепция управления программным проектом на всех этапах его жизненного цикла и реализация этой концепции в Visual Studio 2012. Приводятся принципы управления жизненным циклом приложения в Visual Studio, а также реализация возможностей архитектурного проектирования, разработки и тестирования приложений.
Презентацию к данной лекции Вы можете скачать здесь.
Цель лекции:
Получить общее представление об управлении жизненным циклом приложений и реализации этой концепции в Visual Studio 2012.
Введение
Управление жизненным циклом приложений (applicationlifecyclemanagement - ALM ) - это концепция управления программным проектом на всех этапах его жизни [24]. Для реализации этой концепции компания Microsoft предлагает решение на основе Visual Studio и TeamFoundationServer (TFS). Технологии ALM в Visual Studio позволяют разработчикам контролировать жизненный цикл создания ПО , сокращая время разработки, устраняя издержки и внедряя непрерывный цикл реализации бизнес-ценностей.
Управление жизненным циклом приложения в Visual Studio базируется на следующих принципах:
- продуктивность (productivity);
- интеграция (integration);
- расширяемость (extensibility).
Продуктивность обеспечивается возможностью совместной работы и управлением сложностью продукта. Все элементы проекта (требования, задачи, тестовые случаи, ошибки, исходный код и построения) и отчеты централизованно управляются через TFS. Инструменты визуального моделирования архитектуры, возможности управления качеством код, инструменты тестирования позволяют управлять сложностью продукта.
Интеграция обеспечивается возможностями Visual Studio по предоставлению всем участникам проекта информации о состоянии дел, что упрощает коммуникацию между членами команды и обеспечивает прозрачность хода процесса проектирования.
Расширяемость обеспечивается API-интерфейсом служб TFS и интегрированной средой разработки (integrateddevelopmentenvironment - IDE ). API- интерфейс служб TFS позволяет создавать собственные инструменты и расширять существующие, а IDE - конечным пользователям и сторонним разработчикам добавлять инструменты с дополнительными функциями.
При создании программного продукта необходимо в начале спроектировать архитектуру, что возлагается на архитектора программного продукта. На основе архитектуры осуществляется разработка, что является предназначением разработчика программного продукта. Созданный продукт необходимо тестировать на его соответствие требованиям заказчика, что осуществляет тестировщик . Visual Studio и TFS обеспечивают совместную командную работу архитектора, разработчика и тестировщика, предоставляя им необходимый инструментарий и функциональные возможности для выполнения требуемых работ .
Архитектурное проектирование
В Visual Studio для архитектурного проектирования используются инструменты визуального проектирования на основе языка UML , которые предназначены для следующего:
- визуализации архитектурных аспектов проектируемой системы;
- создания моделей структуры и поведения системы;
- разработки шаблонов для проектирования системы;
- документирования принятых решений.
Диаграммы UML позволяют визуально описывать приложение , наглядно представлять архитектуру и документировать требования к приложению.
Архитектурные инструменты в Visual Studio 2012 Ultimate позволяют создавать шесть видов схем и документ ориентированных графов:
- схема классов UML;
- схема последовательностей UML;
- схема вариантов использования UML;
- схема активности UML;
- схема компонентов UML;
- схема слоев.
Документ ориентированных графов позволяет создать граф зависимостей, отображающий отношения между компонентами архитектурных артефактов. Графы зависимостей, обеспечивают визуальные способы проверки кода , анализа зависимостей между файлами.
Разработка приложения
Основным средством разработки в VisualStudio2012 является интегрированная среда разработки ( IDE ). IDE -среда интегрирована со средствами модульного тестирования и обеспечивает возможности выявления неэффективного, небезопасного или плохо написанного кода, управление изменениями и модульное тестирование как кода, так и базы данных .
Важным инструментом разработчика программного обеспечения является модульное тестирование , которое реализуется в среде UnitTestFramework. Назначением модульных тестов является проверка того, что код работает правильно с точки зрения программиста. Модульные тесты формируются на более низком уровне, чем другие виды тестирования, и проверяют работают ли лежащие в их основе функции так, как ожидается. Для модульного тестирования используется метод прозрачного ящика, для которого требуется знание внутренних структур кода.
Модульные тесты помогают обнаружить проблемы проектирования и реализации. Кроме того, модульный тест является хорошей документацией по использованию проектируемой системы. Хотя модульное тестирование требует дополнительного программирования, но его применение окупается за счет сокращения затрат на отладку приложения.
Модульные тесты являются важным элементом регрессионного тестирования. Регрессионное тестирование представляет собой повторное тестирование части программы после внесения в неё изменений или дополнений. Цель регрессионного тестирования - выявление ошибок, которые могут появиться при внесении изменений в программу
В VisualStudio 2012 имеется функция "Анализ покрытия кода", которая проводит мониторинг того, какие строки кода исполнялись в ходе модульного тестирования. Результатом анализа покрытия кода является выявление областей кода, которые не покрыты тестами.
Важным аспектом создания качественного программного продукта является соблюдение разработчиками правил и стандартов организации в написания кода. В VisualStudio 2012 имеются функции анализа кода, которые позволяют проанализировать код, найти типичные ошибки, нарушения стандартов и предложить меры по устранению ошибок и нарушений. Наборы правил анализа кода поставляются с VisualStudio 2012. Разработчики могут настроить свои проекты на определенный набор правил, а также добавить свои специфичные правила анализа кода.
В процессе анализа кода используются метрики кода, которые дают количественные оценки различных характеристик кода. Метрики позволяют определить сложность кода и его изолированные области, которые могут привести к проблемам при сопровождении приложения. В VisualStudio 2012 используются следующие метрики кода:
Для анализа производительности и эффективности использования ресурсов приложением в VisualStudio 2012 имеются инструменты профилирования. Профилирование представляет собой процесс наблюдения и записи показателей о поведении приложения. Инструментарий профилирования (профилировщики) позволяют обнаружить у приложения проблемы с производительностью. Такие проблемы, как правило, связаны с кодом, который выполняется медленно, неэффективно или чрезмерно использует системную память . Профилирование обычно используется для выявления участков кода, которые в ходе выполнения приложения выполняются часто или долгое время.
Профилировщики бывают с выборкой и инструментированием. Профилировщики с выборкой делают периодические снимки выполняющегося приложения и записывают его состояние. Профилировщики с инструментированием добавляют маркеры отслеживания в начало и конец каждой исследуемой функции. В процессе работы профилировщика маркеры активизируются , когда поток исполнения программы входит в исследуемые функции и выходит из них. Профилировщик записывает данные о приложении и о том, какие маркеры были затронуты в ходе исполнения приложения. В VisualStudio 2012 поддерживается профилирование с выборкой и с инструментированием. Для анализа производительности необходимо:
- создать сеанс новый сеанс производительности;
- с помощью Обозревателя производительности задать свойства сеансы;
- запустить сеанс, выполняя приложение и профилировщик;
- проанализировать данные в отчетах по производительности.
Большинства корпоративных приложений работает с базами данных, что определяет необходимость разработки и тестировании приложений совместно с базами данных командой проекта. В VisualStudio 2012 имеется инструментарий создания баз данных и развертывания изменений в них. Для этого используется автономная разработка схем баз данных, которая позволяет вносить изменения в схемы без подключения к производственной базе данных. После внесения изменений в среду разработки VisualStudio 2012 позволяет протестировать их в самой среде разработки и/или выделенной среде тестирования. Кроме того, VisualStudio 2012 позволяет сгенерировать псевдореальные данные для проведения тестов. При положительных результатах тестирования VisualStudio 2012 позволяет сгенерировать сценарии для обновления производственной базы данных . Цикл разработки базы данных приложения состоит из следующих шагов:
- перевод схемы базы данных в автономный режим;
- итеративная разработка приложения с базой данных;
- тестирование схемы базы данных;
- построение и развертывание базы данных и приложения.
Для совершенствования процесса отладки приложений в VisualStudio 2012 имеется функция интеллектуального отслеживания работы программы IntelliTrace. Функция IntelliTrace конфигурируется с помощью следующих разделов:
- Общие (General);
- Дополнительно (Advanced);
- События IntelliTrace (IntelliTrace Events);
- Модули (Modules).
Раздел Общие позволяет включить и отключить функцию IntelliTrace и задать запись только событий либо дополнительной информации, включающей события, данные диагностики, вызовы и отслеживание на уровне методов. В разделе Дополнительно задается расположение для генерируемого файла журнала и его максимальный размер. В разделе События IntelliTrace перечисляются все события диагностики, которые будут собираться в ходе отладки приложения. Раздел Модули определяет список модулей, для которых необходимо собирать данные в процессе отладки приложения. При записи событий, происходящих в приложении, происходит их перехват при работе приложения и информация о событиях фиксируется в журнале. При отладке с IntelliTrace можно приостановить интерактивный сеанс отладки и просмотреть события или вызовы. Также имеется возможность остановки выполнения приложения и пошаговое движение назад и вперед в интерактивном сеансе отладки, а также воспроизведение записанного сеанса отладки.
Тестирование приложения
Тестирование приложения является необходимым этапом управления жизненным циклом приложения. Тестирование выполняет разработчик в процессе создания кода приложения, а также тестировщик при проверке качества разрабатываемого программного продукта.
VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса.
Нагрузочные тесты используются для исследования работоспособности приложения путем моделирования множества пользователей, которые работают с программой одновременно. Система позволяет использовать большое количество виртуальных пользователей на локальных и удаленных компьютерах при выполнении нагрузочного теста. В Visual Studio Ultimate имеется три встроенных шаблона нагрузки: постоянный, пошаговый и с учетом эталона. Выбор шаблона нагрузки определяется целям нагрузочного теста.
Тесты пользовательского интерфейса позволяют автоматически сформировать код теста, путем записи действий пользователя при работе с приложением, и впоследствии выполнять эти тесты автоматически.
Архитектура средств тестирования в VisualStudio 2012 приведена на рис. 6.1. Центральное место занимает платформа модульного-тестирования. Доступ к средствам тестирования может осуществляться из обозревателя тестов, командной строки и при построении приложения через TeamBuild. Платформа тестирования обеспечивает подключение плагинов тестирования. В составе VisualStudio 2012 установлены плагины MS-TestManaged и MS-TestNative. Плагины сторонних разработчиков (NUnit, xUnit. net , MbUnit и другие) можно подключить к платформе юнит-тестирования.
Средства модульного тестирования ориентированы на использование разработчиками в процессе написания кода.
Для тестировщиков в VisualStudio 2012 Ultimate имеется специализированный инструмент - MicrosoftTestManager, который позволяет создавать планы тестирования, формировать, добавлять и удалять тестовые случаи, определять и управлять физическими и виртуальными тестовыми средами, выполнять ручные и автоматические тесты.
Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement, которая интегрирована с TeamFoundationServer 2012, и представляет собой диспетчер виртуальной среды. Лаборатория тестирования предоставляет следующие возможности:
- создание, управление и освобождение сред, состоящих из одной или более виртуальных машин;
- автоматическое развертывание построений в виртуальных средах;
- выполнение ручных и автоматических тестов в виртуальных средах;
- использование снимков, позволяющих быстро вернуть среды к заданному состоянию;
- сетевая изоляция виртуальных сред.
Администрирование виртуальной среды LabManagement производит диспетчер MicrosoftSystemCenterVirtualMachineManager (SCVMM), с помощью которого производят необходимые настройки виртуальной тестовой лаборатории.
В VisualStudio 2012 и TeamFoundationServer добавлено средство взаимодействия с пользователями разработанных программных продуктов, которое по запросу позволяет сформировать отзыв пользователя в базе данных для последующей обработки командой проекта.
Ключевые термины
Краткие итоги
VisualStudio и TeamFoundationServer представляют решение компании Microsoft по управлению жизненным циклом приложений. Управление жизненным циклом приложения в Visual Studio базируется на принципах продуктивности, интеграции и расширяемости. В Visual Studio для архитектурного проектирования используются инструменты визуального моделирования на основе языка UML . Основным средством разработки в VisualStudio2012 является интегрированная среда разработки IDE , которая интегрирована со средствами модульного тестирования. VisualStudio 2012 Ultimate предоставляет разработчику инструмент для создания и использования модульных тестов, нагрузочных тестов и веб тестов производительности, а также тестов пользовательского интерфейса. Инструментами тестировщика при создании приложений является специализированный инструмент - MicrosoftTestManager. Создание эффективной среды тестирования сложных приложений выполняется с помощью лаборатории тестирования - LabManagement.
Читайте также: