• No results found

Software Reliability: Runtime Verification

N/A
N/A
Protected

Academic year: 2021

Share "Software Reliability: Runtime Verification"

Copied!
36
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Reliability:

Runtime Verification

Martin Leucker – and the whole ISP team –

Institute for Software Engineering Universit¨at zu L ¨ubeck

Riga, 21.07. – 04.08.14

Martin Leucker Basoti, 2014 1/117

Runtime Verification (RV) S1 S2 S3 S4 M

always (not x > 0 implies next x > 0)

Characterisation ◮ Verifies (partially)

correctness properties based on actual executions

◮ Simpleverification technique

◮ Complementing

Model CheckingTesting

◮ Formal:w ∈ L(ϕ)

Martin Leucker Basoti, 2014 2/117

Model Checking

◮ Specification of System

as formula ϕ of linear-time temporal logic (LTL)with models L(ϕ)

◮ Model of System

as transition system S with runs L(S)

◮ Model Checking Problem:

Do all runs of the system satisfy the specification

L(S) ⊆ L(ϕ)

(2)

Model Checking versus RV

◮ Model Checking:infinite words

◮ Runtime Verification:finite words

yetcontinuously expandingwords

◮ In RV: Complexity of monitor generation is of less importance than

complexity of the monitor

◮ Model Checking:White-Box-Systems

◮ Runtime Verification: alsoBlack-Box-Systems

Martin Leucker Basoti, 2014 4/117

Testing

Testing: Input/Output Sequence ◮ incompleteverification technique

◮ test case:finite sequence of input/output actions

◮ test suite:finite set of test cases

◮ test execution:send inputs to the system and check whether the actual output is as expected

Testing: with Oracle

◮ test case:finite sequence of input actions

◮ test oracle:monitor

◮ test execution:send test cases, let oracle report violations

◮ similar to runtime verification

Martin Leucker Basoti, 2014 5/117

Testing versus RV

◮ Test oraclemanual

◮ RV monitorfrom high-level specification (LTL)

◮ Testing:

How to findgood test suites?

◮ Runtime Verification:

(3)

Outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 7/117

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 8/117

Runtime Verification

Definition (Runtime Verification)

Runtime verificationis the discipline of computer science that deals with the study, development, and application of those verification techniques that allow checking whether a run of a system under scrutiny (SUS) satisfies or violates a given correctness property.

Its distinguishing research effort lies in synthesizing monitors from high level specifications.

Definition (Monitor)

Amonitoris a device that reads a finite trace and yields a certainverdict. A verdict is typically a truth value from some truth domain.

(4)

Taxonomy runtime verification trace finite finite non-completed infinite integration inline outline stage online offline interference invasive non-invasive steering active passive monitoring input/ output behavior state se-quence event sequence application area safety checking security information collection performance evaluation

Martin Leucker Basoti, 2014 10/117

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 11/117

Runtime Verification for LTL Observing executions/runs

Idea

Specify correctness properties in LTL

Commercial

(5)

Runtime Verification for LTL

Definition (Syntax of LTL formulae)

Let p be an atomic proposition from a finite set of atomic propositions AP. The set of LTL formulae, denoted with LTL, is inductively defined by the following grammar:

ϕ ::= true | p | ϕ ∨ ϕ | ϕ U ϕ | Xϕ |

false | ¬p | ϕ ∧ ϕ | ϕ R ϕ | ¯Xϕ | ¬ϕ

Martin Leucker Basoti, 2014 13/117

Linear-time Temporal Logic (LTL) Semantics over w ∈ (2AP)ω= Σω {p, q} p p q q . . . |= p ¬p pUq X(pUq) √ X √ √ Abbreviation Fϕ ≡ trueUϕ Gϕ ≡ ¬F¬ϕ Example

G¬(critic1∧ critic2), G(¬alive → Xalive)

Martin Leucker Basoti, 2014 14/117

LTL on infinite words

Definition (LTL semantics (traditional))

Semantics of LTL formulae over an infinite word w = a0a1. . .∈ Σω, where

wi=a iai+1. . . w |= true w |= p if p ∈ a0 w |= ¬p if p 6∈ a0 w |= ¬ϕ if not w |= ϕ w |= ϕ ∨ ψ if w |= ϕ or w |= ψ w |= ϕ ∧ ψ if w |= ϕ and w |= ψ w |= Xϕ if w1|= ϕ w |= ¯Xϕ if w1|= ϕ w |= ϕ U ψ if there is k with 0 ≤ k < |w|: wk|= ψ

and for all l with 0 ≤ l < k wl|= ϕ

w |= ϕ R ψ if for all k with 0 ≤ k < |w|: ( wk|= ψ

or there is l with 0 ≤ l < k wl|= ϕ)

(6)

LTL for the working engineer??

Simple??

“LTL is for theoreticians—but for practitioners?”

SALT

Structured Assertion Language for Temporal Logic “Syntactic Sugar for LTL” [Bauer, L., Streit@ICFEM’06]

Martin Leucker Basoti, 2014 16/117

SALT – http://www.isp.uni-luebeck.de/salt

