add pdf report

This commit is contained in:
Ali Can Zeybek
2024-12-06 22:54:39 +03:00
parent 053cf1a6c5
commit ce724c1072
5 changed files with 236 additions and 9 deletions

View File

@@ -44,15 +44,15 @@ time take to generate this : 14.20 min (including song selection 😜 )
## Test cases ## Test cases
| Test Case | number_of_items | total_cost | delivery_time | Partition Type | Expected Outcome | | number_of_items | total_cost | delivery_time | Partition Type | Expected Outcome |
|-----------|-----------------|------------|---------------|------------------|---------------------------------| |-----------------|------------|---------------|------------------|---------------------------------|
| 1 | 3 | 100 | NEXT_DAY | All Valid | 25.00 | | 3 | 100 | NEXT_DAY | All Valid | 25.00 |
| 2 | 3 | 150 | SECOND_DAY | All Valid | 15.00 | | 3 | 150 | SECOND_DAY | All Valid | 15.00 |
| 3 | 4 | 100 | THIS_WEEK | All Valid | 0.00 | | 4 | 100 | THIS_WEEK | All Valid | 0.00 |
| 4 | 4 | 150 | NEXT_DAY | All Valid | 30.00 | | 4 | 150 | NEXT_DAY | All Valid | 30.00 |
| 5 | -1 | 100 | NEXT_DAY | Invalid Items | Exception | | -1 | 100 | NEXT_DAY | Invalid Items | Exception |
| 6 | 3 | -50 | SECOND_DAY | Invalid Cost | Exception | | 3 | -50 | SECOND_DAY | Invalid Cost | Exception |
| 7 | 3 | 100 | null | Invalid Delivery | Exception | | 3 | 100 | null | Invalid Delivery | Exception |
# Boundary Value # Boundary Value

35
report/report.aux Normal file
View File

@@ -0,0 +1,35 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II}Experiment 1}{1}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}Decision Table Testing}{1}{subsection.2.1}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces Test cases generated for decision table testing.\relax }}{1}{table.caption.1}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{tab:delivery_cost}{{I}{1}{Test cases generated for decision table testing.\relax }{table.caption.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Equivalence Testing}{1}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-B}1}Equivalence Partitions}{1}{subsubsection.2.2.1}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces Partitioning for input values with conditions and selected values.\relax }}{1}{table.caption.2}\protected@file@percent }
\newlabel{tab:partitioning}{{II}{1}{Partitioning for input values with conditions and selected values.\relax }{table.caption.2}{}}
\@writefile{lot}{\contentsline {table}{\numberline {III}{\ignorespaces Test cases generated for equivalence testing\relax }}{1}{table.caption.3}\protected@file@percent }
\newlabel{tab:valid_scenarios}{{III}{1}{Test cases generated for equivalence testing\relax }{table.caption.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {III}Boundary Value Testing}{1}{section.3}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {IV}{\ignorespaces Boundary values for input parameters.\relax }}{1}{table.caption.4}\protected@file@percent }
\newlabel{boundaries}{{IV}{1}{Boundary values for input parameters.\relax }{table.caption.4}{}}
\@writefile{lot}{\contentsline {table}{\numberline {V}{\ignorespaces Test cases generated for boundary value testing\relax }}{2}{table.caption.5}\protected@file@percent }
\newlabel{tab:test_cases}{{V}{2}{Test cases generated for boundary value testing\relax }{table.caption.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {III-}1}Test Cases}{2}{subsubsection.3.0.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Conclusion}{2}{section.4}\protected@file@percent }
\gdef \@abspage@last{2}

8
report/report.out Normal file
View File

@@ -0,0 +1,8 @@
\BOOKMARK [1][-]{section.1}{\376\377\000I\000n\000t\000r\000o\000d\000u\000c\000t\000i\000o\000n}{}% 1
\BOOKMARK [1][-]{section.2}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000\040\0001}{}% 2
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000D\000e\000c\000i\000s\000i\000o\000n\000\040\000T\000a\000b\000l\000e\000\040\000T\000e\000s\000t\000i\000n\000g}{section.2}% 3
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000E\000q\000u\000i\000v\000a\000l\000e\000n\000c\000e\000\040\000T\000e\000s\000t\000i\000n\000g}{section.2}% 4
\BOOKMARK [3][-]{subsubsection.2.2.1}{\376\377\000E\000q\000u\000i\000v\000a\000l\000e\000n\000c\000e\000\040\000P\000a\000r\000t\000i\000t\000i\000o\000n\000s}{subsection.2.2}% 5
\BOOKMARK [1][-]{section.3}{\376\377\000B\000o\000u\000n\000d\000a\000r\000y\000\040\000V\000a\000l\000u\000e\000\040\000T\000e\000s\000t\000i\000n\000g}{}% 6
\BOOKMARK [2][-]{subsubsection.3.0.1}{\376\377\000T\000e\000s\000t\000\040\000C\000a\000s\000e\000s}{section.3}% 7
\BOOKMARK [1][-]{section.4}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 8

