코드 품질 검사

완료됨

코드 품질은 개인적인 의견으로 측정해서는 안 됩니다. 코드를 작성하는 개발자는 자체 코드를 높게 평가하지만 코드 품질을 측정하는 신뢰할 수 있는 방법은 아닙니다. 각 팀은 빌드하는 내용에 따라 서로 다른 정의를 사용할 수 있습니다.

고품질로 간주되는 코드는 자동차 소프트웨어 개발자에게 한 가지 의미가 있고 웹 애플리케이션 개발자에게는 다른 것을 의미할 수 있습니다.

코드 품질은 전체 소프트웨어 품질에 영향을 주므로 중요합니다.

"소프트웨어 결함 원본 및 제거 방법"에 대한 연구에 따르면 개별 프로그래머는 자신의 소프트웨어에서 50% 미만의 버그를 발견했습니다. 대부분의 테스트 형태는 버그의 35%만 찾을 수 있습니다. 따라서 품질을 확인하기가 어렵습니다.

고품질 코드를 측정할 수 있는 5가지 주요 특성이 있습니다.

안정성

안정성은 특정 기간 동안 시스템이 오류 없이 실행되기를 얼마나 가능성이 높은지 측정합니다. 소프트웨어의 가용성 및 결함 수와 관련이 있습니다. 정적 분석 도구를 실행하여 몇 가지 결함을 측정할 수 있습니다.

소프트웨어 가용성은 MTBF(평균 장애 간격)를 사용하여 측정할 수 있습니다.

낮은 결함 수는 신뢰할 수 있는 코드를 개발하는 데 매우 중요합니다.

유지 관리

유지 관리성은 소프트웨어를 얼마나 쉽게 유지 관리할 수 있는지를 측정합니다. 코드의 크기, 일관성, 구조 및 복잡성과 관련이 있습니다. 소스 코드를 유지 관리할 수 있는지 확인하려면 테스트 용이성 및 이해 가능성과 같은 여러 가지 요인에 의존합니다.

단일 메트릭을 사용하여 유지 관리 가능성을 보장할 수는 없습니다.

유지 관리를 개선하기 위해 고려할 수 있는 몇 가지 메트릭은 스타일 경고 수와 Halstead 복잡성 측정값입니다.

자동화 및 사용자 검토자 모두 유지 관리 가능한 코드를 개발하는 데 중요합니다.

테스트 가능성

테스트 용이성은 소프트웨어가 테스트 작업을 얼마나 잘 지원하는 지를 측정합니다. 이는 다른 요인들 중에서 테스트를 얼마나 잘 제어, 관찰, 격리 및 자동화할 수 있는지에 따라 달라집니다.

테스트 용이성은 시스템에서 잠재적인 결함을 찾는 데 필요한 테스트 사례의 수를 기반으로 측정할 수 있습니다.

소프트웨어의 규모와 복잡도는 테스트 용이성에 영향을 줄 수 있습니다.

따라서 코드 수준에서 메서드를 적용하면(예: 순환 복잡도) 구성 요소의 테스트 용이성을 향상시킬 수 있습니다.

이식성

이식성은 다른 환경에서 동일한 소프트웨어를 얼마나 사용하기 좋은지를 측정합니다. 이것은 플랫폼 독립성과 관련이 있습니다.

이식성에 대해 특정한 측정값은 없습니다. 하지만 이식 가능한 코드를 확인할 수 있는 몇 가지 방법이 있습니다.

개발이 끝날 때까지 기다리지 않고 다른 플랫폼에서 코드를 정기적으로 테스트하는 것이 중요합니다.

컴파일러 경고 수준을 최대한 높게 설정하고 둘 이상의 컴파일러를 사용하는 것도 좋습니다.

코딩 표준을 따르는 것도 이식성에 도움이 됩니다.

재사용 가능성

재사용성은 기존 자산(예: 코드)을 다시 사용할 수 있는지 여부를 측정합니다.

자산에 모듈성 또는 느슨한 결합 특성이 있으면 자산을 더 쉽게 재사용할 수 있습니다.

상호 종속성 수는 재사용 가능성을 측정할 수 있습니다.

정적 분석기를 실행하면 이러한 상호 의존성을 식별하는 데 도움이 됩니다.