Top Banner
Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin
28

Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Dec 14, 2015

Download

Documents

Zaire Cranford
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces

Mikhail Chupilko,Alexander Kamkin

Page 2: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Outline

• Hardware models• Runtime verification• Elements of formalization• Conformance relation• Conclusion

2/28

Page 3: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Hardware models

• They are developed in Hardware Description Languages, like Verilog or VHDL

• The result of development is the program being executed in HDL simulator

• The common approach for verification of hardware models is testing of HDL programs

• To automatize testing is possible by means of executable models (e.g. in C++)

3/28

Page 4: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

HDL programs

input S;output R1, R2;void design() { while(true) { wait(S); delay(6); R1 = 1; delay(1); R1 = 0; R2 = 1; delay(1); R2 = 0; }}

CLK

6 cycles

SR1R2

Parallel assignments

4/28

Page 5: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Hardware model behavior

5/28

Page 6: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Reference model-based test oracle

HDL

Test oracle

Reactioncomparators

Reference model

Reaction arbiters

Inp

ut

inte

rfa

ce a

da

pte

rs

Ou

tpu

t inte

rface

ad

ap

ters

Stimuli

HDL-modelreactions

Reference modelreactions

6/28

Page 7: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Behavior correctness checking

Time restrictions

Functional properties

• Set of reactions is correct

• Each reaction is correct

• Reaction order is correct

• Delays between reactions are correct

7/28

Page 8: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Cycle-accurate checking

R1

Reactions of HDL-model

Reference model reactions

send(R1);

send(R2);

delay(3)

R1

R2

✕Comparison

R2

3 cycles

8/28

Page 9: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Ambiguity in reaction order

SR2 R1

Execution of HDL-model

recv(in_iface, S);

Execution of reference model

send(out_iface, R1);

send(out_iface, R2);

...

...Error: R2 R1

Reverse order

Reaction order

R1R2Allowed: R2 Order

9/28

Page 10: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Arbitration of reactions

• Reaction arbiter finds a reaction corresponding to the reference model one

• Behavior checking depends on both reference model and on arbitration

• Reaction arbiters encapsulate parts of test oracle functionality aimed at reaction order checking

10/28

Page 11: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Types of reaction arbiters

• Deterministic model-based arbiterarbiter: 2Reaction Reaction {fail}

• Adaptive arbiterarbiter: 2Reaction Reaction Reaction {fail}

• Two-level arbiterarbiter(reactions) arbiter2(arbiter1(reactions), reaction)

– Non-deterministic arbiter

– Adaptive arbiter

11/28

Page 12: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Deterministic arbiter

R1

HDL-model reactions

Reference model reactions

send(R1);

send(R2);

... R1R2

Reactionarbiter

R1

R2

FIFO

✕ Comparison

S R

Known order

12/28

Page 13: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Adaptive arbiter

R1

HDL-model reactions

Reference model reactions

send(R1);

send(R2);

...

R1

R2 Reactionarbiter

R1

R2

Get(R1)

Comparison

S R

Unknown order

Hint ✕

13/28

Page 14: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Two-level arbiter

R1

HDL-model reactions

Reference model reactions

send(R1);

send(R2);

...

R1

R2Arbiter

#1

R1

R2

Get(R1)

Comparison

S R

Partially known order

Arbiter#2

Hint

Candidates

14/28

Page 15: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Timed word (Alur & Dill, 1994)

– alphabet of eventsT – time domain (R≥0 or N)

w = (a0, t0)(a1, t1), … ( T)(*)

• i . ti < ti+1 (ti ≤ ti+1) – monotonicity

• T i . ti > T – progress (if |w| = )

15/28

Page 16: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Mazurkiewicz trace (1977)

– alphabet of eventsI – relation of independence

Equivalent: u v u is derived from v by means of reordering of closest independence events

Trace is a class of equivalence of event chains in respect to equivalent relation

16/28

Page 17: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Mazurkiewicz trace (1977) - Example

= { a,b,c,d }I = { (a,b), (c,d) + symmetry}

[ab] = { ab, ba }

[bc] = { bc }

[abcd] = { abcd, bacd, abdc, badc }

17/28

Page 18: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Partially ordered set – Pratt (1982)

– alphabet of eventsPomset is tuple V, ,

• V – set of vertexes

• VV – partial set

• : V – labeling function

18/28

Page 19: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Partially ordered set – Pratt (1982)Examples

a a b

c

c

db

a

b

a

b

c

d

a

19/28

Page 20: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Timed trace – Chieu & Hung (2012)

– alphabet of events, T – time domainTimed trace – V, , , [, ]• V – set of vertexes• VV – partial order• : V – labeling function• : V T – time of event• : V T – allowed interval

20/28

Page 21: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Timed trace – Chieu & Hung (2012)Examples

• { abcd, bacd, abdc, badc }• { abcd, bacd } – time restrictions

a b

c d

[0, 0] [0, 1]

[3, 4][0, 2]

21/28

Page 22: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Behavior of specification and implementation

Implementation behaviorVI, , I, I

Specification behaviorVS, , S, S, S

Allowed time intervalS(x) = [S(x)-t(x), S(x)+t(x)]

Correspondence of eventsmatch(x, y) = (I(y) = S(x)) & (I(y) S(x))

22/28

Page 23: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Conformance relation

I ~ S t T .M { (x, y)pastS(t) pastI(t) | match(x, y) }

• M – one-to-one relation

• xpastS(t-t) ypastI(t) . (x, y)M

• ypastI(t-t) xpastS(t) . (x, y)M

• (x, y), (x’, y’) M . x x’ (y) (y’)

23/28

Page 24: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Reaction arbiters

24/28

Page 25: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Conformance relation checking

25/28

Page 26: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

C++TESK Testing ToolKitWeb: http://forge.ispras.ru/projects/cpptesk-toolkitE-mail: [email protected]

26/28

Page 27: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

Conclusion

• Based on the theory of traces and partially ordered multisets method of on-the-fly analysis of hardware systems has been developed

• The method has been implemented in C++TESK Testing ToolKit and has been successfully used in a number of projects

• Future research is connected with failure diagnostics: giving hints to localization of bugs

27/28

Page 28: Runtime Verification Based on Executable Models: On-the-Fly Matching of Timed Traces Mikhail Chupilko, Alexander Kamkin.

THANK YOU

• Any questions?

28/28