Martin Leucker Basoti, 2014 17/117

Runtime Verification for LTL Idea

Specify correctness properties in LTL

Definition (Syntax of LTL formulae)

Let p be an atomic proposition from a finite set of atomic propositions AP. The set of LTL formulae, denoted with LTL, is inductively defined by the following grammar:

ϕ ::= true | p | ϕ ∨ ϕ | ϕ U ϕ | Xϕ |

false | ¬p | ϕ ∧ ϕ | ϕ R ϕ | ¯Xϕ | ¬ϕ

(7)

Truth Domains

Lattice

◮ Alatticeis a partially ordered set (L, ⊑) where for each x, y ∈ L, there exists

1. a uniquegreatest lower bound(glb), which is called themeetof x and y, and is denoted with x ⊓ y, and

2. a uniqueleast upper bound(lub), which is called thejoinof x and y, and is denoted with x ⊔ y.

◮ A lattice is calledfiniteiff L is finite.

◮ Every finite lattice has a well-defined unique least element, called

bottom, denoted with ⊥,

◮ and analogously a greatest element, calledtop, denoted with ⊤.

Martin Leucker Basoti, 2014 19/117

Truth Domains (cont.)

Lattice (cont.)

◮ A lattice isdistributive, iff x ⊓ (y ⊔ z) = (x ⊓ y) ⊔ (x ⊓ z), and, dually, x ⊔ (y ⊓ z) = (x ⊔ y) ⊓ (x ⊔ z).

◮ In ade Morganlattice, every element x has a uniquedualelement x, such that x = x and x ⊑ y implies y ⊑ x.

Definition (Truth domain)

We call L atruth domain, if it is a finite distributive de Morgan lattice.

Martin Leucker Basoti, 2014 20/117

LTL’s semantics using truth domains Definition (LTL semantics (common part)) Semantics of LTL formulae over a finite or infinite word w = a0a1 . . . ∈ Σ∞

Boolean constants [w |= true]L = ⊤ [w |= false]L = ⊥ Boolean combinations [w |= ¬ϕ]L = [w |= ϕ]L [w |= ϕ ∨ ψ]L = [w |= ϕ]L ⊔ [w |= ψ]L [w |= ϕ ∧ ψ]L = [w |= ϕ]L ⊓ [w |= ψ]L atomic propositions [w |= p]L =    ⊤ if p ∈ a0 ⊥ if p /∈ a0 [w |= ¬p]L =    ⊤ if p /∈ a0 ⊥ if p ∈ a0

next X/weak next X TBD

until/release [w |= ϕ U ψ]L =        ⊤ there is a k, 0 ≤ k < |w| : [wk |= ψ]L = ⊤ and for all l with 0 ≤ l < k : [wl |= ϕ] = ⊤ TBD else

ϕR ψ ≡ ¬(¬ϕ U ¬ψ)

(8)

LTL on finite words

Application area: Specify properties of finite word

Martin Leucker Basoti, 2014 23/117

LTL on finite words Definition (FLTL)

Semantics of FLTL formulae over a word u = a0. . .an−1∈ Σ∗

next [u |= Xϕ]F =    [u1 |= ϕ]F if u16= ǫ ⊥ otherwise weak next [u |= ¯Xϕ]F =    [u1 |= ϕ]F if u16= ǫ ⊤ otherwise

Martin Leucker Basoti, 2014 24/117

Monitoring LTL on finite words

(Bad) Idea

(9)

LTL on finite, but not completed words

Application area: Specify properties of finite but expanding word

Martin Leucker Basoti, 2014 27/117

LTL on finite, but not completed words

Be Impartial!

go for a final verdict (⊤ or ⊥) only if you really know

◮ be a man: stick to your word

Martin Leucker Basoti, 2014 28/117

LTL on finite, but not complete words Impartiality implies multiple values

Every two-valued logic is not impartial.

Definition (FLTL)

Semantics of FLTL formulae over a word u = a0. . .an−1∈ Σ∗

next [u |= Xϕ]F =    [u1 |= ϕ]F if u16= ǫ ⊥p otherwise weak next [u |= ¯Xϕ]F =    [u1 |= ϕ]F if u16= ǫ ⊤p otherwise

(10)

Monitoring LTL on finite but expanding words Left-to-right!

Martin Leucker Basoti, 2014 30/117

Monitoring LTL on finite but expanding words Rewriting

Idea: Use rewriting of formula

Evaluating FLTL4 for each subsequent letter

◮ evaluate atomic propositions

◮ evaluate next-formulas

◮ that’s it thanks to

ϕU ψ ≡ ψ ∨ (ϕ ∧ Xϕ U ψ)

and

ϕR ψ ≡ ψ ∧ (ϕ ∨ ¯Xϕ R ψ)

◮ and remember what to evaluate for the next letter

Martin Leucker Basoti, 2014 31/117

Evaluating FLTL4 for each subsequent letter Pseudo Code

evalFLTL4 true a = (⊤,⊤) evalFLTL4 false a = (⊥,⊥)

evalFLTL4 p a = ((p in a),(p in a))

