52 lines
No EOL
2.9 KiB
TeX
52 lines
No EOL
2.9 KiB
TeX
\project thesis
|
|
\startcomponent summary
|
|
|
|
\startchapter
|
|
[title={Summary},
|
|
reference=chap:summary-en]
|
|
|
|
Bla
|
|
|
|
|
|
\stopchapter
|
|
\language[nl]
|
|
\startchapter
|
|
[title={Samenvatting},
|
|
reference=chap:summary-nl]
|
|
|
|
Het {\it leren van automaten} speelt een steeds grotere rol bij de verificatie van software.
|
|
Tijdens het leren, verkent een leeralgoritme het gedrag van software.
|
|
Dit gaat in principe volledig automatisch, en het algoritme pakt vanzelf interessante eigenschappen op van de software.
|
|
Het is hiermee mogelijk een redelijk precies model te maken van de werking van het stukje software wat we onder de loep nemen.
|
|
Fouten en onverwacht gedrag van software kunnen hiermee worden blootgesteld.
|
|
|
|
In dit proefschrift kijken we in eerste instantie naar technieken voor testgeneratie.
|
|
Deze zijn nodig om het leeralgoritme een handje te helpen.
|
|
Na het automatisch verkennen van gedrag, formuleert het leeralgoritme namelijk met een hypothese die helaas de software nog niet goed genoeg modelleert.
|
|
Om de hypothese te verfijnen en verder te leren, hebben we tests nodig.
|
|
{\it Effici\"entie} staat hierbij centraal: we willen zo min mogelijk testen, want dat kost tijd.
|
|
Aan de andere kant moeten we wel {\it volledige testen}.
|
|
Dat wil zeggen, als er een discrepantie is tussen het geleerde model en de software, dan willen we die met een test kunnen aanwijzen.
|
|
|
|
In de eerste paar hoofdstukken laten we zien hoe testen van automaten te werk gaat.
|
|
We geven een theoretisch kader om verschillende, bestaande {\it $n$-volledige testgeneratiemethodes} te vergelijken.
|
|
Op grond hiervan beschrijven we een nieuw, effici\"ent algoritme.
|
|
Dit nieuwe algoritme staat centraal bij een industri\"ele casus waarin we een model van complexe printer-software van Oc\'e leren.
|
|
We laten ook zien hoe een van de deelproblemen -- het {\it onderscheiden van toestanden} met zo kort mogelijke invoer -- effici\"ent kan worden opgelost.
|
|
|
|
Het tweede thema in dit proefschrift is de theorie van formele talen en automaten met {\it oneindige alfabetten}.
|
|
Ook dit is zinnig voor het leren van automaten.
|
|
Software, en in het bijzonder internet-communicatie-protocollen, maken namelijk vaak gebruik van identifiers om bijvoorbeeld verschillende gebruikers te onderscheiden.
|
|
Als we oneindig veel van zulke identifiers aannemen, krijgen we de theorie van zogenaamde {\it nominale verzamelingen}.
|
|
|
|
We laten zien hoe de theorie van nominale verzamelingen het ons mogelijk maakt de leeralgoritmes gemakkelijk te veralgemeniseren naar oneindige alfabetten.
|
|
In het bijzonder betekent dit dat we registerautomaten kunnen leren.
|
|
Vervolgens werken we de theorie van nominale automaten verder uit.
|
|
We laten zien hoe je deze structuren effici\"ent kan implementeren.
|
|
En we geven een speciale klasse van nominale automaten die een veel kleinere representatie hebben.
|
|
Dit zou gebruikt kunnen worden om zulke automaten sneller te leren.
|
|
|
|
|
|
\stopchapter
|
|
\language[en]
|
|
\stopcomponent |