structural high-level tests€¦ · structural tests (white box) did my functional tests use all my...

36
© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous. Structural High-level Tests Alexander Weiss , Accemic Technologies GmbH Martin Heininger, HEICON Global Engineering GmbH

Upload: others

Post on 30-Jul-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Structural High-level TestsAlexander Weiss, Accemic Technologies GmbH

Martin Heininger, HEICON Global Engineering GmbH

Page 2: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

MotivationBug-free Software is a Myth.

Trends:

• More complex integrated systems

• Software-driven safety-critical applications(e.g. autonomous driving)

➢ Increased number of critical software defects

Software defects are a considerable cause for

• Project schedule overruns (~60%) 1

• Project budget overruns (~50%) 1

• Project cancellation (~10-20%) 2,3

• Higher maintenance costs(Airbus study4 : Cost of a non-frequent failure: up to 500,000 €)

• Injuries, accidents, recalls

1 Gartner Research2 Emam et al, “A Replicated Survey of IT Software Project Failures.”3 Standish Chaos Report4 Hanke et al, “Assessment of multi-core integration infrastructure” Munich, 2014.

Page 3: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

MotivationBug-free Software is a Myth.

Size of SW projects in FP

Average Defect Potential

(Defects / FP)

Defect Removal Efficiency

100 3,00 98%

10.000 6,25 96%

1.000.000 8,25 86%

McKinsey & Company (2018): "Snowballing complexity is causing

significant software-related quality issues …“

* 1 FP (Function Point): ~160 LOC (C language), ~64 LOC (ADA), ~32 LOC (C++)

1 MLOC (C-Code) => 6.250 FP => ~35.000 defects => ~ 2.500 Post Release Defects

Page 4: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

MotivationBug-free Software is a Myth.

• Challenges for embedded software architecture• Challenges for testing• Challenges for maintenance

Defect Removal Efficiency decreases with the size of SW projects.

Average Defect Potential increases with the size of SW projects.

Additional non-deterministic defects, caused by multicore interferences

Increasing size of SW projects

Po

st-r

ele

ase

de

fect

s

Code Complexity

Page 5: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

What we can do

Challenges:

• Improve development process

• Improve test effectiveness and test efficiency

• Improve in-field analysis and debug capabilities

• ….

Our contribution:

• Regain observation capabilities in highly integrated multicore systems

• Enable continuous, non-intrusive online observation and automated validation

➢ Structural coverage at higher test levels

➢ Timing analysis at higher test levels

Po

st-r

ele

ase

de

fect

s

Code Complexity

Page 6: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Dynamic TestsOverview

Functional tests (black box)

Test the implementation of the

functional requirements.

Structural tests (white box)

Did my functional tests use all my code?

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 7: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Dynamic TestsOverview

Functional tests

Test the implementation of the

functional requirements.

Structural tests

Did my functional tests use all my code?

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 8: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Dynamic TestsOverview

𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡 𝐶𝑜𝑣𝑒𝑟𝑎𝑔𝑒 =# 𝑜𝑓 𝐸𝑥𝑒𝑐𝑢𝑡𝑒𝑑 𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡𝑠

# 𝑜𝑓 𝑆𝑡𝑎𝑡𝑒𝑚𝑒𝑛𝑡𝑠

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 9: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Dynamic TestsOverview

𝐵𝑟𝑎𝑛𝑐ℎ 𝐶𝑜𝑣𝑒𝑟𝑎𝑔𝑒 =# 𝑜𝑓 𝐸𝑥𝑒𝑐𝑢𝑡𝑒𝑑 𝐵𝑟𝑎𝑛𝑐ℎ𝑒𝑠

# 𝑜𝑓 𝐵𝑟𝑎𝑛𝑐ℎ𝑒𝑠

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 10: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Dynamic TestsOverview

MC/DC

Each condition in a decision has been shown to independently affect that decision's outcome.

A condition is shown to independently affect a decision's outcome by varying just that condition while holding fixed all other possible conditions.https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20010057789.pdf

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 11: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Low Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Dynamic TestsOverview

Functional tests (black box)

Test the implementation of the

functional requirements.

Structural tests (white box)

Did my functional tests use all my code?

