Один день из жизни разработчика ALM: приостановка работы, исправление ошибки и проведение анализа кода
Эффективный способ одн- выберите пункт переключиться в рабочий контекст из одного потока работы с другими доступен в Visual Studio Premium и Visual Studio Ultimate с Team Foundation Server.Кроме того, участники команды могут легко обмениваться сообщениями о предлагаемых изменений, внесенных в код.В этом разделе показаны эти функции, продолжение учебник, который следует за элементами вымышленной поворотливой группы на день.
Питер занята написать некоторый код, чтобы выполнить задачу элемента невыполненной работы. Однако его коллегаы достигнут ошибка, которая запрещает их и его нужно исправить их немедленно.Он приостанавливает работу, он делает и исправляет ошибку.Он запрашивает у Джулия рассматривает исправления и выберите просмотр вернет исправление и возобновить его работают на исходную задачу.
Примечание |
---|
Мои функции работы и анализа кода, Питер использует доступны только в Visual Studio Premium и Visual Studio Ultimate. |
Содержание раздела
Приостанавливает текущий рабочий и начните работу с ошибкой
Определите ошибку
Анализ запроса
Примите и выполняйте (или склонение) анализ кода
Получение и ответ на анализ кода
Исправьте тест и код
Повтор fix
Возобновить работу в задаче "
Приостанавливает текущий рабочий
Как Питер работает на элементе " невыполненная работа по Джулии поступает, обсудить ошибку, которая блокирует ее.Она в области, с которой Питер знакомо, поэтому он создает задачу исправить ошибку и присвоит его в себе.Он решает начать работу в починке немедленно.
Прежде, чем он запускает для работы с новой ошибке, Питер необходимо убедиться, что его текущий рабочий устанавливается в сторону в безопасное место на сервере рабочей группы.На странице Моя работа, Питер выбирает Приостановить для сохранения (на Team Foundation Server):
Вся работа, включая его внес изменения в код тесты и другие файлы.
Открытие решения окна точки останова, переменные окна контрольных значений, а остальные биты состояния Visual Studio.
Теперь, когда его рабочая область чиста, Питер перетаскивает новую задачу из Доступные рабочие элементы к Выполняемая работа.Он является исследование и записи исправления.
Примечание |
---|
Этот рабочий контекст связывается с рабочими элементами, в которых показано, как выполняется в моей рабочей странице.С помощью Приостановить и Возобновить можно быстро переключаться между различными задачами.Существующие открытые решения и файлы, изменения кода и структура все Visual Studio переключены вместе. |
Приостанавливает текущий рабочий и начать работу в другой задаче
Соединение: если вы еще не подключены к командному проекту, который требуется для работы, затем подключитесь к командному проекту:
- В Командный обозреватель выберите Главная, а затем выберите Моя работа.
Приостановить рамках текущей задачи.
В разделе Выполняемая работа выберите Приостановить.
В появившемся окне укажите имя, назначаемое этот набор приостановленного рабочего, а затем нажмите кнопку Приостановить.Имя по умолчанию этот рабочий элемент в данный момент выполняется.
Рабочий запуска на новой задачей, ошибки или другого рабочего элемента:
До выбора рабочий элемент может потребоваться:
Создание новой задачи или другого рабочего элемента, выбрав Создать в Доступные рабочие элементы; или
Выберите другой запрос под Доступные рабочие элементы.
Перетащите рабочий элемент из Доступные рабочие элементы к Выполняемая работа.
Кроме того, можно передать в рабочий элемент, который был ранее приостановили путем перетаскивания из-под Приостановленная работа.
Совет |
---|
В настоящее время выполняется рабочие элементы связаны с текущим изменения кода и состояние Visual Studio.Чтобы разрешить Visual Studio, которые помогают организовать работу, убедитесь, что соответствующие элементы в состоянии выполняется при переходе от одной задачи на другую. |
Определите ошибку
Питер открывает и считывает рабочий элемент ошибки.Согласно описанию, написанных членом группы теста, платный счет иногда неправильно пометил как бесплатный.Моментальный снимок лабораторной среды, вложенного в рабочий элемент ошибки.Питер удается открыть виртуальных машин на котором был выполнен тест, см. в разделе неверный счет и шаг назад по журналу IntelliTrace.Он выполняет трассировку ошибки к приему следующего:
public class LocalMath
{
public static bool EqualTo(double a, double b)
{
return a == b;
}
Из журнала IntelliTrace, Питер, см. что иногда метод возвращает false, так как параметры отличаются чрезвычайно небольшим числом.Питер известно, что ошибки округления этого типа неизбежны в арифметических операций с плавающей запятой, и что неверная метод проверки числа с плавающей запятой на равенство.
Увеличьте тесты для указания ошибки
Если обнаружена ошибка, она указывает на пропуск в модульных тестах или на то, что тест не соответствует фактическим необходимостям пользователей.Поэтому перед исправления ошибки, Питер добавляет тест, продемонстрирует наличие этой ошибки.
// 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));
}
Он запускает тест и он завершается неудачей, как ожидалось.
Do передача тестов
Питер исправляет код:
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;
}
Теперь тестовый пропуски:
Анализ запроса
Питер удовлетворяет с его починкой для ошибок, но она не вернет его работу.Команда использует его анализ кода, чтобы увеличить общее качество кода и уменьшить риск создать несколько исключений, поэтому Питер с помощью командного обозревателя для запроса анализ кода от него ответных частей Джулии и Адама рабочей группы.
Запросить анализ кода
В Командный обозреватель на странице Моя работа выберите *** Анализ запроса ***.
Страница Новый анализ кода.
Укажите один или несколько проверяющих.
Укажите имя для предварительного просмотра.
Укажите путь к области.
Задайте комментарий к рецензентам.
Выберите Отправить запрос.
Рецензенты запроса будут уведомление по электронной почте.
Можно также запросить анализ кода, приостановленного рабочего набора отложенных изменений или набора изменений.
Примите или отклоните анализ кода
Джулия получает запрос анализа кода и принимает его.Она проверяет код записывает некоторые комментарии на уровнях архива и блока кода, а затем отправляет анализ кода в Питеру.Адам слишком занято, чтобы проверить код и отклонит.
В нее комментариях точки Джулии 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
Совет |
---|
Обратите внимание, что участники команды использует тесты как фокус для обсуждения.Если тесты верны и недостаточны, то код будет.В отличие от кода, каждый тест представляет отдельный вариант.По этой причине часто тесты для обсуждения проще, чем код. |
Выполнить анализ кода
В Командный обозреватель на странице Моя работа, перейдите к шагу *** Обзоры и запросы Мой код " *** и откройте запрос.
На странице Анализ кода можно:
Выберите Принять или *** склонение *** для уведомления автор запустите ли анализ.
Выберите Добавить рецензента для добавления других рецензенты к запросу анализа кода.
Просмотр изменений к каждому файлу, который был обновлен для данного рабочего элемента.
Разверните Комментарии чтобы обсуждать изменения с разработчиком и другими рецензентами.
Выберите *** добавьте общий комментарий ***
-или-
Выберите блок кода, а затем выберите Добавить комментарий из контекстного меню.
- Выберите *** Отправить комментарии *** чтобы сделать ваши вклады видимым для создания и другим рецензентам.
Выберите *** Отправляйте и завершите *** чтобы завершить процесс анализа, указывающее, требуется ли коду больше работы.
Ответ на анализ кода
Питер получает и обрабатывает анализ кода из Джулии.
Чтобы ответить на анализ кода
Рецензенты автор кода и комментарии могут обмена настолько часто, насколько они like.Анализ заканчивается, когда автор закрывает его.С каждым вкладом в обсуждению другие члены будут уведомление по электронной почте.
В Командный обозреватель на странице Моя работа, перейдите к шагу *** Анализ кода и запрос *** и дважды щелкните запрос.
Можно также открыть контекстное меню для запроса и выберите пункт Открыть.
Считывает комментарии и нажав на них.Чтобы ответить на комментарию, выберите Ответить свой комментарий введите в поле, которое отображается, а затем выберите ОК.Отправить комментарии, выберите *** Отправить комментарии ***.
Просмотр файла и увидеть блоки кода, которые содержат комментарии или редактирования файла, становятся к шагу Комментарии.В подразделе Файлы открыть контекстное меню для файла и выберите *** Сравнить (только для чтения) *** или *** Правка файл ***.
После завершения и другие рецензенты друг друга и реагировать на комментарии можно закрыть анализ, нажмите кнопку Закрыть анализ, а затем выберите одно из следующих действий.
завершено, чтобы указать, что анализ завершен.
—или—
*** 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
Питер вернет фиксированный код и модульные тесты.Состояние ошибки устанавливается автоматически на Разрешено и значение Кому назначено автоматически переподчинено к члену команды теста, которая открыла ошибку.Этот участник команды проверяет, что была исправлена ошибка и закрыть рабочий элемент.
Повторить fix
В Командный обозреватель на странице Моя работа выберите Вернуть.
Просмотрите содержимое страницы Ожидающие изменения чтобы убедиться в том, что:
Перечисляются все необходимые изменения в Включенные изменения
Все нужные рабочие элементы, перечислены в Связанные рабочие элементы.
Укажите Комментарий помогут команде разработчиков понять назначение этих изменений при их выглядит журнал управления версиями измененных файлов и папок.
Выберите Вернуть.
Возобновить работу в задаче "
Возобновить чен работают на него задачу.Он может получить обратно работал быстро, поскольку все его изменения кода восстанавливаются в его области вместе с важными битами состояния, как открытые окна точки останова и переменные окна контрольное значение.
Возобновить работу в задаче "
В Командный обозреватель на странице Моя работа найдите список *** Приостановленный & включается в набор отложенных измененийый рабочий ***.Открыть контекстное меню для элемента.Имеется 2 варианта:
Если требуется возобновить приостановленный экземпляр рабочего и автоматически приостановить все ожидающие изменения из рабочей области, то выберите Возобновить.
Если нужно объединить приостановлена для работы с ожидающими изменениями в рабочей области, то выберите Слияние с "Выполняется.
Если продолжить работу
Если продолжить работу, Visual Studio извлекает:
В открытое решение
Изменения кода
Состояние и позиция открытых окна
Точки останова
Переменные и выражения окна контрольных значений
Закладки