Overview










Overview
VectorCAST/C++
VectorCAST/Ada
VectorCAST/RSP
VectorCAST/MCDC
VectorCAST/Cover
VectorCAST/Manage
VectorCAST/RGW
VectorCAST/Lint
How to Automate C/C++ Embedded Software Testing With
VectorCAST/C++
Generally, software-component testing requires generating one line of test code (in the form of stubs, drivers, and test data)
for each line of application code to be tested. The necessity to create this "disposable" test software is the main reason
manual component testing is so expensive and inefficient. Test software not only has to be written but also has to be
debugged to ensure that it performs as expected. With VectorCAST/C++, component testing can be performed without
writing a single line of test code.
VectorCAST/C++ is an integrated software test solution that significantly reduces the time, effort, and cost associated
with testing C/C++ software components necessary for validating safety- and mission-critical embedded systems.
VectorCAST/C++ parses your source code and invokes code generators to automatically create the test code (stubs and
drivers) required to construct a complete, executable test harness. Once the test harness is constructed, utilities can be used
to build and execute test cases, show code covered, and report static measurements. Test data is maintained separately
from the test harness, enabling easy automatic regression testing.
Key Features and Benefits for Your Project











Complete test-harness construction for unit and integration testing - automates building a support bed to let you test
files in isolation
Stubs and drivers built automatically - reduces low-skill manual work by your software developers and frees them for
high-level testing
Supports agile and test-driven development methods
Test execution from GUI or scripts gives your engineers ultimate flexibility
Code-coverage analysis
Support for all major compilers - push-button automated off-the-shelf support eliminates integration and configuration
problems.
Regression testing for repeatability at the push of a button
Automatic tests based on decision paths - while it's true nobody has a "silver bullet" to automate everything,
VectorCAST rides the cutting edge of this technology and automates everything possible to give you the best outcome
Test execution playback to assist in debugging
Integration with Telelogic's Rhapsody® Modeling and DOORS® Requirements Tools
Saves money when testing future integrations of your software releases
Six Integrated Utilities






The Environment Generator
The Execution Manager
Dynamic Analysis - Code Coverage
The Test Case Generator
The Report Generator
Static Analysis - Code Complexity and Basis Path
Automating Ada Embedded Software Testing with VectorCAST/Ada
VectorCAST/Ada is an integrated software test solution that significantly reduces the time, effort, and cost associated with
testing Ada software components necessary for validating safety- and mission-critical embedded systems.
VectorCAST/Ada parses your source code and invokes code generators to automatically create the test code (stubs and
drivers) required to construct a complete, executable test harness. Once the test harness is constructed, utilities can be used
to build and execute test cases; show code covered, and report static measurements. Test data is maintained separately
from the test harness, enabling easy automatic regression testing.
Key Features of VectorCAST/Ada Testing Suite













Code-complexity calculation
Complete test-harness construction for unit and integration testing - automates building a support bed allow testing
files in isolation
Stubs and drivers built automatically - reduces manual work by your software developers and frees them for high-level
testing solutions
Supports agile and test-driven development methods
Test execution from GUI or scripts gives your engineers flexibility
Code-coverage analysis - gives more confident results by finding areas of your Ada software not exercised by sets of test
cases
Support for all major compilers - push-button automated off-the-shelf support eliminates integration and configuration
problems.
Regression testing for repeatability at the push of a button
Automatic tests based on decision paths - while it's true nobody has a "silver bullet" to automate everything,
VectorCAST rides the cutting edge of this technology and automates everything possible to give you the best outcome
Automated coding standards enforcement with C and C++
Test execution playback to assist in debugging
Integration with Telelogic's Rhapsody® Modeling and DOORS® Requirements Tools
Saves money when testing future integrations of your software releases
Six Integrated Utilities
VectorCAST/Ada is composed of the following six integrated utilities:






