소스코드 품질 분석: Difference between revisions
From CS Wiki
(새 문서: '''Source Code Quality Analysis; Source Code Quality Assurance; Source Code Quality Metric;''' 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡...) |
No edit summary |
||
Line 3: | Line 3: | ||
소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위한 과정 | 소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위한 과정 | ||
* 정적 분석과 동적 분석으로 구분 | *정적 분석과 동적 분석으로 구분 | ||
== 정적 분석 == | ==정적 분석== | ||
* 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 | *작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석 | ||
* 비교적 애플리케이션 개발 초기의 결함을 찾는데 사용되고, 개발 완료 시점에서는 개발된 소스 코드의 품질을 검증하는 차원에서 사용 | *비교적 애플리케이션 개발 초기의 결함을 찾는데 사용되고, 개발 완료 시점에서는 개발된 소스 코드의 품질을 검증하는 차원에서 사용 | ||
* 동적 분석 도구로는 발견하기 어려운 결함을 찾아내고, 소스 코드에서 코딩의 복잡도, 모델 의존성, 불일치성 등을 분석 가능 | *동적 분석 도구로는 발견하기 어려운 결함을 찾아내고, 소스 코드에서 코딩의 복잡도, 모델 의존성, 불일치성 등을 분석 가능 | ||
==== 분석 도구 ==== | ====분석 도구==== | ||
pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등 | pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등 | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 37: | Line 37: | ||
|} | |} | ||
== 동적 분석 == | ==동적 분석== | ||
작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석 | 작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석 | ||
==== 분석 도구 ==== | ====분석 도구==== | ||
* Avalanche | *Avalanche | ||
* Valgrind | *Valgrind | ||
== | == 같이 보기 == | ||
* 블로그 https://inreve.tistory.com/20 | * [[소프트웨어 테스트]] | ||
* [[소프트웨어 품질]] | |||
* [[소프트웨어 품질 평가]] | |||
* [[정적 테스트]] | |||
==참고 문헌== | |||
*블로그 https://inreve.tistory.com/20 |
Latest revision as of 10:00, 7 October 2021
Source Code Quality Analysis; Source Code Quality Assurance; Source Code Quality Metric;
소스 코드의 코딩 스타일, 코드에 설정된 코딩 표준, 코드의 복잡도, 코드에 존재하는 메모리 누수 현상, 스레드 결함 등을 발견하기 위한 과정
- 정적 분석과 동적 분석으로 구분
정적 분석[edit | edit source]
- 작성한 소스 코드를 실행하지 않고 코딩 표준이나 코딩 스타일, 결함 등을 확인하는 코드 분석
- 비교적 애플리케이션 개발 초기의 결함을 찾는데 사용되고, 개발 완료 시점에서는 개발된 소스 코드의 품질을 검증하는 차원에서 사용
- 동적 분석 도구로는 발견하기 어려운 결함을 찾아내고, 소스 코드에서 코딩의 복잡도, 모델 의존성, 불일치성 등을 분석 가능
분석 도구[edit | edit source]
pmd, cppcheck, SonarQube, checkstyle, ccm, cobertura 등
도구 | 설명 | 지원 환경 |
---|---|---|
Pmd | 소스 코드에 대한 미사용 변수, 최적화되지 않은 코드 등 결함을 유발할 수 있는 코드를 검사 | Linux, Windows |
cppcheck | C/C++ 코드에 대한 메모리 누수, 오버플로우 등 분석 | Windows |
SonarQube | 중복코드, 복잡도, 코딩 설계 등을 분석하는 소스 분석 통합 플랫폼 | Cross-Platform |
checkstyle | - 자바 코드에 대한 소스 코드 표준을 따르고 있는지 검사
- 다양한 개발 도구에 통합하여 사용 가능 |
Cross-Platform |
동적 분석[edit | edit source]
작성한 소스 코드를 실행하여 코드에 존재하는 메모리 누수, 스레드 결함 등을 분석
분석 도구[edit | edit source]
- Avalanche
- Valgrind