0% found this document useful (0 votes)
69 views74 pages

Polyspace Test Product Presentation

Uploaded by

huy.duong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views74 pages

Polyspace Test Product Presentation

Uploaded by

huy.duong
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 74

Polyspace Test

New for R2023b

By Author
Date

© 2023 The MathWorks, Inc.


1
High-Level Embedded Software Development Process

Software
Requirements C/C++
Design
Write / Fix Code Test on Host Test on Target
Run Static Code Analysis

 Write C/C++ code based on requirements

 Run static analysis / create unit tests to test functions and code components
– Check for coding standards (MISRA) and runtime errors
– Trace detailed design requirements to tests, confirm intended and no-unintended behavior

 Run tests on host


– Check code meets requirements-based tests, verify code is fully tested with coverage metrics

 Run tests on target or instruction set simulator


– Confirm code executes as expected on target computer 2
Static Analysis with Polyspace Tools

 Bug Finder
– Identify software bugs and security vulnerabilities
– Check compliance (MISRA, AUTOSAR, CERT, others)

 Code Prover
– Prove absence of critical runtime errors
– Improve software design and code understanding

 Supported workflows
– Polyspace as You Code for IDE integration
– Server based analysis for CI workflows
– Review results using web browser (Polyspace Access)
– Integration with Simulink for generated code
– Certification support (ISO 26262, DO-178, others)

3
MathWorks Vision for Dynamic Testing

 Automate and simplify code testing


– Unify static analysis and dynamic test
– Provide deep insights into code
– Simplify mocking and stubbing

 Eliminate tedious tasks


– Enhance code testing
– Automatic test generation
– Code coverage for certification

4
Benefits of the Unified Platform for Static + Dynamic
 Identify code coverage gaps
– Static code analysis can provide insights into code coverage
– Highlight areas of code that cannot be reached

 Prioritize test writing


– Use static code analysis to prioritize writing unit tests
– For the riskiest and critical parts of your code

 Assist with code coverage analysis


– For <100% coverage, results from Polyspace Code Prover could provide further insight
– E.g. dataflow (variable ranges) and control flow information

 Run static analysis on the unit test


– Confirm that the unit test will not fail with a run-time error
– Or that the unit test itself doesn’t have a bug to improve test reliability
5
Why Static + Dynamic?

Demo Example

Instructions for this section


(Delete these instructions prior to presenting)

• See this video with explanations on presenting the how_many_tests introductory demo
• Go to this link for the source file and demo instructions
• Recommend presenting the demo live. It will be necessary to prepare VScode and PS Test in
advance to help with live presentation. This demo will take ~10mins.
• You can skip this demo and discussion about ChatGPT if desired
6
Let's Start with Requirements

Task: Write C code for this


requirement

7
How many
test-cases to achieve
100% decision coverage?

A. 1 test-case
B. 2 test-cases
C. 5 test-cases
D. 7 test-cases
E. >8 test-cases

8
Live Demo

9
How many
test-cases to achieve
100% decision coverage?

Quiz Answer A. 1 test-case


B. 2 test-cases
• Unreachable branch in original code C. 5 test-cases
• None of the answers are correct! D. 7 test-cases
E. >8 test-cases

10
What Would ChatGPT Say?

* Checked September 2023 with GPT-3.5, business access 11


12
?
13
???
14
Dynamic Test Capabilities with Polyspace Test

C/C++
Write / Fix Code Test on Host Test on Target

xUnit or GUI workflows Build tests Pass / Fail

Mock, stub, reqmnts link Manage test execution Coverage analysis

Automatic test gen Run on host or target Profile exec, memory

Authoring Execution Review

• IDE or Command Line • Continuous Integration


• Desktop GUI • Results via browser

Developers and Testers Team Collaboration


15
Supported Testing Workflows xUnit API

 Workflow 1: Within the coding environment


– Write test in C/C++ (Polyspace Test C/C++ xUnit API)
– Manual authoring, build, and test in
development environment

 Workflow 2: Systematic low code test authoring


– Author test in a Test Manager GUI
– Test files & artifacts managed by the tool Test Manager GUI
– Automatic test driver for execution
– Analyze code for testing

16
xUnit Testing Workflow

17
What is xUnit?

 Framework for standardized unit testing approach in software development

 Example xUnit testing frameworks


