문제

나는 최근에 작업을 시작에 매우 큰 C++프로젝트를 완료한 후 90%의 구현을 결정했습니다 그들이 필요로 하는 입증하는 100%지점 범위를 테스트하는 동안.프로젝트에서 호스팅하는 임베디드 플랫폼(녹색 언덕 무결성).내가 찾는 제안과에서 경험을 다른 사람들에 직접 사용하는 코드 범위에서 제품을 비슷한 환경입니다.에 관심이 있어요 모두 긍정적이고 부정적인 댓글에 대한 이러한 형태의 도구입니다.

도움이 되었습니까?

해결책

100%지점 범위는?는 요구 사항,특히 어떤 지점을(기본값은 경우에 문의 상태에 대해 기계,예를 들어)해야 하는 것이 가능하지 않을 실행합니다.내가 기대하기 예외가 없는 경우에는 필요할 수 있는 것을 이해 범위를 테스트 할 수 있고 수행할 수 없는 작업을 수행할 수 있습을 시작하기 전에 그렇지 않으면 당신은 결국 당신의 머리,또는 나쁘게 잘못된 데이터입니다.

가장 적용 테스트를 위한 임베디드 시스템이 실제로 수행됩니다.코드가 포팅,특정 측면의 마이크로컨트롤러는 에뮬레이션에 소프트웨어 땡기 또는 이와 유사한 다른 PC 코드 범위 유틸리티를 실행합니다.는 이유만 이것은 너무 많은 사람들이 있다는 것 마이크로컨트롤러와 컴파일러/debuggers/테스트 환경을 개발하는 코드 검사 도구를 위한 각각의 하나입니다.

할 때 코드 검사 도구를 존재에 대한 특정 임베디드 플랫폼에 그들은하지 않습력,구성 가능,사용하기 쉬운,그리고 무료 버그로 개발한 PC 플랫폼입니다.프로세서에 없 추적 능력(없이 엔드 에뮬레이션 하드웨어)를 수행하는 데 필요한 좋은 코드 범위를 삽입하지 않고 추가 코드를 디버깅으로 귀하의 펌웨어 다음 결과와 부작용을 제어하기 어려운,특히 타이밍 문제에 실시간 시스템입니다.

포팅하는 코드를 어렵지 않습할 수 있는 만큼 추상적인 하드웨어별 코드(그리고 당신이 사용하여 C++,제대로 해야 하는 간단하지 않습니까?;D).가장 큰 문제는 당신으로 실행하는 형태는 더 나은에서 지정된 C++보다는 그들 C 에서 여전히 몇 가지 문제입니다.을 사용하고 있는지 확인하는 형식입니다.서 또는 이와 유사한 설정을 구체적으로 말한 컴파일러는 정확하게는 각 유형을 사용하고 어떻게 그것이 있어야 해석됩니다.

그 후,당신은 마을에 갈 수 있습 테스트 코어에 대한 논리합니다.수도 있습 테스트는 낮은 수준의 하드웨어 운전에 관심이 있다면 소프트웨어 개발을 에뮬레이션을 위해 필요하지만,타이밍 문제를 다운로드할 수 있습제가 있습니다.

소프트웨어 테스트와 같은 도구 MxVDev 수행의 많은 마이크로컨트롤러 에뮬레이션을 위해 당신을 도와 타이밍 문제 뿐만 아니라,하지만 당신은 여전히 약간의 심지어 작동과 같은 도움이됩니다.

해야 하는 경우에는 이에는 시스템 자체 구입해야 합니다 에뮬레이터를 위한 프로세 범위와 기능하지 않는 저렴한 제안(많은 에뮬레이터상의 비용$30k 에 대한 전체 에뮬레이션 도구 및 하드웨어),하지만 그것은 하나의 많은 공구에 사용되는 높은 신뢰성과 같은 환경 자동차 및 항공 우주 산업.

-Adam

면책 조항:저는 작품을 위해 생산하는 회사 MxVDev.

다른 팁

우리는 사용했습니다 칸타타 그리고 벡터 캐스트 과거에는 단위 테스트 및 코드 적용 범위에 대해. 우리는 또한 GreenHills 도구를 사용 하고이 두 도구는 GreenHills 개발 도구와 함께 작동합니다. PPC 시뮬레이터에서 대부분의 테스트를 실행하고 JTAG 포드를 통해 대상 하드웨어의 하드웨어에 의존하는 테스트를 실행합니다. Canatata 및 Vector Cast는 사용하기가 약간 쉽고 약간 더 많은 기능을 가지고 있지만 작은 엑스트라는 사용자 경험에 큰 차이를 만듭니다.

일반적으로 높은 수준의 지점 범위를 달성하려면 테스트 가능성을 위해 코드를 설계해야합니다. 테스트 할수록 테스트 가능한 코드 작성에 대해 더 많이 배울 수 있습니다.

또한 PC 테스트 대 임베디드 테스트를 시도해 Endianess로 인해 문제가 발생했지만 하드웨어 계층에서 문제가됩니다.

또한 이러한 도구는 RTCA/DO-178B 표준에 인증되었습니다.

Adam과 마찬가지로, 우리는 임베디드 코드를 PC 기반 하네스에 포트하고 대부분의 범위와 프로파일 링을 수행합니다. AutomatedQA AQTIM 및 Compuwares DevPartner를 사용했습니다. 둘 다 좋은 제품입니다.

커버리지 OB-Board를 수행 해야하는 경우, 계측 된 버전의 소스를 만든 적용 범위 프로파일 러를 사용해야합니다. 이를 수행 할 수있는 상업용 및 오픈 소스 도구가 모두 있지만 IMO는 많은 작업을 추가하지 않습니다.

모든 오류 핸들러와 예외 처리기에 들어가려면 많은 결함 주입이 필요하기 때문에 100% 적용 범위는 야심적입니다. IMO, 이것은 또한 온보드보다 하네스에서 수행하기가 더 쉽습니다.

또한 100% 코드 커버리지를 요청한 사람을 지적 할 가치가 있습니다. 100% 코드 커버리지는 100% 테스트 범위에 해당합니다.. 예를 들어 다음 기능을 고려하십시오.

int div(int a, int b)
{
return (a/b);
}

100% 코드 적용 범위만이 기능을 호출하면 한 번, 100% 테스트 범위는 더 많은 전화가 필요합니다. 내 자신의 테스트 전략은 자동화 된 테스트 케이스를 개발하여 허용 가능한 수준을 제공합니다. 테스트 범위 그리고 테스트되지 않은 영역을 찾는 데 도움이되는 코드 커버리지 도구를 순전히 사용합니다. 어느 정도까지 테스트 예산에 따라 다릅니다. 나에게 100% 코드 적용 범위는 그것이 제공하는 것에 대해 비싸다.

보다 SD C ++ 테스트 범위. 이것은 매우 작은 발자국을 가졌고 쉽게 쉽게 사용하기 때문에 실제 임베디드 시스템 하드웨어에서도 멋지게 재생되는 C ++ (ANSI, GNU, MS ...)의 다양한 방언을위한 (지점) 테스트 범위 도구 제품군입니다. 수집 된 테스트 범위 데이터를 내보내는 방법. 실제 임베디드 하드웨어에 의존하지 않는 GUI 커버리지 디스플레이가 있으며, 이는 완전한 커버리지 보고서 요약도 생성됩니다.

저는 이러한 도구를 제공하는 회사의 교장입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top