Archived
1
Fork 0

Example for testing methods

This commit is contained in:
Joshua Moerman 2018-12-20 16:15:45 +01:00
parent 728fb7841a
commit 8500812ed8
4 changed files with 35 additions and 2 deletions

View file

@ -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}
} }

View file

@ -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}

View file

@ -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}.

View file

@ -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}}