Share via


작업을 일시 중단, 버그, 수정 및 코드 검토를 수행

작업 중인 컨텍스트를 한 작업 스레드에서 다른 작업 스레드로 전환하는 강력한 One-Click 방법을 Team Foundation Server의 Visual Studio Premium 및Visual Studio Ultimate에서 사용할 수 있습니다. 또한 팀 멤버는 제안된 코드 변경 내용에 대한 메시지를 쉽게 교환할 수 있습니다. 이 항목에서는 하루 동안 가상의 Agile 팀의 멤버가 따르는 자습서를 통해 세 가지 기능을 보여 줍니다.

Peter는 백로그 항목 작업을 수행하는 일부 코드를 작성하고 있었습니다. 하지만 동료들이 데이터를 차단하는 버그를 발견하자 Peter는 버그를 즉시 수정하기를 원합니다. 그는 수행하던 작업을 일시 중단하고 버그를 수정합니다. Julia에게 수정 프로그램 검토를 요구하고 검토한 다음 수정 프로그램을 체크 인하고 자신의 원래 작업을 다시 시작합니다.

참고

Peter가 사용하는 내 작업 및 코드 검토 기능은 Visual Studio Premium 및 Visual Studio Ultimate에서만 사용할 수 있습니다.

항목 내용

  • 현재 작업 일시 중단 및 버그에 대한 작업 시작

  • 버그 확인

  • 코드 검토 요청

  • 코드 검토 수락 및 실행(또는 거부)

  • 코드 검토 수신 및 대응

  • 테스트 및 코드 수정

  • 수정 체크 인

  • 작업 다시 시작

현재 작업 일시 중단

Peter가 백로그 항목을 작업하는 동안 Julia는 문제가 된 버그에 대해 논의하려고 옵니다. Peter에게 익숙한 영역이므로 그는 버그를 수정하는 작업을 만들고 자신에게 해당 작업을 할당합니다. 그는 수정 작업을 바로 시작하기로 결정합니다.

Peter는 새 버그 작업을 착수하기 전에 자신의 현재 업무가 팀 서버의 안전한 곳에 따로 설정되어 있는지 확인하려고 합니다. 내 작업 페이지에서 Peter는 일시 중단을 선택하여 Team Foundation Server에 다음을 저장합니다.

  • 코드, 테스트 및 기타 파일에 대한 변경 내용을 포함하여 Peter가 완료한 모든 작업

  • 솔루션, 창, 중단점, 조사식 창 변수 및 기타 Visual Studio 상태를 엽니다.

이제 작업 영역을 정리했으므로 Peter는 새 작업을 사용 가능한 작업 항목에서 진행 중인 작업으로 끌어 놓습니다. 그는 수정 작업을 조사하고 쓸 준비가 되었습니다.

참고

작업 중인 컨텍스트는 내 작업 페이지에 진행 중으로 표시되는 작업 항목에 연결됩니다.일시 중단다시 시작을 사용하여 여러 작업 사이에서 빠르게 전환할 수 있습니다.열려 있는 솔루션 및 파일, 코드 변경 내용 및 Visual Studio 레이아웃이 모두 함께 전환됩니다.

현재 작업을 일시 중단하고 다른 작업을 시작하려면

일부 작업 일시 중단 중

  1. 연결: 작업할 팀 프로젝트에 아직 연결되어 있지 않으면 팀 프로젝트에 연결합니다.

    1. 팀 탐색기에서 홈 아이콘 을 선택한 후 내 작업 아이콘 내 작업을 선택합니다.
  2. 현재 작업 일시 중단:

    1. 진행 중인 작업 섹션에서 일시 중단을 선택합니다.

    2. 나타나는 상자에서 이 일시 중단된 작업 집합에 사용할 이름을 지정한 다음 일시 중지 단추를 선택합니다. 기본 이름은 현재 진행 중인 작업 항목입니다.

  3. 새 작업,, 버그 또는 기타 작업 항목에 대한 작업 시작:

    1. 작업 항목을 선택하기 전에 다음을 수행할 수 있습니다.

      • 사용 가능한 작업 항목에서 새로 만들기를 선택하여 새 작업 또는 기타 작업 항목을 만들거나

      • 사용 가능한 작업 항목에서 다른 쿼리를 선택합니다.

    2. 사용 가능한 작업 항목의 작업 항목을 진행 중인 작업으로 끕니다.

      또는 일시 중단된 작업에서 끌어와 이전에 일시 중단된 작업 항목으로 전환할 수 있습니다.

현재 진행 중인 작업 항목은 현재 코드 변경 내용 및 Visual Studio 상태에 연결됩니다.Visual Studio에서 작업을 구성할 수 있도록 하려면 한 작업에서 다른 작업으로 전환할 때 적합한 항목이 진행 중 상태에 있는지 확인합니다.

버그 확인