IMPROVEMENT:

Structural tests for high-level tests.

Page 12: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Module tests

Integration tests

System tests

Lon

gob

serv

atio

n

No

ch

ange

of

tim

ing

be

hav

ior

No

ch

ange

of

me

mo

ry fo

otp

rin

t

Y

Y

N

Y

Y

Y

Y

N N SW instrumentation is perfect.

Limitations by using SW instrumentation

Limitations by using SW instrumentation

Requirements für structural tests

Page 13: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Module tests

Integration tests

System tests

Lon

gob

serv

atio

n

No

ch

ange

of

tim

ing

be

hav

ior

No

ch

ange

of

me

mo

ry fo

otp

rin

t

Y

Y

N

Y

Y

Y

Y

N N SW instrumentation is perfect.

Limitations by using SW instrumentation

Limitations by using SW instrumentation

Requirements für structural tests

State of the art: Measuring code coverage using SW instrumentation

Page 14: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Module tests

Integration tests

System tests

Lon

gob

serv

atio

n

No

ch

ange

of

tim

ing

be

hav

ior

No

ch

ange

of

me

mo

ry fo

otp

rin

t

Y

Y

N

Y

Y

Y

Y

N N SW instrumentation is perfect.

Limitations by using SW instrumentation

Limitations by using SW instrumentation

Requirements für structural tests

New approach: Non-intrusive and continuous

observation

Page 15: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Non-intrusive and Continous Observation

Multi Gbps Synchronization

Processor(Aurix, Cortex-A,

Intel Atom, QorIQ)

Live Synchronized Digital Twin

Live Rule Processing

Page 16: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

CEDARtools® Hardware Platform (FPGA Board)

DuT (Intel, ARM, PPC, Aurix)

Trac

e B

uff

er a

nd

Co

nce

ntr

ato

r

Trace Data Pre-processing

andControl Flow

Reconstruction

Branch Counter

Branches

Source Code

Periphery trace

Per

Mem

Mem

CPU0

CPU1

CPU2

CPUn

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Branchcounts

Trac

e P

ort

Compiler

Configuration

Debug Server

high-speed serial

Pos

t p

roce

ssin

g

Object code coverage

Debug information

Binary

Map

pin

g

Source code coverage

Non-intrusive and Continous Observation

Page 17: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

CEDARtools® Hardware Platform (FPGA Board)

DuT (Intel, ARM, PPC, Aurix)

Trac

e B

uff

er a

nd

Co

nce

ntr

ato

r

Trace Data Pre-processing

andControl Flow

Reconstruction

Branch Counter

Branches

Source Code

Periphery trace

Per

Mem

Mem

CPU0

CPU1

CPU2

CPUn

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Branchcounts

Trac

e P

ort

Compiler

Configuration

Debug Server

high-speed serial

Pos

t p

roce

ssin

g

Object code coverage

Debug information

Binary

Map

pin

g

Source code coverage

Non-intrusive and Continous Observation

Live synchroniced“digital twin”

Live branch counter

Page 18: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Continuous and non-intrusive

• Statement Coverage

• Branch Coverage (EX/NEX)

• Performance measurement(count executed instructions)

➢ Measured on object code level

➢ Measured on release code

➢ No instrumentation

➢ No limitation due to trace buffer size

Targets:

• Infineon Aurix™ (TC2xx & TC3xx),

• Arm® Cortex® -A9,

• Intel® x86 (Atom® E3950),

• NXP QorIQ® P- and T-series,

• Arm® Cortex® -A5x under development.

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Page 19: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Continuous and non-intrusive

• Statement Coverage

• Branch Coverage (EX/NEX)

• Performance measurement(count executed instructions)

➢ Measured on object code level

➢ Measured on release code

➢ No instrumentation

➢ No limitation due to trace buffer size

Targets:

• Infineon Aurix™ (TC2xx & TC3xx),

• Arm® Cortex® -A9,

• Intel® x86 (Atom® E3950),

• NXP QorIQ® P- and T-series,

• Arm® Cortex® -A5x under development.

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Page 20: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Continuous and non-intrusive

• Statement Coverage

• Branch Coverage (EX/NEX)

