This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
kse-02/report/main.tex

134 lines
5.1 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

%!TEX TS-program = pdflatexmk
\documentclass{scrartcl}
\usepackage{algorithm}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{booktabs}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype}
\usepackage{rotating}
\usepackage{graphicx}
\usepackage{paralist}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{pbox}
\usepackage{enumitem}
\usepackage{colortbl}
\usepackage{pifont}
\usepackage{xspace}
\usepackage{url}
\usepackage{tikz}
\usepackage{fontawesome}
\usepackage{lscape}
\usepackage{listings}
\usepackage{color}
\usepackage{anyfontsize}
\usepackage{comment}
\usepackage{soul}
\usepackage{multibib}
\usepackage{float}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage[margin=2.5cm]{geometry}
\title{Knowledge Search \& Extraction \\ Project 02: Python Test Generator}
\author{Claudio Maggioni}
\date{}
\begin{document}
\maketitle
\subsection*{Section 1 - Instrumentation}
Report and comment the instrumentation of the code (e.g. number of files, number of functions, number of branches).
\begin{table} [H]
\centering
\begin{tabular}{lr}
\toprule
\textbf{Type} & \textbf{Number} \\
\midrule
Python Files & 10 \\
Function Nodes & 12 \\
Comparison Nodes & 44 \\
\bottomrule
\end{tabular}
\caption{Count of files and nodes found.}
\label{tab:count1}
\end{table}
\subsection*{Section 2: Fuzzer test generator}
Describe and comment the steps to generate test cases using Fuzzer (include any hyper parameter used during the process)
\subsection*{Section 3: Genetic Algorithm test generator}
Describe and comment the steps to generated test cases using Genetic Algorithm (include any hyper parameter used during the process)
\subsection*{Section 4: Statistical comparison of test generators}
Report and comment the results of the experimental procedure:
\paragraph{For each benchmark program P:}
\begin{itemize}
\item Repeat the following experiment N times (e.g., with N = 10):
\begin{itemize}
\item Generate random test cases for P using the GA generator
\item Measure the mutation score for P
\item Generate search based test cases for P using the Fuzzer
\item Measure the mutation score for P
\end{itemize}
\item Visualize the N mutations score values of Fuzzer and GA using boxplots
\item Report the average mutation score of Fuzzer and GA
\item Compute the effect size using the Cohens d effect size measure
\item Compare the N mutation score values of Fuzzer vs GA using the Wilcoxon statistical test
\end{itemize}
\begin{figure}[H]
\begin{center}
\includegraphics[width=\linewidth]{../out/mutation_scores}
\caption{Distributions of \textit{mut.py} mutation scores over the generated benchmark tests suites
using the fuzzer and the genetic algorithm.}\label{fig:mutation-scores}
\end{center}
\end{figure}
\begin{figure}[H]
\begin{center}
\includegraphics[width=\linewidth]{../out/mutation_scores_mean}
\caption{\textit{mut.py} Mutation score average over the generated benchmark tests suites
using the fuzzer and the genetic algorithm.}\label{fig:mutation-scores-mean}
\end{center}
\end{figure}
\begin{table}[H]
\centering
\begin{tabular}{lrrp{3.5cm}r}
\toprule
\textbf{File} & \textbf{$E(\text{Fuzzer})$} & \textbf{$E(\text{Genetic})$} & \textbf{Cohen's $|d|$} & \textbf{Wilcoxon $p$} \\
\midrule
check\_armstrong & 58.07 & 93.50 & 2.0757 \hfill Huge & 0.0020 \\
railfence\_cipher & 88.41 & 87.44 & 0.8844 \hfill Very large & 0.1011 \\
longest\_substring & 77.41 & 76.98 & 0.0771 \hfill Small & 0.7589 \\
common\_divisor\_count & 76.17 & 72.76 & 0.7471 \hfill Large & 0.1258 \\
zellers\_birthday & 68.09 & 71.75 & 1.4701 \hfill Huge & 0.0039 \\
exponentiation & 69.44 & 67.14 & 0.3342 \hfill Medium & 0.7108 \\
caesar\_cipher & 60.59 & 61.20 & 0.3549 \hfill Medium & 0.2955 \\
gcd & 59.15 & 55.66 & 0.5016 \hfill Large & 0.1627 \\
rabin\_karp & 27.90 & 47.55 & 2.3688 \hfill Huge & 0.0078 \\
anagram\_check & 23.10 & 7.70 & $\infty$ \hfill Huge & 0.0020 \\
\bottomrule
\end{tabular}
\caption{Statistical comparison between fuzzer and genetic algorithm test case generation in terms of mutation
score as reported by \textit{mut.py} over 10 runs, sorted by genetic mutation score. The table reports run
means, the wilcoxon paired test p-value and the Cohen's $d$ effect size for each file in the
benchmark.}\label{tab:stats}
\end{table}
\end{document}