\documentclass{article} \usepackage{parskip} \usepackage{geometry} \begin{document} \section{Course intro} \textbf{Important:} \begin{itemize} \item Register Teams. \item Make a Team (if this is not possibly add name to Excel) \end{itemize} \textbf{Why do we care?} We want to deliver a high quality program. Maybe the program contains mistakes. Some mistakes can have severe consequences. \textbf{Foundations of software verification} \begin{itemize} \item How to specify what constitutes "correct behaviour" \item How to verify the correctness of the program \item What constitutes good tests? When have we tested enough? \item Can we automate this? \end{itemize} \textbf{Learning goals:} Concepts that represent different aproaches: Pragmatism (testing) vs completeness. \textbf{Not in scope:} Project management \textbf{Pre-requisite:} C-sharp, Ide, set-theory, logic \textbf{Project \& assignment:} 3 homeworks, 3 assignments, 2 testing projects with 3 people \textbf{Grading:} half is exam \textbf{Software:} Jetbrains Raider IDE, Github (private) \textbf{Load:} 16hrs/week \section{Unit testing} Verifying the program by inspectin a \underline{finite number} of executions. This is pragmatic and incomplete. Unit should not be too large We will be using \underline{NUnit}. \section{Project} Implementing a game (Nethack). \section{Graphs} Paths need to be consecutive. Test paths need to start at the entry point. Length of a path is the amount of edges. \end{document}