Peter는 버그 작업 항목을 열고 읽습니다. 테스트 팀의 멤버가 작성한 설명에 따라 지불 송장이 때때로 미지불로 잘못 플래그 지정됩니다. 버그 작업 항목에 연결된 랩 환경 스냅숏이 있습니다. Peter는 테스트를 실행한 가상 컴퓨터를 열고 잘못된 송장을 보며 IntelliTrace 로그를 통해 다시 한 단계씩 점검할 수 있습니다. 그는 오류를 다음 메서드로 추적합니다.

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

IntelliTrace 로그에서 Peter는 매개 변수의 매우 작은 크기 차이로 인해 메서드에서 false를 반환하는 것을 확인합니다. Peter는 부동 소수점 연산에서 이러한 종류의 반올림 오류는 피할 수 없으며 부동 소수점 숫자의 같음 테스트는 잘못된 구현 방법이라는 사실을 알고 있습니다.

테스트를 확장하여 오류 표시

버그가 발견되면 단위 테스트에 간격이 있거나 테스트가 사용자의 실제 요구와 일치하지 않음을 표시합니다. 따라서 버그를 수정하기 전에 Peter는 오류가 있다는 것을 보여 주는 테스트를 추가합니다.

 
        // 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));
        }

그가 테스트를 실행하자 예상대로 실패합니다.

같음에 대해 실패한 테스트를 보여 주는 단위 테스트 탐색기

테스트를 통과하도록 만들기

Peter는 코드를 수정합니다.

        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;
        }

이제 테스트가 통과됩니다.

같음에 대해 통과한 테스트를 보여 주는 단위 테스트 탐색기

코드 검토 요청

Peter는 버그를 수정한 것에 만족하지만 자신의 작업을 아직 체크 인하지 않습니다. Peter의 팀에서 코드 검토를 사용하여 전체 코드 품질을 높이고 더 많은 버그를 만드는 위험을 줄이므로 Peter는 팀 탐색기를 사용하여 팀 동료인 Julia와 Adam에게 코드 검토를 요청합니다.

코드 검토를 요청하려면

My Work page - Request Review link. New Code Review page - Enter the name of a reviewer dropdown, Enter a description (optional) textbox, Submit Request button.

  1. 팀 탐색기내 작업 페이지에서 요청 검토를 선택합니다.

    새 코드 검토 페이지가 나타납니다.

  2. 검토자 하나 이상의 검토자를 지정합니다.

  3. 코드 검토 검토 이름을 지정합니다.

  4. 영역 경로 영역 경로를 지정합니다.

  5. 주석 검토자에 대한 주석을 지정합니다.

  6. 요청 제출을 선택합니다.

검토자는 요청에 대한 전자 메일 알림을 받습니다.

또한 일시 중단된 작업, 보류 집합 또는 변경 집합에 대한 코드 검토를 요청할 수도 있습니다. 변경 집합의 목록을 보려면 소스 제어 탐색기를 열고 기록 단추를 선택합니다.

코드 검토 수락 또는 거부

Julia는 코드 검토 요청을 받고 수락합니다. 그녀는 코드를 검토하고 파일 및 코드 블록 수준에서 주석을 쓴 다음 Peter에게 다시 코드 검토를 보냅니다. Adam은 코드 검토를 하기에는 작업량이 너무 많아 거부합니다.

Julia는 자신의 주석에서 테스트가 잘못되었음을 지적합니다. 허용되는 오류는 상수 수량이 아니라 입력값의 지정된 비율입니다. 따라서 테스트에서는 오류에 값을 곱해야 합니다.

            // 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

팀 멤버가 테스트 토론을 위한 포커스로 사용합니다.테스트가 올바르고 충분하면 코드 또한 그렇습니다.코드와는 달리 각 테스트는 별도의 사례를 나타냅니다.이러한 이유로 테스트는 코드보다 종종 더 설명하기 쉽습니다.

코드 검토를 수행하려면

My Work page - code review item. Code Review page - Decline link, Comment, Decline button.Diff window. Code Review page - Accept link, Overall comment, code block comment

  1. 팀 탐색기내 작업 페이지에서 내 코드 검토 및 요청 섹션으로 이동하여 요청을 엽니다.

  2. 코드 검토 페이지에서 다음을 수행할 수 있습니다.

    • 수락 또는 거절을 선택하여 검토를 수행할지 여부를 만든 이에게 알려줍니다.

    • 코드 검토 요청에 다른 검토자를 추가하려면 검토자 추가를 선택합니다.

    • 이 작업 항목에 대해 업데이트된 각 파일에 대한 변경 내용을 봅니다.

    • 만든 이 및 다른 검토자와 변경 내용에 대해 토론하려면 주석을 확장합니다.

      • 전체 주석 추가 선택

        또는

        코드 블록을 선택한 후 바로 가기 메뉴에서 주석 추가를 선택합니다.

      • 만든 이와 다른 검토자가 사용자가 작성한 주석을 볼 수 있도록 하려면 주석 보내기를 선택합니다.
    • 검토를 완료하고 코드에 추가 작업이 필요한지 여부를 나타내려면 보내기 및 마침을 선택합니다.

코드 검토에 응답

Peter는 Julia로부터 코드 검토를 받고 응답합니다.

코드 검토에 응답하려면