• Performance measurement(count executed instructions)

➢ Measured on object code level

➢ Measured on release code

➢ No instrumentation

➢ No limitation due to trace buffer size

Targets:

• Infineon Aurix™ (TC2xx & TC3xx),

• Arm® Cortex® -A9,

• Intel® x86 (Atom® E3950),

• NXP QorIQ® P- and T-series,

• Arm® Cortex® -A5x under development

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Page 21: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural Tests

Continuous and non-intrusive

• Statement Coverage

• Branch Coverage (EX/NEX)

• Performance measurement(count executed instructions)

➢ Measured on object code level

➢ Measured on release code

➢ No instrumentation

➢ No limitation due to trace buffer size

Targets:

• Infineon Aurix™ (TC2xx & TC3xx),

• Arm® Cortex® -A9,

• Intel® x86 (Atom® E3950),

• NXP QorIQ® P- and T-series,

• Arm® Cortex® -A5x under development.

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Page 22: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural TestsSubstitution of Low-Level Structural Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

DO178C (6.4):

• If a test case and its corresponding test procedure are developed and executed for HW/SW or SW integration testing and satisfy the requirements-based coverage and structural coverage, it is not necessary to duplicate the test for low-level testing.

• Substituting nominally equivalent low-level tests for high-level tests may be less effectivedue to the reduced amount of overall functionality tested.

Page 23: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural TestsSubstitution of Low-Level Structural Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Software

Low-Level

Requirements

Software

High-Level

Requirements

System

Requirements

Software

Design

Software

Architecture

System

Architecture

Implementation – Source Code

SW Unit Test

SW

Integration Test

HW/SW

Integration Test

System Test

Structural coverage✓

Remaining structural code coverage to be evidenced for certifications:

~ (95%-60% = 35%)

Structural code coverage measured at high level tests: ~60%

Page 24: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural TestsCompleteness of High-Level Tests

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Software

Low-Level

Requirements

Software

High-Level

Requirements

System

Requirements

Software

Design

Software

Architecture

System

Architecture

Implementation – Source Code

SW Unit Test

SW

Integration Test

HW/SW

Integration Test

System Test

Structural coverage

Measurable statement of the completeness

of High-Level Tests

Page 25: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

High-level Structural Testsat Object Code Level

PROs

• It can demonstrate full code coverage at the object code level.

• It can support more “valid” coverage.

• It is closer to the final software .

• It can be implemented with source code programming

language independence.

• It can reduce time-consuming manual analysis.

• No instrumentation is required.

• It can also be used for the objective measurement of the

quality of integration and system tests.

• It can reduce the test effort by substituting low-level tests.

• Incomplete requirements and tests are found at the system level.

T. Byun, V. Sharma, S. Rayadurgam, S. McCamant, and M. P. Heimdahl, ‘Toward Rigorous Object-Code Coverage Criteria’, in 2017 IEEE 28th International Symposium on Software Reliability Engineering (ISSRE), 2018, vol. 00, pp. 328–338.

Page 26: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

High-level Structural Testsat Object Code Level

CONs

• Source code to object code traceability can be difficult(depending on compiler support).

• Optimizing compiler can use difficult-to-monitor flags to processmulti-conditions. (we are working on solutions…)

• Typical tools use the source code level.

T. Byun, V. Sharma, S. Rayadurgam, S. McCamant, and M. P. Heimdahl, ‘Toward Rigorous Object-Code Coverage Criteria’, in 2017 IEEE 28th International Symposium on Software Reliability Engineering (ISSRE), 2018, vol. 00, pp. 328–338.

Page 27: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

High-level Structural TestsKey enabler: Processor Trace

Most processors provide trace infrastructure:

• ARM Cortex-A/-M/-R: CoreSight architecture

• Intel x86: IntelPT

• NXP QorIQ P-series, T-series: Debug Assist Module

• Infineon Aurix: Emulation Device

Trace date consists of high-bandwidth information for reconstruction of

• Control flow,

• OS related events (task changes),

• Data access (address, value),and hardware-supported instrumentation: printf() replacement by simple MOV command.

Hardware-based monitoring infrastructure is integrated in most processors –and is already paid by you …