– Google Test, CppUnit

 Polyspace Test xUnit API


– Macros prefixed with PST_
– Ability to group tests into suites
– Define common setup and
teardown code
– C/C++ test definitions, configuration,
assessments, and more

18
xUnit Testing Framework Benefits

1: Write test case in your IDE 3: Run executable


Review Test
and Coverage
Results​
2: Build test executable 4: Check test results

 Easy test creation and automation

 Test isolation and independence

 Fast execution with parallelization

 Easy to use with IDE and development tools


19
xUnit Demo

Instructions for this section


(Delete these instructions prior to presenting)

• See this video with explanations on presenting this demo


• Go to this link for the source file and demo instructions
• Recommend presenting the demo live. The demo will take 6mins.
• NOTE: demo assumes you have understanding of the PST xUnit testing framework.
Recommend getting familiar with the various macros that are in the documentation. 20
GUI Driven Testing Workflow Demo

21
Example GUI Driven Testing Workflow

Create Project Reuse Tests Add Tests

Run Tests Debug Tests Collect Coverage

Instructions for this section


(Delete these instructions prior to presenting)
Justify
• SeeUnreachable
this_video (TBD) Generate
with explanations Reportsthis demo Run On Target
on presenting
Code
• Go to this link for the source file and demo instructions
• This GUI driven demo follows the workflow outlined on this slide; create project, …
• Recommend presenting the demo live. This demo will take 10-25mins.
• NOTE: on-target testing can be done with QEMU, download target framework from here 22
Advantages of xUnit API and GUI workflows

API GUI
• Integration and • User Interaction
Automation and Simplicity
• Efficiency and
• Visual Design
Performance
• Customization and Layout
and Extensibility • Quick
• Better C++ Prototyping and
support Rapid
• Headless or Development
Server-Side • Automated test
Execution (CI/CD)
authoring

23
Advanced Features and Capabilities

Instructions for this section


(Delete these instructions prior to presenting)

• Topics in this section are discussed in the GUI demo shown previously, therefore recommend
selecting specific slides to have deeper discussions
• You can skip parts of this section if features important to the customer were already discussed
during the GUI demo presentation
• Note that certain topics such as PS Access integration, CI/CD, etc. are not shown in the xUnit
or GUI demos, but are included in this section 24
Unified Platform for Static Analysis and Dynamic Test

 Polyspace unites static + dynamic within a single platform in R2023b

 Perform static analysis and dynamic test


– Find bugs, check coding standards, look for run-time errors, write and run unit tests,
measure code coverage, etc.

 Single GUI with common configuration project for static + dynamic


– Polyspace Bug Finder and Polyspace Code Prover use the build information to emulate
your compiler and check your sources for compliance with the C/C++ language
standard, before running static analysis.
– Polyspace Test uses the build information to build and run your sources and tests using
your compiler.

25
Centralized Configuration for Static + Dynamic

26
Centralized Tool Execution for Static + Dynamic

 Tool execution centralized within a single desktop GUI

 Check for defects, analyze for run-time errors, and run tests

 Select which tool to run or multiple combinations

27
Centralized Dashboard to Review Static + Dynamic Results

Single quality indicator

Review Static analysis results

Review Dynamic testing results

28
Centralized Navigation for Detailed Static + Dynamic Results

Consolidated
Results for

Bug Finder,
Code Prover,
and Test

29
Polyspace Access – Review Static + Dynamic Results

Upload local test runs performed on your


desktop to Polyspace Access, or upload
from your CI Server

Review static analysis and test results in


your browser with Polyspace Access

30
Notes for Current Polyspace Bug Finder and Code Prover Users

 The unified platform is new in R2023b

 New GUI has different look and feel compared to prior releases

 Project migration
– You can migrate old projects from prior releases (.psprj) to the new format (.psprjx)
– Cannot convert from new format to old format
– Does not apply to results file

 Existing GUI in Polyspace Bug Finder and Code Prover will be available for at
least 4 releases (until R2025b)

 See documentation for limitations and differences between the older and new GUI
31
Analyze Code for Testing – Code Explorer

 Get insight into your code

 Identifies undefined functions

 Lists defined functions and


global variables

 Elaborates types (struct, enum,


typedef)

