From a24c766efd65a88d7635539d2552d80a9a58031b Mon Sep 17 00:00:00 2001 From: Armin Luntzer <armin.luntzer@univie.ac.at> Date: Tue, 23 May 2017 17:51:52 +0200 Subject: [PATCH] * import test specification * ensure test plan and specification cross referencing * minor updates --- Documentation/OS/shared/bibliography.bib | 7 + Documentation/OS/testplan/testplan.tex | 36 +-- .../testspecification/testspecification.tex | 217 ++++++++++++++++++ 3 files changed, 234 insertions(+), 26 deletions(-) create mode 100644 Documentation/OS/testspecification/testspecification.tex diff --git a/Documentation/OS/shared/bibliography.bib b/Documentation/OS/shared/bibliography.bib index d054ddb..b68b7b7 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 eb4d3d3..b2723bc 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 0000000..54fa8e2 --- /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} -- GitLab