Archived
1
Fork 0

Betere eerste paginas van hoofdstukken. En gewerkt aan test-methods

This commit is contained in:
Joshua Moerman 2018-11-08 13:07:50 +01:00
parent 54bbd389e0
commit 60d026f7f4
13 changed files with 356 additions and 113 deletions

View file

@ -115,3 +115,24 @@
biburl = {https://dblp.org/rec/bib/conf/pts/BosJM17}, biburl = {https://dblp.org/rec/bib/conf/pts/BosJM17},
bibsource = {dblp computer science bibliography, https://dblp.org} bibsource = {dblp computer science bibliography, https://dblp.org}
} }
@inproceedings{VenhoekMR18,
author = {David Venhoek and
Joshua Moerman and
Jurriaan Rot},
editor = {Bernd Fischer and
Tarmo Uustalu},
title = {Fast Computations on Ordered Nominal Sets},
booktitle = {Theoretical Aspects of Computing - {ICTAC} 2018 - 15th International
Colloquium, Stellenbosch, South Africa, October 16-19, 2018, Proceedings},
series = {Lecture Notes in Computer Science},
volume = {11187},
pages = {493--512},
publisher = {Springer},
year = {2018},
url = {https://doi.org/10.1007/978-3-030-02508-3\_26},
doi = {10.1007/978-3-030-02508-3\_26},
timestamp = {Mon, 15 Oct 2018 14:55:17 +0200},
biburl = {https://dblp.org/rec/bib/conf/ictac/VenhoekMR18},
bibsource = {dblp computer science bibliography, https://dblp.org}
}

View file

@ -2083,6 +2083,36 @@
bibsource = {dblp computer science bibliography, https://dblp.org} bibsource = {dblp computer science bibliography, https://dblp.org}
} }
@phdthesis{Rot17,
author = {Jurriaan C. Rot},
title = {Enhanced Coinduction},
school = {Leiden University, the Netherlands},
publisher = {Faculty of Science, Leiden University},
series = {IPA Dissertation series; 2015-18},
isbn = {9789462991743},
year = {2015},
url = {http://hdl.handle.net/1887/35814}
}
@inproceedings{Rutten98,
author = {Jan J. M. M. Rutten},
editor = {Davide Sangiorgi and
Robert de Simone},
title = {Automata and Coinduction (An Exercise in Coalgebra)},
booktitle = {{CONCUR} '98: Concurrency Theory, 9th International Conference, Nice,
France, September 8-11, 1998, Proceedings},
series = {Lecture Notes in Computer Science},
volume = {1466},
pages = {194--218},
publisher = {Springer},
year = {1998},
url = {https://doi.org/10.1007/BFb0055624},
doi = {10.1007/BFb0055624},
timestamp = {Tue, 23 May 2017 11:53:59 +0200},
biburl = {https://dblp.org/rec/bib/conf/concur/Rutten98},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{DBLP:journals/cn/SabnaniD88, @article{DBLP:journals/cn/SabnaniD88,
author = {Krishan K. Sabnani and author = {Krishan K. Sabnani and
Anton T. Dahbura}, Anton T. Dahbura},

View file

@ -4,12 +4,16 @@
\starttext \starttext
\completecontent
\startfrontmatter
\completecontent
\completelistoffigures \completelistoffigures
\completelistoftables \completelistoftables
\completelistofalgorithms \completelistofalgorithms
\stopfrontmatter
\startbodymatter
\component content/introduction \component content/introduction
\startpart[title={Testing Techniques}] \startpart[title={Testing Techniques}]
@ -23,9 +27,15 @@
\component content/ordered-nominal-sets \component content/ordered-nominal-sets
\chapter{Succinct Nominal Automata?} \chapter{Succinct Nominal Automata?}
\stoppart \stoppart
\stopbodymatter
\startbackmatter
\switchtobodyfont[9pt]
\title{References} \title{References}
\placelistofpublications \placelistofpublications
\stopbackmatter
\stoptext \stoptext
\stopproduct \stopproduct

View file

@ -5,9 +5,16 @@
[title={Applying Automata Learning to Embedded Control Software}, [title={Applying Automata Learning to Embedded Control Software},
reference=chap:applying-automata-learning] reference=chap:applying-automata-learning]
\todo{Auteurs en moet ik ook support noemen van de andere auteurs? Keywords?} \midaligned{~
\author[width=0.5\hsize]{Wouter Smeek \\ Oc\'{e} Technologies B.V.}
\author[width=0.5\hsize]{Joshua Moerman \\ Radboud University}
}
\midaligned{~
\author[width=0.5\hsize]{Frits Vaandrager \\ Radboud University}
\author[width=0.5\hsize]{David N. Jansen \\ Radboud University}
}
\startabstract \startabstract\switchtobodyfont[9pt]\noindent
Using an adaptation of state-of-the-art algorithms for black-box automata learning, as implemented in the LearnLib tool, Using an adaptation of state-of-the-art algorithms for black-box automata learning, as implemented in the LearnLib tool,
we succeeded to learn a model of the Engine Status Manager (ESM), a software component that is used in printers and copiers of Oc\'{e}. we succeeded to learn a model of the Engine Status Manager (ESM), a software component that is used in printers and copiers of Oc\'{e}.
The main challenge that we encountered was that LearnLib, although effective in constructing hypothesis models, was unable to find counterexamples for some hypotheses. The main challenge that we encountered was that LearnLib, although effective in constructing hypothesis models, was unable to find counterexamples for some hypotheses.
@ -20,6 +27,9 @@ We also constructed a model directly from the ESM software and established equiv
To the best of our knowledge, this is the first paper in which active automata learning has been applied to industrial control software. To the best of our knowledge, this is the first paper in which active automata learning has been applied to industrial control software.
\stopabstract \stopabstract
\basedon[DBLP:conf/icfem/SmeenkMVJ15]
\page
Once they have high-level models of the behaviour of software components, software engineers can construct better software in less time. Once they have high-level models of the behaviour of software components, software engineers can construct better software in less time.
A key problem in practice, however, is the construction of models for existing software components, for which no or only limited documentation is available. A key problem in practice, however, is the construction of models for existing software components, for which no or only limited documentation is available.

View file

@ -5,7 +5,15 @@
[title={Learning Nominal Automata}, [title={Learning Nominal Automata},
reference=chap:learning-nominal-automata] reference=chap:learning-nominal-automata]
\todo{Auteurs en moet ik ook support noemen van de andere auteurs? Keywords?} \midaligned{~
\author{Joshua Moerman \\ Radboud University}
\author{Matteo Sammartino \\ University College London}
\author{Alexandra Silva \\ University College London}
}
\midaligned{~
\author{Bartek Klin \\ University of Warsaw}
\author{Micha\l\ Szynwelski \\ University of Warsaw}
}
\startabstract \startabstract
We present an Angluin-style algorithm to learn nominal automata, which are acceptors of languages over infinite (structured) alphabets. We present an Angluin-style algorithm to learn nominal automata, which are acceptors of languages over infinite (structured) alphabets.
@ -14,6 +22,10 @@ In particular we can learn a subclass of nominal non-deterministic automata.
An implementation using a recently developed Haskell library for nominal computation is provided for preliminary experiments. An implementation using a recently developed Haskell library for nominal computation is provided for preliminary experiments.
\stopabstract \stopabstract
\basedon[MoermanS0KS17]
\page
Automata are a well established computational abstraction with a wide range of applications, including modelling and verification of (security) protocols, hardware, and software systems. Automata are a well established computational abstraction with a wide range of applications, including modelling and verification of (security) protocols, hardware, and software systems.
In an ideal world, a model would be available before a system or protocol is deployed in order to provide ample opportunity for checking important properties that must hold and only then the actual system would be synthesised from the verified model. In an ideal world, a model would be available before a system or protocol is deployed in order to provide ample opportunity for checking important properties that must hold and only then the actual system would be synthesised from the verified model.

View file

@ -2,10 +2,16 @@
\startcomponent minimal-separating-sequences \startcomponent minimal-separating-sequences
\startchapter \startchapter
[title={Minimal Separating Sequences for All Pairs of States}, [title={Minimal Separating Sequences \\ for All Pairs of States},
reference=chap:minimal-separating-sequences] reference=chap:minimal-separating-sequences]
\todo{Auteurs en moet ik ook support noemen van de andere auteurs? Keywords?} \midaligned{~
\author[width=0.5\hsize]{Rick Smetsers \\ Radboud University}
\author[width=0.5\hsize]{Joshua Moerman \\ Radboud University}
}
\midaligned{~
\author[width=0.5\hsize]{David N. Jansen \\ Radboud University}
}
\startabstract \startabstract
Finding minimal separating sequences for all pairs of inequivalent states in a finite state machine Finding minimal separating sequences for all pairs of inequivalent states in a finite state machine
@ -17,6 +23,10 @@ on the minimisation algorithm of Hopcroft that runs in $\bigO(m \log n)$ time. T
algorithm is empirically verified and compared to the traditional algorithm. algorithm is empirically verified and compared to the traditional algorithm.
\stopabstract \stopabstract
\basedon[DBLP:conf/lata/SmetsersMJ16]
\page
In diverse areas of computer science and engineering, systems can be modelled by \emph{finite state machines} (FSMs). In diverse areas of computer science and engineering, systems can be modelled by \emph{finite state machines} (FSMs).
One of the cornerstones of automata theory is minimisation of such machines (and many variation thereof). One of the cornerstones of automata theory is minimisation of such machines (and many variation thereof).

View file

@ -5,7 +5,11 @@
[title={Fast Computations on Ordered Nominal Sets}, [title={Fast Computations on Ordered Nominal Sets},
reference=chap:ordered-nominal-sets] reference=chap:ordered-nominal-sets]
\todo{Auteurs en moet ik ook support noemen van de andere auteurs? Keywords?} \midaligned{~
\author{David Venhoek \\ Radboud University}
\author{Joshua Moerman \\ Radboud University}
\author{Jurriaan Rot \\ Radboud University}
}
\startabstract \startabstract
We show how to compute efficiently with nominal sets over the total order symmetry, by developing a direct representation of such nominal sets and basic constructions thereon. We show how to compute efficiently with nominal sets over the total order symmetry, by developing a direct representation of such nominal sets and basic constructions thereon.
@ -18,6 +22,10 @@ minimisation of automata and active automata learning.
In both cases, \ONS{} is competitive compared to existing implementations and outperforms them for certain classes of inputs. In both cases, \ONS{} is competitive compared to existing implementations and outperforms them for certain classes of inputs.
\stopabstract \stopabstract
\basedon[VenhoekMR18]
\page
Automata over infinite alphabets are natural models for programs with unbounded data domains. Automata over infinite alphabets are natural models for programs with unbounded data domains.
Such automata, often formalised as \emph{register automata}, are applied in modelling and analysis of communication protocols, hardware, and software systems (see \citenp[DBLP:journals/corr/BojanczykKL14, DBLP:conf/cav/DAntoniV17, DBLP:journals/corr/GrigoreT16, DBLP:journals/tcs/KaminskiF94, MontanariP97, Segoufin06] and references therein). Such automata, often formalised as \emph{register automata}, are applied in modelling and analysis of communication protocols, hardware, and software systems (see \citenp[DBLP:journals/corr/BojanczykKL14, DBLP:conf/cav/DAntoniV17, DBLP:journals/corr/GrigoreT16, DBLP:journals/tcs/KaminskiF94, MontanariP97, Segoufin06] and references therein).

View file

@ -6,14 +6,24 @@
reference=chap:test-methods] reference=chap:test-methods]
In this chapter we will discuss some of the theory of test generation methods for black box conformance testing. In this chapter we will discuss some of the theory of test generation methods for black box conformance testing.
From a theoretical discussion we derive a new algorithm: the \emph{hybrid ADS methods}, which is applied on a case study in the next chapter (\in{Chapter}[chap:applying-automata-learning]). Since the systems we consider are black box, we cannot simply determine equivalence with a specification.
A key aspect of such methods is the size of the obtained test suite. The only way to gain confidence is to perform experiments on the system.
On one hand we want to cover as much as the specification as possible. A key aspect of test generation methods is the size and completeness of the test suites.
On one hand, we want to cover as much as the specification as possible, hopefully ensuring that we find mistakes in any faulty implementation.
On the other hand: testing takes time, so we want to minimise the size of a test suite. On the other hand: testing takes time, so we want to minimise the size of a test suite.
The test methods described here are well-known in the literature of FSM-based testing. The test methods described here are well-known in the literature of FSM-based testing.
They all share similar concepts, such as \emph{access sequences} and \emph{state identifiers}. They all share similar concepts, such as \emph{access sequences} and \emph{state identifiers}.
In this chapter we will define these concepts, relate them with one another and show how to build test suites from these concepts. In this chapter we will define these concepts, relate them with one another and show how to build test suites from these concepts.
From this theoretical discussion we derive a new algorithm: the \emph{hybrid ADS methods}, which is applied on an industrial case study in \in{Chapter}[chap:applying-automata-learning].
This chapter starts with the basics: Mealy machines, sequences and what it means to test a black box system.
Then, starting from \in{Section}[sec:separating-sequences] we define several concepts, such as state identifiers, in order to distinguish one state from another.
These concepts are then combined in \in{Section}[sec:methods] to derive test suites.
In a similar vein, we define a novel test method in \in{Section}[sec:hybrid] and we discuss some of the implementation details of the \kw{hybrid-ads} tool.
We summarise the various test methods in \in{Section}[sec:overview].
All methods are proven to be $n$-complete in \in{Section}[sec:completeness].
Finally, in \in{Section}[sec:discussion], we give related work.
\startsection \startsection
@ -131,9 +141,9 @@ $||T|| = \sum\limits_{t \in max(T)} (|t| + 1)$.
\startexample[reference=incompleteness] \startexample[reference=incompleteness]
{\bf No test suite is complete.} {\bf No test suite is complete.}
Consider the specification in \in{Figure}{a}[fig:incompleteness-example]. Consider the specification in \in{Figure}{a}[fig:incompleteness-example].
This machine will always produce zeroes. This machine will always outputs a cup of coffee -- when given money.
For any test suite we can make a faulty implementation which passes the test suite. For any test suite we can make a faulty implementation which passes the test suite.
Such an implementation might look like \in{Figure}{b}[fig:incompleteness-example] with $n$ big enough. A faulty implementation might look like \in{Figure}{b}[fig:incompleteness-example], where the machine starts to output bombs after $n$ steps.
This shows that no test-suite can be complete and it justifies the following definition. This shows that no test-suite can be complete and it justifies the following definition.
\startplacefigure \startplacefigure
@ -145,20 +155,20 @@ This shows that no test-suite can be complete and it justifies the following def
\starttikzpicture \starttikzpicture
\node[state] (0) {$s_0$}; \node[state] (0) {$s_0$};
\path[->] \path[->]
(0) edge [loop] node [below] {${a}/0$} (0); (0) edge [loop] node [below] {\money $/$ \coffee} (0);
\stoptikzpicture \stoptikzpicture
}} {(a)} }} {(a)}
{\hbox{ {\hbox{
\starttikzpicture \starttikzpicture[bend angle=20]
\node[state] (0) {$s'_0$}; \node[state] (0) {$s'_0$};
\node[state] (1) [right of=0] {$s'_1$}; \node[state] (1) [right of=0] {$s'_1$};
\node (2) [right of=1] {$\cdots$}; \node (2) [right of=1] {$\cdots$};
\node[state] (3) [right of=2] {$s'_n$}; \node[state] (3) [right of=2] {$s'_n$};
\path[->] \path[->]
(0) edge [bend left=20 ] node [below] {${a}/0$} (1) (0) edge [bend left] node [below] {\money $/$ \coffee} (1)
(1) edge [bend left=20 ] node [below] {${a}/0$} (2) (1) edge [bend left] node [below] {\money $/$ \coffee} (2)
(2) edge [bend left=20 ] node [below] {${a}/0$} (3) (2) edge [bend left] node [below] {\money $/$ \coffee} (3)
(3) edge [loop ] node [below] {${a}/1$} (3); (3) edge [loop] node [below] {\money $/$ \bomb} (3);
\stoptikzpicture \stoptikzpicture
}} {(b)} }} {(b)}
\stopcombination \stopcombination
@ -173,7 +183,6 @@ We say that $T$ is \emph{$m$-complete (for $M$)} if for all inequivalent machine
We are often interested in the case of $m$-completeness, where $m = n + k$ for some $k \in \naturalnumbers$ and $n$ is the number of states in the specification. We are often interested in the case of $m$-completeness, where $m = n + k$ for some $k \in \naturalnumbers$ and $n$ is the number of states in the specification.
Here $k$ will stand for the number of \emph{extra states} we can test. Here $k$ will stand for the number of \emph{extra states} we can test.
The issue of an unknown bound is addressed later in the paper.
Note the order of the quantifiers in the above definition. Note the order of the quantifiers in the above definition.
We ask for a single test suite which works for all implementations of bounded size. We ask for a single test suite which works for all implementations of bounded size.
@ -182,7 +191,8 @@ This is crucial for black box testing, as we do not know the implementation, so
\stopsubsection \stopsubsection
\startsubsection \startsubsection
[title={Separating Sequences}] [title={Separating Sequences},
reference=sec:separating-sequences]
Before we construct test suites, we discuss several types of useful sequences. Before we construct test suites, we discuss several types of useful sequences.
All the following notions are standard in the literature, and the corresponding references will be given in \in{Section}[sec:methods], where we discuss the test generation methods using these notions. All the following notions are standard in the literature, and the corresponding references will be given in \in{Section}[sec:methods], where we discuss the test generation methods using these notions.
@ -228,7 +238,7 @@ As the example shows, we need sets of sequences and sometimes even sets of sets
\startdefinition \startdefinition
Given a Mealy machine $M$, we define the following kinds of sets of sequences. Given a Mealy machine $M$, we define the following kinds of sets of sequences.
We require that all sets are \emph{prefix-closed}, however, we only give the maximal sequences in examples. We require that all sets are \emph{prefix-closed}, however, we only show the maximal sequences in examples.
\footnote{Taking these sets to be prefix-closed makes many proofs easier.} \footnote{Taking these sets to be prefix-closed makes many proofs easier.}
\startitemize \startitemize
\item A set of sequences $W$ is a called a \defn{characterisation set} if it contains a separating sequence for each pair of distinct states in $M$. \item A set of sequences $W$ is a called a \defn{characterisation set} if it contains a separating sequence for each pair of distinct states in $M$.
@ -256,28 +266,38 @@ But note that such a family will \emph{not} be harmonised since the sets $\{ a \
\stopexample \stopexample
One more type of state identifier is of our interest: the \emph{adaptive distinguishing sequence}. One more type of state identifier is of our interest: the \emph{adaptive distinguishing sequence}.
It it the strongest type of state identifier, and as a result not many machine have one. It it the strongest type of state identifier, and as a result not many machines have one.
Like DSs, adaptive distinguishing sequences can identify a state using a single word.
We give a slightly different (but equivalent) definition than the one of \citet[DBLP:journals/tc/LeeY94].
\startdefinition \startdefinition
Following the results of \citet[DBLP:journals/tc/LeeY94], a separating family where each set is the prefix-closure of a single word is called an \defn{adaptive distinguishing sequence} (ADS). A separating family $\Fam{H}$ is an \defn{adaptive distinguishing sequence} (ADS) if each set $\max(H_s)$ is a singleton.
\stopdefinition \stopdefinition
An ADS is of special interest since they can identify a state using a single word.
It is called an adaptive sequence, since it has a tree structure which depends on the output of the machine. It is called an adaptive sequence, since it has a tree structure which depends on the output of the machine.
To see this, consider the first symbols of each of the sequences in the family. To see this tree structure, consider the first symbols of each of the sequences in the family.
Since the family is harmonised and each set is given by a single word, there is only one first symbol. Since the family is harmonised and each set is essentially given by a single word, there is only one first symbol.
So we test each state with one symbol, observe the output, and then continue with the remainder of the sequence (which depends on the output). Depending on the output after the first symbol, the sequence continues.
\todo{Verwijs naar plaatje}
Given an ADS, there exists an UIO for every state.
The converse -- if every state has an UIO, then the machine admits an ADS-- does not hold.
The machine in \in{Figure}[fig:running-example] admits no ADS, since $s_2$ has no UIO. \startexample
In \in{Figure}[fig:ads-example] we see a machine with an ADS.
The ADS is given as follows:
\startformulas
\startformula H_0 = \{aba\} \stopformula
\startformula H_1 = \{aaba\} \stopformula
\startformula H_2 = \{aba\} \stopformula
\startformula H_3 = \{aaba\} \stopformula
\stopformulas
Note that all sequences start with $a$.
This already separates $s_0, s_2$ from $s_1, s_3$.
To further separate the states, the sequences continues with either a $b$ or another $a$.
And so on.
\startplacefigure \startplacefigure
[title={(a): A Mealy machine with alphabets $I = \{a, b\}$ and $O = \{0, 1\}$ and (b): an ADS for (a). }, [title={(a): A Mealy machine with an ADS and (b): the tree structure of this ADS. },
list={A Mealy machine and its ADS.} list={A Mealy machine and its ADS.},
reference=fig:ads-example] reference=fig:ads-example]
\startcombination[nx=2, ny=1, align=center] \startcombination[2*1]
{\hbox{ {\hbox{
\starttikzpicture \starttikzpicture
\node[initial, state] (0) {$s_0$}; \node[initial, state] (0) {$s_0$};
@ -296,13 +316,13 @@ The machine in \in{Figure}[fig:running-example] admits no ADS, since $s_2$ has n
\node (0) {$a$}; \node (0) {$a$};
\node [below left=of 0] (1) {$b$}; \node [below left=of 0] (1) {$b$};
\node [below=of 1] (3) {$a$}; \node [below=of 1] (3) {$a$};
\node [below left=of 3] (5) {$2$}; \node [below left=of 3] (5) {$s_2$};
\node [below right=of 3] (6) {$0$}; \node [below right=of 3] (6) {$s_0$};
\node [below right=of 0] (2) {$a$}; \node [below right=of 0] (2) {$a$};
\node [below=of 2] (4) {$b$}; \node [below=of 2] (4) {$b$};
\node [below=of 4] (7) {$a$}; \node [below=of 4] (7) {$a$};
\node [below left=of 7] (8) {$1$}; \node [below left=of 7] (8) {$s_1$};
\node [below right=of 7] (9) {$3$}; \node [below right=of 7] (9) {$s_3$};
\path[->] \path[->]
(0)+(0,.75) edge (0) (0)+(0,.75) edge (0)
@ -318,12 +338,42 @@ The machine in \in{Figure}[fig:running-example] admits no ADS, since $s_2$ has n
\stoptikzpicture}} {(b)} \stoptikzpicture}} {(b)}
\stopcombination \stopcombination
\stopplacefigure \stopplacefigure
\stopexample
Given an ADS, there exists an UIO for every state.
The converse -- if every state has an UIO, then the machine admits an ADS -- does not hold.
The machine in \in{Figure}[fig:running-example] admits no ADS, since $s_2$ has no UIO.
\stopsubsection
\startsubsection
[title={Partial equivalence}]
\startdefinition
We define the following notation.
\startitemize
\item
Let $W$ be a set of sequences.
Two states $x, y$ are \emph{$W$-equivalent}, written $x \sim_W y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in W$.
\item
Let $\Fam{W}$ be a family.
Two states $x, y$ are \emph{$\Fam{W}$-equivalent}, written $x \sim_{\Fam{W}} y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in X_x \cap X_y$.
\stopitemize
\stopdefinition
Both relations are equivalence relations.
Moreover, $W \subseteq V$ implies that $V$ separates more states than $W$, i.e., $x \sim_V y \implies x \sim_W y$.
Clearly, if two states are equivalent (i.e., $s \sim t$), then for any set $W$ we have $s \sim_W t$.
\stopsubsection
\startsubsection
[title={Access sequences}]
\todo{Dit staat een beetje random}
Besides sequences which separate states, we also need sequences which brings a machine to specified states. Besides sequences which separate states, we also need sequences which brings a machine to specified states.
\startdefinition \startdefinition
An \emph{access sequence for $s$} is a word $w$ such that $\delta(q_0, w) = s$. An \emph{access sequence for $s$} is a word $w$ such that $\delta(s_0, w) = s$.
A set $P$ consisting of an access sequence for each state is called a \emph{state cover}. A set $P$ consisting of an access sequence for each state is called a \emph{state cover}.
If $P$ is a state cover, then $P \cdot I$ is called a \emph{transition cover}. If $P$ is a state cover, then $P \cdot I$ is called a \emph{transition cover}.
\stopdefinition \stopdefinition
@ -346,11 +396,9 @@ On families we define
\startitemize[after] \startitemize[after]
\item flattening: $\bigcup \Fam{X} = \{ x \mid x \in X_s, s \in S \}$, \item flattening: $\bigcup \Fam{X} = \{ x \mid x \in X_s, s \in S \}$,
\item union: $\Fam{X} \cup \Fam{Y}$ is defined point-wise: \item union: $\Fam{X} \cup \Fam{Y}$ is defined point-wise:
$(\Fam{X} \cup \Fam{Y})_s = X_s \cup Y_s$, and $(\Fam{X} \cup \Fam{Y})_s = X_s \cup Y_s$,
\item $\Fam{X}$-equivalence:
$x \sim_\Fam{X} y$ if $\lambda(x,w) = \lambda(y,w)$ for all $w \in X_x \cap X_y$.
\item concatenation: \item concatenation:
$X \odot \Fam{Y} = \{ xy \mid x \in X, y \in Y_{\delta(s_0, x)} \}$ and $X \odot \Fam{Y} = \{ xy \mid x \in X, y \in Y_{\delta(s_0, x)} \}$, and
\item refinement: $\Fam{X} ; \Fam{Y}$ defined by \item refinement: $\Fam{X} ; \Fam{Y}$ defined by
\startformula \startformula
(\Fam{X} ; \Fam{Y})_s = X_s \,\cup\, Y_s \cap \bigcup_{s \sim_{\Fam{X}} t} Y_t. (\Fam{X} ; \Fam{Y})_s = X_s \,\cup\, Y_s \cap \bigcup_{s \sim_{\Fam{X}} t} Y_t.
@ -382,6 +430,7 @@ For all families $\Fam{X}$ and $\Fam{Y}$:
In this section, we review the classical conformance testing methods: In this section, we review the classical conformance testing methods:
the W, Wp, UIO, UIOv, HSI, ADS methods. the W, Wp, UIO, UIOv, HSI, ADS methods.
At the end of this section, we construct the test suites for the running example.
Our hybrid ADS method uses a similar construction. Our hybrid ADS method uses a similar construction.
There are many more test generation methods. There are many more test generation methods.
@ -396,19 +445,26 @@ We fix a state cover $P$ throughout this section and take the transition cover $
[title={W-method \cite[DBLP:journals/tse/Chow78, Vasilevskii73]}, [title={W-method \cite[DBLP:journals/tse/Chow78, Vasilevskii73]},
reference=sec:w] reference=sec:w]
Possibly one of the earliest $m$-complete test methods. After the work of \citet[Moore56], it was unclear whether a test suite of polynomial size could exist.
\todo{Opmerking over Moore's vermoeden?} Both \citet[DBLP:journals/tse/Chow78, Vasilevskii73] independently prove that such a test suite exists.
\footnote{More precisely: the size of $T_{\text{W}}$ is polynomial in the size of the specification for each fixed $k$.}
The W method is a very structured test suite construction.
It is called the W method as the characterisation set is often called $W$.
\startdefinition \startdefinition
[reference=w-method] [reference=w-method]
Let $W$ be a characterisation set, the \defn{W test suite} is Let $W$ be a characterisation set, the \defn{W test suite} is
defined as defined as
\startformula \startformula
(P \cup Q) \cdot I^{\leq k} \cdot W . T_{\text{W}} = (P \cup Q) \cdot I^{\leq k} \cdot W .
\stopformula \stopformula
\stopdefinition \stopdefinition
\todo{Uitleggen} This -- and all following methods -- tests the machine in two phases.
For simplicity, we explain these phases when $k = 0$.
The first phase consists of the tests $P \cdot W$ and tests whether all states of the specification are (roughly) present in the implementation.
The second phase is $Q \cdot W$ and tests whether the successor states are correct.
Together, these two phases put enough constraints on the implementation to know that the implementation and specification coincide.
\stopsubsection \stopsubsection
@ -416,15 +472,16 @@ defined as
[title={The Wp-method \cite[DBLP:journals/tse/FujiwaraBKAG91]}, [title={The Wp-method \cite[DBLP:journals/tse/FujiwaraBKAG91]},
reference=sec:wp] reference=sec:wp]
The W-method was refined by Fujiwara et al. to use smaller sets when identifying states. \citet[DBLP:journals/tse/FujiwaraBKAG91] realised that one needs less tests in the second phase of the W method.
In order to do that he defined state-local sets of words. Since we already know the right states are present after phase one, we only need to check if the state after a transition is consistent with the expected state.
This justifies the use of state identifiers for each state.
\startdefinition \startdefinition
[reference={state-identifier,wp-method}] [reference={state-identifier,wp-method}]
Let $\Fam{W}$ be a family of state identifiers, the \defn{Wp test suite} is Let $\Fam{W}$ be a family of state identifiers, the \defn{Wp test suite} is
defined as defined as
\startformula \startformula
P \cdot I^{\leq k} \cdot \bigcup \Fam{W} \,\cup\, Q \cdot I^{\leq k} T_{\text{Wp}} = P \cdot I^{\leq k} \cdot \bigcup \Fam{W} \,\cup\, Q \cdot I^{\leq k}
\odot \Fam{W}. \odot \Fam{W}.
\stopformula \stopformula
\stopdefinition \stopdefinition
@ -439,15 +496,14 @@ Once states are tested as such, we can use the smaller sets $W_s$ for testing tr
[title={The HSI-method \cite[LuoPB95, YevtushenkoP90]}, [title={The HSI-method \cite[LuoPB95, YevtushenkoP90]},
reference=sec:hsi] reference=sec:hsi]
The Wp-method in turn was refined by Yevtushenko and Petrenko. The Wp-method in turn was refined by \citet[LuoPB95, YevtushenkoP90].
They make use of so called \emph{harmonised} state identifiers. They make use of so called \emph{harmonised} state identifiers, allowing to take state identifiers in the initial phase of the test suite.
By having this global property of the family, less tests need to be executing when testing a state.
\startdefinition \startdefinition
[reference=hsi-method] [reference=hsi-method]
Let $\Fam{H}$ be a separating family, the \defn{HSI test suite} is defined as Let $\Fam{H}$ be a separating family, the \defn{HSI test suite} is defined as
\startformula \startformula
(P \cup Q) \cdot I^{\leq k} \odot \Fam{H}. T_{\text{HSI}} = (P \cup Q) \cdot I^{\leq k} \odot \Fam{H}.
\stopformula \stopformula
\stopdefinition \stopdefinition
@ -468,7 +524,7 @@ This is exploited in the ADS-method.
[reference=ds-method] [reference=ds-method]
Let $\Fam{Z}$ be a separating family where every set is a singleton, the \defn{ADS test suite} is defined as Let $\Fam{Z}$ be a separating family where every set is a singleton, the \defn{ADS test suite} is defined as
\startformula \startformula
(P \cup Q) \cdot I^{\leq k} \odot \Fam{Z}. T_{\text{ADS}} = (P \cup Q) \cdot I^{\leq k} \odot \Fam{Z}.
\stopformula \stopformula
\stopdefinition \stopdefinition
@ -487,7 +543,7 @@ In a way this is a generalisation of the ADS-method, since the requirement that
[reference={uio, uiov-method}] [reference={uio, uiov-method}]
Let $\Fam{U} = \{ \text{a single UIO for } s \}_{s \in S}$ be a family of UIO sequences, the \defn{UIOv test suite} is defined as Let $\Fam{U} = \{ \text{a single UIO for } s \}_{s \in S}$ be a family of UIO sequences, the \defn{UIOv test suite} is defined as
\startformula \startformula
P \cdot I^{\leq k} \cdot \bigcup \Fam{U} \,\cup\, Q \cdot I^{\leq k} \odot \Fam{U}. T_{\text{UIOv}} = P \cdot I^{\leq k} \cdot \bigcup \Fam{U} \,\cup\, Q \cdot I^{\leq k} \odot \Fam{U}.
\stopformula \stopformula
\stopdefinition \stopdefinition
@ -509,29 +565,29 @@ With the same UIOs as above, the resulting UIOv test suite for the specification
[title={An example where the UIO method is not complete.}, [title={An example where the UIO method is not complete.},
reference=fig:uio-counterexample] reference=fig:uio-counterexample]
\startcombination[2*1] \startcombination[2*1]
{\hbox{\starttikzpicture {\hbox{\starttikzpicture[node distance=2.5cm, bend angle=18]
\node[state,initial,initial text=] (0) {$s_0$}; \node[state,initial,initial text=] (0) {$s_0$};
\node[state] (1) [above right of=0] {$s_1$}; \node[state] (1) [above right of=0] {$s_1$};
\node[state] (2) [below right of=1] {$s_2$}; \node[state] (2) [below right of=1] {$s_2$};
\path[->] \path[->]
(0) edge [bend left=20 ] node [left ] {${a}/0$} (1) (0) edge [bend left ] node [left ] {${a}/0$} (1)
(0) edge [bend right=15] node [below] {${b}/1$} (2) (0) edge [bend right] node [below] {${b}/1$} (2)
(1) edge [bend left=20 ] node [left ] {${a}/1$} (0) (1) edge [bend left ] node [left ] {${a}/1$} (0)
(1) edge [bend right=20] node [right] {${b}/1$} (2) (1) edge [bend right] node [right] {${b}/1$} (2)
(2) edge [bend right=20] node [below] {${a}/0$} (0) (2) edge [bend right] node [below] {${a}/0$} (0)
(2) edge [bend right=15] node [right] {${b}/1$} (1); (2) edge [bend right] node [right] {${b}/1$} (1);
\stoptikzpicture}} {Specification} \stoptikzpicture}} {Specification}
{\hbox{\starttikzpicture {\hbox{\starttikzpicture[node distance=2.5cm, bend angle=18]
\node[state,initial,initial text=] (0) {$s'_0$}; \node[state,initial,initial text=] (0) {$s'_0$};
\node[state] (1) [above right of=0] {$s'_1$}; \node[state] (1) [above right of=0] {$s'_1$};
\node[state] (2) [below right of=1] {$s'_2$}; \node[state] (2) [below right of=1] {$s'_2$};
\path[->] \path[->]
(0) edge [bend left=20 ] node [left ] {${a}/0$} (1) (0) edge [bend left ] node [left ] {${a}/0$} (1)
(0) edge [bend right=15] node [below] {${b}/1$} (2) (0) edge [bend right] node [below] {${b}/1$} (2)
(1) edge [bend left=20 ] node [left ] {${a}/1$} (0) (1) edge [bend left ] node [left ] {${a}/1$} (0)
(1) edge [loop ] node [above] {${b}/1$} (1) (1) edge [loop ] node [below] {${b}/1$} (1)
(2) edge [bend right=20] node [below] {${a}/0$} (0) (2) edge [bend right] node [below] {${a}/0$} (0)
(2) edge [bend right=15] node [right] {${b}/1$} (1); (2) edge [bend right] node [right] {${b}/1$} (1);
\stoptikzpicture}} {Implementation} \stoptikzpicture}} {Implementation}
\stopcombination \stopcombination
\stopplacefigure \stopplacefigure
@ -603,7 +659,51 @@ In general, however, UIOs may not exist (and finding them is hard).
The UIO method and ADS method are not applicable in this example because state $s_2$ does not have an UIO. The UIO method and ADS method are not applicable in this example because state $s_2$ does not have an UIO.
\todo{Draaien op faulty implementation} \startplacefigure
[title={A faulty implementation for the specification in \in{Figure}[fig:running-example].},
list={A faulty implementation.},
reference=fig:running-example-faulty]
\hbox{
\starttikzpicture[node distance=0.9cm and 3cm,bend angle=20]
\node[state] (0) {$s'_0$};
\node[state] (1) [above left = of 0] {$s'_1$};
\node[state] (2) [below left = of 0] {$s'_2$};
\node[state] (3) [above right = of 0] {$s'_3$};
\node[state] (4) [below right = of 0] {$s'_4$};
\node (5) [above = of 0] {};
\path[->]
(5) edge (0)
(0) edge [bend left] node [below] {$a/1$} (1)
(0) edge [bend right] node [below] {$b/0$} (4)
(0) edge [loop below] node [below] {$c/0$} (0)
(1) edge node [left ] {$a/0$} (2)
(1) edge [bend left] node [above] {$b/0$, $c/0$} (0)
(2) edge [bend right] node [below] {$a/1$, $b/0$, $c/0$} (0)
(3) edge [bend left] node [right] {$a/1$} (4)
(3) edge [bend right] node [above] {$b/0$} (0)
(3) edge [loop right] node [right] {$c/1$} (3)
(4) edge [bend left] node [left ] {$a/1$} (3)
(4) edge [loop right] node [right] {$b/0$} (4)
(4) edge [bend right] node [above] {$c/0$} (0);
\stoptikzpicture
}
\stopplacefigure
We can run these test suites on the faulty implementation shown in \in{Figure}[fig:running-example-faulty].
Here, the $a$-transition from state $s'_2$ transitions to the wrong target state.
It is not an obvious mistake, since the faulty target $s'_0$ has very similar transitions as $s_2$.
Yet, all the test suites detect this error.
When choosing the prefix $aaa$ (included in the transition cover), and suffix $aa$ (included in the characterisation set and state identifiers for $s_2$), we see that the specification outputs $10111$ and the implementation outputs $10110$.
The sequence $aaaaa$ is the only sequence (in any of the test suites here) which detects this fault.
If on the other hand, the $a$-transition from $s'_2$ would transition to $s'_4$, we need the suffix $ac$ as $aa$ will not detect the fault.
Since the sequences $ac$ is included in the state identifier for $s_2$, this fault would also be detected.
This shows that it is sometimes necessary to include multiple sequences in the state identifier.
Another approach to testing would be to enumerate all sequences up to a certain length.
In this example, we need sequences of at least length 5.
Consequently, the test suite contains 243 sequences and this boils down to a size of 1458.
Such a brute-force approach is hence not scalable.
\stopsubsection \stopsubsection
@ -728,7 +828,7 @@ Its $m$-completeness is proven in \in{Section}[sec:completeness].
Let $P$ be a state cover, $\Fam{Z'}$ be a family of sets constructed with the Lee and Yannakakis algorithm, and $\Fam{H}$ be a separating family. Let $P$ be a state cover, $\Fam{Z'}$ be a family of sets constructed with the Lee and Yannakakis algorithm, and $\Fam{H}$ be a separating family.
The \defn{hybrid ADS} test suite is The \defn{hybrid ADS} test suite is
\startformula \startformula
T = P \cdot I^{\leq k+1} \odot (\Fam{Z'} ; \Fam{H}). T_{\text{h-ADS}} = P \cdot I^{\leq k+1} \odot (\Fam{Z'} ; \Fam{H}).
\stopformula \stopformula
\stopdefinition \stopdefinition
@ -741,9 +841,9 @@ We note that the states $s_2, s_3, s_4$ are not split, so we need to refine the
\startplacefigure \startplacefigure
[title={(a): Largest splitting tree with only valid splits for \in{Figure}[fig:running-example]. [title={(a): Largest splitting tree with only valid splits for \in{Figure}[fig:running-example].
(b): Its adaptive distinguishing tree in notation of \citet[DBLP:journals/tc/LeeY94].}, (b): Its incomplete adaptive distinguishing tree.},
list={Splitting tree and adaptive distinguishing sequence.}, list={Splitting tree and incomplete adaptive distinguishing sequence.},
reference=fig:example-splitting-tree] reference=fig:example-ads]
\startcombination[2*1]{ \startcombination[2*1]{
\hbox{ \hbox{
\starttikzpicture[node distance=2cm] \starttikzpicture[node distance=2cm]
@ -760,26 +860,27 @@ We note that the states $s_2, s_3, s_4$ are not split, so we need to refine the
\stoptikzpicture \stoptikzpicture
}} {(a)} }} {(a)}
{\hbox{ {\hbox{
\starttikzpicture[node distance=2cm] \starttikzpicture[node distance=.75cm]
\adsnode{0}{s_0, s_1, s_2, s_3, s_4}{s_0, s_1, s_2, s_3, s_4}{a}{} \node (0) {$a$};
\adsnode{1}{s_1}{s_2}{}{below left of=0} \node [below left =of 0] (1) {$s_1$};
\adsnode{2}{s_0, s_2, s_3, s_4}{s_1, s_2, s_4, s_3}{aa}{below right of=0} \node [below right=of 0] (2) {$a$};
\adsnode{3}{s_0}{s_2}{}{below left of=2} \node [below left =of 2] (3) {$s_0$};
\adsnode{4}{s_2, s_3, s_4}{s_2, s_3, s_4}{}{below right of=2} \node [below right=of 2] (4) {$s_2, s_3, s_4$};
\path[->]
(0) edge (1) \path[->]
(0) edge (2) (0)+(0,.75) edge (0)
(2) edge (3) (0) edge node [above left ] {$0$} (1)
(2) edge (4); (0) edge node [above right] {$1$} (2)
(2) edge node [above left ] {$0$} (3)
(2) edge node [above right] {$1$} (4);
\stoptikzpicture \stoptikzpicture
}} {(b)} }} {(b)}
\stopcombination \stopcombination
\stopplacefigure \stopplacefigure
\todo{Dit eerder noemen. En zeggen: we take the same $\Fam{H}$ as before.} We take the separating family $\Fam{H}$ from before.
From the splitting tree in \in{Figure}[fig:example-splitting-tree], we obtain the following separating family $\Fam{H}$. From the incomplete ADS in \in{Figure}{b}[fig:example-ads] above we obtain the family $\Fam{Z'}$.
From the figure above we obtain the family $\Fam{Z'}$. These families and the refinement $\Fam{Z'}; \Fam{H}$ are given below.
These families and the refinement $\Fam{Z'}; \Fam{H}$ are given below:
\startformula\startmathmatrix[n=3,align={left,left,left},distance=1cm] \startformula\startmathmatrix[n=3,align={left,left,left},distance=1cm]
\NC H_0 = \{aa,c\} \NC Z'_0 = \{aa\} \NC (Z';H)_0 = \{aa\} \NR \NC H_0 = \{aa,c\} \NC Z'_0 = \{aa\} \NC (Z';H)_0 = \{aa\} \NR
@ -817,6 +918,14 @@ A trie data structure also allows us to immediately obtain the set of maximal te
\startsubsection \startsubsection
[title={Randomisation}] [title={Randomisation}]
Many constructions of the test suite generation can be randomised.
There may exist many shortest access sequences to a state and we can randomly pick any.
Also in the construction of state identifiers many steps in the algorithm are non-deterministic:
the algorithm may ask to find any input symbol which separates a set of states.
The tool randomises many such choices.
We have noticed that this can have a huge influence on the size of the test suite.
However, a decent statistical investigation still lacks at the moment.
In many of the applications such as learning, no bound on the number of states of the SUT was known. In many of the applications such as learning, no bound on the number of states of the SUT was known.
In such cases it is possible to randomly select test cases from an infinite test suite. In such cases it is possible to randomly select test cases from an infinite test suite.
Unfortunately, we lose the theoretical guarantees of completeness with random generation. Unfortunately, we lose the theoretical guarantees of completeness with random generation.
@ -848,6 +957,7 @@ We classify them in two directions,
[reference=thm:completeness] [reference=thm:completeness]
The following test suites are all $n+k$-complete: The following test suites are all $n+k$-complete:
\placetable[force,none]{}{
\starttabulate[|c|c|c|] \starttabulate[|c|c|c|]
\NC \NC Arbitrary \NC Harmonised \NC \NC Arbitrary \NC Harmonised
\NR \HL %---------------------------------------- \NR \HL %----------------------------------------
@ -869,11 +979,9 @@ The following test suites are all $n+k$-complete:
\NC $ P \cdot I^{\leq k} \cdot \bigcup \Fam{U} \,\cup\, Q \cdot I^{\leq k} \odot \Fam{U} $ \NC $ P \cdot I^{\leq k} \cdot \bigcup \Fam{U} \,\cup\, Q \cdot I^{\leq k} \odot \Fam{U} $
\NC $ (P \cup Q) \cdot I^{\leq k} \odot \Fam{Z} $ \NC $ (P \cup Q) \cdot I^{\leq k} \odot \Fam{Z} $
\NR \HL %---------------------------------------- \NR \HL %----------------------------------------
\stoptabulate \stoptabulate}
\stoptheorem \stoptheorem
\todo{Iets zeggen over de hybrid UIO method?}
It should be noted that the ADS-method is a specific instance of the HSI-method and similarly the UIOv-method is an instance of the Wp-method. It should be noted that the ADS-method is a specific instance of the HSI-method and similarly the UIOv-method is an instance of the Wp-method.
What is generally meant by the Wp-method and HSI-method is the above formula together with a particular way to obtain the (harmonised) state identifiers. What is generally meant by the Wp-method and HSI-method is the above formula together with a particular way to obtain the (harmonised) state identifiers.
@ -894,21 +1002,36 @@ For the W, Wp, HSI and hybrid ADS methods we obtained test suites of size 169, 7
[title={Proof of completeness}, [title={Proof of completeness},
reference=sec:completeness] reference=sec:completeness]
\todo{Stukje over bisimulaties?} In this section, we will proof $n$-completeness of the discussed test methods.
We fix a specification $M$ which has a minimal representative with $n$ states and an implementation $M'$ with at most $n+k$ states. We fix a specification $M$ which has a minimal representative with $n$ states and an implementation $M'$ with at most $n+k$ states.
We assume that all states are reachable from the initial state in both machines (i.e., both are \defn{connected}). We assume that all states are reachable from the initial state in both machines (i.e., both are \defn{connected}).
We define the following notation:
Before we dive into the proof, we give some background on the proof-principle of bisimulation.
The original proofs of completeness often involve an inductive argument (on the length of words) inlined with arguments about characterisation sets.
This can be hard to follow and so we prefer a proof based on bisimulations, which defers the inductive argument to a general statement about bisimulation.
Many notions of bisimulation exist in the theory of labelled transition systems, but for Mealy machines there is just one simple definition.
We give the definition and the main proof principle, all of which can be found in \citep[Rutten98].
\startdefinition \startdefinition
Let $W \subseteq I^{\ast}$ be a set of words. Let $M$ be a Mealy machine.
Two states $x, y$ (of possibly different machines) are $W$-equivalent, written $x \sim_W y$, if $\lambda(x, w) = \lambda(y, w)$ for all $w \in W$. A relation $R \subseteq S \times S$ is called a \defn{bisimulation} if for every $(s, t) \in R$ we have
\startitemize
\item equal outputs: $\lambda(s, a) = \lambda(t, a)$ for all $a \in I$, and
\item related successor states: $(\delta(s, a), \delta(t, a)) \in R$ for all $a \in I$.
\stopitemize
\stopdefinition \stopdefinition
We note that for a fixed set $W$ the relation $\sim_W$ is a equivalence relation and that $W \subseteq V$ gives $x \sim_V y \implies x \sim_W y$. \startlemma
The next lemma gives sufficient conditions for a test suite of the given anatomy to be If two states $s, t$ are related by a bisimulation $R$, then $s \sim t$.
\stoplemma
In the following proof, we use a slight generalisation of the bisimulation proof technique, callend \emph{bisimulation up-to}.
This allows one to give a smaller set $R$ which extends to a bisimulation.
A good introduction of these up-to techniques is given by \citet[DBLP:journals/cacm/BonchiP15] or the thesis of \citet[Rot17].
The next proposition gives sufficient conditions for a test suite of a certain shape to be
complete. complete.
We then prove that these conditions hold for the test suites in this paper. We then prove that these conditions hold for the test suites in this chapter.
\startproposition \startproposition
[reference=prop:completeness] [reference=prop:completeness]
@ -921,7 +1044,6 @@ If
\item the machines $M$ and $M'$ agree on $T$, \item the machines $M$ and $M'$ agree on $T$,
\stopitemize \stopitemize
then $M$ and $M'$ are equivalent. then $M$ and $M'$ are equivalent.
\todo{Puntje 2 verdient meer aandacht?}
\stopproposition \stopproposition
\startproof \startproof
First, we prove that $P \cdot I^{\leq k}$ reaches all states in $M'$. First, we prove that $P \cdot I^{\leq k}$ reaches all states in $M'$.
@ -932,7 +1054,7 @@ Now $n$ states are reached by the previous argument (using the set $P$).
By assumption $M'$ has at most $k$ extra states and so we can reach all those extra states by using $I^{\leq k}$ after $P$. By assumption $M'$ has at most $k$ extra states and so we can reach all those extra states by using $I^{\leq k}$ after $P$.
Second, we show that the reached states are bisimilar. Second, we show that the reached states are bisimilar.
Define the relation $R = \{(\delta(q_0, p), \delta'(q_0', p)) \mid p \in P \cdot I^{\leq k}\}$. Define the relation $R = \{(\delta(s_0, p), \delta'(s_0', p)) \mid p \in P \cdot I^{\leq k}\}$.
Note that for each $(s, i) \in R$ we have $s \sim_{W_s} i$. Note that for each $(s, i) \in R$ we have $s \sim_{W_s} i$.
For each state $i \in M'$ there is a state $s \in M$ such that $(s, i) \in R$, since we reach all states in both machines by $P \cdot I^{\leq k}$. For each state $i \in M'$ there is a state $s \in M$ such that $(s, i) \in R$, since we reach all states in both machines by $P \cdot I^{\leq k}$.
We will prove that this relation is in fact a bisimulation up-to equivalence. We will prove that this relation is in fact a bisimulation up-to equivalence.
@ -947,12 +1069,11 @@ So we have:
By the second assumption, we conclude that $s_2 \sim t$. By the second assumption, we conclude that $s_2 \sim t$.
So $s_2 \sim t$ and $(t, i) \in R$, which means that $R$ is a bisimulation up-to equivalence. So $s_2 \sim t$ and $(t, i) \in R$, which means that $R$ is a bisimulation up-to equivalence.
Using the theory of up-to techniques \cite[DBLP:journals/cacm/BonchiP15] we know that there exists a bisimulation relation containing $R$. Using the theory of up-to techniques \cite[DBLP:journals/cacm/BonchiP15] we know that there exists a bisimulation relation containing $R$.
\todo{Up to is best nieuw. Misschien meer aandacht aan besteden. Ook nog Jurriaan citeren?} In particular, the initial $s_0$ and $s'_0$ are bisimilar.
In particular $q_0$ and $q'_0$ are bisimilar.
And so the machines $M$ and $M'$ are equivalent. And so the machines $M$ and $M'$ are equivalent.
\stopproof \stopproof
Before we show that the conditions hold for the test methods described in this paper, we reflect on the above proof first. Before we show that the conditions hold for the test methods, we reflect on the above proof first.
This proof is very similar to the completeness proof by \citet[DBLP:journals/tse/Chow78]. This proof is very similar to the completeness proof by \citet[DBLP:journals/tse/Chow78].
(In fact, it is also similar to Lemma 4 by \citet[DBLP:journals/iandc/Angluin87] which proves termination in the L* learning algorithm. This correspondence was noted by \citet[DBLP:conf/fase/BergGJLRS05].) (In fact, it is also similar to Lemma 4 by \citet[DBLP:journals/iandc/Angluin87] which proves termination in the L* learning algorithm. This correspondence was noted by \citet[DBLP:conf/fase/BergGJLRS05].)
In the first part we argue that all states are visited by using some sort of counting and reachability argument. In the first part we argue that all states are visited by using some sort of counting and reachability argument.
@ -994,7 +1115,8 @@ The HSI, ADS and hybrid ADS test suites are $n+k$-complete.
\stopsection \stopsection
\startsection \startsection
[title={Related Work and Discussion}] [title={Related Work and Discussion},
reference=sec:discussion]
\todo{Veel gerelateerd werk kan naar de grote intro.} \todo{Veel gerelateerd werk kan naar de grote intro.}
@ -1006,8 +1128,8 @@ It does not generalise to extra states, but it seems to construct very small tes
The H method is a refinement of the HSI method where state identifiers for a testing transitions are reconsidered. The H method is a refinement of the HSI method where state identifiers for a testing transitions are reconsidered.
(Note that \in{Proposition}[prop:completeness] allows for a different family when testing transitions.) (Note that \in{Proposition}[prop:completeness] allows for a different family when testing transitions.)
Last, the SPY method builds upon the HSI-method and changes the prefixes in order to minimise the size of a test suite, exploiting overlap in test sequences. Last, the SPY method builds upon the HSI-method and changes the prefixes in order to minimise the size of a test suite, exploiting overlap in test sequences.
We believe that this technique is independent of the HSI-method and can in fact be applied to all methods presented in this paper. We believe that this technique is independent of the HSI-method and can in fact be applied to all methods presented in this chapter.
As such, the SPY method should be considered as an optimisation technique, orthogonal to the work in this paper. As such, the SPY method should be considered as an optimisation technique, orthogonal to the work in this chapter.
Recently, \citet[DBLP:journals/cj/HieronsT15] devise a novel test method which is based on incomplete distinguishing sequences and is similar to the hybrid ADS method. Recently, \citet[DBLP:journals/cj/HieronsT15] devise a novel test method which is based on incomplete distinguishing sequences and is similar to the hybrid ADS method.
They use sequences which can be considered to be adaptive distinguishing sequences on a subset of the state space. They use sequences which can be considered to be adaptive distinguishing sequences on a subset of the state space.

View file

@ -5,6 +5,7 @@
\setupexternalfigures[directory={images,../images}] \setupexternalfigures[directory={images,../images}]
% \definemode[afloop][yes]
\definemode[draft][yes] \definemode[draft][yes]
\environment bib \environment bib
@ -22,10 +23,17 @@
\definefloat[algorithm][algorithms] \definefloat[algorithm][algorithms]
\defineframed[author][frame=off, location=middle, align={middle, nothypenated}, offset=5pt, width=0.33\hsize]
\definestartstop[abstract] \definestartstop[abstract]
[before={\midaligned{\bf Abstract}\startnarrower[2*middle]}, [before={\blank[.5cm]\midaligned{\bf Abstract}\startnarrower[2*middle]\noindent},
after={\stopnarrower\blank[big]}] after={\stopnarrower\blank[big]}]
\def\basedon[#1]{\vfill\noindent
This chapter is based on the following publication:
\noindent\cite[entry][#1]}
\definedescription[description] \definedescription[description]
[headstyle=bold, alternative=serried, width=fit] [headstyle=bold, alternative=serried, width=fit]
\definedescription[step] \definedescription[step]
@ -44,7 +52,7 @@
\define[1]\todo{\color[red]{\ss \bf #1}} \define[1]\todo{\color[red]{\ss \bf #1}}
\define[1]\label{\todo{\tt \\label #1}} \define[1]\label{\todo{\tt \\label #1}}
\define\referencesifcomponent{\doifnotmode{everything}{\startsubject[title={References}]\placelistofpublications\stopsubject}} \define\referencesifcomponent{\doifnotmode{everything}{\startsubject[title={References}]\switchtobodyfont[9pt]\placelistofpublications\stopsubject}}
\usemodule[algorithmic] \usemodule[algorithmic]
\setupalgorithmic[align=middle,numbercolor=darkgray] % center line numbers \setupalgorithmic[align=middle,numbercolor=darkgray] % center line numbers

View file

@ -12,6 +12,9 @@
\usebtxdataset[../biblio-web.bib] \usebtxdataset[../biblio-web.bib]
\setupbtx[apa:cite][etallimit=2,separator:4={ and }] \setupbtx[apa:cite][etallimit=2,separator:4={ and }]
% interaction in de lijst lijkt stuk te zijn?
\setupbtx[apa:list][interaction=stop]
\setupbtxrendering[pagestate=start] % print pagina nummers
% The dblp database ignores Pauls nice a-breve and s-comma % The dblp database ignores Pauls nice a-breve and s-comma
\btxremapauthor [Paul Fiterau{-}Brostean] [Paul Fiterău-Broștean] \btxremapauthor [Paul Fiterau{-}Brostean] [Paul Fiterău-Broștean]

View file

@ -11,7 +11,7 @@
\setuphead[subsection][sectionsegments=section:subsection] \setuphead[subsection][sectionsegments=section:subsection]
\define[2]\MyChapter \define[2]\MyChapter
{\framed[frame=off, width=max, align={flushleft,nothyphenated,verytolerant}, offset=0cm, toffset=1cm, boffset=1cm]{#1\\#2}} {\framed[frame=off, width=max, align={flushleft,nothyphenated,verytolerant}, offset=0cm, toffset=1cm]{#1\\#2}}
\setuplabeltext [en] [chapter=Chapter~] \setuplabeltext [en] [chapter=Chapter~]

View file

@ -9,6 +9,10 @@
\define\checkok{\scale[height=.5em]{\symbol[fontawesome][ok]}} % \define\checkok{\scale[height=.5em]{\symbol[fontawesome][ok]}} %
\define\checknok{\scale[height=.5em]{\symbol[fontawesome][remove]}} % find a font with ✗ \define\checknok{\scale[height=.5em]{\symbol[fontawesome][remove]}} % find a font with ✗
\define\coffee{\!\scale[height=.5em]{\symbol[fontawesome][coffee]}} % coffe cup
\define\bomb{\!\scale[height=.65em]{\symbol[fontawesome][]}} % bomb
\define\money{\scale[height=.6em]{\symbol[fontawesome][eur]}\,} % euro sign + space
\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}}

View file

@ -5,7 +5,12 @@
\definepapersize[proefschrift+rand][width=180mm, height=250mm] \definepapersize[proefschrift+rand][width=180mm, height=250mm]
\definepapersize[proefschrift][width=170mm, height=240mm] \definepapersize[proefschrift][width=170mm, height=240mm]
\setuppapersize[proefschrift]
\startmode[afloop]
\setuppapersize[proefschrift][proefschrift+rand] \setuppapersize[proefschrift][proefschrift+rand]
\stopmode
\setuplayout[location={middle,middle}] \setuplayout[location={middle,middle}]
\setuplayout \setuplayout
[width=130mm, [width=130mm,