Parasoft C/C++ 테스트

Parasoft C/C++test
Parasoft C/C++ 테스트
Parasoft Logo 2017.png
Cpptest red-featured-eclipse-430.png
Parasoft C/C++ 테스트의 코드 적용 범위 주석
개발자파라소프트
초기 릴리즈1996년; 26년 전(1996년)
안정된 릴리스
2021.2.1 / 2021년 12월 20일(2021-12-20)
운영 체제크로스 플랫폼, Linux, Solaris, Windows
플랫폼Windows, Linux, Solaris, 임베디드, 크로스 플랫폼
이용가능기간:영어, 중국어, 일본어
유형테스트
면허증.독자 사양 상용 소프트웨어
웹 사이트www.parasoft.com/products/cpptest

Parasoft C/C++ 테스트는 C 및 C++ 소스 코드를 테스트하기 위한 통합 도구 세트이며 소프트웨어 개발자는 이를 사용하여 애플리케이션품질보안분석, 테스트, 검출합니다.정적 코드 분석, 동적 코드 분석, 유닛 테스트 사례 생성실행, 코드 커버리지 분석, 회귀 테스트, 런타임 오류 검출, 요건 추적성, 코드 리뷰 [1]개발 테스트의 일부인 소프트웨어 개발 관행을 지원합니다.Linux, Windows 및 Solaris 플랫폼에서의 조작과 온타깃 임베디드 테스트 및 크로스 컴파일러를 지원하는 상용 도구입니다.


개요

Parasoft C/C++ 테스트는 개발자가 소프트웨어를 테스트하는 데 도움이 되는 도구 세트입니다.명령줄에서 실행되는 독립 실행형 애플리케이션으로 제공되거나 Eclipse 또는 Microsoft Visual 스튜디오에 플러그인으로 제공됩니다.세트의 다양한 모듈은 소프트웨어 개발자가 정적 및 동적 분석을 수행하고 유닛 테스트를 작성, 실행 및 유지하며 코드 커버리지 및 기타 소프트웨어 메트릭을 측정하고 회귀 테스트를 실행하는 데 도움이 됩니다.

C/C++ 테스트에서 검출되는 오류에는 초기화되지 않았거나 비활성화메모리, 늘 포인터 참조, 어레이버퍼 오버플로, 0으로 분할, 메모리와 자원의 누수, 중복 코드 및 다양한 유형의 데드 코드 또는 도달 불능 코드가 포함됩니다.

C/C++ 테스트 고객에는 삼성전자,[1] Wipro,[2] [3]NECSELEX Sistemi Integrati가 포함됩니다.[4]또한 록히드 마틴이 F-35 JSF(Joint Strike Fighter) 프로그램에도 사용하고 있으며 Inomed는 의료기기 소프트웨어에 [6]대한 IEC 62304 인증을 획득하기 위해 사용합니다.

기본 기능

코드 커버리지

example screen of covered lines in green, uncovered in red in Parasoft C/C++test
Parasoft C/C++ 테스트 코드 적용 범위

테스트소프트웨어 코드 적용 범위는 테스트 중에 실행된 코드와 실행되지 않은 코드 부분을 측정하는 것입니다.커버리지를 측정하는 방법은 여러 가지가 있으며, 그 기준이 계산 방법에 따라 다릅니다.고객의 요구에 따라 용도에 가장 적합한 것을 선택할 수 있습니다.

C/C++ 테스트에는 회선 커버리지 옵션이 포함되어 있습니다.즉, 회선 실행, 블록커버리지, 스테이트먼트커버리지, 패스커버리지, 결정커버리지, 브랜치커버리지 및 단순한 조건커버리지가 포함됩니다.또한 항공기 및 자동차와 같이 안전하고 신뢰할 수 있는 소프트웨어를 필요로 하는 프로젝트는 코드가 철저히 행사되었는지 여부에 대한 더 나은 척도로 여겨지기 때문에 이러한 형태의 커버리지를 요구하는 경향이 있기 때문에 수정된 조건/결정 커버리지를 지원한다.

회귀 테스트

