2011-05-03 6 views
2

정적 코드 분석과 동적 코드 분석을 모두 갖춘 분석 도구를 본 적이없는 이유는 무엇입니까?동적 코드 분석 도구가 포함 된 정적 코드 분석?

FxCop은 CIL 구문 분석 및 콜 그래프 분석을 사용하여 해당 검사를 실행합니다. 그것은 동적 또는 정적 호출 그래프 분석을 사용하는 경우 아는 사람 있습니까?

나는이 도구에 대한 지식이 제한되어 있지만 약간의 연구를 해왔고 두 가지를 함께 찾지 못했다고 생각합니다. 둘 다 수행하는 몇 가지 도구를 알고 있다면 목록을 작성하십시오.

감사합니다.

답변

1

그것은 모두를 결합하는 의미가 않습니다 : 당신이 명확하게 정적 분석이 실제 문제 (단지 그럴듯한 문제)를 감지하고 그들을보고 싶어요. 정적 분석기가 문제가 없다고 확신하는 곳에 대해서는 아무 것도하지 않거나 말하지 않아도됩니다. 정적 분석기가 알아낼 수없는 곳에서는 동적 분석이 런타임에 잘못된 이벤트를 감시하기를 원합니다.

기본적인 대답은 정적 분석을 수행하는 도구는 일반적으로 응용 프로그램 코드를 계측하기에 적합하지 않으며 계측기는 정적 분석을 지원하지 않는다는 것입니다.

우리의 DMS Software Reengineering Toolkit은 두 가지 기능을 모두 갖추고 있으며 이러한 도구를 만드는 데 사용할 수있는 인프라 세트입니다. DMS의 핵심은 프로그램 분석 및 변환 시스템입니다. 분석 측은 코드를 분석하고 분석기를 기반으로하는 모델 (AST, 기호 테이블, 제어/데이터 흐름 그래프 등)을 작성합니다. 변환 측면에서는 AST (변경 사항을 결정하기 위해 분석기를 사용)를 수정하고 임의의 변경 사항을 사용하여 수정 된 소스 코드를 추출 할 수 있습니다. 이 토론을 위해 계측 코드.

DMS를 계측 코드 (동적 분석)에 사용하는 방법에 대한 명확한 개요가 Branch Coverage for Arbitrary Languages Made Easy입니다.

정적 분석과 동적 분석을 결합하는보다 정교한 예제는 CheckPointer 도구입니다.이 도구는 포인터 오류를 발견합니다 (다운 스트림 손상과 반대). CheckPointer는 (이 초기의 삶에서) 기본적으로 동적 분석을 결합하여이 효과를 얻고 일부 정적 분석 (계획된 추가 분석)과 결합하여 최대한 많은 동적 검사를 제거합니다.

0

정적 및 동적 분석을 모두 수행하는 하나의 도구에 대해서는 알지 못했지만 도구 공급 업체는이 기능을 제공하기 위해 함께 협력했습니다. 이에 대한 좋은 예가 MathWorks의 Polyspace 정적 분석 도구와 Vector Software의 VectorCAST 동적 분석 도구입니다. 함께 이러한 도구의

사용 예 :

  1. 더 나은 코드 커버리지를 얻을 수 있도록 정적 분석을 사용하여. 예 : 정적 분석 도구는 테스트 커버리지를 확보하기가 불가능한 죽거나 도달 할 수없는 코드를 식별 할 수 있습니다.
  2. 정적 분석 도구의 범위 분석을 사용하여 동적 분석 도구에서 사용할 수있는 테스트 사례를 개발할 수 있습니다.
  3. 정적 분석 도구 (예 : MISRA 또는 JSF ++)의 코드 규칙 검사 기능을 사용하여 더 나은 범위 분석이 가능한 소프트웨어를 만드는 더 나은 코드를 개발할 수 있습니다.
  4. 더 읽기

, 여기에 이러한 도구를 함께 사용하는 방법을 설명하는 기사에 대한 링크는 다음과 같습니다 http://www.vectorcast.com/blog/2011/04/25/combining-dynamic-testing-static-verification-part-1/