diff --git a/Koli_2017/Koli_2017_Stanger.tex b/Koli_2017/Koli_2017_Stanger.tex index b5d8b63..7d5b1d7 100644 --- a/Koli_2017/Koli_2017_Stanger.tex +++ b/Koli_2017/Koli_2017_Stanger.tex @@ -1,8 +1,10 @@ \documentclass[sigconf, authordraft]{acmart} +\usepackage{tcolorbox} + % \title{(Mis)using unit testing to semi-automatically grade SQL schemas} -\title{Semi-automated grading of SQL schemas by (mis)use of database unit testing} +\title{Semi-automated grading of SQL schemas \\ by (mis)use of database unit testing} \author{Nigel Stanger} \orcid{orcid.org/0000-0003-3450-7443} \affiliation{ @@ -59,6 +61,75 @@ \section{Architecture} \label{sec-architecture} +% grey 184 184 184 (72%) +% green 46 161 31 +% red 146 23 29 +% grey text 177 177 177 (69%) +\tcbset{boxsep=0pt,boxrule=0pt,arc=0pt,left=0pt,right=0pt,top=0.5pt,bottom=0.5pt} +\definecolor{bg grey}{rgb}{0.72,0.72,0.72} +\begin{table} + \ttfamily\scriptsize + \begin{tabbing} + 0123\=\kill + ------------------------------------------------------------ \\ + \tcbox[colback=bg grey]{NOTE: Checking structure of table Product.} \\ + TEST: [[ Product ]] \\ + \> + OK \\ + +++ PASSED: Table Product exists. \\ + TEST: [[ Product.Product\_code ]] \\ + \> + OK \\ + ... \\ + +++ PASSED: Table Product contains all the expected columns. \\ + TEST: [[ Product.Product\_code: data type is NUMBER | INTEGER ]] \\ + \> + OK \\ + ... \\ + +++ PASSED: All columns of table Product have data types compatible with the\\ + specification. \\ + TEST: [[ Product.Product\_code precision and scale = 8 (with scale 0) ]] \\ + \> + OK \\ + ... \\ + +++ PASSED: All columns of table Product have lengths compatible with the \\ + specification. \\ + TEST: [[ Product.Product\_code nullability should be N ]] \\ + \> + OK \\ + ... \\ + +++ PASSED: All columns of table Product have the expected nullability. \\ + TEST: [[ Product PK ]] \\ + \> + OK \\ + +++ PASSED: Primary key of table Product exists. \\ + TEST: [[ Product PK: Product\_code ]] \\ + \> + OK \\ + +++ PASSED: Primary key of table Product includes (only) the expected \\ + columns. \\ + TEST: [[ Product check constraint PRODUCT\_STOCK\_INVALID ]] \\ + \> + OK \\ + ... \\ + +++ PASSED: All constraints of table Product that should be are explicitly \\ + named. \\ + NOTE: Testing constraints of table Product. \\ + TEST: [[ Product.Stock\_count accepts “0” ]] \\ + \> + OK \\ + TEST: [[ Product.Stock\_count accepts “99999” ]] \\ + \> + OK \\ + TEST: [[ Product.Restock\_level accepts “0” ]] \\ + \> - FAILED! Column Product.Restock\_level won’t accept legal value 0. \\ + Failed asserting that false is true. \\ + TEST: [[ Product.Restock\_level accepts “99999” ]] \\ + \> + OK \\ + TEST: [[ Product.Minimum\_level accepts “0” ]] \\ + \> - FAILED! Column Product.Minimum\_level won’t accept legal value 0. \\ + Failed asserting that false is true. \\ + TEST: [[ Product.Minimum\_level accepts “653” ]] \\ + \> + OK \\ + TEST: [[ Product.List\_price accepts “0” ]] \\ + \> + OK \\ + TEST: [[ Product.List\_price accepts “99999.99” ]] \\ + \> + OK \\ + --- FAILED: 2 of 8 legal values tested were rejected by a CHECK constraint. + \end{tabbing} + \caption{Example of output} +\end{table} + \section{Evaluation} \label{sec-evaluation}