원본, 버그, 품질 추적성 디자인 및 구현

완료됨

DevOps의 컨텍스트에서 추적성은 소프트웨어 개발 수명 주기 전반에 걸쳐 변경 내용과 작업을 추적하는 기능을 의미합니다. 이 개념은 소스 코드 변경, 버그 해결, 품질 제어 유지 등 해당 수명 주기의 다양한 양상에 적용됩니다. 제품 안정성, 유지 관리성 및 고객 만족을 보장하려면 구현이 필수적입니다.

원본 추적성을 통해 개발자는 공동 작업 시나리오에서 코드 변경 내용을 추적할 수 있습니다. 버그 추적 기능을 통해 소스 코드 관련 문제를 식별하고 우선 순위를 지정하고 해결할 수 있습니다. 품질 추적성은 테스트 작업, 메트릭 및 피드백을 개발 활동에 연결하여 소프트웨어가 품질 표준 및 사용자 예상 결과를 충족하도록 보장합니다.

디자인

높은 수준에서 추적성은 도구에 독립적이지만 접근 방법은 대상으로 하는 소프트웨어 개발 수명 주기의 양상에 따라 달라집니다. 마찬가지로 목표와 디자인 고려 사항은 소스 코드, 버그 및 품질 추적 가능성에 따라 다릅니다.

특히, 원본 추적에는 변경한 사용자, 변경한 시기, 변경 목적 등 코드 변경 내역을 추적하는 작업이 포함됩니다. 이를 통해 코드를 검토하고, 디버깅하고 시간 경과에 따른 코드베이스의 발전을 이해할 수 있습니다. 디자인 관점에서 이 기능은 개발 작업을 구성하는 Git 분기 및 병합 전략과 밀접하게 연결됩니다. 개발자는 새로운 작업을 위한 기능 분기를 만들고, 분기에 대한 변경 내용을 커밋하고, 검토를 위해 끌어오기 요청을 제출합니다. 이 시점에서 동료들은 코드 검토를 수행하고 성공적으로 완료되면 변경 내용이 기본 분기에 병합되도록 승인합니다.

버그 추적에는 테스트 또는 프로덕션 중에 보고된 버그나 결함을 코드베이스의 근본 원인까지 추적하는 것이 포함됩니다. 또한 일반적으로 버그 보고서 세부 정보, 재현 단계, 영향을 받는 구성 요소 및 관련 코드 변경 내용과 같은 정보 캡처에 의존합니다. 그 목표에는 소프트웨어 결함을 해결하기 위해 버그의 우선 순위를 지정하고 효율적으로 해결하는 것이 포함됩니다.

품질 추적성은 소프트웨어 개발 프로세스 전반에 걸쳐 품질 관련 작업 및 아티팩트 추적을 포함합니다. 여기에는 품질 메트릭, 테스트 사례, 테스트 결과 및 기타 품질 보증 작업을 요구 사항, 사용자 스토리 및 코드 변경 내용에 연결하는 작업이 포함됩니다. 품질 추적성은 소프트웨어 변경이 품질에 미치는 영향을 평가하고 개선이 필요한 영역을 식별하는 데 도움이 됩니다.

추적성 구현

추적성 구현 세부 사항은 DevOps 플랫폼에 따라 어느 정도 다릅니다.

원본 추적 기능

GitHub와 Azure DevOps는 모두 Git을 소스 제어 메커니즘으로 지원하므로 두 가지 모두에 다양한 원본 추적 기술이 적용됩니다. 결과적으로 두 경우 모두 소스 코드 추적성을 구현하려면 설명이 포함된 커밋 메시지 작성, 잘 정의된 분기 전략 사용, 코드 검토를 위한 끌어오기 요청 요구 등의 모범 사례를 채택해야 합니다.

그러나 이들 사이에는 몇 가지 차이점도 있습니다. GitHub 리포지토리에서 원본 추적성을 구현하려면 일반적으로 분기 보호 규칙과 같은 기능을 활용하여 코드 검토 프로세스를 적용하고 병합 전에 변경 내용을 검토해야 합니다. GitHub와 Issues의 통합을 통해 코드 변경 내용을 해당 문제에 연결할 수 있어 코드 수정 사항과 프로젝트 요구 사항 간의 추적성을 제공할 수 있습니다. Azure DevOps는 코드 품질 검사를 적용하고 변경 내용을 작업 항목에 연결하기 위한 분기 정책 및 끌어오기 요청 정책을 제공하여 코드 변경 내용과 사용자 스토리 또는 작업 간의 추적성을 가능하게 합니다. 또한 Azure DevOps는 작업 항목 추적 시스템과의 보다 광범위한 통합을 제공하므로 GitHub의 문제 추적에 비해 더 깊은 추적성 및 보고 기능이 가능합니다.

버그 추적 기능

Azure DevOps에서는 버그가 작업 항목으로 추적되고 코드 변경, 커밋 및 끌어오기 요청에 연결될 수 있는 Azure Boards를 통해 버그 추적이 용이해집니다. Azure Boards를 사용하면 버그 관리를 위한 사용자 지정 워크플로를 만들고 신규, 활성, 해결됨, 종료됨 등의 상태를 정의하여 버그 수명 주기에 대한 표시 여부를 제공할 수 있습니다. 또한 Azure DevOps는 버그와 기타 작업 항목 간의 풍부한 통합을 제공하여 버그와 사용자 스토리, 작업 및 대규모 사용자 스토리 간의 추적을 가능하게 합니다.

GitHub에서 버그 추적성은 문제로 보고된 버그가 커밋 및 끌어오기 요청에 연결될 수 있는 문제와 코드 변경 간의 통합에 의존합니다. GitHub Actions는 버그 추적과 관련된 Actions을 포함하여 사용자 지정 가능한 워크플로를 구현하는 기능을 제공합니다. GitHub Actions를 사용하면 문제 만들기 또는 수정과 같이 GitHub 리포지토리의 이벤트에 의해 트리거되는 프로세스를 자동화하는 워크플로를 정의할 수 있습니다. 이를 통해 상태 정의, 작업 할당, 특정 조건에 따른 작업 자동화 등 버그 관리를 위한 사용자 지정 워크플로를 만들 수 있습니다. 실제로 GitHub Actions는 워크플로 자동화에 유연성을 제공하지만 일반적으로 Azure DevOps의 Azure Boards 기본 제공 기능에 비해 더 많은 활동과 사용자 지정이 필요합니다.

품질 추적 기능

Azure DevOps에서는 팀이 테스트 사례를 구성, 실행 및 추적할 수 있는 Test Plans를 사용하여 품질 추적성을 관리할 수 있습니다. Test Plans는 테스트 사례 통과율, 테스트 실행 결과, 테스트 적용 범위 보고서를 포함한 포괄적인 품질 메트릭을 제공합니다. 또한 Azure DevOps는 코드 검사 도구와의 통합을 제공하여 테스트 적용 범위를 측정하고 추가 테스트가 필요한 코드베이스 영역을 식별합니다.

GitHub는 GitHub Actions를 통해 유사한 기능을 제공하므로 팀은 단위 테스트, 통합 테스트, 엔드투엔드 테스트 등 다양한 형식의 테스트를 자동화할 수 있습니다. 여기에서도 GitHub Actions는 테스트 워크플로를 설정하고 타사 테스트 도구와 통합하는 데 유연성을 제공하지만 Azure DevOps Test Plans와 동일한 수준의 포괄적인 품질 메트릭 및 테스트 범위 보고를 달성하려면 추가 구성이 필요한 경향이 있습니다.