Один день из жизни разработчика ALM: приостановка работы, исправление ошибки и проведение анализа кода

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

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

ПримечаниеПримечание

Мои функции работы и анализа кода, Питер использует доступны только в Visual Studio Premium и Visual Studio Ultimate.

Содержание раздела

  • Приостанавливает текущий рабочий и начните работу с ошибкой

  • Определите ошибку

  • Анализ запроса

  • Примите и выполняйте (или склонение) анализ кода

  • Получение и ответ на анализ кода

  • Исправьте тест и код

  • Повтор fix

  • Возобновить работу в задаче "

Приостанавливает текущий рабочий

Как Питер работает на элементе " невыполненная работа по Джулии поступает, обсудить ошибку, которая блокирует ее.Она в области, с которой Питер знакомо, поэтому он создает задачу исправить ошибку и присвоит его в себе.Он решает начать работу в починке немедленно.

Прежде, чем он запускает для работы с новой ошибке, Питер необходимо убедиться, что его текущий рабочий устанавливается в сторону в безопасное место на сервере рабочей группы.На странице Моя работа, Питер выбирает Приостановить для сохранения (на Team Foundation Server):

  • Вся работа, включая его внес изменения в код тесты и другие файлы.

  • Открытие решения окна точки останова, переменные окна контрольных значений, а остальные биты состояния Visual Studio.

Теперь, когда его рабочая область чиста, Питер перетаскивает новую задачу из Доступные рабочие элементы к Выполняемая работа.Он является исследование и записи исправления.

ПримечаниеПримечание

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

Hh474795.collapse_all(ru-ru,VS.110).gifПриостанавливает текущий рабочий и начать работу в другой задаче

Приостановка работы

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

    1. В Командный обозреватель выберите Значок "Начало"Главная, а затем выберите Значок "Моя работа"Моя работа.
  2. Приостановить рамках текущей задачи.

    1. В разделе Выполняемая работа выберите Приостановить.

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

  3. Рабочий запуска на новой задачей, ошибки или другого рабочего элемента:

    1. До выбора рабочий элемент может потребоваться:

      • Создание новой задачи или другого рабочего элемента, выбрав Создать в Доступные рабочие элементы; или

      • Выберите другой запрос под Доступные рабочие элементы.

    2. Перетащите рабочий элемент из Доступные рабочие элементы к Выполняемая работа.

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

СоветСовет

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

Определите ошибку