BIN
report/report.pdf Normal file

Binary file not shown.

184
report/report.tex Normal file
View File

@@ -0,0 +1,184 @@
\documentclass[journal,twoside]{IEEEtran}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{cite}
\usepackage{multirow}
\usepackage{caption}
\captionsetup[table]{skip=10pt} % Adjust the value of skip as needed
% Custom title setup
\newcommand{\hwtitle}[1]{
\section*{\centering #1}
}
\begin{document}
% Title and author
\title{Experiment Results}
\author{Ali Can Zeybek, Furkan Akinci}
\markboth{Experiment Results}{Ali Can Zeybek, Furkan Akinci}
\maketitle
% Introduction Section
\section{Introduction}
In this report we implemented and tested two given programs. Decision table testing, equivalence testing and boundary testing done for each and compared a) different testing techniques for same application b) same testing technique for different programs.
% Experiment 1 Section
\section{Experiment 1}
In this program there are 3 input variables as `number\_of\_items` , `total\_cost` and `delivery\_time`. First two variables are numberic while the third parameter is an enum type.
\subsection{Decision Table Testing}
Decision tree testing for program 1 generated 12 different test cases, it is expected since for inputs `number\_of\_items` and `total\_cost` generate two possible paths of execution,
\bigskip
\resizebox{\columnwidth}{!}{$
\text{Branching due to }(\#items) =
\begin{cases}
\text{True}, & \text{if } number\_of\_items \leq 30, \\
\text{False}, & \text{if } number\_of\_items > 30.
\end{cases}
$}
\bigskip
\resizebox{\columnwidth}{!}{$
\text{Branching due to }(total\_cost) =
\begin{cases}
\text{True}, & \text{if } number\_of\_items \leq 100, \\
\text{False}, & \text{if } number\_of\_items > 100.
\end{cases}
$}
\bigskip
while `delivery\_time` can generate 3 values as `NEXT\_DAY`, `SECOND\_DAY` and `THIS\_WEEK`. Hence,
2 x 2 x 3 = 12.
\begin{table}[ht]
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{number\_of\_items} & \textbf{total\_cost} & \textbf{delivery\_time} & \textbf{Expected Outcome} \\ \hline
$\leq 3$ & $\leq 100$ & NEXT\_DAY & 25 \\ \hline
$\leq 3$ & $\leq 100$ & SECOND\_DAY & 10 \\ \hline
$\leq 3$ & $\leq 100$ & THIS\_WEEK & number\_of\_items * 1.50 \\ \hline
$\leq 3$ & $> 100$ & NEXT\_DAY & 35.00 \\ \hline
$\leq 3$ & $> 100$ & SECOND\_DAY & 15.00 \\ \hline
$\leq 3$ & $> 100$ & THIS\_WEEK & 10.00 \\ \hline
$> 3$ & $\leq 100$ & NEXT\_DAY & number\_of\_items * 6.00 \\ \hline
$> 3$ & $\leq 100$ & SECOND\_DAY & number\_of\_items * 2.50 \\ \hline
$> 3$ & $\leq 100$ & THIS\_WEEK & 0.00 \\ \hline
$> 3$ & $> 100$ & NEXT\_DAY & number\_of\_items * 7.50 \\ \hline
$> 3$ & $> 100$ & SECOND\_DAY & number\_of\_items * 3.50 \\ \hline
$> 3$ & $> 100$ & THIS\_WEEK & number\_of\_items * 2.50 \\ \hline
\end{tabular}}
\caption{Test cases generated for decision table testing.}
\label{tab:delivery_cost}
\end{table}
The total test case generation and implementation took 55 minutes. While running 12 test cases took 0.008 seconds \footnote{Test execution times are reported by mvn}, running the full `mvn test` command took 4.59 seconds \footnote{`time mvn test` command used for timekeeping} \footnote{Tested setup has 32G ram Ryzen 7 5800X running Debian 12 and openjdk 17.0.13 }
\subsection{Equivalence Testing}
For equivalance testing valid and invalid partitions of input variable domains are selected.
\subsubsection{Equivalence Partitions}
Following are the valid and invalid partitions of program 1.
\begin{table}[ht]
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{Input} & \textbf{Partition Type} & \textbf{Partition Condition} & \textbf{Selected Value} \\ \hline
number\_of\_items & Valid & $\leq 3$ & 3 \\ \hline
& Valid & $> 3$ & 4 \\ \hline
& Invalid & $\leq 0$ & -1 \\ \hline
total\_cost & Valid & $\leq 100$ & 100 \\ \hline
& Valid & $> 100$ & 101 \\ \hline
& Invalid & $< 0$ & -2 \\ \hline
delivery\_time & Valid & NEXT\_DAY, SECOND\_DAY, THIS\_WEEK & SECOND\_DAY \\ \hline
& Invalid & Null or unsupported value & null \\ \hline
\end{tabular}}
\caption{Partitioning for input values with conditions and selected values.}
\label{tab:partitioning}
\end{table}
\begin{table}[ht]
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{Total Cost} & \textbf{Number of Items} & \textbf{Shipping Time} & \textbf{Expected Outcome} \\ \hline
100.0 & 3 & NEXT\_DAY & 25.0 \\ \hline
150.0 & 3 & SECOND\_DAY & 15.0 \\ \hline
100.0 & 4 & THIS\_WEEK & 0.0 \\ \hline
150.0 & 4 & NEXT\_DAY & 30.0 \\ \hline
100.0 & -1 & NEXT\_DAY & Exception \\ \hline
-50.0 & 3 & SECOND\_DAY & Exception \\ \hline
100.0 & 3 & null & Exception \\ \hline
\end{tabular}}
\caption{Test cases generated for equivalence testing}
\label{tab:valid_scenarios}
\end{table}
The total test case generation and implementation took 40 minutes. While running 7 test cases took 0.028 seconds , running the full `mvn test` command took 6.49 seconds.
\section{Boundary Value Testing}
For boundary value testing `delivery\_time` does not eligable since enum's do not have boundaries. For other two variables, values just before, exactly and just above valid input range and logical branching boundaries are selected. Those values are {-1,0,1} for both `number\_of\_items` and `total\_cost` while branching boundary values are {3,4} and {100,101} respectively as can seen in \autoref{boundaries}
\begin{table}[ht]
\centering
\begin{tabular}{|l|c|}
\hline
\textbf{Input} & \textbf{Boundaries} \\ \hline
\multirow{5}{*}{number\_of\_items}
& -1 \\ \cline{2-2}
& 0 \\ \cline{2-2}
& 1 \\ \cline{2-2}
& 3 \\ \cline{2-2}
& 4 \\ \hline
\multirow{5}{*}{total\_cost}
& -1 \\ \cline{2-2}
& 0 \\ \cline{2-2}
& 1 \\ \cline{2-2}
& 100 \\ \cline{2-2}
& 101 \\ \hline
delivery\_time & n/a \\ \hline
\end{tabular}
\caption{Boundary values for input parameters.}
\label{boundaries}
\end{table}
\subsubsection{Test Cases}
Using above boundaries following test scenarios generated.
\begin{table}[ht]
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|c|c|c|c|c|}
\hline
\textbf{number\_of\_items} & \textbf{total\_cost} & \textbf{delivery\_time} & \textbf{Partition Type} & \textbf{Expected Outcome} \\ \hline
3 & 100 & NEXT\_DAY & All Valid & 25.00 \\ \hline
3 & 101 & SECOND\_DAY & All Valid & 15.00 \\ \hline
4 & 100 & THIS\_WEEK & All Valid & 0.00 \\ \hline
4 & 101 & NEXT\_DAY & All Valid & 30.00 \\ \hline
-1 & 100 & NEXT\_DAY & Invalid Items & Exception \\ \hline
3 & -50 & SECOND\_DAY & Invalid Cost & Exception \\ \hline
3 & 100 & null & Invalid Delivery & Exception \\ \hline
\end{tabular}}
\caption{Test cases generated for boundary value testing}
\label{tab:test_cases}
\end{table}
The total test case generation and implementation took 24 minutes. While running 9 test cases took 0.026 seconds , running the full `mvn test` command took 7.01 seconds.
% Conclusion Section
\section{Conclusion}
\end{document}