회귀 테스트에서는 변경이 이루어지고 새로운 버전이 출시되어도 소프트웨어가 계속 올바르게 동작하고 있는지 확인합니다.C/C++test는 응용 프로그램 실행 중 발생한 작업을 기록함으로써 응용 프로그램 동작의 현재 상태를 캡처하는 테스트를 자동으로 생성합니다.이후 테스트 실행은 이전 실행의 저장된 결과와 비교됩니다. 이 결과는 코드의 변경으로 인해 발생할 수 있는 문제를 확인하는 데 도움이 됩니다.신속한 소프트웨어 개발이나 극단적인 프로그래밍과 같이 릴리스 주기가 짧고 테스트 자동화가 고도로 이루어지는 영역에서 강력한 회귀 테스트 스위트를 보유하는 것이 특히 중요합니다. 따라서 변경으로 인해 소프트웨어에 오류가 발생하지 않도록 해야 합니다.

런타임 오류 검출

C/C++ 테스트에는 타깃 보드 또는 호스트에서의 실행을 포함하여 임베디드 시스템에서 사용하기에 적합한 경량 형식의 런타임 오류 검출이 포함되어 있습니다.메모리 누수, 늘 포인터, 초기화되지 않은 메모리, 버퍼 오버플로우 등의 심각한 런타임 결함을 찾는 데 도움이 됩니다.

소프트웨어 메트릭

소프트웨어 메트릭은 소프트웨어 품질을 평가하고 개선하는 데 사용됩니다.일부 메트릭은 버그가 발생하기 쉬운 코드가 어디에 있는지 확인하는 데 사용되는 반면, 다른 메트릭은 유지관리 가능성과 적절한 구성을 이해하는 데 사용됩니다.C/C++ 테스트에서는 기존의 줄, 파일, 코멘트, 메서드 등의 계수 메트릭과 팬아웃, 사이클로매틱 복잡성, 응집력, 다양한 Halstead 메트릭을 포함한 다양한 소프트웨어 메트릭을 제공합니다.

사용자는 실행할 메트릭과 적용 가능한 경우 특정 메트릭에 허용되는 값에 대한 임계값을 설정할 수 있습니다.이를 통해 사용자는 예상 범위를 벗어난 코드를 검토 또는 수정해야 할 오류로 플래그를 지정할 수 있습니다.그래픽 리포트는 메트릭의 값과 추세를 보여 주기 위해 제공됩니다.

정적 분석

정적 코드 분석은 소프트웨어를 실행하지 않고 소스 코드를 분석하는 과정입니다.개발자가 버그를 조기에 발견할 수 있을 뿐만 아니라 베스트 [7]프랙티스에 따라 코드를 작성할 수 있습니다.이를 통해 잠재적으로 위험한 코드 스타일 및 [8]구조를 방지하여 버그에 덜 취약한 코드를 만들 수 있습니다.소프트웨어 성능이 중요한 업계에서는 정적 분석 도구 또는 특정 정적 분석 규칙을 실행해야 하는 경우가 많습니다.

C/C++ 테스트의 정적 분석에는 패턴 기반, 추상 해석, 흐름 분석 및 메트릭 등 다양한 유형의 분석이 포함됩니다.이를 통해 메모리 누수, 불규칙한 동작, 크래시, 교착 상태 및 보안 취약성의 원인이 되는 코드를 탐지할 수 있습니다.

C/C++ 테스트에는 다음과 [9]같은 다양한 업계 표준에 대해 정적 분석 규칙을 적용할 수 있도록 미리 구성된 템플릿이 포함되어 있습니다.

트레이서빌리티

엄격한 코딩 요건이나 규제 기준이 있는 업계에서 작업할 때는 애플리케이션이 필요한 절차에 따라 개발되었음을 증명할 수 있어야 합니다.추적성은 소프트웨어 감사에서 적절한 프로세스를 수행했음을 증명하기 위해 필요한 모든 정보를 보유하는 것입니다.일반적으로 이것은 어떤 코드가 특정 요건에 속하는지, 누가 그것을 검토했는지, 그리고 그러한 검토의 결과가 무엇인지를 증명할 수 있다는 것을 의미한다.또한 코드에 대해 수행된 모든 테스트와 분석 및 실패한 테스트에 대해 수행된 작업도 포함됩니다.C/C++ 테스트는 테스트를 추적하여 요건 시스템, 소스 제어 시스템 및 버그 추적 시스템에 다시 연결합니다.이를 통해 소프트웨어 개발 프로세스의 각 단계를 완벽하게 추적할 수 있습니다.

