Skip to content
Snippets Groups Projects
Commit e41394d6 authored by Nick Kozel's avatar Nick Kozel
Browse files
parents a0f46008 9489ca24
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -41,6 +41,7 @@
October 22 & 1.0 & Adding sections 1,2, and 7\\
October 24 & 1.1 & Adding functional req tests\\
October 25 & 1.2 & Adding non functional req tests.\\
October 30 & 1.3 & Adding Unit tests, and automated functional tests\\
\bottomrule
\end{tabularx}
\end{table}
......@@ -53,9 +54,9 @@ This document describes the test plan for the Gifitti application developed for
\section{General Information}
\subsection{Purpose}
The purpose of the testing plan is to establish a set of tests that will test the product in its entiretiy to ensure that it fufills the intendend purpose. This would be accomplished through verifying if Gifitti satisfies the different functional and non-functional requirements that were assigned to it. Having test plans for any product is essential to be able to understand how well the product is satisfying the clients needs and if there are rooms for improvement.
The purpose of the testing plan is to establish a set of tests that will test the product in its entirety to ensure that it fulfills the intended purpose. This would be accomplished through verifying if Gifitti satisfies the different functional and non-functional requirements that were assigned to it. Having test plans for any product is essential to be able to understand how well the product is satisfying the clients needs and if there is room for improvement.
\subsection{Scope}
This testing plan is utilizing different testing methods, automated and user created, and various techniques, black box and white box testing, to establish if the project has any need of improvement. Two different products will be analyized through these tests, the Proof of Concept and the first iteration of the final product. Proof of Concept will be tested to ensure that a basic representation of the product was demonstrated while the requirements should be tested when the first iteration of the final product is completed.
This testing plan is utilizing different testing methods, automated and user created, and various techniques, black box and white box testing, to establish if the project has any need for improvement. Two different products will be analyzed through these tests, the Proof of Concept and the first iteration of the final product. Proof of Concept will be tested to ensure that a basic representation of the product was demonstrated while the requirements should be tested when the first iteration of the final product is completed.
\subsection{Acronyms, Abbreviations, and Symbols}
......@@ -66,8 +67,11 @@ This testing plan is utilizing different testing methods, automated and user cre
\toprule
\textbf{Abbreviation} & \textbf{Definition} \\
\midrule
GIF & Graphics Interchange Format - a lossless format for image files that supports both animated and static images.\\
Abbreviation2 & Definition2\\
GIF & Graphics Interchange Format\\
BMP & Bitmap\\
JPEG & Joint Photographic Experts Group\\
PNG & Portable network Graphics\\
TIFF & Tag Image File Format\\
\bottomrule
\end{tabularx}
......@@ -80,53 +84,58 @@ Abbreviation2 & Definition2\\
\toprule
\textbf{Term} & \textbf{Definition}\\
\midrule
Term1 & Definition1\\
Term2 & Definition2\\
GIF & A lossless format for image files that supports both animated and static images.\\
Sprite Sheet &A series of images (usually animation frames) combined into a larger image (or images).\\
Dialog Class & Specifies the base class used for displaying dialog boxes on the screen.\\
File Path & A path, the general form of the name of a file or directory, specifies a unique location in a file system. \\
Bitmap & a representation in which each item corresponds to one or more bits of information, especially the information used to control the display of a computer screen.\\
Frame & One of the many still images which compose the complete moving picture.\\
Pixel & A minute area of illumination on a display screen, one of many from which an image is composed.\\
\bottomrule
\end{tabularx}
\end{table}
\subsection{Overview of Document}
The testing plan is broken up into distinct parts. Under the heading Plan, the basic information will be given on the product and the tests. System Test Description will contain the specific tests for the functional a requirements stated for the product. These tests will broken down into what type of tests they are and the results they achieve depending on their specific input. Test for nonfunctional requirments will follow the same format where input will be given and the output will be measured for all of the provided nonfunctional requirements. Under tests for proof of concept, the same format will be utilized as the functional testing but it will not be testing
The testing plan is broken up into distinct parts. Under the heading Plan, the basic information will be given on the product and the tests. System Test Description will contain the specific tests for the functional requirements stated for the product. These tests will broke down into what type of tests they are and the results they achieve depending on their specific input. Testing for non-functional requirements will follow the same format where input will be given and the output will be measured for all of the provided non-functional requirements. Under tests for proof of concept, the same format will be utilized as the functional testing but it will not be testing
the requirements for the project but for the goals of the proof of concept. Furthermore there will be tests to compare Gifitti to the
original product it was based on and unit testing plans to ensure correct output is achieved through proper internal functions.
\section{Plan}
\subsection{Software Description}
Gifitti is a software prodcut that allows the common user to be able to manipulate for their entertainment or commercial needs.
Gifitti is a software product that allows the common user to be able to manipulate for their entertainment or commercial needs.
With an intuitive design, it allows a person who has never done any kind of graphical editing to be able to manipulate a GIF to achieve
the person's particular design. This product can also serve a commercial purpose in allowing the creation of sprite spreadsheets and
a quick production of GIFs.
\subsection{Test Team}
The team to implement the test plan for the project will be Pavle Arezina, Riley McGee, Nicolai Kozel
The team to implement the test plan for the project will be Pavle Arezina, Riley McGee, Nicolai Kozel.
\subsection{Automated Testing Approach}
This test plan will not utilize an automated testing approach towared Gifitti since the project centers around a graphical manipulation
of the GIF.
This test plan will utilize automated testing for verification that the GIF manipulation functionality changes the GIF properly. Such that the exported GIF image will match what is created by the user of our product.
\subsection{Testing Tools}
The only tool to be utilized to test this product will be the Microsoft unit test framework found in the C\# Visual Basic Studio.
The only tool to be utilized to test this product will be the Microsoft Unit Test Framework that is native with Visual Studio.
\subsection{Testing Schedule}
See Gantt Chart \href{https://gitlab.cas.mcmaster.ca/kozeln/Gifitti/tree/master/ProjectSchedule}{ here.}
\section{System Test Description}
Testing allows the developers to know if their program is free of errors and if there are errors, testing allows the developer to detect them. With the functional and non-functional requirments the developer knows the expected results and can evaluate the results of tests accordingly.
Testing allows the developers to detect errors that the test cases cover. With the functional and non-functional requirements the developer knows the expected results and can evaluate the results of tests accordingly. Pass or fail values are assigned to executed tests discreetly unless the test is to have an error tolerance for passing.
\subsection{Tests for Functional Requirements}
Functional requirments prescribe what services the software should provide. They capture the intendend software effects on the environment and applicability conditions. These tests ensure that the functional requirments of Gifitti are fufilled or the tests will allow the discovery of any requirments not satisfied by Gifitti.
Functional requirements prescribe what services the software should provide. They capture the intended software effects on the environment and applicability conditions. These tests ensure that the functional requirements of Gifitti are fulfilled or the tests will help to discover any functional requirements not satisfied by Gifitti.
\subsubsection{Open GIF}
\paragraph{The User is Able to Open a GIF from a specified location}
\paragraph{The User is able to open a GIF from a specified location}
\begin{enumerate}
\item{Select proper formatted gif- id1\\}
\item{Select Properly Formatted GIF- id1\\}
Type: Manual Functional.
Initial State: Program loaded; no GIF Loaded.
Input: File name.
Input: File path for GIF.
Output: System loads gif into memory, displays it to the user in the gif view.
How test will be performed:
......@@ -141,7 +150,7 @@ How test will be performed:
Type: Manual Functional.
Initial State: Program loaded; no GIF Loaded.
Input: No file path.
Input: None.
Output: No image loaded.
How test will be performed:
......@@ -167,7 +176,7 @@ How test will be performed:
\item{Verify program remains open, and no image is loaded}
\\
\end{enumerate}
\item{Open random non gif file-id4\\}
\item{Open Random Non-GIF File-id4\\}
Type: Manual Functional.
Initial State: Program loaded; no GIF Loaded.
......@@ -192,7 +201,7 @@ How test will be performed:
\begin{enumerate}
\item{Save GIF to known location-id1\\}
\item{Save a GIF to a Known Location-id1\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF Loaded.\\
......@@ -202,14 +211,14 @@ Output: GIF file saved to specified location.\\
How test will be performed:
\begin{enumerate}
\item{Launch the program}
\item{Open a GIF}
\item{Select save as}
\item{Open a GIF}
\item{Select "Save As..."}
\item{Specify a known system file path and a saved image name}
\item{Verfify the loaded and saved GIFs are identical}
\\
\end{enumerate}
\item{Save GIF to no existant location- id2\\}
\item{Save GIF to a Non-existant Location- id2\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF Loaded.\\
......@@ -219,10 +228,10 @@ Output: GIF file not saved to specified location.\\
How test will be performed:
\begin{enumerate}
\item{Launch the program}
\item{Open a GIF}
\item{Select save as}
\item{Open a GIF}
\item{Select "Save As..."}
\item{Specify a system file path known not to exist and a saved image name}
\item{Verify the user is informed that the file path does not work}
\item{Verify the user is informed that the file path does not work and the system remains running}
\\
\end{enumerate}
\item{Save GIF to Opened Location- id3\\}
......@@ -235,9 +244,9 @@ Output: GIF file saved to specified location.\\
How test will be performed:
\begin{enumerate}
\item{Launch the program}
\item{Open a GIF}
\item{Open a GIF}
\item{Modify the GIF}
\item{Save image}
\item{Select save image option}
\item{Verify new GIF is saved over the originally opened GIF}
\\
\end{enumerate}
......@@ -249,7 +258,7 @@ How test will be performed:
\paragraph{The user is able to save a GIF as a sprite spreadsheet in a specified location}
\begin{enumerate}
\item{Save Sprite Spreadsheet to known location-id1\\}
\item{Save Sprite Spreadsheet to a Known Location-id1\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF Loaded.\\
......@@ -261,7 +270,7 @@ How test will be performed:
\item{Launch the program}
\item{Open a GIF}
\item{Choose to export the image as a sprite spreadsheet}
\item{Verify that the GIF is a single image representation of the GIF via frames}
\item{Verify that the GIF is a single image representation of the GIF frames}
\\
\end{enumerate}
%
......@@ -284,7 +293,7 @@ How test will be performed:
\item{Launch the program}
\item{Open a GIF}
\item{Select Play Option}
\item{Verify the Gif is iterating over frames as expected}
\item{Verify the GIF is iterating over frames as expected}
\item{Select Play option again, verify no change occurs}
\item{Select Stop}
\item{Verifiy GIF stops playing}
......@@ -310,7 +319,7 @@ How test will be performed:
\\
\end{enumerate}
\item{Automated GIF shorten-id3\\}
\item{Automated GIF Shortening-id3\\}
Type: Automated Functional.\\
Initial State: Image reading module driver \\
Input: GIF; Expected output GIF;\\
......@@ -318,7 +327,7 @@ Output: Expected output GIF \\
How test will be performed:
\begin{enumerate}
\item{Test will load GIF from a know loacation}
\item{Test will load GIF from a know location}
\item{Test will subset the GIF to a known frame set}
\item{The GIF will then be compared to an expected GIF in a frame-by-frame manner}
\item{Each frame is to be cast to a bitmap then compared in a pixel-by-pixel manner}
......@@ -347,11 +356,11 @@ How test will be performed:
%End of GIF Start, Stop, Modify Length Requirement
\end{enumerate}
\subsubsection{Save all frames in a GIF to another known format}
\paragraph{The user is able to save a GIF frame by frame to PNG, JPEF, BMP and TIFF formats}
\subsubsection{Save All Frames in a GIF to Another Known Format}
\paragraph{The user is able to save a GIF frame by frame to PNG, JPEG, BMP and TIFF formats}
\begin{enumerate}
\item{Save PNG frames to known location-id1\\}
\item{Save PNG Frames to Known Location-id1\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF Loaded.\\
......@@ -364,7 +373,7 @@ How test will be performed:
\item{Open a GIF}
\item{Choose to export the image as a PNG set}
\item{Select the folder where the PNGs will be dumped}\
\item{Verify the folder fills with frames as PNG}
\item{Verify the folder fills with GIF frames as PNGs}
\item{Ensure a 3rd party program can load the PNGs. Software such as Photoshop or MS paint is satisfactory}
\\
\end{enumerate}
......@@ -382,7 +391,7 @@ This test is identical to id1 with PNG replaced with TIFF
%End of Save all frames in a GIF to another known format Requirement
\subsubsection{Help Context}
\paragraph{Verifies and validates HELP context}
\paragraph{Verifies and validates the Help context}
\begin{enumerate}
\item{Help Context-id1\\}
......@@ -404,8 +413,7 @@ How test will be performed:
%End of Help Requirement
\end{enumerate}
\subsubsection{GIF reset}
\subsubsection{GIF Reset}
\paragraph{Verifies and validates GIF can be reset to loaded state}
\begin{enumerate}
......@@ -422,11 +430,11 @@ How test will be performed:
\item{Load a GIF}
\item{Modify GIF attributes such as frame length, coloration etc}
\item{Select reset}
\item{Verify GIF in is the same as current GIF shown}
\item{Verify GIF in is the same as current GIF that is shown to the user}
\\
\end{enumerate}
\item{Modify via adding a frame-id2\\}
\item{Modify Via Adding a Frame-id2\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF loaded\\
......@@ -443,7 +451,7 @@ How test will be performed:
\\
\end{enumerate}
\item{Modify via frame subset selected-id3\\}
\item{Modify Via Frame Subset Selected-id3\\}
Type: Manual Functional.\\
Initial State: Program loaded; GIF loaded\\
......@@ -460,7 +468,7 @@ How test will be performed:
\\
\end{enumerate}
\item{Automated modify via adding a frame-id4\\}
\item{Automated Modify Via Adding a Frame-id4\\}
Type: Automated Functional.\\
Initial State: Image reading module driver \\
Input: GIF; BMP image;\\
......@@ -468,8 +476,8 @@ Output: Inputted GIF \\
How test will be performed:
\begin{enumerate}
\item{Test will load GIF from a know loacation}
\item{Test will load the frame being added from a known loaction}
\item{Test will load GIF from a know location}
\item{Test will load the frame being added from a known location}
\item{The frame will be added to a specific spot of the GIF}
\item{The GIF will then be reset}
\item{The stored GIF is to be frame by frame compared to the original GIF}
......@@ -527,7 +535,7 @@ This test is identical to id2 with PNG replaced with TIFF
\item{BMP frames to GIF-id5\\}
This test is identical to id2 with PNG replaced with BMP
\item{AutomatedTesting of BMP frams to GIF-id6}
\item{Automated Testing of BMP Frames to GIF-id6}
Type: Automated Functional.\\
Initial State: Image reading module driver \\
Input: GIF; BMP image; Expected output GIF\\
......@@ -535,8 +543,8 @@ Output: GIF with BMP input added as a frame \\
How test will be performed:
\begin{enumerate}
\item{Test will load GIF from a know loacation}
\item{Test will load the frame being added from a known loaction}
\item{Test will load GIF from a know location}
\item{Test will load the frame being added from a known location}
\item{The frame will be added to a specific spot of the GIF}
\item{The new GIF is to be compared to expected through breaking each down into frames}
\item{Cast each frame and pixel-by-pixel compare the output to the expected}
......
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