High Degree of Customization
C++test allows full customization of its test execution sequence. In addition to using
the built-in test automation, users can incorporate custom test scripts and shell
commands to fit the tool into their specific build and test environment.
C++test can be utilized with a wide variety of embedded OS and architectures, by
cross-compiling the provided runtime library for a desired target runtime environment.
All test artifacts of C++test are source code, and therefore completely portable.
Test on the Host, Simulator, and Target
C++test automates the complete test execution flow, including test case generation,
cross-compilation, deployment, execution, and loading results (including coverage
metrics) back into the GUI. Testing can be driven interactively from the GUI or from
the command line for automated test execution, as well as batch regression testing.
In the interactive mode, users can run tests individually or in selected groups for
easy debugging or validation. For batch execution, tests can be grouped based
either on the user code they are liked with, or their name or location on disk.
HOST (DEVELOPMENT) ENVIRONMENT
C++test
TM
Generate/
Extend Tests
and Stubs
User
Code
+
Binary
Libraries
Execute
Tests
Review Results +
Coverage
Host-Based
Flow
Target-Based
Flow
Cross Compile
Test
Executable
Execute
Tests
SIMULATOR OR TARGET DEVICE
Results saved
in file for later
review
Socket-based
real-time
reporting
C++test’s customizable workflow allows users to test code as it’s developed,
then use the same tests to validate functionality/reliability in target environments
DATA SHEET
DATA SHEET
Parasoft C++test enables teams to produce better code, test it more efficiently, and consistently monitor progress towards their quality goals.
With C++test, critical time-proven best practices—such as static analysis, comprehensive code review, runtime error detection, unit and
component testing with integrated coverage analysis—are automated on the developer’s desktop, early in the development cycle. A command
line interface enables fully automated execution within regression and continuous integration environments, providing data for monitoring
and analyzing quality trends. Moreover, C++test integrates with Parasoft’s Concerto, which provides interactive Web-based dashboards with
drill-down capability. This allows teams to track project status and trends based on C++test results and other key process metrics.
For embedded and cross-platform development, C++test can be used in both host-based and target-based code analysis and test flows.
See page 3 for details.
A properly implemented coding policy can eliminate entire classes of
programming errors by establishing preventive coding conventions.
C++test statically analyzes code to check compliance with such a
policy. To configure C++test to enforce a coding standards policy
specific to their group or organization, users can define their own rule
sets with built-in and custom rules. Code analysis reports can be
generated in a variety of formats, including HTML and PDF.
Hundreds of built-in rules—including implementations of MISRA,
MISRA 2004, and the new MISRA C++ standards, as well as
guidelines from Meyers’ Effective C++ and Effective STL books,
and other popular sources—help identify potential bugs from
improper C/C++ language usage, enforce best coding practices,
and improve code maintainability and reusability. Custom rules,
which are created with a graphical RuleWizard editor, can enforce
standard API usage and prevent the recurrence of application-
specific defects after a single instance has been found.
TM
Parasoft® C++test - Comprehensive Code Quality Tools for C/C++ Development
BugDetective, the advanced interprocedural static analysis module
of C++test, simulates feasible application execution paths—which
may cross multiple functions and files—and determines whether
these paths could trigger specific categories of runtime bugs.
Defects detected include using uninitialized or invalid memory, null
pointer dereferencing, array and buffer overflows, division by zero,
memory and resource leaks, and various flavors of dead code.
C++test greatly simplifies defect analysis by providing a complete
path trace for each potential defect in the developer’s IDE.
Automatic cross-links to code help users quickly jump to any point
in the highlighted analysis path.
Identify Runtime Bugs without Executing
Software
Automate Code Analysis for Monitoring
Compliance
C++test C++test
C++test’s static analysis identifies critical bugs without executing the code (Eclipse version shown)
Increase team development productivity — Apply a comprehensive set of best practices
that reduce testing time, testing effort, and the number of defects that reach QA.
Achieve more with existing development resources — Automatically vet known coding
issues so more time can be dedicated to tasks that require human intelligence.
Build on the code base with confidence — Efficiently construct, continuously execute,
and maintain a comprehensive regression test suite that detects whether updates
break existing functionality.
Gain instant visibility into C and C++ code quality and readiness — Access on-demand
objective code assessments and track progress towards quality and schedule targets.
Reduce support costs — Automate negative testing on a broad range of potential user
paths to uncover problems that might otherwise surface only in “real-world” usage.
Benefits
C/C++ DevelopmentC/C++ Development
DATA SHEETDATA SHEET
Host Platforms
Windows NT/2000/XP/2003/Vista/7
Linux kernel 2.4 or higher with glibc 2.3 or higher and an x86-
compatible processor
Linux kernel 2.6 or higher with glibc 2.3 or higher and an x86_64-
compatible processor
Solaris 7, 8, 9, 10 and an UltraSPARC processor
IBM AIX 5.3 and a PowerPC processor
IDEs
Eclipse IDE for C/C++ Developers 3.2, 3.3, 3.4, 3.5, 3.6, 3.7
Microsoft Visual Studio 2003, 2005, 2008, 2010 with Visual C++
Wind River Workbench 2.6 or 3.0-3.3
ARM Workbench IDE for RVDS 3.0, 3.1, 4.0, 4.1
QNX Momentics IDE 4.5 (QNX Software Development Platform 6.4)
Texas Instruments Code Composer Studio v4, v5
IDEs with Project Import Support
ARM ADS 1.2
Green Hills MULTI 4.0.x
IAR Embedded Workbench 5.3/5.4
Keil RealView MDK 3.40/uVision3
Microsoft eMbedded Visual C++ 4.0
Microsoft Visual Studio 6
Texas Instruments Code Composer 3.1 and 3.3
Wind River Tornado 2.0, 2.2
Host Compilers
Windows
Microsoft Visual C++ 6.0, .NET (7.0), .NET 2003 (7.1), 2005 (8.0),
2008 (9.0), 2010 (10.0)
GNU and MingW gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x
GNU gcc/g++ 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x, 4.5.x
Green Hills MULTI for Windows x86 Native v4.0.x
Linux (x86 target platform)
GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x
Linux (x86_64 target platform)
GNU gcc/g++ 3.3.x, 3.4.x, 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x
Solaris
Sun C++ 5.3 (Sun Forte C++ 6 Update 2), Sun C++ 5.5 (Sun ONE Studio 8),
Sun C++ 5.6 (Sun ONE Studio 9), Sun C++ 5.7 (Sun ONE Studio 10),
Sun C++ 5.8 (Sun ONE Studio 11), Sun C++ 5.9 (Sun ONE Studio 12)
, 4.5.x
, 4.5.x
GNU gcc/g++ 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x, 4.2.x, 4.3.x,
4.4.x, 4.5.x
Green Hills MULTI for SPARC Solaris Native v4.0.x
AIX
IBM XL C/C++ compiler 8.0
GNU gcc/g++ 4.1.x
Supported Host Environments
11
ARM (Windows hosted)
ARM RVCT 2.2, 3.x, 4.x
ARM ADS 1.2
Cosmic (Windows hosted)
Cosmic Software 68HC08 C Cross Compiler V4.6.x (static analysis only)
eCosCentric (Linux hosted)
GCC 3.4.x (static analysis only)
Fujitsu (Windows hosted)
FR Family SOFTUNE C/C++ Compiler V6
GNU (Windows, Linux, Solaris hosted)
gcc 2.9 - 4.5
Green Hills
Windows hosted
Green Hills MULTI v5.1.x optimizing compilers for Embedded V800
Windows, Solaris hosted
Green Hills MULTI v4.0.x optimizing compilers
IAR (Windows hosted)
IAR ANSI C/C++ Compiler 5.3x, 5.4x, 5.5x for ARM
IAR ANSI C/C++ Compiler 6.1x for ARM (C only)
Keil (Windows hosted)
ARM/Thumb C/C++ Compiler, RVCT3.1 for uVision
ARM C/C++ Compiler, RVCT4.0 for uVision
C51 Compiler V8.18 (static analysis only)
Microsoft (Windows hosted)
Microsoft Visual C++ for Windows Mobile 8.0, 9.0
Microsoft Embedded Visual C++ 4.0
QNX (Windows hosted)
GCC 2.9.x, 3.3.x, 4.2.x, 4.4.x
Renesas (Windows hosted)
Renesas SH SERIES C/C++ Compiler V9.03
STMicroelectronics (Windows hosted)
ST20 (static analysis only)
ST40 (static analysis only)
TASKING
Windows and Solaris hosted
80C196 C Compiler v6.0 (static analysis only)
Windows hosted
TriCore VX-toolset C/C++ Compiler 2.5 (C only)
TriCore VX-toolset C/C++ Compiler 2.5, 3.3, 3.4, 3.5
Target/Cross Compilers
Altera (Linux hosted)
Nios GCC 2.9 (static analysis only)
NIOS II 5.1 GCC 3.4 (static analysis only)
Windows hosted - CCS 4.x:
TMS320C6x C/C++ Compiler v6.1.x
TMS320C2000 C/C++ Compiler v5.2.x
TMS320C55x C/C++ Compiler v4.3
TMS320C54x C/C++ Compiler v4.2 (static analysis only)
MSP430 C/C++ Compiler v3.2.x
Windows hosted - CCS 3.x:
TMS320C6x C/C++ Compiler v5.1
TMS320C6x C/C++ Compiler v6.0
TMS320C2000 C/C++ Compiler v4.1 (static analysis only)
Solaris hosted:
TMS320C2x/C2xx/C5x Version 7.00 (static analysis only)
TMS320C6x C/C++ Compiler v. 4.3 (static analysis only)
TMS320C6x C Compiler v. 4.00 (static analysis only)
TMS320C6x C/C++ Compiler v. 5.1 (static analysis only)
Wind River
Windows, Solaris, Linux hosted
GCC 2.96, 3.4.x, 4.1.x , 4.3.x
DIAB 5.0, 5.5, 5.6, 5.7, 5.8 , 5.9
Windows hosted
GCC 3.3.x for VxWorks 653 (static analysis only)
EGCS 2.90
Build Management
GNU make
Sun make
Microsoft nmake
JAM
Other build scripts that can provide an option of
overriding a compiler via an environment variable
Source Control
AccuRev SCM
Borland StarTeam
CVS
Git
IBM/Rational ClearCase
Microsoft Team Foundation Server
Microsoft Visual SourceSafe
Perforce SCM
Serena Dimensions
Subversion (SVN)
Telelogic Synergy
Texas Instruments (Windows hosted)
Windows hosted - CCS 5.x
TMS320C6x C/C++ Compiler v7.3
TMS320C2000 C/C++ Compiler v6.0
MSP430 C/C++ Compiler v4.0