이번에 회사에서 소스 코드 검사 도구를 하나 구입하는데 이것저것 비교해본 결과 Coverity Prevent라는 툴이 가장 좋아 이걸로 결정했다고 하더군요.
간단히 말하자면 Lint 처럼 소스 코드에 대해 static analysis를 하는 도구입니다.
그래서 시험삼아 돌려본 결과를 보게 되었는데 그 품질이 정말 놀랍군요. 메모리 릭이나 초기화하지 않은 변수, 버퍼 오버런, null 체크등등 거의 정확하게 에러를 보고해 줍니다.
다음은 전체 코드에서 발견된 문제점들을 리스트 형태로 보여주는 화면입니다. 정말 많군요. ;-)
다음은 이중 하나의 에러를 자세히 보기 위해 선택하여 들어간 화면입니다. 소스 코드에 라인번호와 에러가 발생한 위치, 에러가 발생할 수 있는 조건들을 자세히 보여줍니다. 정말 '와우!'입니다. 각 함수와 같은 이름들을 클릭하면 그 함수로 바로 이동할 수 있습니다.
사용해보니 개인적으로는 purify 같은 runtime 검사 도구보다 더 맘에 드는군요. 사실 Lint 계열의 도구들은 한번도 사용해본 적이 없는데 다른 것들도 한번 구해다 써봐야겠습니다.
이 툴의 유일한 문제는 비싸다는 것이랍니다. :-)
간단히 말하자면 Lint 처럼 소스 코드에 대해 static analysis를 하는 도구입니다.
그래서 시험삼아 돌려본 결과를 보게 되었는데 그 품질이 정말 놀랍군요. 메모리 릭이나 초기화하지 않은 변수, 버퍼 오버런, null 체크등등 거의 정확하게 에러를 보고해 줍니다.
다음은 전체 코드에서 발견된 문제점들을 리스트 형태로 보여주는 화면입니다. 정말 많군요. ;-)
다음은 이중 하나의 에러를 자세히 보기 위해 선택하여 들어간 화면입니다. 소스 코드에 라인번호와 에러가 발생한 위치, 에러가 발생할 수 있는 조건들을 자세히 보여줍니다. 정말 '와우!'입니다. 각 함수와 같은 이름들을 클릭하면 그 함수로 바로 이동할 수 있습니다.
사용해보니 개인적으로는 purify 같은 runtime 검사 도구보다 더 맘에 드는군요. 사실 Lint 계열의 도구들은 한번도 사용해본 적이 없는데 다른 것들도 한번 구해다 써봐야겠습니다.
이 툴의 유일한 문제는 비싸다는 것이랍니다. :-)
안녕하세요.
ReplyDelete저는 FxCop을 사용하고 있는데, 이것은 처음 봅니다.
FxCop과는 어떤 차이가 있을까요?
적용가능한 Language라던가.. analysis 범위라던가.. 아시는 내용을 답변 주시면 많은 도움이 되겠습니다.
감사합니다!
Prevent 는 상용 Static Analysis 중 최고라고 평가받는 툴입니다. 이거다음이 Klockwork 8 정도구요. 이거 외에 PolySpace 도 있습니다.
ReplyDelete하지만 모두 억대의 가격을 가진 SW라서 웬만한 대기업이 아니면 실제 구경해보는것조차 힘들지요.
나름 Prevent 강의랍시고 다녀본 적도 있는 정도입니다. 관심있으시면 연락주세요.
Prevent의 경우 세계적으로는 1등 Tool이라고 하고 있으나 가격이 너무 비싸더라고요.
ReplyDelete그에 반해 CodeSonar라는 툴이 있는데 가격도 Prevent보다 싸고 국내에서는 Prevent보다 점유율이 많이 높은것 같더라고요. 특히 국방분야에서 활발히 사용중으로 들었습니다.
coverity의 경우 잘 찾는 error만 집중적으로 잘 찾고 Klocwork의 경우 광범위한 error를 골고루 잘 찾는 거 같습니다. 또한 Klocwork의 Architecture Tool과 Metric은 타의 추종을 불허하죠.ㅎ
ReplyDeleteI appreciate the time to write this post
ReplyDelete