evalFLTL4 ¬ϕ a = let (valPhi,phiRew) = evalFLTL4 ϕ a in (valPhi,¬phiRew)

evalFLTL4 ϕ ∨ ψ a = let

(valPhi,phiRew) = evalFLTL4 ϕ a (valPsi,psiRew) = evalFLTL4 ψ a

in (valPhi ⊔ valPsi,phiRew ∨ psiRew)

evalFLTL4 ϕ ∧ ψ a = let

(valPhi,phiRew) = evalFLTL4 ϕ a (valPsi,psiRew) = evalFLTL4 ψ a

in (valPhi ⊓ valPsi,phiRew ∧ psiRew)

evalFLTL4 ϕU ψ a = evalFLTL4 ψ ∨ (ϕ ∧ X(ϕ U ψ)) a evalFLTL4 ϕR ψ a = evalFLTL4 ψ ∧ (ϕ ∨ ¯X(ϕ R ψ)) a evalFLTL4 Xϕ a = (⊥p,ϕ)

(11)

Monitoring LTL on finite but expanding words

Automata-theoretic approach

◮ Synthesize automaton

◮ Monitoring = stepping through automaton

Martin Leucker Basoti, 2014 33/117

Rewriting vs. automata

Rewriting function defines transition function

evalFLTL4 true a = (⊤,⊤) evalFLTL4 false a = (⊥,⊥)

evalFLTL4 p a = ((p in a),(p in a))

evalFLTL4 ¬ϕ a = let (valPhi,phiRew) = evalFLTL4 ϕ a in (valPhi,¬phiRew)

evalFLTL4 ϕ ∨ ψ a = let

(valPhi,phiRew) = evalFLTL4 ϕ a (valPsi,psiRew) = evalFLTL4 ψ a

in (valPhi ⊔ valPsi,phiRew ∨ psiRew)

evalFLTL4 ϕ ∧ ψ a = let

(valPhi,phiRew) = evalFLTL4 ϕ a (valPsi,psiRew) = evalFLTL4 ψ a

in (valPhi ⊓ valPsi,phiRew ∧ psiRew)

evalFLTL4 ϕU ψ a = evalFLTL4 ψ ∨ (ϕ ∧ X(ϕ U ψ)) a evalFLTL4 ϕR ψ a = evalFLTL4 ψ ∧ (ϕ ∨ ¯X(ϕ R ψ)) a evalFLTL4 Xϕ a = (⊥p,ϕ)

evalFLTL4 ¯Xϕ a = (⊤p,ϕ)

Martin Leucker Basoti, 2014 34/117

Automata-theoretic approach

The roadmap

◮ alternating Mealy machines

◮ Moore machines

◮ alternating machines

◮ non-deterministic machines

◮ deterministic machines

◮ state sequence for an input word

(12)

Supporting alternating finite-state machines

Definition (Alternating Mealy Machine)

Aalternating Mealy machineis a tupel M = (Q, Σ, Γ, q0, δ)where ◮ Q is a finite set ofstates,

◮ Σis theinput alphabet,

◮ Γis a finite, distributive lattice, theoutput lattice,

◮ q0∈ Q is theinitial stateand

◮ δ :Q × Σ → B+

× Q) is thetransition function

Convention

Understand δ : Q × Σ → B+

× Q) as a function δ : Q × Σ → Γ × B+(Q)

Martin Leucker Basoti, 2014 36/117

Supporting alternating finite-state machines Definition (Run of an Alternating Mealy Machine)

Arunof an alternating Mealy machine M = (Q, Σ, Γ, q0, δ)on a finite word

u = a0. . .an−1∈ Σ+is a sequence t0(a→ t0,b0) 1(a→ . . . t1,b1) n−1

(an−1,bn−1)

→ tnsuch

that

◮ t0=q0and

◮ (ti,bi−1) = ˆδ(ti−1,ai−1)

where ˆδ is inductively defined as follows

δ(ˆq, a) = δ(q, a),

δ(ˆq ∨ q,a) = (ˆδ(q, a)|1⊔ ˆδ(q,a)|1, ˆδ(q, a)|2∨ ˆδ(q,a)|2), andδ(ˆq ∧ q,a) = (ˆδ(q, a)|1⊓ ˆδ(q,a)|1, ˆδ(q, a)|2∧ ˆδ(q,a)|2)

Theoutputof the run is bn−1.

Martin Leucker Basoti, 2014 37/117

Transition function of an alternating Mealy machine Transition function δa 4:Q × Σ → B+(Γ× Q) δ4a(true, a) = (⊤, true) δ4a(false, a) = (⊥, false) δ4a(p, a) = (p ∈ a, [p ∈ a]) δ4a(ϕ∨ ψ, a) = δa4(ϕ,a) ∨ δ4a(ψ,a) δ4a(ϕ∧ ψ, a) = δa4(ϕ,a) ∧ δ4a(ψ,a) δ4a(ϕU ψ, a) = δa 4(ψ∨ (ϕ ∧ X(ϕ U ψ)), a) = δa4(ψ,a) ∨ (δ4a(ϕ,a) ∧ (ϕ U ψ)) δ4a(ϕR ψ, a) = δa 4(ψ∧ (ϕ ∨ ¯X(ϕ R ψ)), a) = δa4(ψ,a) ∧ (δ4a(ϕ,a) ∨ (ϕ R ψ)) δ4a(Xϕ, a) = (⊥p, ϕ) δ4a( ¯Xϕ, a) = (p, ϕ)

