LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT...
Transcript of LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT...
![Page 1: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/1.jpg)
LBT for Procedural and Reac1ve Systems
Part 2: Reac1ve Systems –
Basic Theory Karl Meinke, [email protected]
School of Computer Science and Communica:on KTH Stockholm
![Page 2: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/2.jpg)
0. Overview of the Lecture
1. Learning Based Tes:ng for Reac:ve Systems 2. DFA learning with Angluin’s L* algorithm 3. Complexity of learning DFA based on: D. Angluin, Learning regular sets from queries and counterexamples, Informa:on and Computa:on, 75:87-‐106, 1987. K. Meinke and M. Sindhu, Incremental Learning-‐Based tes2ng for Reac2ve Systems, in: Proc. TAP 2011 K. Meinke and F. Niu, Learning-‐Based Tes2ng for Reac2ve Systems using Term Rewri2ng Technology Proc. ICTSS 2011 M. Czerny, Learning-‐based so\ware tes:ng: Evalua:on of Angluin’s L* algorithm and adapta:ons in prac:ce, Bachelor Thesis, KIT, 2014.
![Page 3: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/3.jpg)
SUT Model checker Oracle Input Output
Feedback
2. Learning-Based Testing (LBT) Meinke & Sindhu 2011, Proc. TAP 2011
“aka. Model based testing without a model”
SUT-‐Req pass/fail
Learner
SUT-Model
![Page 4: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/4.jpg)
3. Framework for Study: Reac2ve Systems
Generally control-‐oriented tes:ng 1. Requirements language = proposi:onal linear
temporal logic (PLTL) 2. Model = FSM, Moore machine 3. Model checker = BDD/SAT-‐based checkers 4. Learning = regular inference algorithms
![Page 5: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/5.jpg)
q
0
0
0
1
1
1
q0 q1
q2
DFA A= ( Q, Σ, q0, F ⊆ Q, δ : Q X Σ→Q )
DFA (Moore) Representation
L(A) = regular language accepted by A
System under Learning SUL
![Page 6: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/6.jpg)
DFA Learning with Observa:on Tables
• PA ⊆ Σ*is a finite prefix-‐closed set of prefixes • SA ⊆ Σ*is a finite suffix-‐closed set of suffixes
• TA: PA∪ (PA. Σ) X SA → {1, 0, ?} is the observa2on table
• Write TA(p) for a row TA(p,s1), … , TA(p,sn)
![Page 7: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/7.jpg)
q
0
0
0
1
1
1
q0 q1
q2
ε 0 1 ε 1 1 0 0 1 1 ? prefixes
suffixes
OBSERVATION TABLE
![Page 8: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/8.jpg)
Basic Principle of DFA learning
• Accessor strings – prefixes p that reach each dis:nct state
• Dis2nguishing strings – suffixes s that separate dis:nct states
INFERENCE PRINCIPLE If TA(p, s) ≠ TA(p’, s) then p and p’ cannot reach the same state in A; s is a dis2nguishing string for p, p’
![Page 9: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/9.jpg)
Closed & Consistent Tables
TA is closed iff, for each p ∈ PA.Σ there exists p’ ∈ PA st.
TA(p) = TA (p’ )
TA is consistent iff, for each p, p’ ∈ PA if TA(p) = TA (p’ )
then for all a∈ Σ , TA(p.a) = TA (p’.a )
![Page 10: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/10.jpg)
Algebraic Proper:es
• Being closed is an algebraic closure condi2on • Being consistent is an algebraic congruence condi2on
• The automaton construc:on is a quo2ent algebra construc2on
• Learning DFA as string rewri2ng systems • K. Meinke, CGE: a Sequen2al Learning Algorithm for Mealy Automata, in
Proc. ICGI 2010 • K. Meinke and F. Niu, Learning-‐Based Tes2ng for Reac2ve Systems using
Term Rewri2ng Technology in Proc. ICTSS 2011
![Page 11: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/11.jpg)
Equivalence Oracles
• Termina:on requires an equivalence oracle • If A and SUL are behaviourally equivalent, i.e. L(A) = L(SUL) then equivOracle(A, SUL) = true
• Otherwise equivOracle(A, SUL) = v ∈ Σ* where A(v) ≠ SUL(v)
• LBT uses stochas2c equivalence checking
![Page 12: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/12.jpg)
Complexity Observa:ons • Stochas:c equivalence checking is more powerful than
random test cases – Why?
Theorem: ac2ve learning of DFA is much more efficient than passive learning : polynomial :me [Angluin 1987] vs. NP-‐hard [Gold 1978].
• Using stochas:c equivalence checking we can PAC learn DFA in polynomial :me (c.f. Kearns and Vazirani 1994).
![Page 13: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/13.jpg)
DFA function LStar(DFA: SUL)PA ⊆ Σ*
PA. Σ ⊆ Σ*
SA ⊆ Σ*
TA: PA∪ (PA. Σ ) X SA → {accept, reject, ?} // table
beginA = getInitialHypothesis()
while(equivOracle(A, SUL)!= true)) doA =getNextHypothesis(equivOracle(A, SUL))
return Aend
![Page 14: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/14.jpg)
DFA function getNextHypothesis(counterExample ∈ Σ* )
beginPA = PA∪ PrefixClosure{counterExample} PA. Σ = PA × Σ -‐ PA SA = SA∪ SuffixClosure{counterExample} // fill in any new table entries here … while (PA, SA, TA) is not closed or consistent do
if !consistent(PA,SA,TA) makeConsistent()if !closed(PA,SA,TA) makeClosed()
end
return DFASynthesis(PA,SA,TA)end
![Page 15: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/15.jpg)
DFA function getInitialHypothesis()begin
PA = ∅ // emptyset PA. Σ = ∅ SA = ∅ return getNextHypothesis(ε)
end
![Page 16: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/16.jpg)
DFA function makeConsistent()begin
find p, p’ ∈ PA, a∈ Σ, s∈SA st.TA (p) = TA (p’) andTA(p.a,s) != TA(p’.a,s) add a.s to SA // suffix extensionextend TA to PA∪ (PA.Σ) X SA using active membership queries
end
![Page 17: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/17.jpg)
DFA function makeClosed()begin
find p ∈ PA, a ∈ Σ st.TA (p.a) != TA (p’) for all p’∈ PAPA = PA ∪ {p.a} // prefix extensionPA.Σ = PA.Σ ∪ {p}×Σ
extend TA to PA∪ (PA.Σ) X SA using membership queries
end
![Page 18: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/18.jpg)
DFA function DFASynthesis()beginQ = {u : u ∈ PA, ∀v<u, TA(u)≠ TA(v) }q0 = ε F = {u : u ∈ Q, TA(u, ε)= 1}foreach u ∈ Q do
foreach a ∈ Σ doδ(u, a) = v ∈ Q st. TA(u.a)=TA(v)
return A=(Q, Σ, q0, F, δ) end
![Page 19: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/19.jpg)
q
0
0 0
1
1 1
q0 q1
q2
Let’s L* learn this DFA
![Page 20: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/20.jpg)
ε ε 1 0 1 1 0
ε ε 1 1 0 0 1 10 1 11 1
q
0
0,1
1
q0 q1
Closed: no Consistent: yes
Closed: yes Consistent: yes
H0
![Page 21: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/21.jpg)
ε ε 1 1 0 11 1 110 0 0 1 10 1 1100 1 1101 1 111 1
equivOracle(H0, SUL) = 110 = counterExample
Closed: yes Consistent: no
Not consistent because TA(ε) = TA(11) = 1 but TA(1) ≠ TA(111) since 0 ≠ 1 Also TA(0) ≠ TA(110) since 0 ≠ 1
counterExample
![Page 22: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/22.jpg)
ε ε 1 1 0 11 1 110 0 0 1 10 1 1100 1 1101 1 111 1
ε 0 1 ε 1 1 0 1 0 1 1 11 1 0 1 110 0 1 1 0 1 1 0 10 1 1 0 1100 1 1 0 1101 1 0 1 111 1 1 0
equivOracle(H0, SUL) = 110 = counterExample
Closed: yes Consistent: no
Closed: yes Consistent: yes H1 = FINISHED!
![Page 23: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/23.jpg)
Theore:cal Complexity
Membership queries = O(m|Σ||Q|2) where m is the maximum length of any counterexample (Angluin 87). Assume oracle returns shortest counterexample then Q≥m, so Membership queries = O(|Σ||Q|3)
![Page 24: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/24.jpg)
Essentially linear
Essentially quadratic
![Page 25: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/25.jpg)
![Page 26: LBTfor$$ Procedural$and$Reac1ve$Systems$ Part$2 ...karlm/lbtest/Reactive-theory.pdfModel% SUT checker Oracle% Input Output Feedback% 2. Learning-Based Testing (LBT) Meinke & Sindhu](https://reader033.fdocuments.us/reader033/viewer/2022051801/5ada37777f8b9a6d7e8c7060/html5/thumbnails/26.jpg)
5. Conclusions • L* is pedagogically easy to learn • some of its principles are universal • looks promising on paper • emphasis on “complete learning” • LBT needs “incremental learning”
Open Ques:ons
• How complex are real SUTs? • Can try to benchmark other learning algorithms in same framework