Devops 개발자의 하루: 작업 일시 중단, 버그 수정 및 코드 검토 수행

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Visual Studio 내 작업코드 검토 기능은 한 작업 스레드에서 다른 스레드로 컨텍스트 전환을 지원합니다. 또한 팀 구성원은 제안된 코드 변경 내용에 대한 메시지를 쉽게 교환할 수 있습니다. 이 문서에서는 Devops 개발자의 수명 동안 Day의 자습서를 계속 진행하는 이러한 기능을 보여 줍니다. 사용자 스토리에 대한 새 코드를 작성합니다.

참고 항목

Visual Studio 내 작업코드 검토 기능은 다음 버전에서 사용할 수 있습니다.

  • Visual Studio 2022: Visual Studio Community, Visual Studio Professional 및 Visual Studio Enterprise
  • Visual Studio 2019: Visual Studio Professional 및 Visual Studio Enterprise

이 자습서에서는 다른 작업 항목에서 팀원을 차단하는 버그를 즉시 수정하기 위해 현재 작업에 대한 작업을 일시 중단하는 방법을 설명합니다. 버그를 수정한 후 동료에게 수정 사항을 검토하도록 요청할 수 있으며, 검토가 통과된 후 수정에 검사 원래 작업에 대한 작업을 다시 시작합니다.

현재 작업 일시 중단

백로그 항목을 작업하는 동안 팀원을 차단하는 다른 항목의 버그에 대해 알아볼 수 있습니다. 익숙한 영역인 경우 버그를 수정하고 즉시 작업하도록 자신에게 할당하는 작업을 만들 수 있습니다.

새 버그에 대한 작업을 시작하기 전에 현재 작업이 팀 서버의 안전한 장소에 따로 설정되어 있는지 확인해야 합니다. Visual Studio 팀 탐색기의 내 작업 페이지에서 일시 중단을 선택하여 서버에 저장합니다.

  • 코드, 테스트 및 기타 파일의 변경 내용을 포함하여 수행한 모든 작업입니다.

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

이제 작업 영역이 클린 사용 가능한 작업 항목에서 진행 중인 작업으로 새 작업을 끌어옵니다. 수정 사항을 연구하고 작성할 준비가 된 것입니다.

참고 항목

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

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

작업 컨텍스트 전환:

  1. 작업 하려는 프로젝트에 아직 연결되지 않은 경우 프로젝트에 연결합니다.

  2. 팀 탐색기의 페이지에서 내 작업을 선택합니다.

  3. 내 작업 페이지의 진행 중인 작업 섹션에서 일시 중단을 선택합니다.

  4. 표시되는 상자에서 필요에 따라 이 일시 중단된 작업 집합을 지정하려는 이름을 변경한 다음 일시 중단을 선택합니다. 항목이 일시 중단된 작업 아래에 나타납니다.

    일부 작업을 일시 중단하는 스크린샷

  5. 사용 가능한 작업 항목에서 진행 중인 작업으로 작업 항목을 끕니다. 또는 일시 중단된 작업에서 끌어 이전에 일시 중단한 작업 항목으로 전환할 수 있습니다.

    자신에게 할당하려는 작업 항목이 사용 가능한 작업 항목 아래에 표시되지 않는 경우 다음을 수행할 수 있습니다.

    • 새로 만들기를 선택하여 새 작업 또는 기타 작업 항목을 만듭니다.
    • 쿼리 열기를 선택하여 다른 쿼리선택합니다.

진행 중인 작업 항목은 현재 코드 변경 내용 및 Visual Studio 상태에 대한 링크입니다. Visual Studio가 작업을 구성하는 데 도움이 되도록 하려면 한 작업에서 다른 작업으로 전환할 때 적절한 항목이 진행 중 작업 상태인지 확인합니다.

버그 조사

새 버그를 열고 설명을 읽습니다. 이 예제에서 테스트 팀 구성원의 설명에 따르면 유료 청구서에 미지급으로 플래그가 잘못 지정된 경우가 있습니다. 랩 환경 스냅샷 버그 작업 항목에 연결됩니다. 테스트가 실행된 VM(가상 머신)을 열고, 잘못된 청구서를 확인하고, IntelliTrace 로그를 한 단계씩 실행합니다. 다음 방법으로 오류를 추적할 수 있습니다.

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