Environment Generator
Execution Manager
Dynamic Analysis - Code Coverage
Test Case Generator
Report Generator
Static Analysis - Code Complexity and Basis Path
VectorCAST/RSP Enables Automated Software Testing in Real-Time
Embedded Environments
The principle of automated testing should be at the forefront of any attempt to create test software. Real-time embedded
code is often tested with a series of test programs, each testing a separate feature.
The problem with this method is most of these programs only test what the programmers are changing. What about
interactions between unrelated code due to sharing of resources?
For this reason, companies with mission or safety-critical applications, or companies looking to get certified more quickly and
with less costly surprises benefit by using a single test program which goes through as much self-testing as possible.
How to automate module testing in a real-time embedded environment
VectorCAST/RSP is a Runtime Support Package add-on to the VectorCAST toolset enabling testing of real-time applications
directly in an embedded target or simulator environment. VectorCAST/RSP works in conjunction with VectorCAST/C++ or
VectorCAST/Ada to provide automated module testing in a real-time embedded environment. VectorCAST/RSP has been
ported to industry-leading compiler and run-time combinations.
MC/DC for VectorCAST
Modified Condition / Decision Coverage (MC/DC) provides two levels of verification for conditional expressions. The first level,
named MC/DC Branches, tracks each subcondition in an expression to verify that is has been tested with both True and False
values. The second level, named Equivalence Pairs, verifies if each subcondition can affect the value of the condition. This is
done by generating a truth table for the expression, and then finding a pair of rows in the table that will generate a different
result when all values except the tested value remain constant. During execution, if both rows have been executed, then the
test proves that, by changing the only tested value, the condition's value changes.
How Code Coverage Analysis Tools Improve Confidence in Your Testing
Before submitting final code for certification, how confident is a developer they completely exercised the application under all
situations, or did those final tests only run the application under a best-case scenario ("happy path")?
Code coverage is a flexible method used from simple developer testing, all the way to full Q/A and unit testing. Benefits of
code coverage analysis

More confidence for repeatability when testing mission and safety-critical applications (e.g. military, aerospace, railway,
automotive)

Save time and money with future projects - if 20% of the code is never exercised, it may be conceivable to remove it and
eliminate overhead on the next project.
Automated code coverage analysis tools are necessary
Highly-regulated industries such as transportation require repeatability, and if it isn't automated, it isn't repeatable.
VectorCAST/Cover provides a convenient way to analyze the completeness of your system tests, ensuring that applications
are not released with untested code.
VectorCAST/Cover allows you to gauge the effectiveness of your test efforts by identifying which areas of an application were
exercised during a test run. VectorCAST/Cover allows you to analyze any portion of your application, or the entire application
at once.
VectorCAST/Cover Code Coverage Analyzer Key Features











Identifies Tested and Untested Source
Supports Statement, Branch, and MC/DC Coverage Reporting
Supports Structural Coverage Levels A, B, and C for DO-178B
Shows Aggregate Coverage Across any Subset of Test Cases
Includes Code Complexity Metrics
Supports Windows, Unix and Linux Platforms
Supports Development, Integration, and System Testing
Computes Basis Path Information for Test Case Building
Supports Ada83/95, C, C++
Compiler and RTOS independent - supports all major compilers
Supports Code Coverage on host, simulator, or embedded target
Code Coverage Reports in VectorCAST/Cover
For each file that is analyzed, VectorCAST/Cover creates a multi-tabbed source-viewer widget containing the following
information:
Coverage Summary - provides a color-coded report identifying source code which is completely covered, partially covered,
or uncovered.
Metrics Summary - provides a tabular list of code complexity and currently achieved source-code coverage for each
subprogram.
Basis Path Analysis - shows all basis paths for each subprogram.
Why Automated Regression Testing is Crucial for Safety and MissionCritical Embedded Systems
Suppose you have an error-free application after extensive testing. You then add a feature or change functionality. Did the
change introduce any new defects? Regression testing determines just that - if your software "regressed".
Many projects have no ability to build or modify source code with confidence it will work because of the lack of regression
testing. Proper regression testing of software applications keeps old tests along with new. This requires execution of
hundreds to thousands of unit and integration test cases, plus managing the results.
Historically this has been a nearly impossible, and time-consuming process. Leaving regression testing in the hands of even
the most capable software engineers is problematic, because the sheer number of repetitive tests with similar results creates
opportunity for overlooking errors.
VectorCAST/Manage Regression Testing Tool
VectorCAST/Manage is an extension of the VectorCAST family of unit and integration testing tools, answering all problems
associated with manual testing and providing confidence in final results.
VectorCAST/Manage allows you to import previously developed VectorCAST/C++ and VectorCAST/Ada test environments into
regression test suites, providing a single point-of-control for all unit and integration test activities. At-a-glance logs,
summary reports, and color-coded pass/fail criteria highlight the status of each test within the regression suite.
How VectorCAST/Manage Works
VectorCAST/Manage takes existing VectorCAST/C/C++ and VectorCAST/Ada environments and imports them into a
VectorCAST/Manage project. These individual "test environments", can then be grouped into larger "Environment Groups",
and "Test Suites".
Environments can be members of multiple Environment Groups, and Environment Groups can be assigned to multiple Test
Suites. This enables users to structure their VectorCAST/Manage project to match the architecture of their application.
Because Environment Groups and Test Suites can be easily duplicated, the same tests can be run using various source
baselines, on different host platforms, or with a different compiler
Benefits of Regression Testing with VectorCAST/Manage
Better project management