유닛 테스트

유닛 테스트의 목적은 통합 에 소프트웨어 어플리케이션의 모든 부분이 스스로 올바르게 동작하는 것을 확인하는 것입니다.C 및 C++와 같은 프로그래밍 언어에서는 일반적으로 단일 파일 또는 관련 기능을 수행하는 소수의 파일로 구성됩니다.유닛 테스트에는 테스트의 작성, 결과를 확인하기 위한 테스트의 실행, 장기 사용을 위한 테스트의 유지보수가 포함됩니다.유닛 테스트는 테스트에 의해 정확히 실행된 코드 행을 나타내는 코드 커버리지와 관련된 경우가 많기 때문에 두 기능은 모두 C/C++ 테스트에 포함됩니다.

C++test는 xUnit 테스트 프레임워크와 호환되는 유닛 테스트를 작성하는 데 도움이 됩니다.또한 테스트 대상 시스템을 모니터링하고 실행 중에 사용된 실제 경로 및 데이터를 기반으로 테스트 사례를 생성할 수 있는 추적 기능도 제공합니다.또한 필요테스트 데이터로 초기화된 소프트웨어 개체를 저장, 공유 및 재사용하기 위한 객체 저장소뿐만 아니라 스텁이라고도 불리는 애플리케이션의 나머지 부분 없이 작동하는 데 필요한 코드를 분리하는 기능도 제공합니다.stub을 사용하면 데이터베이스나 API와 같은 전체 응용 프로그램의 종속 부분을 제거할 수 있지만 구성 요소가 아직 있는 것처럼 응용 프로그램을 실행할 수 있습니다.C/C++test를 사용하면 코드를 단독으로 실행하기 위해 필요한 stub를 만들 수 있습니다.

테스트 데이터를 변경 및 확장하는 기능은 파일, 스프레드시트 및 데이터베이스에서 테스트 입력을 읽을 수 있는 데이터 원본 인터페이스와 같은 다양한 수단을 통해 제공됩니다.또한 런타임 오류 탐지를 켜면 테스트를 동시에 실행할 수 있으므로 테스트 중에 반드시 어설션 실패를 일으키지는 않지만 배포 시 소프트웨어가 불안정해질 수 있는 심각한 프로그래밍 결함을 찾을 수 있습니다.임베디드 시스템에서의 실행은 호스트, 타깃, 시뮬레이터를 불문하고 지원됩니다.여기에는 크로스 컴파일, 타깃에 대한 테스트 로드, 리모트 실행 결과 로드 등이 포함됩니다.

역사

Parasoft C/C++ 테스트는 Scott Meyers[10]저서 Effective C++에 있는 가이드라인에 기초한 정적 분석 툴로 1995년에 처음 도입되었습니다.나중에 유닛 테스트 생성 및 실행이 추가되었을 때 제품 이름은 C++[11]test로 변경되었습니다.최종적으로 제품명은 C와 C++를 모두 포함하도록 변경되어 실제로 [12]적용되는 언어가 반영되었습니다.

Parasoft C/C++ 테스트는 Software Test and Performance의 2008 Testers Choice Award 최우수 임베디드/모바일 테스트/[13]퍼포먼스 부문에서 수상하였습니다.2012년 [14]VDC의 Software Embeddy "Best in Show" 어워드 수상자로 선정되었습니다.

Parasoft는 IEC 61508ISO 26262 표준[15]따라 2011년 자동차 기능 안전 도구로 TUV 인증을 받았습니다.

지원되는 시스템

지원되는 컴파일러