IntelliTrace 로그에서 매개 변수가 매우 적은 양만큼 다르기 때문에 메서드가 false를 반환하는 경우가 있습니다. 이러한 종류의 반올림 오류는 부동 소수점 산술 연산에서 피할 수 없으며 부동 소수점 숫자를 같음으로 테스트하는 것은 잘못된 관행이라는 것을 알고 있습니다.

테스트를 보강하여 오류 표시

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

// Added 2022-02-02 for bug 654321:
/// <summary>
/// Make sure that number equality test allows for 
/// small rounding errors.
/// </summary>
[TestMethod]
public void TestDoublesEqual()
{
    // 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));
}

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

실패한 테스트가 같은지 보여 주는 단위 테스트 탐색기의 스크린샷

테스트를 통과합니다.

코드를 수정합니다.

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

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

같음 테스트를 통과한 것을 보여 주는 단위 테스트 탐색기의 스크린샷

코드 검토 요청

버그 수정에 만족하면 아직 작업에서 검사 않습니다. Teams는 코드 검토를 사용하여 전체 코드 품질을 높이고 더 많은 버그를 만들 위험을 줄입니다. 팀 탐색기를 사용하여 팀 동료의 코드 검토를 요청합니다.

코드 검토를 요청하려면

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

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

    요청 코드 검토 페이지를 보여 주는 스크린샷.

    • 검토자 필드의 이름 입력에서 하나 이상의 검토자를 지정하고 선택 항목마다 Enter 키를 누릅니다.
    • 다음 필드에서 원하는 경우 검토의 이름을 변경합니다.
    • 다음 필드에서 올바른 영역 경로가 표시되는지 확인합니다.
    • 다음 필드에 선택적 설명을 입력합니다.
  2. 요청 제출을 선택합니다.

검토자에게 이메일로 요청에 대한 알림을 받습니다.

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

코드 검토 수행

검토자는 코드 검토 요청을 수락할 수 있습니다. 검토자는 코드를 검토하고, 파일 및 코드 블록 수준에서 일부 주석을 작성한 다음, 코드 검토를 다시 보냅니다. 코드를 검토하기에 너무 바쁜 요청된 검토자는 검토를 거부할 수 있습니다.

메모에서 검토자는 테스트가 잘못되었다는 점을 지적합니다. 허용되는 오류는 상수 수량이 아니라 입력 값의 지정된 분수여야 합니다. 따라서 테스트는 오류를 값으로 곱해야 합니다.

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

팀 구성원은 테스트를 토론의 초점으로 사용합니다. 테스트가 정확하고 충분하면 코드도 됩니다. 코드와 달리 각 테스트는 별도의 사례를 나타냅니다. 이러한 이유로 테스트는 코드보다 토론하기 쉬운 경우가 많습니다.

코드 검토를 수행하려면

  1. 팀 탐색기의 내 작업 페이지에서 코드 검토 섹션에서 코드 검토를 마우스 오른쪽 단추로 클릭하고 열기를 선택합니다.

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

    코드 검토 페이지의 스크린샷.

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

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

    • 각 파일 링크를 선택하여 이 작업 항목에 대해 업데이트된 파일의 변경 내용을 확인합니다.

    • 설명을 사용하여 작성자 및 다른 검토자와 변경 내용을 논의합니다.

      주석을 추가하려면 다음을 수행합니다.

      • 전체 메모 추가를 선택하여 검토에 전체 메모를 추가합니다.
      • 파일을 볼 때 코드 줄 또는 블록을 선택하고 마우스 오른쪽 단추를 클릭한 다음 메모 추가를 선택합니다.

      각 메모를 추가한 후 저장을 선택하거나 Ctrl+Enter를 누릅니다.

  3. 메모 입력을 마쳤으면 메모 보내기를 선택하여 기여 작성자 및 기타 검토자에게 표시되도록 합니다.

코드 검토에 응답

검토자로부터 코드 검토를 받고 응답합니다. 사용자와 검토자는 원하는 만큼 자주 의견을 교환할 수 있습니다. 검토는 닫으면 종료됩니다.