32
Analyze Code for Testing – Call Graph

 Graphically view function calls

 See missing functions and those


that have been stubbed

Stubbed
Function

33
Mock and Stub

 Mock
– Change behavior of defined
functions in your code

 Stub
– Create definitions for undefined
functions in your code

34
Requirements Traceability

 Trace to requirements from tests

 Link requirement to tests and steps


from the test manager

 Click one or more requirement links in


the test manager to go to directly to
requirements document or tool

 Requirement tool support: Microsoft


Word/Excel, IBM DOORS, URL,
ReqIF, and others

35
Automatic Test Generation

 Use automatic test generation to:


– Achieve desired code coverage
– Test boundary values
– Extend requirements-based test cases

 Powerful formal methods-based test generation feature


– Tool identifies objectives in the code that must be satisfied, e.g. achieve 100% MCDC
– Works forwards and backwards to determine inputs to satisfy objectives
– Informs which objectives have been satisfied or failed to satisfy

 Various advanced techniques applied


– Model Checking: exhaustively identifies reachable state space of the code
– Abstract Interpretation: determines relationship of variables in the code

 Limitations
– Compute intensive, may run for significant time
– May not successfully generate test cases to achieve objectives
– Some coding constructs may not be supported (workaround by modifying code for test generation purposes)
36
Automatic Test Generation – Coverage

 Coverage levels
– Decision, condition, MCDC

 Relational boundary
– For relational operators such as
>, <, ==, etc.
– Produce tests with equal operand values
or differing by absolute or relative tolerance

 Optionally extend other tests


– From tests manually created or other means
– Automatically produce additional tests

37
Automatic Test Generation – Boundary Values

 Generates tests based on test input datatype


boundaries for min, max, zero

 Mode
– Minimal: fewest tests that cover all boundary values
– Exhaustive: tests to cover all boundary value combinations
with multiple inputs

 Options
– Include (force) zero values
– Smallest float epsilon values
– Off by one specifies max-1, min+1, etc.

38
Automatic Test Generation – Capability Leverage

 Built using proven technology from


Simulink Design Verifier

 Performs automatic test generation for


Simulink models, Stateflow charts, and
imported C code

 Extensively used in the Automotive and


Aerospace industries

 Product shipping since 2007

39
Add or Import External Tests

 Bring external tests into GUI


– Google tests
– Polyspace xUnit tests

 Run external tests with Polyspace Test


– Check pass / fail
– Collect coverage metrics
– Profile execution speed and memory usage

40
Code Coverage Metrics

 Review metrics in GUI or generate HTML reports


– Filter results by coverage and type status, e.g. not covered, function, decision, etc.

 Enter review and justification comments


– Show only or filter out by comment, filename, etc.
– Import justifications from previous analysis

 View code
– Highlight fully covered or justified code

41
Code Coverage Types

Measuring effectiveness of software testing

MCDC
Condition
• Statement: each statement in the code executed
if (X && Y) { • Decision: every branch of control statements executed
• Condition: Boolean evaluated for both true and false
Z = 1; Decision
• Modified Condition Decision Coverage (MCDC)
} else { Statement

Z = -1;
}

42
Code Coverage Overview

 Statement Coverage
– Every statement is executed once
– Does not consider Decisions and Conditions

 Decision (Branch) Coverage


– Need 2 tests to cover True and False paths
– Does not consider combinations of conditions

 Modified Condition/Decision Coverage (MC/DC)


– Conditions in decision must independently affect the decision outcome
– Conditions must take on all possible outcomes (true and false) at least once
– Each decision must take on all possible outcomes (true and false) at least once

43
Streamline Unreachable Code Justification

 For defensive code that is proven to be unreachable

 Use results from Polyspace Code Prover to justify unreachable code

44
Profile for Execution Speed and Memory

 Identify code sections that require


execution speed enhancement

 Identify number of times functions


are called and memory use in
bytes

45
Test Code Robustness

 Integrated solution to find defects and run-time errors in tests


– Helps confirm that the test is robust

 Avoids debugging test failure due to bug in test


– Code under test might be OK
– Bug in the test causes test failure

46
Polyspace from Coding to Continuous Integration (CI/CD)
Coding
Integration

