Overview
Transcription
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