Panel | ||||
---|---|---|---|---|
| ||||
Table of Contents
|
SonarQube에서 제공하는 모든 메트릭을 다루지는 않습니다. 여러분이 사용하는 SonarQube 인스턴스에서 제공하는 전체 메트릭 리스트를 확인하고자 하는 경우 metrics search web service를 참조합니다.
복잡도(Complexity)
Name | Key | Description |
---|---|---|
Complexity | complexity | 코드이 경로를 기반으로 계산한 복잡도입니다. 소프트웨어 기능의 로직 흐름에 분기가 발생할 때마다, 복잡도 값은 1씩 증가합니다. 각 함수의 복잡도는 최소 1입니다. 각 프로그래밍 언어별로 키워드keyword 및 기능functionality가 상이하여, 복잡도 계산 정보는 약간 상이할 수 있습니다. |
Complexity /class | class_complexity | class 별 평균 복잡도 |
Complexity /file | file_complexity | file 별 평균 복잡도 |
Complexity /method | function_complexity | function 별 평균 복잡도 |
문서화(Documentation)
Name | Key | Description | |
---|---|---|---|
Comment lines | comment_lines | 실제 주석 혹은 주석 처리된 코드의 라인 수입니다. 의미 없는non-significant 코멘트 라인(빈 코멘트라인, 특수 문자만 존재한 라인 등)은 주석 라인 수를 증가시키지 않습니다. 다음 코드는 9 주석 라인을 포함하고 있습니다:
| |
Comments (%) | comment_lines_density | 주석 라인 밀도 = 주석 라인 수 / (코드 라인 수 + 주석 라인 수) * 100 위의 식에 따라:
| |
Public documented API (%) | public_documented_api_density | 문서화 된 공용 API 밀도 = (공용 API 전체 수 - 문서화 되지 않은 공용 API 수) / 공용 API 전체 수 * 100 | |
Public undocumented API | public_undocumented_api | 주석 헤더가 없는 공용 API 수 | |
Commented-out LOC | commented_out_code_lines | 주석 처리 된 라인 수 |
코드 중복(Duplications)
Name | Key | Description |
---|---|---|
Duplicated blocks | duplicated_blocks | 중복된 라인 블록의 수. 다음의 경우 중복된 블록으로 판단합니다:
코드 중복 식별시, 들여쓰기(indentation) 및 스트링 문자열(string literal)는 검사 범위에서 제외합니다. |
Duplicated files | duplicated_files | 중복과 연관된 파일 수 |
Duplicated lines | duplicated_lines | 중복과 연관된 코드 라인 수 |
Duplicated lines (%) | duplicated_lines_density | 코드 중복 밀도 = 중복된 라인 수 / 전체 라인 수 * 100 |
이슈(Issues)
Name | Key | Description |
---|---|---|
New issues | new_violations | 신규 이슈 수 |
New xxxxx issues | new_xxxxx_violations | xxxxx 심각도의 신규 이슈 수 (xxxxx는 blocker, critical, major, minor 혹은 info 임) |
Issues | violations | 이슈 전체 수 |
xxxxx issues | xxxxx_violations | xxxxx 심각도의 이슈 전체 수 (xxxxx는 blocker, critical, major, minor 혹은 info 임) |
False positive issues | false_positive_issues | false positive 이슈 수 |
Open issues | open_issues | Open 상태의 이슈 수 |
Confirmed issues | confirmed_issues | Confirmed 상태의 이슈 수 |
Reopened issues | reopened_issues | Reopened 상태의 이슈 수 |
심각도(Severity)
Severity | Description |
---|---|
Blocker | 운영/보안 리스크(risk): 이 이슈들은 이슈는 실제 환경에서 운용되는 어플리케이션 전체를 불안정하게 만들 수 있습니다. 예: 가비지 컬렉터 호출, 소켓 닫지 않음 등 |
Critical | 운영 보안 리스크(risk): 이 이슈들은 이슈는 실제 환경에서 운용되는 어플리케이션 전체의 무결성(integrity)에 영향을 미칠 수 있는 예상치 못한 행동으로 이어질 수 있습니다. 예: NullPointerException, 잘못 처리된 This issue might lead to an unexpected behavior in production without impacting the integrity of the whole application. Ex: NullPointerException, badly caught exceptions, lack of unit tests, etc. |
Major | This issue might have a substantial impact on productivity. Ex: too complex methods, package cycles, etc. |
Minor | This issue might have a potential and minor impact on productivity. Ex: naming conventions, Finalizer does nothing but call superclass finalizer, etc. |
Info | Unknown or not yet well defined security risk or impact on productivity.처리한 익셉션, 단위 테스트 부족 등 |
Major | 이 이슈는 생산성(productivity)에 주요한(substantial) 영향을 미칠 수 있습니다. 예: 너무 복잡한 메소드, 패키지 사이클 등 |
Minor | 이 이슈는 생산성(productivity)에 잠재적이거나 미미한 영향을 미칠 수 있습니다. 예: 네이밍 컨벤션, finalizer가 상위 클래스의 finalizer를 호출하기만 하고 아무 동작도 하지 않는 등 |
Info | 이 이슈는 알려지지 않았거나 잘 정의되지 않은 보안 리스크 혹은 생산성에 대한 영향을 의미합니다. |
유지보수성(Maintainability)
Name | Key | Description |
Code Smells | code_smellsNumber of code smells | 코드 악취의 수. |
New Code Smells | new_code_smellsNumber of new code smells | 신규 코드 악취의 수. |
Maintainability Rating (formerly SQALE Rating) | sqale_rating | Rating given to your project related to the value of your 기술 부채 비율(Technical Debt Ratio. The default Maintainability Rating grid is) 값에 따른 프로젝트 등급. 기본 유지보수성 등급(Maintainability Rating)은 그리드는 다음과 같습니다: A=0-00~0.05, B=0.06-006~0.1, C=0.11-011~0.20, D=0.21-021~0.5, E=0.51-1 The Maintainability Rating scale can be alternately stated by saying that if the outstanding remediation cost is: 51~1 유지보수성 등급은 필요한 개선 비용(remediation cost)으로 대신 표현할 수 있습니다:
|
Technical Debt | sqale_indexEffort to fix all maintainability issues. The measure is stored in minutes in the DB | 모든 유지보수성 관련 이슈를 해결하기 위한 공수를 의미하며, 측정 값은 데이터베이스에 분 단위로 저장됩니다. |
Technical Debt on new code | new_technical_debt | 신규 코드의 기술 부채(Technical Debt of new code). |
Technical Debt Ratio | sqale_debt_ratio | Ratio between the cost to develop the software and the cost to fix it. The Technical Debt Ratio formula is: Remediation cost / Development cost Which can be restated 소프트웨어 개발 비용과 수정 비용의 비율로, 기술 부채 비율(Technical Debt Ratio)은 다음 식에 따라 계산합니다: 개선 비용(Remediation cost) / 개발 비용(Development cost) Which can be restated as: Remediation cost / (Cost to develop 1 line of code * Number of lines of code) The value of the cost to develop a line of code is 0.06 days. |
Technical Debt Ratio on new code | new_sqale_debt_ratio | Ratio between the cost to developer the code changed in the leak period and the cost of the issues linked to it. |
품질 게이트(Quality Gates)
Name | Key | Description |
---|---|---|
Quality Gate Status | alert_status | State of the Quality Gate associated to your Project. Possible values are : ERROR, WARN, OK |
Quality Gates Details | quality_gate_details | For all the conditions of your Quality Gate, you know which condition is failing and which is not. |
신뢰성(Reliability)
Name | Key | Description |
---|---|---|
Bugs | bugs | Number of bugs. |
New Bugs | new_bugs | Number of new bugs. |
Reliability Rating | reliability_rating | A = 0 Bug |
Reliability remediation effort | reliability_remediation_effort | Effort to fix all bug issues. The measure is stored in minutes in the DB. |
Reliability remediation effort on new code | new_reliability_remediation_effort | Same as Reliability remediation effort by on the code changed in the leak period. |
보안성(Security)
Name | Key | Description |
---|---|---|
Vulnerabilities | vulnerabilities | Number of vulnerabilities. |
New Vulnerabilities | new_vulnerabilities | Number of new vulnerabilities. |
Security Rating | security_rating | A = 0 Vulnerability |
Security remediation effort | security_remediation_effort | Effort to fix all vulnerability issues. The measure is stored in minutes in the DB. |
Security remediation effort on new code | new_security_remediation_effort | Same as Security remediation effort by on the code changed in the leak period. |
Metric | Key | Description |
---|---|---|
Classes | classes | Number of classes (including nested classes, interfaces, enums and annotations). |
Directories | directories | Number of directories. |
Files | files | Number of files. |
Lines | lines | Number of physical lines (number of carriage returns). |
Lines of code | ncloc | Number of physical lines that contain at least one character which is neither a whitespace or a tabulation or part of a comment. |
Lines of code per language | ncloc_language_distribution | Non Commenting Lines of Code Distributed By Language |
Methods | functions | Number of functions. Depending on the language, a function is either a function or a method or a paragraph. |
Projects | projects | Number of projects in a view. |
Public API | public_api | Number of public Classes + number of public Functions + number of public Properties |
Statements | statements | Number of statements. |
테스트(Tests)
Metric | Key | Description | |
---|---|---|---|
Condition coverage | branch_coverage | 불리언 표현식을 가진 모든 코드 라인에 대해, condition coverage는 매우 간단한 다음 질문을 던집니다: "각 불리언 표편이 참과 거짓으로 평가되었는가?" 이것은 단위 테스트가 실행되는 동안 흐름 제어 구조에 존재할 수 있는 가능한 조건의 전부입니다.
| |
Condition coverage on new code | new_branch_coverage | Condition coverage와 동일하며, 신규 혹은 업데이트 한 소스 코드에만 적용됩니다 | |
Condition coverage hits | branch_coverage_hits_data | 커버 된 조건 리스트 | |
Conditions by line | conditions_by_line | 코드 라인 당 조건 수 | |
Covered conditions by line | covered_conditions_by_line | 코드 라인 당 커버된 조건 후 | |
Coverage | coverage | It is a mix of Line coverage and Condition coverage. Its goal is to provide an even more accurate answer to the following question: How much of the source code has been covered by the unit tests?
| |
Coverage on new code | new_coverage | Identical to Coverage but restricted to new / updated source code. | |
Line coverage | line_coverage | On a given line of code, Line coverage simply answers the following question: Has this line of code been executed during the execution of the unit tests?. It is the density of covered lines by unit tests:
| |
Line coverage on new code | new_line_coverage | Identical to Line coverage but restricted to new / updated source code. | |
Line coverage hits | coverage_line_hits_data | List of covered lines. | |
Lines to cover | lines_to_cover | Number of lines of code which could be covered by unit tests (for example, blank lines or full comments lines are not considered as lines to cover). | |
Lines to cover on new code | new_lines_to_cover | Identical to Lines to cover but restricted to new / updated source code. | |
Skipped unit tests | skipped_tests | Number of skipped unit tests. | |
Uncovered conditions | uncovered_conditions | Number of conditions which are not covered by unit tests. | |
Uncovered conditions on new code | new_uncovered_conditions | Identical to Uncovered conditions but restricted to new / updated source code. | |
Uncovered lines | uncovered_lines | Number of lines of code which are not covered by unit tests. | |
Uncovered lines on new code | new_uncovered_lines | Identical to Uncovered lines but restricted to new / updated source code. | |
Unit tests | tests | Number of unit tests. | |
Unit tests duration | test_execution_time | Time required to execute all the unit tests. | |
Unit test errors | test_errors | Number of unit tests that have failed. | |
Unit test failures | test_failures | Number of unit tests that have failed with an unexpected exception. | |
Unit test success density (%) | test_success_density | Test success density = (Unit tests - (Unit test errors + Unit test failures)) / Unit tests * 100 |
The same kinds of metrics exist for Integration tests coverage and Overall tests coverage (Units tests + Integration tests).
Metrics on test execution do not exist for Integration tests and Overall tests.