Code
Review Polyspace Access
Polyspace plugin Polyspace review results in browser
Pre-qualification
for your IDE on your desktop Quality
Dashboard

Test
Continuous
Release
Integration
Build

Polyspace Bug Finder,


Static Code Code Prover Servers,
Analysis and Polyspace Test
47
Fully Documented Command Line Interface (CLI)

48
Compare and Merge Polyspace Platform Projects
 CLI: polyspace-test

 Diff/Merge: polyspace-project

49
On-Target Testing with Target Boards or Instruction Set Simulators

 Build
On-target test execution Process
Polyspace Test
– Leverages MathWorks Target
Framework (TF) Host-side Coms Launch

 With the Target Framework Target-side Coms

– Build tests to run on target hardware Test Object


Harness
Code
– Download, start, and stop tests
Real Target or Simulator
– Communicate between Polyspace
Test on the host and target

API

50
Target and ISS Support

 Support for targets and ISS (instruction set simulators)


– MathWorks provides a fully documented API for the Target Framework (TF)
– TF can be integrated with cross-compiler toolchain for on-target or ISS based testing
– MathWorks Consulting can assist with building TF for your target or ISS

 License requirements
– Authoring TF for specific processor*
 MATLAB and MATLAB Coder sufficient for implementing the TF
 Embedded Coder needed to test the TF
– Executing with the TF
 Polyspace Test

* When done by MathWorks consulting services, these additional licenses are not required

51
Certification

52
ISO 26262 - Software Unit Verification
 IEC Certification Kit for ISO 26262, IEC 61508, and related standards
– Certified by TÜV SÜD for suitability for use
– Provides tool classification and tool qualification work products, templates, certificates, and validation suites

 Polyspace Test
– –Support for Table 7 methods 1j-1l, Table 9 methods 1a-1c,Table 10 methods 1a-1c, Table 12 methods 1a-1b
– For requirements-based tests, coverage analysis, interface tests, fault injection tests

A B C D
1n + + ‡ ‡
1m + + + ‡
1l + + + ‡
1k ASIL A B C D‡ ‡ ‡ ‡
1j A B C D A B C D + + ‡ ‡‡ ‡ ‡ ‡
1i + + + + ‡ ‡ ‡ ‡ A B C D ‡ ‡ ‡ ‡+ + + + A B C D
1h ‡ ‡ ‡ ‡ + + + ‡ + + ‡ ‡ + ‡ ‡ ‡‡ ‡ ‡ ‡ + + + +
1g + ‡ ‡ ‡ + + + ‡ + + ‡ ‡ + ‡ ‡ ‡+ + ‡ ‡ ‡ ‡ ‡ ‡ A B C D
Topics

1f + ‡ ‡ ‡ ‡ ‡ ‡ ‡ + + ‡ ‡ + ‡ ‡ ‡+ + ‡ ‡ + + ‡ ‡ + ‡ ‡ ‡
1e + + ‡ ‡ A B C D + ‡ ‡ ‡ o o + + A B C D + + ‡ ‡o o + + A B C D + + ‡ ‡ A B C D + + ‡ ‡
1d + + ‡ ‡ + + + + + ‡ ‡ ‡ o o + ‡ + + + + ‡ ‡ ‡ ‡+ + ‡ ‡ + + + + A B C D ‡ ‡ ‡ ‡ + + + + A B C D + + ‡ ‡
1c ‡ ‡ ‡ ‡ + + ‡ ‡ + + + ‡ + + + ‡ + + ‡ ‡ ‡ ‡ ‡ ‡+ ‡ ‡ ‡ + ‡ ‡ ‡ + + + ‡ + + ‡ ‡ + ‡ ‡ ‡ A B C D + + ‡ ‡ A B C D + + ‡ ‡
1b ‡ ‡ ‡ ‡ ‡ ‡ + + ‡ ‡ ‡ ‡ + ‡ ‡ ‡ ‡ ‡ + + + ‡ ‡ ‡+ + + + + ‡ ‡ ‡ + ‡ ‡ ‡ ‡ ‡ ‡ ‡ + ‡ ‡ ‡ + + ‡ ‡ ‡ ‡ ‡ ‡ + + + ‡ + ‡ ‡ ‡
1a ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ + o o ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡‡ + O o ‡ ‡ ‡ ‡ ‡ ‡ + + ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ + + ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡
Table 1 Table 2 Table 3 Table 4 Table 5 Table 6 Table 7 Table 8 Table 9 Table 10 Table 11 Table 12 Table 13 Table 14 Table 15
Tables
Polyspace Bug Finder and Code Prover Polyspace Test 53
Qualification of MathWorks Tools
MathWorks