Питер открывает и считывает рабочий элемент ошибки.Согласно описанию, написанных членом группы теста, платный счет иногда неправильно пометил как бесплатный.Моментальный снимок лабораторной среды, вложенного в рабочий элемент ошибки.Питер удается открыть виртуальных машин на котором был выполнен тест, см. в разделе неверный счет и шаг назад по журналу IntelliTrace.Он выполняет трассировку ошибки к приему следующего:

    public class LocalMath
    {       
        public static bool EqualTo(double a, double b)
        {
          return a == b;
        }

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

Hh474795.collapse_all(ru-ru,VS.110).gifУвеличьте тесты для указания ошибки

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

 
        // Added 2012-02-02 for bug 654321:
        /// <summary>
        /// Make sure that number equality test allows for 
        /// small rounding errors.
        /// </summary>
        [TestMethod]
        public void TestDoublesEqual()
        {
            // We allow a rounding error of 1 in 1000000:
            TestEqual(1, 1e-7, true); // Less than allowed error
            TestEqual(1, 1e-5, false); // More than allowed error
            TestEqual(1000, 1e-7, true); // Less than allowed error
            TestEqual(1000, 1e-5, false); // More than allowed error
        }
        private void TestEqual(double value, double error, bool result)
        {
            // Try different combinations of error and value:
            Assert.IsTrue(result == LocalMath.EqualTo(value + error, value));
            Assert.IsTrue(result == LocalMath.EqualTo(value, value + error));
            Assert.IsTrue(result == LocalMath.EqualTo(value - error, value));
            Assert.IsTrue(result == LocalMath.EqualTo(value, value - error));
        }

Он запускает тест и он завершается неудачей, как ожидалось.

Обозреватель модульных тестов с непройденным тестом равенства

Hh474795.collapse_all(ru-ru,VS.110).gifDo передача тестов

Питер исправляет код:

        public static bool EqualTo(double a, double b)
        {
            // Allow for rounding errors.
            // For example, a == 2.0 and b = 1.99999999999

            const double allowedError = 1/1000000;
            return System.Math.Abs(a - b) < allowedError;
        }

Теперь тестовый пропуски:

Обозреватель модульных тестов с пройденным тестом равенства

Анализ запроса

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

Hh474795.collapse_all(ru-ru,VS.110).gifЗапросить анализ кода

Запрос анализа кода

  1. В Командный обозреватель на странице Моя работа выберите *** Анализ запроса ***.

    Страница Новый анализ кода.

  2. Рецензент Укажите один или несколько проверяющих.

  3. Анализ кода Укажите имя для предварительного просмотра.

  4. Путь области Укажите путь к области.

  5. Комментарий Задайте комментарий к рецензентам.

  6. Выберите Отправить запрос.

Рецензенты запроса будут уведомление по электронной почте.

Можно также запросить анализ кода, приостановленного рабочего набора отложенных изменений или набора изменений.

Примите или отклоните анализ кода

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

В нее комментариях точки Джулии out, что тест неправильн.Ошибка должна быть допустимая указанной части входных значений, а не числом константы.Таким образом, тест должен умножения ошибку значением.

            // We allow a rounding error of 1 in 1000000
            // as a fraction of the value:
            TestEqual(1, 1e-7, true); // Less than allowed error
            TestEqual(1, 1e-5, false); // More than allowed error
            TestEqual(1000, 1000*1e-7, true); // Less than allowed error
            TestEqual(1000, 1000*1e-5, false); // More than allowed error
СоветСовет

Обратите внимание, что участники команды использует тесты как фокус для обсуждения.Если тесты верны и недостаточны, то код будет.В отличие от кода, каждый тест представляет отдельный вариант.По этой причине часто тесты для обсуждения проще, чем код.

Hh474795.collapse_all(ru-ru,VS.110).gifВыполнить анализ кода

Принятие анализа кода и реагирование на негоВыполнение анализа кода

  1. В Командный обозреватель на странице Моя работа, перейдите к шагу *** Обзоры и запросы Мой код " *** и откройте запрос.

  2. На странице Анализ кода можно:

    • Выберите Принять или *** склонение *** для уведомления автор запустите ли анализ.

    • Выберите Добавить рецензента для добавления других рецензенты к запросу анализа кода.

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

    • Разверните Комментарии чтобы обсуждать изменения с разработчиком и другими рецензентами.

      • Выберите *** добавьте общий комментарий ***

        -или-

        Выберите блок кода, а затем выберите Добавить комментарий из контекстного меню.

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

Ответ на анализ кода

Питер получает и обрабатывает анализ кода из Джулии.

Hh474795.collapse_all(ru-ru,VS.110).gifЧтобы ответить на анализ кода

Рецензенты автор кода и комментарии могут обмена настолько часто, насколько они like.Анализ заканчивается, когда автор закрывает его.С каждым вкладом в обсуждению другие члены будут уведомление по электронной почте.

Реагирование на анализ кода

  1. В Командный обозреватель на странице Моя работа, перейдите к шагу *** Анализ кода и запрос *** и дважды щелкните запрос.

    Можно также открыть контекстное меню для запроса и выберите пункт Открыть.

  2. Считывает комментарии и нажав на них.Чтобы ответить на комментарию, выберите Ответить свой комментарий введите в поле, которое отображается, а затем выберите ОК.Отправить комментарии, выберите *** Отправить комментарии ***.

  3. Просмотр файла и увидеть блоки кода, которые содержат комментарии или редактирования файла, становятся к шагу Комментарии.В подразделе Файлы открыть контекстное меню для файла и выберите *** Сравнить (только для чтения) *** или *** Правка файл ***.

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

    • завершено, чтобы указать, что анализ завершен.

    • —или—

    • *** Abandon *** для отображения вас отменяет проверку.

Исправьте тест и код

Чтение комментарии Джулии, Питер исправляет ее модульный тест, поскольку она предлагает.Теперь тест завершается неудачно.Это означает, что код еще не верен.

Питер исправляет код:

        /// <summary>
        /// Returns true if two numbers are equal.
        /// </summary>
        public static bool EqualTo(double a, double b)
        {
            // Allow for rounding errors.
            const double allowedErrorMultiple = 1/1000000;
            double allowedError = (System.Math.Abs(a) + System.Math.Abs(b)) * allowedErrorMultiple/2;
            return System.Math.Abs(a - b) < allowedError;
        }

Тест проходит еще раз:

Обозреватель модульных тестов с пройденным тестом равенства

СоветСовет

Чтобы исправить ошибку, следует той же практикой, как при разработке кода.Запись тест завершается неудачей, а затем выполните тест передачи.Повтор код и тесты, только если тесты проходят успешно.

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

Повтор fix

Питер вернет фиксированный код и модульные тесты.Состояние ошибки устанавливается автоматически на Разрешено и значение Кому назначено автоматически переподчинено к члену команды теста, которая открыла ошибку.Этот участник команды проверяет, что была исправлена ошибка и закрыть рабочий элемент.

Hh474795.collapse_all(ru-ru,VS.110).gifПовторить fix

Возврат обновления для исправления ошибки

  1. В Командный обозреватель на странице Моя работа выберите Вернуть.

  2. Просмотрите содержимое страницы Ожидающие изменения чтобы убедиться в том, что:

    • Перечисляются все необходимые изменения в Включенные изменения

    • Все нужные рабочие элементы, перечислены в Связанные рабочие элементы.

  3. Укажите Комментарий помогут команде разработчиков понять назначение этих изменений при их выглядит журнал управления версиями измененных файлов и папок.

  4. Выберите Вернуть.

Возобновить работу в задаче "

Возобновить чен работают на него задачу.Он может получить обратно работал быстро, поскольку все его изменения кода восстанавливаются в его области вместе с важными битами состояния, как открытые окна точки останова и переменные окна контрольное значение.

Hh474795.collapse_all(ru-ru,VS.110).gifВозобновить работу в задаче "

Возобновление и завершение задачи

  • В Командный обозреватель на странице Моя работа найдите список *** Приостановленный & включается в набор отложенных измененийый рабочий ***.Открыть контекстное меню для элемента.Имеется 2 варианта:

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

    • Если нужно объединить приостановлена для работы с ожидающими изменениями в рабочей области, то выберите Слияние с "Выполняется.

Hh474795.collapse_all(ru-ru,VS.110).gifЕсли продолжить работу

Области, затронутые приостановкой рабочего элемента.

Если продолжить работу, Visual Studio извлекает:

  • В открытое решение

  • Изменения кода

  • Состояние и позиция открытых окна

  • Точки останова

  • Переменные и выражения окна контрольных значений

  • Закладки