diff --git a/Documentation/OS/shared/bibliography.bib b/Documentation/OS/shared/bibliography.bib index d054ddb8eceae601bd55b0ab54e10e6e768d3ac4..b68b7b7a25bef2d3f695448271f27f33259c914d 100644 --- a/Documentation/OS/shared/bibliography.bib +++ b/Documentation/OS/shared/bibliography.bib @@ -24,3 +24,10 @@ organization = "Recore Systems BV", year = "2016", } + +@book{leanosTP, + title = "LeanOS Test Plan", + organization = "University of Vienna", + year = "2017", + version = "0.01", +} diff --git a/Documentation/OS/testplan/testplan.tex b/Documentation/OS/testplan/testplan.tex index eb4d3d33a90b3e2252f7f1f4d5fe4a02c99a856e..b2723bc77fc462459b88fb6af2dfcf0f15bce3a9 100644 --- a/Documentation/OS/testplan/testplan.tex +++ b/Documentation/OS/testplan/testplan.tex @@ -1,5 +1,7 @@ + + \title{Test Plan} -\def \documentid {LEANOS-UVIE-UM-001} +\def \documentid {LEANOS-UVIE-TP-001} \date{Issue 0.1, May 1, 2017} \newcommand\affil[1]{\textsuperscript#1} @@ -25,30 +27,10 @@ \usepackage{biblatex} \addbibresource{../shared/bibliography.bib} -%% use pageref instead of pageref*, the latter only works -%% for cross-document referencing (architecture/requirements) -%% need to find a more universial solution at some point -\fancypagestyle{plain}{ % call style plain so it is used by chapter pages as well - \fancyhf{} - \fancyhead[R]{ - \fontspec{MyriadPro}\docdatever \\ - \vspace{2em} - Page \thepage\ of \pageref{LastPage} - } - - \fancyhead[C]{ - { - \fontspec{MyriadPro} - \documentid \\ - \vspace{.7em} - \doctitle - \vspace{.9em} - } - } - \fancyhead[L]{ - \ifalogo% - } -} +\rereadauxrequirementlabels + +\exportrequirements + \begin{document} @@ -66,6 +48,9 @@ \newpage +\chapter*{List of Requirements} +\the\requirementlist + \begin{versionhistory} \vhEntry{0.1}{01.05.2017}{AL}{Initial version} @@ -358,7 +343,6 @@ the specified goal. % -\section{Hardware Functions} diff --git a/Documentation/OS/testspecification/testspecification.tex b/Documentation/OS/testspecification/testspecification.tex new file mode 100644 index 0000000000000000000000000000000000000000..54fa8e2846bb468386e9c2dd5fb1825e875fae79 --- /dev/null +++ b/Documentation/OS/testspecification/testspecification.tex @@ -0,0 +1,217 @@ + + +\title{Test Specification} +\def \documentid {LEANOS-UVIE-TS-001} +\date{Issue 0.2, May 2, 2016} + +\newcommand\affil[1]{\textsuperscript#1} + +\def\preparedby {Armin Luntzer\affil{1}} +\def\checkedby {Roland Ottensamer\affil{1}} +\def\approvedby {Franz Kerschbaum\affil{1}} + +\def\affiliations{ + \affil{1} Department of Astrophysics, University of Vienna +} + +\input{../shared/template/univie.tex} +\input{../shared/template/titlepage.tex} +\input{../shared/template/traceability.tex} +\input{../shared/glossary.tex} + +\usepackage{vhistory} + +\usepackage{biblatex} +\addbibresource{../shared/bibliography.bib} + + +\externaldocument[REQ-]{../testplan/testplan} +\input{../testplan/requirements.list} + + +\rereadauxdesignlabels + + +\begin{document} + + +\setmainfont{MyriadPro-SemiCondensed} +\uvietitlepage% +{Lean OS --\\ An operating system for the SSDP}% +{\doctitle}% +{../shared/images/logo2.pdf} +\setmainfont{MyriadPro} + +\approvalpage + +\tableofcontents +\newpage + + +\chapter*{List of Specified Tests} +\label{listoftests} +\the\designlist + + +\begin{versionhistory} + \vhEntry{0.1}{01.05.2017}{AL}{Initial version} +\end{versionhistory} + + +\chapter{Introduction} + + +\section{Purpose of the Document} + +The test plan for the the LeanOS operating system is defined in +\cite{leanosTP}.\\ +\\ + +\noindent +This test plan includes acceptance tests where the integrated operating +system is subjected to tests in its operational environment.\\ + +\noindent +This document specifies the acceptance tests for LeanOS.\\ + +\noindent +A test is specified by defining the: +\begin{itemize} + \item pre-conditions for the test + \item hardware baseline + \item system configuration + \item checks to be performed + \item pass/fail criterea +\end{itemize} + + + +\section{Test Overview} + +A list of tests specified in this document is available in chapter: +\nameref{listoftests} + + +\chapter{Applicable and Reference Documents} % does not break automatically for some reason + +\printbibliography[heading=none] + + +\chapter{Terms, Definitions and Abbreviated Items} + +\printglossary[type=acronym] +\printglossary[type=main, style=altlist] + + +\chapter{Test Specification} + +\section{Unit and Integration Tests} + +\design{UIT-0001} +{Test Implementation}{% +For each software component or module, a corresponding unit or integration test +program is implemented by means of an adapted version of the \emph{kselftest} +framework. A shared collection of mockup and stub functions is maintained in +order to facilitate testing. +}% +{\meetsreq{UIT-0001, UITE-0001}}{} + +{Test Coverage}{% +All implemented unit tests deliver 100\% statement, decision and condition +coverage. Any deviations are justified as part of the unit test implementation. +}% +{\meetsreq{SCC-0004}}{} + +\design{UIT-0002} +{Test Suite}{% +All unit and integration tests, along with stub and mockup functions are stored +in the LeanOS source tree directory \mbox{\emph{tools/testing/unittest/}}. +}% +{\meetsreq{UIT-0002, UITE-0001}}{} + +\design{UIT-0003} +{Test Exection}{% +The collection of unit and integration tests is executable from the specified +source directory via the \emph{make} command. +}% +{\meetsreq{UIT-0003}}{} + + +\design{UIT-0004} +{Test Results}{% +The test executables generate human readable text output summarising the number, +types and outcome of each test performed. +}% +{\meetsreq{UIT-0004}}{} + + +\design{UIT-0005} +{Automated Testing}{% +The test executables report failed tests as shell exit codes, so the outcome +can be detected by an external test program such as \emph{git bisect}. +}% +{\meetsreq{UIT-0005}}{} + + + + +\section{Hardware-Software Tests} + +\design{HST-0001} +{Test Implementation}{% +For each software component or module that neeeds verification in a hardware +environment, a test program is implemented. +}% +{\meetsreq{HST-0001}}{Since these tests typically involve more complex control % +via other tools (such as \emph{grmon} or \gls{SpaceWire} interfaces), they are % +implemented as shell scripts that set up the required configuration and % +executes the test on the target hardware. % +} + + +\design{HST-0002} +{Test Suite}{% +All hardware-software tests are stored in the LeanOS source +tree directory \mbox{\emph{tools/testing/hwtests/}}.% +}% +{\meetsreq{HST-0002}}{} + + +\design{HST-0003} +{Test Results}{% +The test executables generate human readable text output summarising the number, +types and outcome of each test performed. +}% +{\meetsreq{HST-0003}}{} + + +\design{HST-0004} +{Automated Testing}{% +The test executables report failed tests as shell exit codes, so the outcome +can be detected by an external test program such as \emph{git bisect}. +}% +{\meetsreq{HST-0004}}{} + + +\design{SCC-0001} +{Code Coverage}{% +Statement, decision and condition coverage is determined via \emph{gcov}. +A \emph{make} target \emph{coverage\_test} is available in the \emph{Makefile} +of the unit test directory of the LeanOS source tree. +Human-readable reports are placed in the respective subdirectories for each +individual unit test. +}% +{\meetsreq{SCC-0001, SCC-0002, SCC-0003}}{} + + + +\chapter{Test Plan Requirements to Specification Traceability} + +\noindent +Functional requirements are always reference to their specifications, others +only as needed or for clarification. This is reflected in the traceability +matrix. + +\traceabilitymatrix + +\end{document}