코드 검토에 응답하려면

  1. 팀 탐색기의 내 작업 페이지에서 코드 검토 섹션으로 이동하여 요청을 두 번 클릭하거나 요청을 마우스 오른쪽 단추로 클릭하고 열기를 선택합니다.

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

    코드 검토에 응답하는 스크린샷

  2. 메모 섹션에서 메모를 읽고 필요에 따라 회신합니다. 메모에 회신하려면 회신을 선택하고 표시되는 상자에 메모를 입력한 다음 확인을 선택합니다.

  3. 파일을 보고 메모가 있는 코드 블록을 보거나 파일에 대해 편집하거나 주석을 달려면 파일 하위 섹션으로 이동합니다. 파일을 마우스 오른쪽 단추로 클릭하고 다음 중 하나를 선택합니다.

    • 비교(읽기 전용)
    • 로컬 파일 편집 또는
    • 파일 주석 추가

    주석 옆에 있는 검사 상자를 선택하여 주석의 주소가 지정되었음을 나타낼 수도 있습니다.

  4. 의견을 보내려면 메모 보내기를 선택합니다.

  5. 사용자와 다른 검토자가 서로의 의견에 응답하고 검토를 닫을 준비가 되면 검토 닫기를 선택한 다음 다음을 선택합니다.

    • 검토가 완료되었음을 나타내기 위한 완료 또는
    • 검토를 취소하고 있음을 나타내기 위해 중단 합니다.

테스트 및 코드 수정

검토 설명을 읽은 후 제안된 단위 테스트를 수정할 수 있습니다. 이제 테스트가 실패합니다. 이는 코드가 아직 올바르지 않음을 보여줍니다.

코드를 수정합니다.

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

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

버그를 해결하려면 코드 개발과 동일한 방법을 따르세요. 실패한 테스트를 작성한 다음 테스트를 통과합니다. 테스트가 통과한 경우에만 코드와 테스트를 체크 인합니다.

이제 버그가 발견된 테스트 사례에 주의를 돌립니다. 버그를 재현하는 단계는 테스트 사례 작업 항목에 명확하게 설명되어 있습니다. 단계를 수행하고 청구서가 올바르게 나열되어 있는지 확인합니다.

수정 사항 체크 인

고정 코드 및 단위 테스트에 검사. 버그 상태가 자동으로 해결됨으로 설정되고 할당된 대상 값이 버그를 검색한 테스트 팀의 구성원에게 자동으로 다시 할당됩니다. 해당 팀 구성원은 버그가 수정되었는지 확인하고 작업 항목을 닫습니다.

수정에서 검사

  1. 팀 탐색기의 내 작업 페이지에서 체크 인 선택하여 보류 중인 변경 내용 페이지를 엽니다.

    버그를 수정하기 위해 업데이트를 체크 인하는 스크린샷.

  2. 보류 중인 변경 내용 페이지에서 다음을 확인합니다.

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

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

  3. 팀이 변경된 파일 및 폴더의 버전 제어 기록을 볼 때 이러한 변경의 목적을 이해하는 데 도움이 되는 설명을 입력합니다.

  4. 체크 인 선택합니다.

작업 다시 시작

원래 작업에 대한 작업을 다시 시작합니다. 열려 있는 창, 중단점 및 조사식 창 변수와 같은 중요한 상태 비트와 함께 모든 코드 변경 내용이 작업 영역으로 복원되므로 신속하게 다시 작업할 수 있습니다.

작업에 대한 작업을 다시 시작하려면

  • 팀 탐색기의 내 작업 페이지에서 일시 중단된 작업에서 원래 작업 항목을 선택하고 다시 시작을 선택합니다.

    작업 다시 작업의 스크린샷.

    또는 일시 중단된 작업을 작업 영역의 보류 중인 변경 내용과 병합하려면 [진행 중인 작업과 병합]을 선택합니다.

작업을 다시 시작하면 Visual Studio에서 다음을 복원합니다.

  • 열려 있는 솔루션
  • 코드가 변경되었습니다.
  • 열린 창의 상태 및 위치
  • 중단점
  • 조사식 창 변수 및 식
  • 책갈피