Example for testing methods
This commit is contained in:
parent
728fb7841a
commit
8500812ed8
4 changed files with 35 additions and 2 deletions
|
@ -130,6 +130,7 @@
|
||||||
Wojciech Wieczorek},
|
Wojciech Wieczorek},
|
||||||
booktitle = {ICGI 2018, Proceedings},
|
booktitle = {ICGI 2018, Proceedings},
|
||||||
publisher = {Proceedings of Machine Learning Research},
|
publisher = {Proceedings of Machine Learning Research},
|
||||||
|
volume = {93},
|
||||||
year = {2018}
|
year = {2018}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
\startfrontmatter
|
\startfrontmatter
|
||||||
\start
|
\start
|
||||||
\switchtobodyfont[20pt]
|
\switchtobodyfont[20pt]
|
||||||
\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques \& Testing Techniques for Automata}}
|
\midaligned{\framed[width=12cm,align=center,offset=2cm,frame=off]{Nominal Techniques \& Testing Methods for Automata Learning}}
|
||||||
\switchtobodyfont[12pt]
|
\switchtobodyfont[12pt]
|
||||||
\midaligned{Joshua Moerman}
|
\midaligned{Joshua Moerman}
|
||||||
\midaligned{draft 16 November 2018}
|
\midaligned{draft 16 November 2018}
|
||||||
|
|
|
@ -207,7 +207,7 @@ This gave developers opportunities to solve problems before replacing the old co
|
||||||
|
|
||||||
\stopsection
|
\stopsection
|
||||||
\startsection
|
\startsection
|
||||||
[title={Testing Techniques}]
|
[title={Testing Methods}]
|
||||||
|
|
||||||
An important step in automata learning is equivalence checking.
|
An important step in automata learning is equivalence checking.
|
||||||
Normally, this is abstracted away and done by an oracle, but we intend to implement such an oracle ourselves for our applications.
|
Normally, this is abstracted away and done by an oracle, but we intend to implement such an oracle ourselves for our applications.
|
||||||
|
@ -227,6 +227,34 @@ In particular, the set of experiments is polynomial in size.
|
||||||
These techniques will be discussed in detail in \in{Chapter}[chap:test-methods].
|
These techniques will be discussed in detail in \in{Chapter}[chap:test-methods].
|
||||||
More background and other related problems, as well as their complexity results, are well exposed in a survey of \citet[LeeY94].
|
More background and other related problems, as well as their complexity results, are well exposed in a survey of \citet[LeeY94].
|
||||||
|
|
||||||
|
In the following example we model a record player as a finite state machine.
|
||||||
|
We will not model the audible output -- that would depend not only on the device, but also the record one chooses to play.
|
||||||
|
Instead, we the only observation we can make is seeing how fast the turntable spins.
|
||||||
|
The device has two buttons: a start-stop button (\playstop) and a speed toggle (\spin) which chooses between $33 \frac{1}{3}$ rpm and $45$ rpm.
|
||||||
|
When turned on, the system should start playing immediately at $33 \frac{1}{3}$ rpm -- this is useful for DJing.
|
||||||
|
The system has four states as depicted in \in{Figure}[fig:record-player].
|
||||||
|
|
||||||
|
\startplacefigure
|
||||||
|
[title={Behaviour of a record player modelled as a finite state machine.},
|
||||||
|
reference=fig:record-player]
|
||||||
|
\hbox{\starttikzpicture[node distance=4cm, bend angle=10]
|
||||||
|
\node[state, initial, align=center] (tl) {slow\\spinning};
|
||||||
|
\node[state, right of=tl, align=center] (tr) {fast\\spinning};
|
||||||
|
\node[state, below of=tl, align=center] (bl) {no\\spinning};
|
||||||
|
\node[state, right of=bl, align=center] (br) {no\\spinning};
|
||||||
|
|
||||||
|
\path[->]
|
||||||
|
(tl) edge [bend right] node [left] {\playstop} (bl)
|
||||||
|
(tl) edge [bend right] node [below] {\spin} (tr)
|
||||||
|
(bl) edge [bend right] node [right] {\playstop} (tl)
|
||||||
|
(bl) edge [bend right] node [below] {\spin} (br)
|
||||||
|
(tr) edge [bend right] node [above] {\spin} (tl)
|
||||||
|
(tr) edge [bend right] node [left] {\playstop} (br)
|
||||||
|
(br) edge [bend right] node [right] {\playstop} (tr)
|
||||||
|
(br) edge [bend right] node [above] {\spin} (bl);
|
||||||
|
\stoptikzpicture}
|
||||||
|
\stopplacefigure
|
||||||
|
|
||||||
\todo{I want to give an example (by giving a state machine) of why black box testing is hard.}
|
\todo{I want to give an example (by giving a state machine) of why black box testing is hard.}
|
||||||
\todo{I want to move some related work from the second chapter to here}.
|
\todo{I want to move some related work from the second chapter to here}.
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
\define\bomb{\!\scale[height=.65em]{\symbol[fontawesome][]}} % bomb
|
\define\bomb{\!\scale[height=.65em]{\symbol[fontawesome][]}} % bomb
|
||||||
\define\money{\scale[height=.6em]{\symbol[fontawesome][eur]}\,} % euro sign + space
|
\define\money{\scale[height=.6em]{\symbol[fontawesome][eur]}\,} % euro sign + space
|
||||||
|
|
||||||
|
\define\playstop{\scale[height=.5em]{\symbol[fontawesome][play]}\scale[height=.5em]{\symbol[fontawesome][pause]}} % play / stop symbol
|
||||||
|
\define\spin{\scale[height=.6em]{\symbol[fontawesome][repeat]}} % spinning symbol
|
||||||
|
%\define\spin{\kw{spd}} % spinning symbol
|
||||||
|
|
||||||
\define[1]\Fam{\mathcal{#1}}
|
\define[1]\Fam{\mathcal{#1}}
|
||||||
\define\lang{\mathcal{L}}
|
\define\lang{\mathcal{L}}
|
||||||
\define\autom{\mathcal{A}}
|
\define\autom{\mathcal{A}}
|
||||||
|
|
Reference in a new issue