소스코드 품질 분석: 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

같이 보기[edit | edit source]

참고 문헌[edit | edit source]