(13)

Anticipatory Semantics

Consider possible extensions of the non-completed word

Martin Leucker Basoti, 2014 40/117

LTL for RV [BLS@FSTTCS’06] Basic idea

◮ LTL over infinite words is commonly used for specifying correctness

properties

◮ finite words in RV:

prefixes of infinite, so-far unknown words

◮ re-use existing semantics

3-valued semantics for LTL over finite words

[u |= ϕ] =          ⊤ if ∀σ ∈ Σω:uσ |= ϕ ⊥ if ∀σ ∈ Σω:uσ 6|= ϕ ? else

Martin Leucker Basoti, 2014 42/117

Impartial Anticipation Impartial

Stay with ⊤ and ⊥

Anticipatory ◮ Go for ⊤ or ⊥Consider XXXfalse ǫ |= XXXfalse a |= XXfalse aa |= Xfalse aaa |= false [ǫ|= XXXfalse] =          ⊤ if ∀σ ∈ Σω: ǫσ |= XXXfalse ⊥ if ∀σ ∈ Σω: ǫσ 6|= XXXfalse ? else

(14)

B ¨uchi automata (BA)

Emptiness test: SCCC, Tarjan

000 111 2 3 4 aaa bbb a a, b b a b a b a b . . . (ab)ω ∈ L(A)

(ab)∗aa{a, b}ω⊆ L(A)

Martin Leucker Basoti, 2014 44/117

LTL to BA

[Vardi & Wolper ’86]

Translation of an LTL formula ϕ into B ¨uchi automata Aϕwith

L(Aϕ) =L(ϕ)

◮ Complexity: Exponential in the length of ϕ

Martin Leucker Basoti, 2014 45/117

Monitor construction – Idea I

[u |= ϕ] =          ⊤ if ∀σ ∈ Σω:uσ |= ϕ ⊥ if ∀σ ∈ Σω:uσ 6|= ϕ ? else 0 1 2 3 4 a b a a, b b a b ⊥ ⊤ ?

(15)

monitor construction – Idea II 0 1 2 3 4 a b a a, b b a b ⊥ 6= ⊥ NFA

Fϕ:Qϕ→ {⊤, ⊥} Emptiness per state

Martin Leucker Basoti, 2014 47/117

The complete construction

The construction ϕ BAϕ Fϕ NFAϕ ¬ϕ BA¬ϕ F¬ϕ NFA¬ϕ ϕ DFA ϕ DFA¬ϕ DFAϕ DFA¬ϕ M Lemma [u |= ϕ] =          ⊤ if u /∈ L(NFA¬ϕ) ⊥ if u /∈ L(NFAϕ) ? else

Martin Leucker Basoti, 2014 48/117

Complexity The construction ϕ BAϕ Fϕ NFAϕ ¬ϕ BA¬ϕ F¬ϕ NFA¬ϕ ϕ DFA ϕ DFA¬ϕ DFAϕ DFA¬ϕ M Complexity |M| ≤ 22|ϕ| Optimal result!

FSM can be minimised (Myhill-Nerode)

(16)

On-the-fly Construction The construction ϕ BAϕ Fϕ NFAϕ ¬ϕ BA¬ϕ F¬ϕ NFA¬ϕ ϕ DFA ϕ DFA¬ϕ DFAϕ DFA¬ϕ M

Martin Leucker Basoti, 2014 50/117

Towards richer and more expressive logics [DLS@ATVA’08]

Many linear-time logics

◮ LTL with Past

◮ linear-time µ-calculus

◮ RLTL

◮ LTL with integer constraints

G(fopenx→ ((x = Xx) U fclosex))

Martin Leucker Basoti, 2014 52/117

Linear-time Logic

Definition (Linear-time Logic)

Alinear-time logicL defines

◮ a set FLofL-formulaeand

◮ a two-valuedsemantics |=L.

Every L-formula ϕ ∈ FLhas an associated and possibly infinitealphabet Σϕ.

Moreover, for every formula ϕ ∈ FLand every word σ ∈ Σωϕ, we require

(L1) ∀ϕ ∈ FL : ¬ϕ ∈ FL.

(L2) ∀σ ∈ Σω

(17)

Anticipation Semantics

Definition (Anticipation Semantics)

Let L be a linear-time logic. We define theanticipation semantics[π|= ϕ]Lof

an L-formula ϕ ∈ FLand a finite word π ∈ Σ∗ϕwith

|= ϕ]L=        ⊤ if ∀σ ∈ Σω ϕ : πσ|=Lϕ ⊥ if ∀σ ∈ Σω ϕ : πσ6|=Lϕ ? otherwise

Martin Leucker Basoti, 2014 54/117

Evaluation using decide

