페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

문서는 SoanrQube의 간단한 소개에 대한 정보를 공유하기 위해 작성되었다. 


목차

SonarQube는

SonarQube는 지속적인 인스펙션 패러다임을 지원하는 최상의 제품입니다. 지속저인 코드 인스펙션은 소프트웨어 개발 라이프사이클의 완전한 부분으로 내부 소프트웨어 품질 향상 시킬 수 있는 코드 품질 관리 패러다임입니다. 

지속적인 코드 품질 관리를 통해 개발 조기에 코드 문제를 해결하고 자동화된 코드 감사를 통해 최신 상태의 코드 문제를 확인할 수 있게 해줍니다. 


SonarQube 주요 특징

  • 코드 품질을 관리
  • 플러그인을 통한 기능 및 비기능 확장
  • 다양한 프로그래밍 언어지원
  • 직관적인 UI
  • 코드 품질 관리의 편의성

SonarQube 데모 사이트

  • 지속적인 인스펙션
    • 지속적인 통합과 같이 빌드와 연동하여 지속적으로 코드에 대한 인스펙션을 수행합니다. 
  • 품질 중앙화
    • 개발된 조직의 코드의 품질을 중앙 저장소에서 가시화하고 단일 위치에서 관리합니다. 
  • DevOps와의 통합
    • 다양한 빌드 시스템, CI 엔진과 통합되어 DevOps 실천을 지원합니다. 
  • 품질 요구사항 설정
    • 품질 게이트를 통해 표준화된 코드 품질 요구사항을 설정합니다. 
  • 다중 언어 분석
    • 20개가 넘는 프로그램 언어에 대한 코드 분석을 지원합니다. 
  • 플러그인을 통한 확장
    • 다수의 플러그인을 통해 SonarQube의 기능을 확장할 수 있습니다. 

SonarQube 데모 사이트

SonarQube 소프트웨어 품질

SonarQube는 다음 일곱 가지 7가지 품질 요소를 기준으로 소프트웨어 품질을 구분하고 관리하고 있다.

  • Architecture & Design
  • Duplication
  • Unit Test
  • Complexity
  • Potential Bugs
  • Coding Rules
  • Comments

Architecture & Design

아키텍처와 설계에 영향을 미치는 주요 요소는 다음과 같은 것들이 있다. 

  • Dependencies 의존성
  • Response for class 클래스 응답성
  • Code complexity 코드 복잡도

  • Code Smells(Maintainability)
  • Bugs(Reliability)
  • Vulnerabilities(Security)
  • Coverage
  • Duplications
  • Size
  • Complexity

1.Code Smells(Maintainability)

심각한 이슈는 아니지만 베스트 프렉티스에서 사소한 이슈들로 모듈성(modularity), 이해가능성(understandability), 변경가능성(changeability), 테스트용의성(testability), 재사용성(reusability) 등이 포함된다.

  • Code Smells
  • Debt
  • Debt Ratio

2.Bugs(Reliability)

일반적으로 잠재적인 버그 혹은 실행시간에 예상되는 동작을 하지 않는 코드를 나타낸다. 

  • Code Smells
  • Debt
  • Debt Ratio

3.Vulnerabilities(Security)

해커들에게 잠재적인 약점이 될 수 있는 보안상의 이슈를 말한다. SQL 인젝션, 크로스 사이트 스크립팅과 같은 보안 취약성을 찾아낸다.

  • Code Smells
  • Debt
  • Debt Ratio

4.Duplications

...

코드 중복은 코드의 품질을 저해시키는 가장 큰 요인 중 하나이다.

  • Density
  • Duplicated Lines
  • Duplicated Blocks
  • Duplicated Files

5.Unit Tests

단위테스트 커버리지를 통해 단위 테스트의 수행 정도와 수행한 테스트의 성공/실패 정보를 제공한다.

...

  • Line Coverage : 구문 커버리지
  • Condition Coverage ; 조건 커버리지

Unit Test Result

  • Unit Tests : 단위 테스트 수
  • Failures : 실패한 단위테스트 코드 수
  • Errors : 에러가 발생한 단위 테스트 코드 수
  • Tests Skipped : 스킵한 단위 테스트 코드 전체 Skipped
  • Success : 스킵한 단위 테스트 코드 수성공률
  • Execution Time Duration : 단위 테스트 수행에 소요된 시간

6.Complexity

순환복잡도(Cyclomatic Complexity) 측정,

  • 코드의 논리적인 흐름상에 존재하는 독립적인 선형 경로의 개수를 의미

함수별/클래스별/파일별 평균 복잡도를 표시하며 함수/파일 단위로 복잡도 분포를 제공한다.

Potential Bugs

  • Programming practices
  • Programming principles
  • Architecture best practices

Coding Rules

소스코드 Coding conventions을 통해 작성에 대한 가이드를 제공한다.

  • 코드 들여쓰기
  • 주석 작성법
  • 변수 및 함수 선언 명명법
  • 구문 작성법
  • 화이트 스페이스 사용법
  • 프로그래밍 룰

Comments

...

인지복잡도(Cognitive Complexity)  측정

7.Size

소스코드 사이즈와 관련된 다양한 지표를 제공합니다.

  • 코드 라인수
  • 전체 라인수
  • 구문
  • 함수
  • 클래스
  • 파일
  • 디렉토리
  • 주석 수
  • 코멘트 비율

주요 용어

Continuous Inspection

...