Centralized management of all VectorCAST testing activities
Increased confidence of management to make build/release decisions
Daily summary status of project wide test metrics
Reporting format enables intuitive navigation from highest to lowest level of project
Supports Extreme Programming, and Agile Development
Rich automation



Automated testing of multiple baselines and releases
Full Command Line Interface for additional automation
Easy regression testing of an entire application at regular intervals - tests can be run automatically and unattended 24/7
Improved analysis





Easy identification of testing trends and regressions
View historical data for individual or group of software components with the integrated SQL database
Built-in graphing to enable data visualization
Accurate and immediate reporting of testing status
Integrated Python interpreter extends analysis through complex scripting and result reporting
Helps your entire software development team



Software managers use the high level reports and graphs to track testing progress and trends
QA Engineers use the tool to easily design test campaigns and monitor release readiness.
Developers use the tool to identify and resolve defects
Ensuring Traceability Between Software Requirements and Test Cases
One of the great challenges of software validation is knowing when a software application has been tested enough. Achieving
100% code coverage and having 100% of the test cases passing is not a sufficient measure. The additional metric required,
proves that 100% of the software requirements have been tested, and which test cases test those requirements. The
VectorCAST™ Requirements Gateway connects software requirements with test cases and code coverage, with real-time
traceability between all three.
The VectorCAST Requirements Gateway (RGW) connects software requirements with test cases and code coverage, with
real-time traceability between all three. It permits flow of data between a requirements management tool and the
VectorCAST testing tools. Through a simple and intuitive interface, developers can quickly and easily link requirements to
VectorCAST test cases.
Once test cases are executed, the traceability metrics can be viewed from within the VectorCAST framework, or the
requirements management tool. The user has full control over which VectorCAST attributes are passed back to the
requirements database. Data such as the "Test Name", "Test Result" {Pass | Fail | none}, and test coverage percentage, can
be linked to user chosen attributes in the requirements database.
Features of VectorCAST/RGW