decide [π|= ϕ]L=        ⊤ ifdecide¬ϕ(π) =⊥ ⊥ ifdecideϕ(π) =⊥ ? otherwise

wheredecideϕ(π)is defined to return ⊤ for ϕ ∈ FLand π ∈ Σϕif

∃σ ∈ Σω

ϕ : πσ|=Lϕholds, and ⊥ otherwise.

Martin Leucker Basoti, 2014 55/117

The automata theoretic approach to SAT

Definition (Satisfiability Check by Automata Abstraction)

Given a linear-time logic L with its formulae FL, thesatisfiability check by

automata abstraction proceeds as follows. For formula ϕ ∈ FL,

1. definealphabet abstractionΣϕ→ ¯Σϕ finite, abstract alphabet

2. define aword abstractionα(·) : Σω

ϕ→ ¯Σωϕ

3. define anautomaton constructionϕ7→ ω-automaton Aϕover ¯Σϕsuch

that for all ¯σ ∈ ¯Σω ϕit holds

¯

σ∈ L(Aϕ)iff ∃σ ∈ Σω: ¯σ = α(σ)and σ |= ϕ

Then

ϕsatisfiable iff L(Aϕ)6= ∅ iff non-empty(Aϕ)

(18)

From finite to infinite

Definition (extrapolate)

extrapolate(π) =nα(πσ)0...i| i + 1 = |π|, σ ∈ Σωo

Definition (Accuracy of Abstract Automata)

accuracy of abstract automataproperty holds, if, for all π ∈ Σ∗,

◮ (∃σ : πσ |=Lϕ) ⇒ (∃¯π∃¯σ : ¯π¯σ ∈ L(Aϕ))with ¯π ∈ extrapolate(π),

◮ (∃¯σ : ¯π¯σ ∈ L(Aϕ)) ⇒ (∃π∃σ : πσ |=Lϕ)with ¯π ∈ extrapolate(π).

Martin Leucker Basoti, 2014 57/117

Non-incremental version

Theorem (Correctness of decide)

Given a satisfiability check by automata abstraction for a linear-time logic L satisfying theaccuracy of automataproperty, we have