MathWorks
Pre-qualification based on
reference use cases / workflows
Report package
Templates, work products,
acc. to ISO 26262-8
Independent Assessment Test package
Validation tests harnesses,
example tests

Certification Kit

Tool User
Project-specific
adaptation
54
DO Qual Kit Support for Polyspace Test
DO-330* Compliant Artifacts

* Supplement for Software Tool Qualification Considerations: Guidance on the qualification of software
tools used in the development and verification of airborne systems
55
Qualifiable Products for Handwritten C/C++ Code

 Polyspace Test xUnit workflow (TQL-5)


 Polyspace Bug Finder (TQL-5)
 Polyspace Code Prover (TQL-4)
 Requirements Toolbox* (TQL-5)

* Requires MATLAB, supports linking from requirements


authored in Requirements Toolbox to C/C++ source files

56
Requirements-Based Testing and Coverage

e
st d
Te Co
e d i e d ge
l i f i l ts l i f ra
ua su ua ve
Q Re Q Co

57
MathWorks Test and Verification Product Portfolio

58
MathWorks Portfolio of Test and Verification Tools

Polyspace Test

Dynamic testing Static analysis Bridge between Dynamic testing Static analysis
Model-Based Design
Requirements Toolbox and Code
Model-Based Design Handwritten and Mixed Code

 With Polyspace Test, MathWorks offers complete code verification solution

 Verification of handwritten code AND mixed (generated + handwritten) code

 Connects Model-Based Design to code verification

59
Conclusion and Summary

60
Polyspace Test – Built with MathWorks Model Testing Experience
 Testing workflows
Customer Success Stories
– Simulink Test: MIL, SIL, PIL www.mathworks.com/company/customer-stories.html
– Released 2015

 Requirements traceability
– Requirements Toolbox
– Released 2009

 Host and target: code coverage


– Simulink Coverage
– Released 2016

 Automatic test generation


– Simulink Design Verifier
– Released 2007

 Integration with target hardware


– Embedded Coder: HW Suppt. Packages
– Multiple releases 61
Polyspace Test – Key Capabilities

 Unified platform for static analysis and dynamic test


– Includes ability to publish static + dynamic results to Polyspace Access
– Single vendor solution

 Integration with Polyspace Code Prover to automatically justify dead code


– Could help speedup review of coverage results produced by Polyspace Test

 Automatic generation to speed up test creation


– Use of formal methods to generate test for achieving coverage goals

 Check unit tests with Polyspace Bug Finder / Code Prover to confirm unit test is robust
– Confirm that there are no issues with the code under test when tested under specific test scenarios

 Leverages the on-target testing capabilities from the MBD toolchain


– Author your target support once for generated and handwritten code

62
Installation and Licensing

Instructions for this section


(Delete these instructions prior to presenting)

Optional slides to show existing Polyspace customers

63
Downloading and Installing Polyspace Test

 Download
– Navigate to this URL  mathworks.com/downloads
– Select Get Polyspace Test Products and download for your platform

 Install instructions
– mathworks.com/help/polyspace_test/install-polyspace-test.html

 Unified platform for static + dynamic


– Polyspace Bug Finder and Polyspace Code Prover are included in the Polyspace Test installation to support
unified platform for static + dynamic
– License for Polyspace Bug Finder or Polyspace Code Prover required for unified platform
– Download Polyspace Bug Finder / Polyspace Code Prover separately if you do not intend to use the unified
platform

 Additional installation guidance


– mathworks.com/matlabcentral/answers/476820-how-do-i-install-polyspace-for-r2019a-and-later

64
Polyspace Test Licensing
 Polyspace Test does not require MATLAB or any other products

 Polyspace Test can be installed and used on the desktop and CI/CD servers
– Separate license and installation not required
– Note: Bug Finder and Code Prover for CI requires Polyspace Bug Finder Server and Polyspace Code Prover Server

 When is Polyspace Test license needed?


