% public domain. no rights reserved. see
% https://creativecommons.org/publicdomain/zero/1.0/

\section{testing}

\begin{frame}
  \frametitle{testing}
  \pause
  \begin{itemize}
  \item unit testing
  \item manual testing
  \item stress testing
  \end{itemize}
\end{frame}


\subsection{unit testing}

\begin{frame}
  \frametitle{unit testing}
  \begin{itemize}
  \item<2-> nose testing frame work
  \item<3-> not pure TDD
  \item<4-> benefits?
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{benefits}
  \begin{itemize}
  \item<1-> immediatly verify correctness for ``N'' use cases.
  \item<2-> was useful when testing compatibility on OS X.
{\tiny
\begin{semiverbatim}\onslide<3->
\$ nosetests
...................................
----------------------------------------------------------------------
Ran 35 tests in 62.159s

OK
\end{semiverbatim}
}
  \end{itemize}
\end{frame}


\subsection{manual testing}

\begin{frame}
  \frametitle{manual testing}
  \pause
  \begin{itemize}
  \item combox on two GNU/Linux machines.
  \item combox on GNU/Linux and OS X
  \item combox on GNU/Linux and OS X with USB stick as the third node.
  \end{itemize}
\end{frame}


\begin{frame}[fragile]
  \frametitle{manual testing}
  {\tiny
  \begin{semiverbatim}



                                   +------------------------+
                                   |                        | monitor
                            [------>   Dropbox directory    |----------]
                            |      |                        |          ]
                          c |      +------------------------+          ]
                          o |                                          ] c
  +------------------+    n |      +------------------------+          ] o
  |                  |    t |      |                        |  monitor ] m
  | GNU/Linux / OS X | -----|------>    combox direcory     | ---------] b
  |                  |    a |      |                        |          ] o
  +------------------+    i |      +------------------------+          ] x
                          n |                                          ]
                          s |      +------------------------+          ]
                            |      |                        |  monitor ]
                            [------> Google Drive directory | ---------]
                                   |                        |
                                   +------------------------+

  \end{semiverbatim} }
\end{frame}


\begin{frame}[fragile]
  \frametitle{manual testing}
  {\tiny
  \begin{semiverbatim}
setup i
                                     Internet
                                     @-------@
                                     |       |
                     Dropbox client  | +---+ |  Dropbox client
   combox                     (------> | D | <------)                   combox
  +------------------+  sync  |      | +---+ |      | sync  +------------------+
  |                  <--------       |       |      -------->                  |
  | GNU/Linux (grus) |               |       |              | GNU/Linux (lyra) |
  | debian testing   <--------       |       |      --------> debian stable    |
  +------------------+  sync  |      |       |      | sync  +------------------+
                              |      | +---+ |      |
                              (------> | G | <------)
                     rclone          | +---+ |  rclone
                                     |       |
                                     @-------@


  \end{semiverbatim} }
\end{frame}

\begin{frame}[fragile]
  \frametitle{manual testing}
  {\tiny
  \begin{semiverbatim}
setup ii
                                     Internet
                                     @-------@
                                     |       |
                     Dropbox client  | +---+ |  Dropbox client
   combox                     (------> | D | <------)                   combox
  +------------------+  sync  |      | +---+ |      | sync  +------------------+
  |                  <--------       |       |      -------->                  |
  | GNU/Linux (grus) |               |       |              |      OS X        |
  | debian testing   <--------       |       |      -------->  (10.9, 10.10)   |
  +------------------+  sync  |      |       |      | sync  +------------------+
                              |      | +---+ |      |
                              (------> | G | <------)
                     rclone          | +---+ |  Google Drive client
                                     |       |
                                     @-------@

found bugs #5, #6, #7, #10, #11
(git.ricketyspace.net/combox/plain/TODO.org)
  \end{semiverbatim} }
\end{frame}

\begin{frame}[fragile]
  \frametitle{manual testing}
  {\tiny
  \begin{semiverbatim}
setup iii
                                     Internet
                                     @-------@
                                     |       |
                     Dropbox client  | +---+ |  Dropbox client
   combox                     (------> | D | <------)                   combox
  +------------------+  sync  |      | +---+ |      | sync  +------------------+
  |                  <--------       |       |      -------->                  |
  | GNU/Linux (grus) |               |       |              |      OS X        |
  | debian testing   <--------       |       |      -------->  (10.9, 10.10)   |
  +------------------+  sync  |      |       |      | sync  +------------------+
    |                         |      | +---+ |      |                      |
    |                         (------> | G | <------)                      |
    v                rclone          | +---+ |  Google Drive client        v
 +-----------------+                 |       |                +-----------------+
 |USB stick ZAPHOD |                 @-------@                |USB stick ZAPHOD |
 +-----------------+                                          +-----------------+
  third node                                                          third node


  - modified shard on usb stick must be "touch".
  - file rename/move does not work.
  \end{semiverbatim} }
\end{frame}

\subsection{stress testing}


\begin{frame}[fragile]
  \frametitle{stress testing}
  \pause
  {\tiny
  \begin{semiverbatim}

   1 second delay
        +---+
        |   |
    -   v   v    -            -            -
  - F -  -1s-  - F -  -1s-  - F -  -1s-  - F -
    -            -            -            -    -1s-
------>------------->-------->---------->----->          -
dump script                                            - F -
                                                         -
                                                             -1s-

                                                                 -
   -                                                           - F -
 - F -   20MiB - 90MiB file                                      -
   -
 avg. file size 60MiB                                    |                 |
                                                         |   -         -   |
                                                         | - F -     - F - |
                                                         |   -         -   |
                                                         +_________________+
                                                           combox directory

git.ricketyspace.net/combox-paper/tree/dumper/dump
  \end{semiverbatim} }
\end{frame}


\begin{frame}
  \frametitle{1620MiB dump - 27 files}
  \pause
  \centering
  {\small
  avg. time to split and encrypt $\rightarrow$ 2670.59ms\\
  \pause
  total time to process all files $\rightarrow$ 02m:22s
  }
\end{frame}


\begin{frame}
  \frametitle{5940MiB dump - 99 files}
  \pause
  \centering
  {\small
  avg. time to split and encrypt $\rightarrow$ 2979.64ms ($\uparrow$ 309.049ms)\\
  \pause
  total time to process all files $\rightarrow$ 09m:10s  ($\uparrow$ 6m:48s)
  }
\end{frame}


\begin{frame}
  \frametitle{10800MiB dump - 180 files}
  \pause
  \centering
  {\small
  avg. time to split and encrypt $\rightarrow$ 3423.08ms ($\uparrow$ 443.440ms)\\
  \pause
  total time to process all files $\rightarrow$ 18m:04s ($\uparrow$ 8m:54s)
  }
\end{frame}