코드의 검토자와 만든 이는 원하는 만큼 주석을 교환할 수 있습니다. 만든 이가 닫을 시 검토는 종료됩니다. 토론에 대한 각각의 구성 정보를 사용하여 다른 참석자들은 전자 메일로 알림 메시지를 받습니다.

My Work page - code review item. Code Review page - Overall comment, file comment, Close Review link.

  1. 팀 탐색기내 작업 페이지에서 코드 검토 및 요청 섹션으로 이동하여 요청을 두 번 클릭합니다.

    또한 요청에 대한 바로 가기 메뉴를 열고 열기를 선택할 수도 있습니다.

  2. 주석을 읽고 필요에 따라 응답합니다. 주석에 회신하려면 회신을 선택하고 표시되는 상자에 주석을 입력한 후 확인을 선택합니다. 주석을 보내려면 주석 보내기를 선택합니다.

  3. 파일을 보고 주석이 있는 코드 블록을 확인하거나 파일을 편집하려면 주석 섹션으로 이동합니다. 파일 하위 섹션에서 파일의 바로 가기 메뉴를 열고 비교(읽기 전용) 또는 파일 편집을 선택합니다.

  4. 본인 및 다른 검토자가 서로의 주석에 응답을 끝내고 검토를 종료할 준비가 되면 검토 닫기를 클릭한 후 다음 중 하나를 선택합니다.

    • 검토 완료를 나타낼 경우 완료

    • 또는

    • 검토 취소를 나타낼 경우 중단

테스트 및 코드 수정

Julia의 주석을 읽은 Peter는 그녀가 제안한 대로 단위 테스트를 수정합니다. 테스트가 실패합니다. 이는 코드가 아직 올바르지 않음을 표시합니다.

Peter는 코드를 수정합니다.

        /// <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;
        }

테스트가 다시 한 번 통과됩니다.

같음에 대해 통과한 테스트를 보여 주는 단위 테스트 탐색기

버그를 수정하려면 코드 개발에서와 같은 방법을 따르십시오.실패한 테스트를 작성한 다음 테스트를 통과시킵니다.테스트에 성공하는 경우에만 코드와 테스트를 체크 인합니다.

Peter는 이제 버그가 발견된 테스트 사례로 관심을 돌립니다. 버그 재현 단계는 테스트 사례 작업 항목에 명확하게 설명되어 있습니다. 그는 단계를 수행하여 송장이 제대로 나열되는지 확인합니다.

수정 체크 인

Peter는 수정된 코드 및 단위 테스트를 체크 인합니다. 버그 상태는 자동으로 해결됨으로 설정되고 담당자 값은 버그를 발견한 테스트 팀의 멤버에게 자동으로 다시 할당됩니다. 해당 팀 멤버는 버그가 수정되었는지 확인하고 작업 항목을 닫습니다.

수정을 체크 인하려면

버그를 수정하기 위해 업데이트를 체크 인하는 중

  1. 팀 탐색기내 작업 페이지에서 체크 인을 선택합니다.

  2. 보류 중인 변경 내용 페이지의 콘텐츠를 검토하여 다음을 확인합니다.

    • 관련된 모든 변경 내용이 포함된 변경 내용에 나열됩니다.

    • 관련된 모든 작업 항목이 관련 작업 항목에 나열됩니다.

  3. 변경된 파일 및 폴더의 버전 제어 기록을 통해 팀이 이러한 변경의 목적을 이해할 수 있도록 주석을 지정합니다.

  4. 체크 인을 선택합니다.

작업 다시 시작

Peter는 자신의 작업을 다시 시작합니다. 자신의 모든 코드 변경 내용이 창 열기, 중단점과 조사식 창 변수 등과 같이 중요한 상태 비트와 함께 작업 영역에 복원되므로 신속하게 업무에 복귀할 수 있습니다.

작업을 다시 시작하려면

작업 다시 시작 및 완료 중

  • 팀 탐색기내 작업 페이지에서 일시 중단 및 보류된 작업 항목 목록을 찾습니다. 항목의 바로 가기 메뉴를 엽니다. 다음과 같은 두 가지 선택 옵션이 있습니다.

    • 작업 영역에서 일시 중단된 작업을 다시 시작하고 보류 중인 변경 내용을 자동으로 일시 중단하는 경우 다시 시작을 선택합니다.

    • 작업 영역에서 보류 중인 변경 내용으로 일시 중단된 작업을 병합할 경우 진행 중인 항목과 병합을 선택합니다.

작업을 다시 시작하는 경우

작업 항목 일시 중단의 영향을 받는 창입니다.

작업을 다시 시작하는 경우 Visual Studio가 다음 사항을 복원합니다.

  • 열린 솔루션

  • 코드 변경 내용

  • 열린 창의 상태와 위치

  • 중단점

  • 조사식 창의 변수 및 식

  • 책갈피

버그가 제거된 것을 확인

테스트 팀이 버그를 발견한 경우 몇 가지 테스트 사례를 해당 버그에 연결한 다음 테스트를 다시 실행합니다. 자세히 알아봅니다.