Import requirements database into VectorCAST
Tag requirements to test cases
Export VectorCAST Attributes to requirements database
View test execution pass/fail status in the requirements data base
Search for requirements with no test cases
Link test case attributes to requirements database attributes
TAG Requirements to Test Cases
Interrogate a Requirements Database
Write Data back to Requirements Database
Ensuring reliable embedded software by combining static source code
analysis with dynamic testing
When developing applications for complex safety critical embedded systems such as avionics, medical devices, and
automotive, thorough software testing and analysis are crucial for ensuring safety and reliability.
VectorCAST/Lint is a static source code analyzer that performs module based or whole-program source code analysis on
C/C++ codebases and automatically identifies problems at their source, prior to compiling. VectorCAST/Lint static analysis
helps developers find bugs and other defects early in the software development cycle, reducing the cost, time, and risk
associated with developing safety and mission critical embedded applications.
VectorCAST/Lint utilizes the powerful Lint source code analysis engine from Gimpel Software and has been extended to
support the extensive list of embedded compiler environments currently integrated with the VectorCAST dynamic testing
product line.
Out-of-the-box, VectorCAST/Lint is configured for checking the MISRA C, MISRA C 2004, and MISRA C++ 2008
standards. These standards recommend the use of a restricted subset of constructs for the C and C++ languages, with the
goal being a safer and more maintainable use of the language. Areas of code that are non-conforming to the standard's builtin-rules are highlighted in code analysis reports. The MISRA checking features in VectorCAST/Lint include the detection of
recursion, support for the MISRA 2 'underlying type' concept, determination of side effects for functions, and MISRA C++
support.
Using static analysis to verify code and dynamic testing to validate design
VectorCAST/Lint static analysis is the perfect complement to the VectorCAST suite of tools for dynamic embedded software
testing. While VectorCAST/Lint will look across your entire C and/or C++ program and find bugs, glitches, inconsistencies,
and redundancies prior to compiling the source code, dynamic testing, such as unit and integration testing, code coverage,
and regression test management, focuses on executing the source code on your embedded hardware with inputs and defined
expected results.
Since the dynamic tools have no dependence on the static analysis for information to construct executable test harnesses,
this alleviates the need to run the static analysis every time a change is made to a file when doing unit, integration, and
regression testing.
By combining static source code analysis and dynamic testing, organizations developing C and C++ embedded applications
can increase the speed and accuracy of detecting defects, shorten the Verification and Validation process, and ensure higher
quality software.
VectorCAST/Lint Features:









Intuitive Graphical User Interface
Integrated with industry standard software license manager
Out-of-the-box MISRA support for C and C++
Source Code Browser with Message Annotations
Message Rationale and Concept Browser
Message Filtering
Graphical Configuration of Analysis
Customizable Reporting
Macro Scavenging
VectorCAST Certification Kits
Vector Software offers Certification and Validation Kits for aerospace development under DO-178B, rail application
development under EN 50126, industrial and automotive development under IEC 61508 and ISO 26262, and compliance
under FDA and IEC 62304.
These kits expedite certification according to these standards by providing all of the required artifacts to demonstrate that
the VectorCAST product family has been certified as a development tool under these standards.
DO-178B Qualification
The VectorCAST DO-178B Qualification Kit for DO-178B contains tool qualification documentation, test cases, and
procedures that let you qualify VectorCAST tools on projects based on the DO-178B standard. The kit contains tool
qualification plans, tool operational requirements, and additional materials required for qualifying software verification tools.
With the kit, development organizations can streamline certification of their embedded systems developed using VectorCAST.
IEC 61508 and ISO 26262 Certification
The VectorCAST IEC Certification Kit for IEC 61508 and ISO 26262 provides documentation, certificates, and
templates that help you use VectorCAST on projects based on the IEC 61508 and ISO 26262 standards. The kit includes
certificates and reports from certification authority TÜV SÜD that are based on documented, application-specific verification
workflows. The VectorCAST IEC Certification Kit offers organizations the required evidence to demonstrate compliance with
IEC 61508 and ISO 26262.
FDA and IEC 62304 Medical Device Software Compliance
The VectorCAST Medical Device Software Compliance Kit for FDA and IEC 62304 includes all necessary
documentation for validating embedded software components used on all classes of medical devices. The kit includes test
procedures, plans, coverage and test case reports necessary to demonstrate due diligence with FDA and IEC 62304 software
quality requirements.
DISTRIBUTOR :
FLASH TECHNOLOGY PTE LTD
NO 61 KAKI BUKIT AVE 1
#04-15 SHUN LI INDUSTRIAL PARK
SINGAPORE 417943
website : www.flashtech.com.sg
email : [email protected]
Tel : +65 6749 6168