– Analyze/parse code, author, build, run tests, view test results with the GUI
– Producing instrumented code for xUnit workflows, Execute xUnit tests with coverage or exec/mem profiling

 Multiple executions by a single user


– Can launch multiple Polyspace Test processes (parse, build, run…) simultaneously with single license on their
machine
– Similar to MATLAB, a Named User can launch multiple Polyspace Test processes/sessions with a single license on
up to two computers simultaneously

 Developing custom targets using Target Framework (TF) requires additional product licenses
– Authoring and testing TF for specific processor*
 MATLAB and MATLAB Coder sufficient for implementing the TF
 Embedded Coder needed in for testing the TF in context of authoring
– Executing with the TF
65
* When developed by MathWorks Consulting,
 Polyspace Test these additional licenses are not required
Product Overview
Polyspace Test

66
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems
Who it’s for:
Software Developers, Testers, and Quality Engineers
 Responsible for unit testing and integration testing of handwritten C/C++ code or mixed code (hand code + generated code)
 Where software quality has safety, security, or business-critical impact, or requires certification

Challenges:
 Software quality metrics or certification require thorough testing and high code coverage
 Tedium of writing, managing, and executing tests
 A single solution unifying static code analysis and dynamic testing

C/C++ code-based validation and verification workflow


Catch coding issues by analyzing the code Verify run-time behavior by executing the code
without executing the code and checking against test cases
Static Analysis Dynamic Testing

Polyspace Bug Finder Polyspace Code Prover Polyspace Test

67
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems

Solutions and Benefits:


 Integrated platform for full lifecycle code verification
– Single GUI with a common configuration project​, dashboards, and
similar review experiences for all type of results

Common Configuration Project Dashboards

68
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems

Solutions and Benefits:


 Integrated platform for full lifecycle code verification Automatic Test Generation
– Single GUI with a common configuration project​, dashboards, and
similar review experiences for all type of results
 Test authoring – Flexibility & Convenience
– Support both manual approach and low code test authoring
– Advanced automatic test generation

Unit Test Framework Low Code GUI Test Authoring

69
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems

Solutions and Benefits:


 Integrated platform for full lifecycle code verification Requirements Linking
– Single GUI with a common configuration project​, dashboards, and
similar review experiences for all type of results
 Test authoring – Flexibility & Convenience
– Support both manual approach and low code test authoring
– Advanced automatic test generation
 Test management – Traceability & Centralization
– Link to requirements
– Import and manage external tests

70
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems

Solutions and Benefits:


 Integrated platform for full lifecycle code verification
– Single GUI with a common configuration project​, dashboards, and
C/C++
similar review experiences for all type of results
Write / Fix Code
 Test authoring – Flexibility & Convenience
– Support both manual approach and low code test authoring
– Advanced automatic test generation
 Test management – Traceability & Centralization
– Link to requirements
– Import and manage external tests
 Test execution – Full Support Test on Host
– Support execution on simulator/emulator and hardware
environments

Test on Target

71
Polyspace Test NEW PRODUCT
Develop, Manage, and Execute Tests for C and C++ Code in
Embedded Systems

Solutions and Benefits:


 Integrated platform for full lifecycle code verification
– Single GUI with a common configuration project​, dashboards, and Coverage Metrics
similar review experiences for all type of results
 Test authoring – Flexibility & Convenience
– Support both manual approach and low code test authoring
– Advanced automatic test generation
 Test management – Traceability & Centralization
– Link to requirements
– Import and manage external tests
 Test execution – Full Support
– Support execution on simulator/emulator and hardware
environments
Memory Usage
 Test review – Complete Results
– Code coverage and execution profiling and metrics

72
Backup

73
Software Test Challenges

 Writing lots of C/C++ code for testing purposes


 Different environments and GUIs for static analysis vs testing, e.g. needing
to configure 2 different tools
 Being unable to achieve 100% coverage objectives
 Running tests on a target, easier to test on host
 Manuals tasks needed to be performed to achieve certification
 Difficult to understand the code that is being, e.g. interfaces
 Manual justification process for dead code
 Sharing static and dynamic results across teams - collaborative work,
motivating developers to take action based on testing findings
 Debugging failed tests, need assistance for this process

74

You might also like