%% Presentation for EIST about Testing

%% Some useful variations of the document class
%%\documentclass[draft]{beamer}
%%\documentclass[handout]{beamer}
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\mode<presentation>{\usetheme{Copenhagen}}
\title{Integrations-, System-, Akzeptanz- und Regressionstest}
\author{Marek~Kubica}
\date{7.~Juli~2009}

%% get rid of navigation symbols
%\setbeamertemplate{navigation symbols}{}
\beamertemplatenavigationsymbolsempty

\begin{document}

\frame{\titlepage}

\AtBeginSection[]{
  \begin{frame}
    \frametitle{\insertsection}
    \tableofcontents[currentsection]
  \end{frame}
}

\begin{frame}{Integrationstest}
  \begin{itemize}
    \item Zusammensetzen der Module
    \item Zusammenspiel prüfen
    \item Module bereits individuell geprüft
    \item Verschiedene Teststrategien möglich
    \item Stubs: imitieren darunter liegende Komponenten
    \item Test Driver: imitieren darüber liegende Komponenten
  \end{itemize}
\end{frame}

\begin{frame}{Teststrategien}
  \begin{columns}[t]
    \column{0.33\textwidth}
      \begin{block}{Big Bang}
        \begin{itemize}
	  \item alle Komponenten auf einmal zusammensetzen
	  \item wenig Arbeit
	  \item führt fast immer zu Problemen
	\end{itemize}
      \end{block}
    \column{0.33\textwidth}
      \begin{block}{Bottom-up}
        \begin{itemize}
	  \item mit untersten Komponenten anfangen, zusammen testen
	  \item ebenenweise nach oben gehen, ganz oben ist man fertig
	  \item relativ viele Test Driver
	  \item keine Test Stubs
	\end{itemize}
      \end{block}
    \column{0.33\textwidth}
      \begin{block}{Top-down}
        \begin{itemize}
	  \item von oben beginnen
	  \item unintegrierte Komponenten mit Stubs ersetzen
	  \item wenige Test Driver
	  \item viele Test Stubs
	\end{itemize}
      \end{block}
  \end{columns}
\end{frame}

\begin{frame}{Systemtest}
  \begin{itemize}
    \item Sozusagen letzter Integrationstest
    \item Mit \emph{allen} Komponenten, fertig integriert
    \item läuft in Testumgebung
    \item Testkriterien:
      \begin{itemize}
        \item Stresstest
	\item Lastmenge
	\item Konfiguration (OS, Softwareversionen, Hardware)
	\item Kompatibilität
	\item Antwortzeit
	\item Sicherheit
	\item Umgebungstest
	\item Qualitätstest
	\item Wiederherstellungstest
      \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}{Akzeptanztest}
  \begin{itemize}
    \item Kunden-orientierter Test
    \item Kunde entscheidet ob das gelieferte Produkt passt
    \item in Betriebsumgebung des Kunden
    \item üblicherweise erstmal in kleinen Umfeld getestet:
      einzelne Filiale o.ä.
    \item Benutzer testen das System: Funktionale Fehler, Usability,
      Look \& Feel
    \item Schließlich: Abnahme, Garantiezeitraum beginnt
  \end{itemize}
\end{frame}

\begin{frame}{Regressionstest}
  Stellt sicher das behobene Fehler behoben bleiben
  \begin{itemize}
    \item Bei jeder Änderung können neue und alte Fehler wieder auftreten
    \item Änderungen: Produktupdates, Erweiterungen, Wartung
    \item Regressionstests laufen über die ganze Produktentwicklung hinweg
    \item Im Fehlerfall: Testcase schreiben, Problem lösen
    \item immer wieder Tests laufen lassen
  \end{itemize}
\end{frame}

\end{document}
