Skip to content
Snippets Groups Projects
Commit 5523f18e authored by Justin's avatar Justin
Browse files

Brought requirement document up to revision 1 and updated it by fixing many issues with it

parent cf1edc8c
No related branches found
No related tags found
No related merge requests found
......@@ -16,4 +16,6 @@ Design Document /designdoc/designdocument.pdf
Project Generated Documentation (MIS) /PicPuzzle/doxygen/html/index.html
GanttProject Source File /designdoc/GanttProject.gan
\ No newline at end of file
GanttProject Source File /designdoc/GanttProject.gan
Test Results /testresults/testresults.pdf
\ No newline at end of file
No preview for this file type
......@@ -32,7 +32,7 @@
\begin{document}
\title{Software Requirements for Pic-Puzzle}
\title{Software Requirements for PicPuzzle}
\author{Justin Kapinski, Boyun Deng, Yuchen Liu}
\date{\today}
......@@ -44,12 +44,11 @@
\listoffigures
\listoftables
\newpage
\section{Revision History}
\begin{description}
\item[Revision 1.0] Nov 22, 2015: Fixed spelling and grammar and updated requirements
\item[Revision 0.2] Oct 7, 2015: Filled in Functional Requirements
\item[Revision 0.1] Oct 6, 2015: Filled in most sections other than Functional and Non-functional requirements
\item[Revision 0] Oct 5, 2015: Created document
......@@ -61,9 +60,9 @@
\subsection{Purpose of the Project}
The purpose of the Pic-Puzzle is to emulate a type of logic puzzle
called Nonograms on the computer. Anything that can be done with
Nonograms on paper should be able to be done in Pic-Puzzle. This project
The purpose of PicPuzzle is to emulate a type of logic puzzle
called a Nonogram on the computer. Anything that can be done with
Nonograms on paper should be able to be done in PicPuzzle. This project
will let users have fun while working on a logic puzzle.
\subsection{The Stakeholders}
......@@ -103,8 +102,8 @@ PicrossEngine. This project was also created to replicate Nonograms.
\subsection{Relevant Facts and Assumptions}
The project this one will be replicating, PicrossEngine, is very poorly
documented. In addition, it has a very simple design that is messy and
not planned out. Due to these factors, our project will not reuse any
documented. In addition, it has a very simple design of the code that is messy and
not well planned out. Due to these factors, our project will not reuse any
code or documentation.
The completed project will assume that the player knows how to play a
......@@ -113,101 +112,85 @@ for an in game manual.
\section{Functional Requirements}
Requirement: 1 Requirement Type: 9 Event/Use Case: 1
Description: The layout of the game should be a big square with n*n small squares in it. On the top of the big square, there should be numbers for each column to indicate how many squares that column have will be black against the background colour. And also there should be numbers for each row on the side of the big square to do the same thing for columns.
Rational: That is how the original game works.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 1 Requirement Type: 9 Event/Use Case: 1 \\
Description: The layout of the game should be a big square with n*n small squares in it. On the top of the big square, there should be numbers for each column to indicate how many squares that column have will be black against the background colour. And also there should be numbers for each row on the side of the big square to do the same thing for columns. \\
Rational: That is how the original game works. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 3 Customer Dissatisfaction: 5
Requirement: 2 Requirement Type: 9 Event/Use Case: 2
Description: If the players click on the right small square that the program designed to be, the colour of the small square will turn to black.
Rational: That is how the original game works.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 2 Requirement Type: 9 Event/Use Case: 2 \\
Description: If the player clicks on the right square, the colour of the square will turn black. \\
Rational: That is how the original game works. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 4 Customer Dissatisfaction: 5
Requirement: 3 Requirement Type: 9 Event/Use Case: 3
Description: If the players click on the wrong small square that the program designed to be, the colour of the small square will not change.
Rational: That is how the original game works.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 3 Requirement Type: 9 Event/Use Case: 3 \\
Description: If the player clicks on the wrong square, the colour of the square will not change. \\
Rational: That is how the original game works. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 3 Customer Dissatisfaction: 5
Requirement: 4 Requirement Type: 9 Event/Use Case: 4
Description: If the players click on the small squares that are already black, the colour of the small squares will not change.
Rational: That is how the original game works.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 4 Requirement Type: 9 Event/Use Case: 4 \\
Description: If the player clicks on the squares that are already black, the colour of the squares will not change. \\
Rational: That is how the original game works. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 3 Customer Dissatisfaction: 5
Requirement: 5 Requirement Type: 9 Event/Use Case: 5
Description: If the players click on the small squares that are already black, the colour of the small squares will not change.
Rational: That is how the original game works.
Originator: Requirement Analyst
Fit Criterion:
Customer Satisfaction: 3 Customer Dissatisfaction: 5
Requirement: 6 Requirement Type: 9 Event/Use Case: 6
Description: If the players successfully finished the graph, the program will pop up messages to tell the players they finished one game.
Rational: Players will know when they completed the graph.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 5 Requirement Type: 9 Event/Use Case: 5 \\
Description: If the player successfully finishes a level, the program will pop up a message to tell the player they finished it. \\
Rational: Players need to know when they completed a level. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 4 Customer Dissatisfaction: 5
Requirement: 7 Requirement Type: 9 Event/Use Case: 7
Description: After popping up messages to tell the players they finished one game, there will be a button “next” for players to clicl, so they can go the next game.
Rational: Players can choose to go the next game.
Originator: Requirement Analyst
Fit Criterion:
Customer Satisfaction: 4 Customer Dissatisfaction: 5
Requirement: 8 Requirement Type: 9 Event/Use Case: 8
Description: After popping up messages to tell the players they can continue to next game, there will be a next button for players to click, so they can continue the next game.
Rational: Players can continue to next game if they want.
Originator: Requirement Analyst
Fit Criterion:
Requirement: 6 Requirement Type: 9 Event/Use Case: 6
Description: After popping up a message to tell the players they finished one level, there will be a button “next” for players to click, so they can go the next level.
Rational: Players need to be able to choose to go the next level. \\
Originator: Requirement Analyst \\
Fit Criterion: \\
Customer Satisfaction: 4 Customer Dissatisfaction: 5
Requirement: 9 Requirement Type: 9 Event/Use Case: 9
Description: After the players finish one game, they should be able to click on the next button on the interface to play another new game.
Rational: Players will know how to continue the next game.
Fit Criterion:
Requirement: 7 Requirement Type: 9 Event/Use Case: 7 \\
Description: After the player finishes one level, they should be able to click on the next button on the interface to play the next level. \\
Rational: Players need to be able to choose to go the next level. \\
Fit Criterion: \\
Customer Satisfaction: 4 Customer Dissatisfaction: 5
Requirement: 10 Requirement Type: 9 Event/Use Case: 10
Description: After the players finish all the games the program have, the program will pop up messages to tell the players they finished all the games.
Rational: Players will know when they finished all the games.
Fit Criterion:
Requirement: 8 Requirement Type: 9 Event/Use Case: 8 \\
Description: After the player finishes all the level the program has, the program will pop up a message to tell the player they finished all the levels. \\
Rational: Players need to be able to do something when the game is over. \\
Fit Criterion: \\
Customer Satisfaction: 5 Customer Dissatisfaction: 5
Requirement: 11 Requirement Type: 9 Event/Use Case: 11
Description: After popping up messages to tell the players they finished all the games, there will be another message to tell the players they can either close the game or go back to the beginning to play the game again.
Rational: Players will know what they can do when they finished all the games.
Fit Criterion:
Requirement: 9 Requirement Type: 9 Event/Use Case: 9 \\
Description: After popping up messages to tell the player they finished all the levels, there will be a button that the player can click to restart the game. \\
Rational: Players need to be able to do something when the game is over. \\
Fit Criterion: \\
Customer Satisfaction: 5 Customer Dissatisfaction: 5
Requirement: 12 Requirement Type: 9 Event/Use Case:12
Description: After popping up messages to tell the players they can either close the game or go back to the beginning to play the game again, there will be two buttons (“close” and “next”) for players to click.
Rational: Players can choose close the game or play the game again.
Fit Criterion:
Requirement: 10 Requirement Type: 9 Event/Use Case:10 \\
Description: When the restart button is clicked, the game restarts. \\
Rational: Players need to be able to do something when the game is over. \\
Fit Criterion: \\
Customer Satisfaction: 5 Customer Dissatisfaction: 5
\section{Non-functional Requirements}
\subsection{Look and Feel Requirements}
Pic-Puzzle's GUI should be look similar to PicrossEngine's pictured below.
PicPuzzle's GUI should be look similar to PicrossEngine's pictured below.
\begin{figure}[h]
\caption{Example of PicrossEngine's GUI}
......@@ -262,6 +245,7 @@ with the license of the project.
\begin{itemize}
\item The investigation into whether or not an external library will be necessary for the GUI is not complete.
\item The investigation is now complete and there is no need for an external library to be used.
\item It is unclear if the implementation will require special care to work on multiple platforms.
\end{itemize}
......@@ -306,8 +290,8 @@ Not applicable to this project.
\subsection{User Documentation and Training}
The documentation will include, the Problem Statement, Requirements
Document, Design Document, Test Plan, Test Report, User's Guide, and the
projects source code. This documentation will be completed at the same
Document, Design Document, Test Plan, Test Report, and the
project's source code. This documentation will be completed at the same
time the project is completed.
\subsection{Waiting Room}
......
File added
\documentclass[12pt]{article}
\usepackage{indentfirst}
\usepackage[nottoc,numbib]{tocbibind}
\usepackage{graphicx}
\usepackage{xcolor} % for different colour comments
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black
}
%% Comments
\newif\ifcomments\commentstrue
\ifcomments
\newcommand{\authornote}[3]{\textcolor{#1}{[#3 ---#2]}}
\newcommand{\todo}[1]{\textcolor{red}{[TODO: #1]}}
\else
\newcommand{\authornote}[3]{}
\newcommand{\todo}[1]{}
\fi
\newcommand{\wss}[1]{\authornote{magenta}{SS}{#1}}
\newcommand{\hm}[1]{\authornote{blue}{HM}{#1}} %Hediyeh
\newcommand{\tz}[1]{\authornote{blue}{TZ}{#1}} %Tahereh
\newcommand{\pl}[1]{\authornote{blue}{PL}{#1}} %Peng
\newcounter{TestNumberCounter}
\newcommand{\resettestcounter}{\setcounter{TestNumberCounter}{0}}
\newcommand{\testnumber}{\arabic{TestNumberCounter}\stepcounter{TestNumberCounter}}
\begin{document}
\title{Test Plan for Pic-Puzzle}
\author{Justin Kapinski, Boyun Deng, Yuchen Liu}
\date{\today}
\maketitle
\setlength{\parskip}{1em}
\tableofcontents
\listoftables
\newpage
\section{Revision History}
\begin{description}
\item[Revision 0.1] Nov 22, 2015: Initial version
\item[Revision 0] Nov 22, 2015: Created document
\end{description}
\newpage
\section{Test Results}
The tests themselves are outlined in the test plan. For more detail
about each test look up a test by its test number in the test plan.
\subsection{Nonogram Image Loader}
These tests were performed by JUnit and were automated unit tests. Some tests in this test suite test the robustness of the image loader.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Nonogram Image Loader Tests} \label{tab:title}
\begin{tabular}{ | l | p{5cm} | }
\hline
Test Case & Passed \\ \hline
4.1.\testnumber & PASSED \\ \hline
4.1.\testnumber & PASSED \\ \hline
4.1.\testnumber & PASSED \\ \hline
4.1.\testnumber & PASSED \\ \hline
\end{tabular}
\end{table}
\end{center}
\subsection{Nonogram Number Generator}
These tests were performed by JUnit and were automated unit tests. Some of the tests in this suite test the robustness of the number generator.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Nonogram Number Generator Tests} \label{tab:title}
\begin{tabular}{ | l | p{5cm} | }
\hline
Test Case & Passed \\ \hline
4.2.\testnumber & PASSED \\ \hline
4.2.\testnumber & PASSED \\ \hline
4.2.\testnumber & PASSED\\ \hline
\end{tabular}
\end{table}
\end{center}
\subsection{GUI Correctness}
These tests are to make sure the GUI performs according to the specification. They are performed manually.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{GUI Correctness Test} \label{tab:title}
\begin{tabular}{ | l | p{5cm} |}
\hline
Test Case & Passed \\ \hline
4.3.\testnumber & PASSED \\ \hline
4.3.\testnumber & PASSED \\ \hline
4.3.\testnumber & PASSED \\ \hline
4.3.\testnumber & PASSED \\ \hline
\end{tabular}
\end{table}
\end{center}
\subsection{Game Loading Time}
This is a performance test to make sure the game starts up in a timely manner. This test is test 5.1.0.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Game Loading Time Test} \label{tab:title}
\begin{tabular}{ | l | p{5cm} |}
\hline
Trial & Time (Seconds) \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.2 \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.1 \\ \hline
\end{tabular}
\end{table}
\end{center}
Average Time: 0.12 seconds \\
The average of the trials is much below the time required to be considered a pass which is 1 second. This means the test passed.
\subsection{GUI Response Time}
This is a performance test to make sure the GUI is responsive to the users actions. This test is test 5.2.0.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{GUI Response Test} \label{tab:title}
\begin{tabular}{ | l | p{5cm} |}
\hline
Trial & Time (Seconds) \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.1 \\ \hline
\testnumber & 0.2 \\ \hline
\end{tabular}
\end{table}
\end{center}
Average Time: 0.12 seconds \\
The average of the trials is much lower lower than what is considered a pass which is 0.5 seconds. This means the test passed.
\subsection{Portability Test}
This test involves manually running the game on multiple operating systems. Success is defined as the game runs with no issues.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Portability Test} \label{tab:title}
\begin{tabular}{ | l | p{5cm}| p{5cm} |}
\hline
Test Case & Operating System & Passed \\ \hline
5.3.\testnumber & Windows & PASSED \\ \hline
5.3.\testnumber & OS X & PASSED \\ \hline
5.3.\testnumber & Linux & PASSED \\ \hline
\end{tabular}
\end{table}
\end{center}
\subsection{Content Updating Test}
This test makes sure that when new images are added, the game can automaticallty find and use them. This is test 5.4.0.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Content Updating Test} \label{tab:title}
\begin{tabular}{ | l | p{5cm}| p{5cm} |}
\hline
Image Number & Image & Loaded \\ \hline
\testnumber & 4.png & Yes \\ \hline
\testnumber & 5.bmp & Yes \\ \hline
\testnumber & 6.png & Yes \\ \hline
\end{tabular}
\end{table}
\end{center}
All of the images were loaded regardless of their format so this test passed.
\subsection{Game Logic Test}
These are manual tests that make sure that the game is behaving correctly by correctly responding to the users input.
\resettestcounter
\begin{center}
\begin{table}[h]
\centering
\caption{Game Logic Tests} \label{tab:title}
\begin{tabular}{ | l | p{5cm} | }
\hline
Test Case & Passed \\ \hline
5.5.\testnumber & PASSED \\ \hline
5.5.\testnumber & PASSED \\ \hline
5.5.\testnumber & PASSED \\ \hline
\end{tabular}
\end{table}
\end{center}
\subsection{Code Coverage}
Code coverage was determined to be infeasible for this project. Many
tests need to be run manually and combining this with code coverage
would give the appearance of a very low code coverage for the automated
test cases. Due to this it was determined to not be a useful metric for
testing this project.
\section{Test Summary}
\subsection{Changes}
Our testing led to the discovery of a bug in the Nonogram Image Loader
module. The bug was that the loader was not sensitive enough and could
never detect black or white. This has since been fixed.
\end{document}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment