graphs nu erbij
authorMart Lubbers <mart@martlubbers.net>
Sun, 20 Dec 2015 19:27:14 +0000 (20:27 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sun, 20 Dec 2015 19:27:14 +0000 (20:27 +0100)
a3/3architecture.tex
a3/4tests.tex
a3/Makefile
a3/arch.dot [new file with mode: 0644]
a3/arch.eps [new file with mode: 0644]
a3/graphs.viz
a3/setup.dot [deleted file]

index b8f932a..f01319c 100644 (file)
@@ -8,43 +8,22 @@
 % test-execution automation environment that you developed during the 
 % second assignment.
 
-To test the SUT \GAST needs to be able to send input to the SUT and receive its
-output. To simplify the input and output handled by \GAST an adapter is added
-between \GAST and the SUT. This adapter abstracts away from parts of the 
-specification that are not needed for these tests, such as the payload, 
-sequence number, etc. Essentially reducing each segment to only its flags (SYN,
+To test the SUT the tool needs to be able to communicate with the adapter, in
+this case a Python program. The Python programs listens to a TCP port and
+according to the commands received it sends TCP packets using Scapy. As said
+before the adapter abstracts away from all the technicalities such as sequence
+numbers. Essentially reducing each segment to only its flags (SYN,
 ACK, FIN, etc.).
 
-An EchoServer will connect to the SUT to offer an application which will accept
-the incoming connection. However, since no data will be exchanged the EchoServer
-will not be used for anything else.
-
-Figure~\ref{fig:architecture_down} shows the flow of data from \GAST to the SUT
-and Figure~\ref{fig:architecture_up} shows the flow of data from the SUT back
-to \GAST.
-
-Hier zou dus een plaatje van ``digraph TestSetupDown'' uit ``graphs.viz'' moeten komen. \label{fig:architecture_down}
-
-Hier zou dus een plaatje van ``digraph TestSetupUp'' uit ``graphs.viz'' moeten komen. \label{fig:architecture_up}
-
-
-\subsection{Python Driver}
-The Python driver can be modeled as an Symbolic Transition
-System. The model for the connection phase can be seen in 
-Figure~\ref{fig:pythondriverconnection}. 
-%meer uitleg over hoe die driver werkt. Qua sequence nummers opslaan enzo,
-%beetje toelichting bij de figuur.
-
-%in graphs.viz heb ik een opzetje voor die symbolic trnasition system
-%neergezet, maar ik weet neit hoe die er precies uitziet, dus het is echt heel
-%grof, dit moet aangepast worden naar iets wat daadwerkelijk op de 
-%implementatie lijkt. Wat er nu staat is meer om de moeite te besparen van 
-%uitzoeken hoe zo'n model er uit ziet :)
-Hier zou dus een plaatje van ``digraph PythonDriverConnection'' uit ``graphs.viz'' moeten komen. \label{fig:pythondriverconnection}
-
-Hier zou dus een plaatje van ``digraph PythonDriverClose'' uit ``graphs.viz'' moeten komen. \label{fig:pythondriverclose}
-
-% Hier moet nog meer over het automationdeel, maar ik weet neit hoe we dat
-% gaan fixen
-
-
+The adapter connects via the SUT to a Java echo server. Thus via TCP the
+echo server and the adapter connect. The adapter is an adaptation of the
+framework developed for the first part of the assignment. This architecture is
+displayed in Figure~\ref{fig:arch}. The tool always does the logging and test
+generation.
+
+\begin{figure}[H]
+       \centering
+       \includegraphics[scale=0.75]{arch.eps}
+       \vspace{5mm}
+       \caption{Testing architecture}\label{fig:arch}
+\end{figure}
index 6c5269c..131f244 100644 (file)
@@ -2,4 +2,4 @@
 
 % Write your model in the input language of the selected MBT tools, generate
 %  tests, and execute
-% them on your SUT. Explain your observations and analyse the test results.
\ No newline at end of file
+% them on your SUT. Explain your observations and analyse the test results.
index 257168f..edd4af0 100644 (file)
@@ -8,6 +8,10 @@ SOURCES:=$(filter-out preamble.tex,$(shell ls *.tex))
 
 all: $(DOCUMENT).pdf
 
+graphs:
+       dot -Teps arch.dot > arch.eps
+
+
 %.pdf: %.dvi
        dvipdfm $<
 
diff --git a/a3/arch.dot b/a3/arch.dot
new file mode 100644 (file)
index 0000000..4c9fd58
--- /dev/null
@@ -0,0 +1,7 @@
+digraph {
+       rankdir=LR;
+       edge [dir="both"];
+       "Tool" -> "Adapter" [label="TCP"];
+       "Adapter" -> "SUT" [label="TCP"];
+       "SUT" -> "EchoServer" [label="TCP"];
+}
diff --git a/a3/arch.eps b/a3/arch.eps
new file mode 100644 (file)
index 0000000..67f3375
--- /dev/null
@@ -0,0 +1,337 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: graphviz version 2.38.0 (20140413.2041)
+%%Title: %3
+%%Pages: 1
+%%BoundingBox: 36 36 518 80
+%%EndComments
+save
+%%BeginProlog
+/DotDict 200 dict def
+DotDict begin
+
+/setupLatin1 {
+mark
+/EncodingVector 256 array def
+ EncodingVector 0
+
+ISOLatin1Encoding 0 255 getinterval putinterval
+EncodingVector 45 /hyphen put
+
+% Set up ISO Latin 1 character encoding
+/starnetISO {
+        dup dup findfont dup length dict begin
+        { 1 index /FID ne { def }{ pop pop } ifelse
+        } forall
+        /Encoding EncodingVector def
+        currentdict end definefont
+} def
+/Times-Roman starnetISO def
+/Times-Italic starnetISO def
+/Times-Bold starnetISO def
+/Times-BoldItalic starnetISO def
+/Helvetica starnetISO def
+/Helvetica-Oblique starnetISO def
+/Helvetica-Bold starnetISO def
+/Helvetica-BoldOblique starnetISO def
+/Courier starnetISO def
+/Courier-Oblique starnetISO def
+/Courier-Bold starnetISO def
+/Courier-BoldOblique starnetISO def
+cleartomark
+} bind def
+
+%%BeginResource: procset graphviz 0 0
+/coord-font-family /Times-Roman def
+/default-font-family /Times-Roman def
+/coordfont coord-font-family findfont 8 scalefont def
+
+/InvScaleFactor 1.0 def
+/set_scale {
+       dup 1 exch div /InvScaleFactor exch def
+       scale
+} bind def
+
+% styles
+/solid { [] 0 setdash } bind def
+/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
+/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
+/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
+/bold { 2 setlinewidth } bind def
+/filled { } bind def
+/unfilled { } bind def
+/rounded { } bind def
+/diagonals { } bind def
+/tapered { } bind def
+
+% hooks for setting color 
+/nodecolor { sethsbcolor } bind def
+/edgecolor { sethsbcolor } bind def
+/graphcolor { sethsbcolor } bind def
+/nopcolor {pop pop pop} bind def
+
+/beginpage {   % i j npages
+       /npages exch def
+       /j exch def
+       /i exch def
+       /str 10 string def
+       npages 1 gt {
+               gsave
+                       coordfont setfont
+                       0 0 moveto
+                       (\() show i str cvs show (,) show j str cvs show (\)) show
+               grestore
+       } if
+} bind def
+
+/set_font {
+       findfont exch
+       scalefont setfont
+} def
+
+% draw text fitted to its expected width
+/alignedtext {                 % width text
+       /text exch def
+       /width exch def
+       gsave
+               width 0 gt {
+                       [] 0 setdash
+                       text stringwidth pop width exch sub text length div 0 text ashow
+               } if
+       grestore
+} def
+
+/boxprim {                             % xcorner ycorner xsize ysize
+               4 2 roll
+               moveto
+               2 copy
+               exch 0 rlineto
+               0 exch rlineto
+               pop neg 0 rlineto
+               closepath
+} bind def
+
+/ellipse_path {
+       /ry exch def
+       /rx exch def
+       /y exch def
+       /x exch def
+       matrix currentmatrix
+       newpath
+       x y translate
+       rx ry scale
+       0 0 1 0 360 arc
+       setmatrix
+} bind def
+
+/endpage { showpage } bind def
+/showpage { } def
+
+/layercolorseq
+       [       % layer color sequence - darkest to lightest
+               [0 0 0]
+               [.2 .8 .8]
+               [.4 .8 .8]
+               [.6 .8 .8]
+               [.8 .8 .8]
+       ]
+def
+
+/layerlen layercolorseq length def
+
+/setlayer {/maxlayer exch def /curlayer exch def
+       layercolorseq curlayer 1 sub layerlen mod get
+       aload pop sethsbcolor
+       /nodecolor {nopcolor} def
+       /edgecolor {nopcolor} def
+       /graphcolor {nopcolor} def
+} bind def
+
+/onlayer { curlayer ne {invis} if } def
+
+/onlayers {
+       /myupper exch def
+       /mylower exch def
+       curlayer mylower lt
+       curlayer myupper gt
+       or
+       {invis} if
+} def
+
+/curlayer 0 def
+
+%%EndResource
+%%EndProlog
+%%BeginSetup
+14 default-font-family set_font
+1 setmiterlimit
+% /arrowlength 10 def
+% /arrowwidth 5 def
+
+% make sure pdfmark is harmless for PS-interpreters other than Distiller
+/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse
+% make '<<' and '>>' safe on PS Level 1 devices
+/languagelevel where {pop languagelevel}{1} ifelse
+2 lt {
+    userdict (<<) cvn ([) cvn load put
+    userdict (>>) cvn ([) cvn load put
+} if
+
+%%EndSetup
+setupLatin1
+%%Page: 1 1
+%%PageBoundingBox: 36 36 518 80
+%%PageOrientation: Portrait
+0 0 1 beginpage
+gsave
+36 36 482 44 boxprim clip newpath
+1 1 set_scale 0 rotate 40 40 translate
+% Tool
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+27.3 18 27.1 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+14.3 14.3 moveto 26 (Tool) alignedtext
+grestore
+% Adapter
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+154.59 18 38.99 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+132.59 14.3 moveto 44 (Adapter) alignedtext
+grestore
+% Tool->Adapter
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 65.27 18 moveto
+77.67 18 91.69 18 104.85 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 64.87 14.5 moveto
+54.87 18 lineto
+64.87 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 64.87 14.5 moveto
+54.87 18 lineto
+64.87 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 105.17 21.5 moveto
+115.17 18 lineto
+105.17 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 105.17 21.5 moveto
+115.17 18 lineto
+105.17 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+72.6 21.8 moveto 25 (TCP) alignedtext
+grestore
+% SUT
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+281.89 18 27.1 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+268.89 14.3 moveto 26 (SUT) alignedtext
+grestore
+% Adapter->SUT
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 204.24 18 moveto
+217.56 18 231.77 18 244.29 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 203.86 14.5 moveto
+193.86 18 lineto
+203.86 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 203.86 14.5 moveto
+193.86 18 lineto
+203.86 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 244.35 21.5 moveto
+254.35 18 lineto
+244.35 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 244.35 21.5 moveto
+254.35 18 lineto
+244.35 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+211.59 21.8 moveto 25 (TCP) alignedtext
+grestore
+% EchoServer
+gsave
+1 setlinewidth
+0 0 0 nodecolor
+422.18 18 51.99 18 ellipse_path stroke
+0 0 0 nodecolor
+14 /Times-Roman set_font
+390.18 14.3 moveto 64 (EchoServer) alignedtext
+grestore
+% SUT->EchoServer
+gsave
+1 setlinewidth
+0 0 0 edgecolor
+newpath 319.44 18 moveto
+331.77 18 345.9 18 359.63 18 curveto
+stroke
+0 0 0 edgecolor
+newpath 319.22 14.5 moveto
+309.22 18 lineto
+319.22 21.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 319.22 14.5 moveto
+309.22 18 lineto
+319.22 21.5 lineto
+closepath stroke
+0 0 0 edgecolor
+newpath 360.01 21.5 moveto
+370.01 18 lineto
+360.01 14.5 lineto
+closepath fill
+1 setlinewidth
+solid
+0 0 0 edgecolor
+newpath 360.01 21.5 moveto
+370.01 18 lineto
+360.01 14.5 lineto
+closepath stroke
+0 0 0 edgecolor
+14 /Times-Roman set_font
+327.18 21.8 moveto 25 (TCP) alignedtext
+grestore
+endpage
+showpage
+grestore
+%%PageTrailer
+%%EndPage: 1
+%%Trailer
+end
+restore
+%%EOF
index b021f6e..5a523b1 100644 (file)
@@ -45,4 +45,4 @@ digraph PythonDriverClose {
     "q5" -> "q6" [label = "FIN!"] /*stuur FIN! met naar GAST*/
     "q6" -> "q7" [label = "ACK?"] /*krijg simpele ACK van GAST*/
     "q7" -> "q8" [label = "ACK SEQ=p!"] /*stuur ACK met seqnummer aan SUT*/
-} 
\ No newline at end of file
+} 
diff --git a/a3/setup.dot b/a3/setup.dot
deleted file mode 100644 (file)
index fe9273f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-digraph Connection {
-  "Closed" -> "Listen" [label = "Listen?"]
-  "Listen" -> "Syn Received'" [label = "SYN?"]
-  "Syn Received'" -> "Syn Received" [label = "SYN+ACK!"]
-  "Syn Received" -> "Established" [label = "ACK?"]
-  "Syn Received" -> "Listen" [label = "RST?"]
-  "Syn Received'" -> "Listen" [label = "RST?"]
-}