Mind trace interface access opportunities:

- in your hardware system requirement specifications and

- in your SoC architecture decision!

CEDARtools® Hardware Platform (FPGA Board)

DuT (Intel, ARM, PPC, Aurix)

Tra

ce B

uff

er

an

d C

on

cen

tra

tor

Trace Data Pre-processing

andControl Flow

Reconstruction

Branch Counter

Branches

Source Code

Periphery trace

Per

Mem

Mem

CPU0

CPU1

CPU2

CPUn

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Instr / Data Trace

Branchcounts

Tra

ce P

ort

Compiler

Configuration

Debug Server

high-speed serial

Po

st p

roce

ssin

g

Object code coverage

Debug information

Binary

Ma

pp

ing

Source code coverage

Page 28: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Bug-free Software is a Myth.But there's something we can do.

Contact:

Accemic Technologies GmbH

Franz-Huber-Str. 39

83088 Kiefersfelden

www.accemic.com

Dr.-Ing. Alexander Weiss

[email protected]

+49 8033 6039795

Po

st-r

ele

ase

de

fect

s

Code ComplexityLow Level

High LevelIntegration Tests

System Tests

Testing Techniques

Static Dynamic

StructuralFunctional

Control Flow Data Flow

Statement Coverage

Branch Coverage

MC/DC

Requirements Product

Module Tests

Page 29: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Backup slides

Page 30: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

FORMAL VERIFICATIONExploring the state space by checking

all paths

TESTINGExploring the state space by checking likely paths

Runtime Analysis Exploring the state space

by checking actual paths

be

fore

de

plo

ym

en

tin

de

plo

ym

en

t

Not all elements can be modelled

Not all paths can be executed during tests

Runtime Analysis

Page 31: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

Low Level

High Level

Testing techniques

static dynamic

structuralfunctional

control flow data flow

statement coverage

branch coverage

condition coverage

Requirements Product

Module tests

Integration tests

System tests

Live processing of event streamsLive synchroniced

“digital twin”

Page 32: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

• High-level specification language

• Hardware-supported event processing

• Multiple constraints can be checked in parallel

User specific constraints specification

(XML, Excel, ...)

Automotive domain constraints specification

(AUTOSAR TIMEX, Amalthea, ...)

Requirement & Test specifications

Hardware supported event processing

( ~100M Events/s)

-

(see tessla.io)

Page 33: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

ECU

Processor

C code

Binary

C compiler

read_brake_sensor();

activate_brakes();

< 5ms

•Use case: Safety-critical application to control brakes

•Requirement:•Ensure Timing Constraint from

pressing the brakes, until their activation•Constraint: Should react within 5ms!

Page 34: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

ECU

Processor

C code

Binary

C compiler

read_brake_sensor();

activate_brakes();

test specificationen

< 5ms

in read_brake_sensor : Events[Unit]

in activate_brakes : Events[Unit]

def latency : Events[Int] := calc_latency(read_brake_sensor, activate_brakes)

def test_passed : Events[Bool] := if (latency < 5ms) then true else false

•Use case: Safety-critical application to control brakes

•Requirement:•Ensure Timing Constraint from

pressing the brakes, until their activation•Constraint: Should react within 5ms!

Page 35: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

ECU

Processor

CEDARtools®

digital twintracedata

Code coverage

Timing analysis

C code

Binary

C compiler

read_brake_sensor();

activate_brakes();

TeSSLa compiler

debuginformation

analysis task

test specificationen

< 5ms

in read_brake_sensor : Events[Unit]

in activate_brakes : Events[Unit]

def latency : Events[Int] := calc_latency(read_brake_sensor, activate_brakes)

def test_passed : Events[Bool] := if (latency < 5ms) then true else false

test_passed

Page 36: Structural High-level Tests€¦ · Structural tests (white box) Did my functional tests use all my code? Low Level High Level Integration Tests System Tests Testing Techniques Static

© 2020 Accemic Technologies GmbH. The pioneer in embedded systems dynamic analysis. Automated, non-intrusive and continuous.

Runtime AnalysisTiming Analysis

https://www.youtube.com/watch?v=3AYVWK-X9nw&feature=youtu.be