decide(π) = non-empty   [ q∈Q0,¯π∈extrapolate(π) δ(q, ¯π)  

Martin Leucker Basoti, 2014 58/117

Faithful abstraction

Definition (Forgettable Past and Faithful Abstraction)

Given α of a satisfiability check by automata abstraction. We say that

◮ αsatisfies theforgettable past property, iff α(πaσ)i+1...i+1= α(aσ)0...0

for all π ∈ Σ∗, |π| = i + 1, a ∈ Σ, and σ ∈ Σω.

◮ αis calledfaithful, iff for all π ∈ Σ∗, |π| = i + 1, a ∈ Σ, σ, σ∈ Σωfor

which there is some σ′′∈ Σωwith α(πσ)0...iα()0...0= α(σ′′)0...i+1

there also exists a σ′′′∈ Σωwith

(19)

Incremental version

Theorem (Incremental Emptiness for Extrapolation)

Let A be a B¨uchi automaton obtained via a satisfiability check by automata

abstraction satisfying the accuracy of automaton abstraction property with a faithful abstraction function having the forgettable past property. Then, for all π ∈ Σ∗and

a ∈ Σ, it holds

L(A(extrapolate(πa))) = L(A(extrapolate(π)extrapolate(a)))

Martin Leucker Basoti, 2014 60/117

Further logics

Indeed works

◮ LTL with Past

◮ linear-time µ-calculus

◮ RLTL

LTL with integer constraints

Martin Leucker Basoti, 2014 61/117

Monitorability

When does anticipation help?

(20)

Monitors revisited Structure of Monitors “?” bad “⊥” ugly “?” good “⊤” ⊤ ⊤ ⊤

Classification of Prefixes of Words

◮ Bad prefixes [Kupferman & Vardi’01]

◮ Good prefixes [Kupferman & Vardi’01]

◮ Ugly prefixes

Martin Leucker Basoti, 2014 64/117

Monitorable

Non-Monitorable [Pnueli & Zaks’07]

ϕisnon-monitorable after u, if u cannot be extended to a bad oder good prefix.

Monitorable

ϕis monitorable if there is no such u.

“?” bad “⊥” ugly “?” good “⊤” ⊤ ⊤ ⊤

Martin Leucker Basoti, 2014 65/117

Monitorable Properties Safety Properties

Co-Safety Properties

Note

(21)

Safety- and Co-Safety-Properties

Theorem

The class ofmonitorable properties

◮ comprises safety- and co-safety properties, but

◮ is strictly larger than their union.

Proof

Consider ((p ∨ q)Ur) ∨ Gp

Martin Leucker Basoti, 2014 67/117

Fusing model checking and runtime verification

LTL with a predictive semantics

Martin Leucker Basoti, 2014 69/117

Recall anticipatory LTL semantics

The truth value of a LTL3formula ϕ wrt. u, denoted by [u |= ϕ], is an element

of B3defined by [u |= ϕ] =          ⊤ if ∀σ ∈ Σω:uσ |= ϕ ⊥ if ∀σ ∈ Σω:uσ 6|= ϕ ? otherwise.

(22)

Applied to the empty word

Empty word ǫ

[ǫ|= ϕ]P=⊤

iff ∀σ ∈ Σωwith ǫσ ∈ P : ǫσ |= ϕ

iff L(P) |= ϕ

RV more difficult than MC?

Then runtime verification implicitly answers model checking

Martin Leucker Basoti, 2014 71/117

Abstraction

Anover-abstractionor andover-approximationof a program P is a program ˆ

P such that L(P) ⊆ L( ˆP) ⊆ Σω.

Martin Leucker Basoti, 2014 72/117

Predictive Semantics

Definition (Predictive semantics of LTL)

Let P be a program and let ˆP be an over-approximation of P. Let u ∈ Σ∗

denote a finite trace. The truth value of u and an LTL3formula ϕ wrt. ˆP,

denoted by [u |=Pˆ ϕ], is an element of B3and defined as follows:

[u |=Pˆ ϕ] =          ⊤ if ∀σ ∈ Σωwith uσ ∈ ˆ P : uσ |= ϕ ⊥ if ∀σ ∈ Σωwith uσ ∈ ˆ P : uσ 6|= ϕ ? else

We write LTLPwhenever we consider LTL formulas with a predictive

(23)

Properties of Predictive Semantics

Let ˆP be an over-approximation of a program P over Σ, u ∈ Σ∗, and

ϕ∈ LTL.

◮ Model checking is more precise than RV with the predictive semantics:

P |= ϕ implies [u |=Pˆ ϕ]∈ {⊤, ?}

RV has no false negatives: [u |=Pˆϕ] =⊥ implies P 6|= ϕ

◮ The predictive semantics of an LTL formula is more precise than LTL3:

[u |= ϕ] = ⊤ implies [u |=Pˆϕ] =⊤

[u |= ϕ] = ⊥ implies [u |=Pˆϕ] =⊥

The reverse directions are in general not true.

Martin Leucker Basoti, 2014 74/117

Monitor generation

The procedure for getting [u |=Pˆϕ]for a given ϕ and over-approximation ˆP

ϕ, ˆP

ϕ Aϕ Bϕ Fϕ Bˆϕ B˜ϕ

¬ϕ A¬ϕ B¬ϕ F¬ϕ Bˆ¬ϕ B˜¬ϕ

Input Formula NBA P×NBAˆ Emptiness

per state NFA DFA FSM

Martin Leucker Basoti, 2014 75/117

Intermediate Summary

Semantics

◮ completed traces

two valued semantics

◮ non-completed traces

Impartiality

at least three valuesAnticipation ◮ finite traces ◮ infinite traces ◮ . . . ◮ monitorability ◮ Prediction Monitors ◮ left-to-right

◮ time versus space trade-off

rewriting

alternating automatanon-deterministic automata ◮ deterministic automata

(24)

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 78/117

Extensions

LTL is just half of the story

Martin Leucker Basoti, 2014 79/117

Extensions LTL with data

◮ J-LO

◮ MOP (parameterized LTL)

◮ RV for LTL with integer constraints

Further “rich” approaches ◮ LOLA ◮ Eagle (etc.) Further dimensions ◮ real-time ◮ concurrency ◮ distribution

(25)

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 81/117

Example Application

◮ Some application for data entry

◮ Connects to a server

◮ Data can be read, modified and committed

Martin Leucker Basoti, 2014 82/117

Example Application

◮ Frontend handles GUI

◮ Backend handles communication to the server

◮ Frontend and backend communicate via the following interface:

Example

public interface DataService {

void connect(String userID) throws UnknownUserException; void disconnect();

Data readData(String field);

void modifyData(String field, Data data); void commit() throws CommitException; }

(26)

A “simple” Test

Frontend has to use backend correctly

◮ Data has to be committed before disconnecting

Example @Test

public void test1() {

DataService service = new MyDataService("http://myserver.net"); MyDataClient client = new MyDataClient(service);

client.authenticate("daniel"); client.addPatient("Mr. Smith"); client.switchToUser("ruth");

assertTrue(service.debug_committed()); // switching means logout client.getPatientFile("miller-2143-1");

client.setPhone("miller-2143-1", "012345678"); client.exit();

assertTrue(service.debug_committed()); }

Martin Leucker Basoti, 2014 84/117

Observations

Test inputs are interleaved with assertions

◮ Requires internal knowledge about the class under scrutiny

◮ Requires refactoring of interfaces between components

◮ Components might need additional logic to track temporal properties

◮ Production code is polluted by test code

◮ Program logic for temporal properties can be complicated

⇒ Classical unit testing is not suitable to assure temporal properties on internal interfaces

Martin Leucker Basoti, 2014 85/117

jUnitRV

(27)

Events and Propositions

◮ Formal runs consist of discrete steps in time

◮ When does a program perform a step?

◮ Explicitly specify events triggering time steps

◮ Only one event occurs at a point of time

◮ Propositions may be evaluated in the current state

Martin Leucker Basoti, 2014 87/117

Events and Propositions

Example (Specifying Events)

String dataService = "myPackage.DataService";

private static Event modify = called(dataService, "modify"); private static Event committed = returned(dataService, "commit"); private static Event disconnect = called(dataService, "disconnect");

Example (Specifying Propositions) private static Proposition auth

= newProposition(eq(invoke($this, "getStatus"),AUTH);

Martin Leucker Basoti, 2014 88/117

Temporal Assertion

◮ LTL is used to specify temporal properties

◮ Generated monitors only observe the specified events

G(modify =⇒ ¬disconnectUcommitted)

Example (Specifying Monitors)

private static Monitor commitBeforeDisconnect = new FLTL4Monitor( Always(implies(

modify,

Until(not(disconnect), committed) )

));

(28)

Testcase

Example @Test

@Monitors({"commitBeforeDisconnect"}) public void test1() {

DataService service = new MyDataService("http://myserver.net"); MyDataClient client = new MyDataClient(service);

client.authenticate("daniel"); client.addPatient("Mr. Smith"); client.switchToUser("ruth"); client.getPatientFile("miller-2143-1"); client.setPhone("miller-2143-1", "012345678"); client.exit(); }

Martin Leucker Basoti, 2014 90/117

The Complete Picture @RunWith(RVRunner.class) public class MyDataClientTest {

private static final String dataServiceQname = "junitrvexamples.DataService"; private staticEvent modify =called(dataServiceQname, "modifyData"); private staticEvent committed =returned(dataServiceQname, "commit"); private staticEvent disconnect =invoke(dataServiceQname, "disconnect"); // create a monitor for LTL4 propertyG(modify -> !closeU commit) private staticMonitorcommitBeforeClose = new FLTL4Monitor(

Always( implies( modify, Until(not(disconnect), committed)))); @Test @Monitors({"commitBeforeClose", "authWhenModify"}) public void test1() {

... } }

Martin Leucker Basoti, 2014 91/117

Architecture ✁✂✄✁☎✆ ✝✞✟ ✠✡☛☞✌✡ ✍✞✟ ✠✡ ✎✏ ✑✠✒ ✓ ✔☞✟✡✕✟✍☞✖✡ ✠✂✟ ✝☎ ✔☎✌✌ ✠✌✡ ✑☛✑✗ ✘✘✘

(29)

Runners and Classloaders

◮ jUnit uses test runners to execute tests

◮ jUnit provides a default implementation

◮ jUnitRVprovides RVRunner extending the

default implementation

◮ jUnitRVprovides a custom Classloader

◮ Class loading by program under scrutiny is

intercepted

◮ Bytecode is manipulated to intercept events

✁✂✄✁☎✆ ✝✞✟ ✠✡☛☞✌✡ ✍✞✟ ✠✡ ✎✏ ✑✠✒ ✓ ✔☞✟✡✕✟✍☞✖✡ ✠✂✟ ✝☎ ✔☎✌✌ ✠✌✡ ✑☛✑✗ ✘✘✘

Martin Leucker Basoti, 2014 93/117

Features

◮ jUnitRVis provided as single class jar file that has to be made available

on the Java class path

◮ It can easily integrated into build systems and IDEs

◮ It may be used to test third party components where no byte code is

available

◮ It may be extended with custom specification formalisms

◮ Test failures are reported as soon as a monitor fails

◮ Stack traces show the exact location of the failure in the program under

scrutiny

Martin Leucker Basoti, 2014 94/117

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

(30)

Monitoring Systems/Logging: Overview

monitoring systems

/logging mentation

instru-source code byte code binary code logging APIs trace tools dedicated tracing/-monitoring hardware

Martin Leucker Basoti, 2014 96/117

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 97/117

Monitoring Systems/Logging: Overview

monitoring results/ steering print exception steer manual automatically

(31)

React!

Runtime Verification

Observe—do not react

Realising dynamic systems

◮ self-healing systems

◮ adaptive systems, self-organising systems

◮ . . .

◮ use monitors for observation—then react

Martin Leucker Basoti, 2014 99/117

jMOP [Rosu et al.] Java Implementation

Martin Leucker Basoti, 2014 100/117

Runtime Reflection [Bauer, L., Schallhart@ASWEC’06] Monitor-based Runtime Reflection

Software Architecture Pattern

(32)

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

Martin Leucker Basoti, 2014 102/117

Diagnosis

Main Ideas

◮ Knowledge base

◮ Knowledge

◮ Explanation of Knowledge with Respect to the Knowledge base

Here

◮ System description

◮ Observations

◮ Diagnosis: Explanation of the Observations with respect to the System

description

Martin Leucker Basoti, 2014 104/117

System Description in First-Order Logic Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 Formally SD = ok(i1)∧ ¬AB(C1)→ l1=C1(i1) ∧ ok(i2)∧ ¬AB(C2)→ l2=C2(i2)

∧ ok(l1)∧ ok(l2)∧ ¬AB(C3)→ o1=C3(l1,l2)

(33)

System Description in Propositional Logic Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 Propositional Logic SD = i1∧ ¬C1→ l1 ∧ i2∧ ¬C2→ l2 ∧ l1∧ l2∧ ¬C3→ o1 ∧ l1∧ l2∧ ¬C4→ o2

Martin Leucker Basoti, 2014 106/117

Observation Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 Observation

(Truth) values for (some of) the propositions involved Formally: a formula OBS

Observation

¬o1∧ i1∧ i2∧ o2

Martin Leucker Basoti, 2014 107/117

Diagnosis Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 Diagnosis

A minimal set ofcomponentssuch that SD ∧ OBS ∧ ∆ is satisfiable, where ∆

encodes the chosen components.

(34)

Example Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 Propositional Logic SD = i1∧ ¬C1→ l1 ∧ i2∧ ¬C2→ l2 ∧ l1∧ l2∧ ¬C3→ o1 ∧ l1∧ l2∧ ¬C4→ o2 Observations ¬o1∧ i1∧ i2∧ o2

Martin Leucker Basoti, 2014 109/117

Example Propositional Logic SD = i1∧ ¬C1→ l1 ∧ i2∧ ¬C2→ l2 ∧ l1∧ l2∧ ¬C3→ o1 ∧ l1∧ l2∧ ¬C4→ o2 Observations ¬o1∧ i1∧ i2∧ o2 CNF SD = ¬i1∨ C1∨ l1 ∧ ¬i2∨ C2∨ l2 ∧ ¬l1∨ ¬l2∨ C3∨ o1 ∧ ¬l1∨ ¬l2∨ C4∨ o2 SD ∧ Observations SD = C1∨ l1 ∧ C2∨ l2 ∧ ¬l1∨ ¬l2∨ C3 ∧ ∧ ¬o1∧ i1∧ i2∧ o2

Martin Leucker Basoti, 2014 110/117

Example Example C1 C2 C3 C4 i1 l1 o1 i2 l2 o2 SD ∧ Observations SD = C1∨l1 ∧ C2∨l2 ∧ ¬l1∨ ¬l2∨ C3 ∧ ¬o1∧ i1∧ i2∧ o2 Diagnoses ◮ ∆1={C1} ◮ ∆2={C2} ◮ ∆3={C3}

(35)

Monitors yield Obervations We have. . .

Monitor reports ⊥ line is false

◮ Monitor reports ? line is ? (no assignment)

Monitor reports ⊤ line is ? (no assignment)

Omniscent Monitors

A monitor is calledomnicscentif its output ⊤ implies that the results on the

monitored output are indeed correct.

For Omniscent Monitors

Monitor reports ⊥ line is false

◮ Monitor reports ? line is ? (no assignment)

Monitor reports ⊤ line is true

Martin Leucker Basoti, 2014 113/117

Oniscent Monitors Example C1 C2 i l o SD = i ∧ ¬C1→ l ∧ l ∧ ¬C2→ o SD = ¬i ∨ C1∨ l ∧ ¬l ∨ C2∨ o Observation: i ∧ ¬o SD = C1∨ l ∧ ¬l ∨ C2 Diagnoses: C2or C1

If additionally l known to be correct, only C2diagnosed.

notion ofomniscent diagnoses

Martin Leucker Basoti, 2014 114/117

Presentation outline

Runtime Verification Runtime Verification for LTL

LTL over Finite, Completed Words

LTL over Finite, Non-Completed Words: Impartiality LTL over Non-Completed Words: Anticipation LTL over Infinite Words: With Anticipation Generalisations: LTL with modulo Constraints Monitorable Properties

LTL with a Predictive Semantics LTL wrap-up

Extensions

Testing Temporal Properties with RV: jUnitRV Monitoring Systems/Logging Steering Diagnosis Ideas RV and Diagnosis Conclusion

(36)

Conclusion

Summary

◮ RV for Failure detection

various, multi-valued approachesvarious existing systems

does generally identifies failure detection and identification

◮ Diagonis for Failure identification?

Future work

What is the right combination?

Martin Leucker Basoti, 2014 116/117

That’s it!

Thanks! - Comments?

References

Related documents

Johnson (1985) uses a spatial production dif- ferentiation model to analyze two models of copying differing in characteristics related to marginal cost and fixed cost, he concludes

This contribution deals with the research on how fast food consumer’s in Slovakia are influenced by sensory factors of products, such as great tasting meal, touch, smell, look,

• Used on all stainless steel cable ties, strapping, metal marker plates/tags and anodized aluminium locks. • BOLD

 Kick It Out – English football’s main anti-discrimination charity and organisation with roles including the monitoring and reporting of social media abuse and providing social

Our main result, obtained by combining new and known results, provides a classification of all but two stubborn cases, that is, with two poten- tial exceptions we determine all graphs

Experimental results performed on the instances known in the literature indicate that the proposed VNS for solving the MSSP shows better overall performances than the GA from [14]

The paper is organized as follows. 2 we recall the structure of a hierarchical divisive clustering algorithm and introduce VNS to perform its main computational step. 3 presents

According to the media richness theory (Daft &amp; Lengel, 1986), face-to-face communication is the richest medium with the highest data-carrying capacity.This suggests that