\begin{slide}{Software-Tests}

\begin{itemize}
\item
  Spezifikation $=$ Vertrag

  (zwischen Aufrufer und Unterprogramm)
\item
  Vertragserfüllung kann man
  \begin{itemize}
  \item beweisen
  \item testen
  \end{itemize}
\item
  Tests \emph{vor} 
  der Implementierung schreiben,

  dann nur soweit implementieren,
  bis alle Tests funktionieren.
\end{itemize}

\end{slide}

\begin{slide}{Arten von Tests}

\begin{itemize}
\item
  Black box (ohne Kenntnis der Implementierung)
\item
  White box (mit Kenntnis der Implementierung)
\item
  Mischformen (Kenntnis der Unterprogramm-Verträge)
\end{itemize}

Werkzeugunterstützung (für Java): JUnit

\end{slide}

\begin{slide}{JUnit-Tests}

\url{http://www.junit.org/index.htm}

Eclipse $\to$ New $\to$ JUnit Test Case (Version 4)

\begin{verbatim}
import static org.junit.Assert.*;
public class Check {
    @Test
    public void testStep() {
        assertEquals (Coll.step(7), 22);
    }
}
\end{verbatim}

Run as $\to$ JUnit Test Case

\end{slide}

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "informatik"
%%% End: 
