24
1 © 2011 The MathWorks, Inc. Improving the Quality of Complex Control Logic Design using Model Verification Shobhit Shanker Senior Application Engineer- Code Generation & Verification Prashant Hegde Pilot Engineer

Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

1 © 2011 The MathWorks, Inc.

Improving the Quality of Complex

Control Logic Design using Model

Verification

Shobhit Shanker

Senior Application Engineer- Code Generation & Verification

Prashant Hegde

Pilot Engineer

Page 2: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

2

Challenges of testing Complex Control Logic

Gaps in Traditional Methods of Model Testing

Improving Quality of the Model by Using Simulink

Design Verifier

– Automatically Generate Test Cases

– Formally Prove Safety Critical Requirement

– Detect Design Errors

Agenda

Page 3: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

3

How many of you have been involved in testing

complex algorithms?

You spent hours and days weeks writing test cases and

manually executing test-cases

A Show of Hands…

Page 4: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

4

Challenges in Testing Complex Control Logic

Let’s look at the problem we are trying to solve…

– What is challenge in testing complex control logic?

Page 5: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

5

Difficulties with Complex Logic

Multiple entry/exit transitions

– Simultaneous transitions

Execution order

Page 6: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

6

Difficulties with Complex Logic

Complex conditional statements

Page 7: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

7

Difficulties with Complex Logic

Synchronization

– Flag set in one state is

being used in another

parallel state.

Page 8: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

8

How Do We Test Our Models Today?

Develop test inputs

– Types of inputs:

Functional requirement

High level use case

Sensitivity analysis

“Edge Case” testing

Robustness testing

…etc

Apply the test inputs to model

Analyze the results

– Expected output

Measure coverage

Page 9: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

9

Brief Review on What is Model Coverage…

Page 10: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

10

What is Model Coverage?

A quick example…

if (X & Y)

Z = 1;

else

Z = -1;

end

MC/DC Coverage:

Each condition

independently

changes the decision

outcome

Decision

Condition

Page 11: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

11

Why is Model Coverage Important?

It indicates to what

extent the test

procedure exercise the

model structure.

Reveal model structure

that was not exercised

during testing.

Page 12: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

12

The quality of your verification activity is based on the

input vectors you created. Error or design defect can

only be detected if the proper stimulus exists.

Requirements

Simulation Based Testing

Page 13: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

14

Gaps in Simulation Based Testing

The method itself is inefficient in being exhaustive or

complete.

– A set of functional test case that meets MC/DC coverage

objective is only a “minimum” set of test cases.

Test cases can’t cover every possible combination of different scenarios.

Inputs are defined based on what we already knew.

What about the unknown?

– Priority, synchronization, timeout…etc

We are performing Acceptance test.

Effort / Time %

Com

ple

te

0

100

Page 14: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

15

Simulation Based Testing Pains

Writing exhaustive requirement based test cases

Creating test simulation environment and generating reports

Missing coverage in the model

Unexpected behavior in model functionality

Is there any method/tool to address this?

Missing

Coverage

Requirements

Component

Models

Simulation

Manual Efforts

Generate Test Vector for Missing

Coverage

Why do we have

missing

coverage?

Simulink Design Verifier

Generate Test Vector for Missing

Coverage

Page 15: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

16

What is Simulink Design Verifier?

Formal Method based design analysis tool…. – No simulation is involved. Model is analyzed based on

mathematical equations

Simulink Design Verifier…. – Points to design flaws or requirement inconsistencies prior to in-

depth testing using manually created test vectors. Discovers logic errors / inefficiencies early.

– Proves that the model meets key behaviors or requirements under all possible circumstances.

Simulink Design Verifier can support simulation based testing method by… – Generation of structural test vectors based on MCDC objectives.

– Find missing test cases based on MC/DC objectives.

– Requirement based test vectors with custom objectives to increase test coverage.

Page 16: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

17

Simulink Design Verifier Tour

X

1

1

0

0

Y

1

0

1

0

X&Y

1

0

0

0

MC/DC?

Yes

Yes

Yes

No

Page 17: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

18

Determine Model Design Errors Before you Test

Ensure algorithmic logic is structurally

correct during design phase.

Early Detection

– Dead logics,

– Overflow,

– Divide by Zero

Transition expression can never be True

Page 18: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

19

Automatically Generate Test Vectors

Quickly create a set of test cases that can be used for

– Meeting the model structural (MCDC)coverage.

– Equivalence testing criteria in high-integrity application standards

ISO26262

Software-in-the-Loop

Processor-in-the-Loop

Identify Missing Coverage with respect to functional/Structural usecases and Generate Test vectors only for missing part.

C

Target Processor

Production Code

Generation

Component

Source Code

Code Generation

Model

Simulink Design Verifier

Automatic Test Generation

Test Harness

Page 19: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

20

Prove the Correctness of Your Design

Use custom input conditions and output objectives to:

– Create “What If” scenarios.

Define signal constraints and see if certain output can occur.

If sensor values are in range, can DTC be set?

– Develop additional test cases that would ensure the

robustness of the design.

Test Condition:

Constraints the input

Test Objective:

Custom criteria

Page 20: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

21

Prove the Correctness of Your Design

You can ask SLDV the following questions:

– Can “XXX” ever occur?

XXX is the Property of interest. It is a description of requirement or

behavior created using Simulink modeling construct.

– Is “XXX” always met by my model?

A = B always true?

Page 21: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

22

Simulink Design Verifier : Extras

Exporting generated test vectors into Excel.

Importing existing test vectors from Excel.

Comparison of Simulation output with Expected output.

Use of existing coverage data to generate test vectors

only for missing coverage.

Automatic creation of test harness and report file.

Page 22: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

23

Increasing Confidence In Your Designs

Verification Method

Traceability Modeling

Standards Checking

Simulation

Testing

Proving Design

Correctness

Co

nfi

de

nc

e

Page 23: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

24

Summary

Simulink Design Verifier is a design analysis tool.

It has many different uses cases, and can compliment

variety of existing Verification and Validation workflow.

Guided evaluation is the recommended approach.

Page 24: Improving the Quality of Complex Control Logic Design using … · 2 Challenges of testing Complex Control Logic Gaps in Traditional Methods of Model Testing Improving Quality of

25