컴파일러 타입(OS) 컴파일러 이름/대상
창문들 Microsoft Visual C++
창문들 GNU 및 MingW gcc/g++
창문들 GNU gcc/g++
창문들 Windows용 Green Hills MULTI
리눅스 GNU gcc/g++
리눅스 Linux용 Green Hills MULTI
솔라리스 선원 스튜디오
솔라리스 GNU gcc/g++
솔라리스 SPARC Solaris용 Green Hills MULTI
대상/교차 알테라 NIOS GCC
대상/교차 ADS(ARM Development Suite)
대상/교차 Keil § 비전용 ARM
대상/교차 암 RVCT
대상/교차 ARM DS-5 GNU 컴파일 도구
대상/교차 코스믹 소프트웨어 68HC08
대상/교차 eCosCentric GCC
대상/교차 HC12용 프리스케일 코드 워리어 C/C++
대상/교차 후지쯔 FR 패밀리 SOFTUNE
대상/교차 GCC(GNU 컴파일러 컬렉션)
대상/교차 V800용 Green Hills MULTI
대상/교차 IAR C/C++(ARM용)
대상/교차 MSP430용 IAR C/C++
대상/교차 킬 C51
대상/교차 Microsoft Visual C++ for Windows Mobile
대상/교차 Microsoft Embedded Visual C++
대상/교차 National Instruments Lav Windows/CVI 2015 Clang C/C++ 컴파일러
대상/교차 QCC(QNX GCC)
대상/교차 르네사스 RX C/C++
대상/교차 르네사스 SH 시리즈 C/C++
대상/교차 ST마이크로일렉트로닉스 ST20
대상/교차 ST마이크로일렉트로닉스 ST40
대상/교차 작업 80C196 C
대상/교차 작업 TriCore VX-툴셋 C/C++
대상/교차 TI TMS320C2x/C2xx/C5x
대상/교차 TI TMS320C2000 C/C++
대상/교차 TI TMS320C54x C/C++
대상/교차 TI TMS320C55x C/C++
대상/교차 TI TMS320C6x C/C++
대상/교차 TI MSP430 C/C++
대상/교차 윈드리버 GCC
대상/교차 윈드리버 DIAB

지원되는 IDE

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Yoon, JunHo (2006-06-16). "Code Quality Improvement". Dr. Dobb's Journal. Retrieved 16 June 2006.
  2. ^ "Wipro Meets Exacting Software Quality Standards and Fuels Global Growth through Parasoft's Development Testing Platform" (PDF). Retrieved 2017-04-25.
  3. ^ "NEC Telecom Software Philippines Streamlines Internal Quality Initiatives with Parasoft C++test" (PDF). Retrieved 2017-04-25.
  4. ^ "SELEX Increases Efficiency with Automated Defect Prevention" (PDF). Retrieved 2017-04-25.
  5. ^ F-35 Joint Strike Fighter는 최신 소프트웨어 테스트와 품질 보증의 이점을 제공합니다.
  6. ^ "Inomed Streamlines IEC 62304 Medical Device Software Certification" (PDF). Retrieved 2017-04-25.
  7. ^ "JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS FOR THE SYSTEM DEVELOPMENT AND DEMONSTRATION PROGRAM" (PDF). 2005-12-01. Retrieved 2017-04-25. employ good programming style and proven programming practices leading to safe, reliable, testable, and maintainable code
  8. ^ MISRA C:2012 - Guidelines for the use of C language in critical systems. MIRA Limited on behalf of the MISRA consortium. 2013-03-01. ISBN 978-1-906400-10-1. The MISRA C Guidelines define a subset of the C language in which the opportunity to make mistakes is either removed or reduced. Many standards for the development of safety-related software require, or recommend, the use of a language subset
  9. ^ Ramel, David (2010-05-28). "New Agile Project Management Tools Announced". Application Development Trends. Retrieved 7 September 2010.
  10. ^ "New Static Code Analysis tool by Parasoft". Parasoft. 1996-05-05. Retrieved 2017-04-25. CodeWizard is essentially a software rendition of this book that enforces Meyers' list of ways to achieve effective C++ programming
  11. ^ "Parasoft Releases New Upgrade of C++test". Parasoft. 2001-04-30. Retrieved 2017-04-25.
  12. ^ "Parasoft C/C++test Wins Testers Choice Award 2008". 2008-11-04. Retrieved 2017-04-25.
  13. ^ Parasoft Embedded가 2008 Testers Choice Award 수상
  14. ^ 2012 DESIGN East 쇼의 VDC Software Embeddy 수상자 발표!
  15. ^ "Parasoft TUV SUD Certified". 2011-02-24. Retrieved 2017-04-25. TÜV SÜD certified the latest version of Parasoft C/C++test to be qualified for safety-related software development according to IEC 61508 and ISO 26262 standards.

외부 링크