차례:
정의-소스 코드 분석이란 무엇입니까?
소스 코드 분석은 응용 프로그램을 판매 또는 배포하기 전에 오류를 찾아 수정하기위한 프로그램 소스 코드의 자동 테스트입니다.
소스 코드 분석은 정적 코드 분석과 동의어입니다. 여기서 소스 코드는 코드로 간단하게 분석되고 프로그램이 실행되지 않습니다. 따라서 테스트 사례를 만들고 사용할 필요가 없으며 사양과 다른 색상의 버튼과 같은 기능별 버그와 분리 될 수 있습니다. 충돌을 일으키는 코드 줄과 같은 적절한 기능에 해를 끼칠 수있는 프로그램의 결함을 찾는 데 집중합니다.
Techopedia는 소스 코드 분석을 설명합니다
소스 코드 분석은 기본적으로 자동화 된 코드 디버깅입니다. 프로그래머에게 명백하지 않은 버그와 결함을 찾는 것이 목표입니다. 버퍼 오버플로 가능성이나 포인터의 어수선한 사용 및 가비지 수집 기능의 오용과 같은 결함을 찾아야합니다. 이러한 모든 기능은 해커가 악용 할 수 있습니다.
코드 분석기는 찾을 항목을 알려주는 규칙을 사용하여 작동합니다. 정확도가 너무 낮 으면 분석기에서 오 탐지가 너무 많이 발생하여 사용자에게 쓸모없는 경고 메시지가 표시 될 수 있지만 너무 많은 정밀도는 완료하는 데 너무 오래 걸릴 수 있습니다. 그러므로 균형을 유지해야합니다.
두 종류의 분석기가 있습니다 :
- Interprocedural-하나의 함수에서 다음 함수까지 패턴을 감지하며, 이러한 패턴은 상관 관계가있어 분석기가 모델을 생성하고 실행 경로를 시뮬레이션 할 수 있습니다.
- Intraprocedural-패턴 일치에 중점을두고 사용자가 찾고있는 패턴 종류에 따라 다릅니다.
절차 적 분석기는보다 현대적이고 복잡합니다. 이에 대한 좋은 예는 Coverity, Fortify 및 Microsoft 자체 중앙 집중식 도구 PREfix입니다.