From 0c680c129a69548c6518eca182f83fadb77cc35b Mon Sep 17 00:00:00 2001 From: Riley McGee <mcgeer@mcmaster.ca> Date: Mon, 24 Oct 2016 18:13:13 -0400 Subject: [PATCH] Finished Functional Reqs in TP --- Doc/TestPlan/TestPlan.bbl | 8 + Doc/TestPlan/TestPlan.blg | 10 + Doc/TestPlan/TestPlan.synctex.gz(busy) | Bin 0 -> 24576 bytes Doc/TestPlan/TestPlan.tex | 268 +++++++++++++++++++++++++ 4 files changed, 286 insertions(+) create mode 100644 Doc/TestPlan/TestPlan.bbl create mode 100644 Doc/TestPlan/TestPlan.blg create mode 100644 Doc/TestPlan/TestPlan.synctex.gz(busy) diff --git a/Doc/TestPlan/TestPlan.bbl b/Doc/TestPlan/TestPlan.bbl new file mode 100644 index 0000000..e5e1367 --- /dev/null +++ b/Doc/TestPlan/TestPlan.bbl @@ -0,0 +1,8 @@ +\begin{thebibliography}{0} +\providecommand{\natexlab}[1]{#1} +\providecommand{\url}[1]{\texttt{#1}} +\expandafter\ifx\csname urlstyle\endcsname\relax + \providecommand{\doi}[1]{doi: #1}\else + \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi + +\end{thebibliography} diff --git a/Doc/TestPlan/TestPlan.blg b/Doc/TestPlan/TestPlan.blg new file mode 100644 index 0000000..83b3883 --- /dev/null +++ b/Doc/TestPlan/TestPlan.blg @@ -0,0 +1,10 @@ +This is BibTeX, Version 0.99dThe top-level auxiliary file: TestPlan.aux +The style file: plainnat.bst +I couldn't open database file SRS.bib +---line 51 of file TestPlan.aux + : \bibdata{SRS + : } +I'm skipping whatever remains of this command +I found no \citation commands---while reading file TestPlan.aux +I found no database files---while reading file TestPlan.aux +(There were 3 error messages) diff --git a/Doc/TestPlan/TestPlan.synctex.gz(busy) b/Doc/TestPlan/TestPlan.synctex.gz(busy) new file mode 100644 index 0000000000000000000000000000000000000000..b6de3f267dc21c02fbe6e7e002f9f4d8f99bc475 GIT binary patch literal 24576 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 TnYw!PZXy=NPD&0+DrWyb*>?;M literal 0 HcmV?d00001 diff --git a/Doc/TestPlan/TestPlan.tex b/Doc/TestPlan/TestPlan.tex index 5639dd6..d155bb0 100644 --- a/Doc/TestPlan/TestPlan.tex +++ b/Doc/TestPlan/TestPlan.tex @@ -172,6 +172,7 @@ How test will be performed: \item{Verify program remains open, and no image is loaded} \\ \end{enumerate} +% %End of Open Requirement \end{enumerate} @@ -230,6 +231,7 @@ How test will be performed: \item{Verify new GIF is saved over the originally opened GIF} \\ \end{enumerate} +% %End of save Requirement \end{enumerate} @@ -256,7 +258,273 @@ How test will be performed: %End of Sprite Spreadsheet Requirement \end{enumerate} +\subsubsection{GIF Start, Stop, Modify Length} +\paragraph{The user is able to start (play), start and stop GIFs, testing of GIF shortening and playback speed occurs here as well} + +\begin{enumerate} +\item{Play Stop GIF-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF Loaded.\\ +Input: GIF\\ +Output: None.\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Open a GIF} +\item{Select Play Option} +\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} +\item{Select Stop again, verify no change occurs} +\\ +\end{enumerate} + +\item{GIF shorten-id2\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF Loaded.\\ +Input: GIF\\ +Output: Shortend GIF.\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Open a GIF} +\item{Shorten gif frames in use} +\item{Play the GIF to verify it is correct} +\item{Export the GIF} +\item{Verify that the exported GIF represents the one playing, and is shorter than the original} +\\ +\end{enumerate} + +\item{GIF speed-id3\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF Loaded.\\ +Input: GIF\\ +Output: GIF inputted with different frame rate.\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Open a GIF} +\item{Increase frame hold time} +\item{Play the GIF to verify it is slower than original} +\item{Export the GIF} +\item{Verify that the exported GIF represents the one playing, and is slower, with respect to frame rate, than the original} +\\ +\end{enumerate} +% +%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} + +\begin{enumerate} +\item{Save PNG frames to known location-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF Loaded.\\ +Input: Folder path, GIF file.\\ +Output: PNG Frames in specified folder named corresponding to frame.\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\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{Ensure a 3rd party program can load the PNGs. Software such as Photoshop or MS paint is satisfactory} +\\ +\end{enumerate} + +\item{Save JPEG frames to known location-id2\\} +This test is identical to id1 with PNG replaced with JPEG + +\item{Save BMP frames to known location-id3\\} +This test is identical to id1 with PNG replaced with BMP + +\item{Save TIFF frames to known location-id4\\} +This test is identical to id1 with PNG replaced with TIFF +\end{enumerate} +% +%End of Save all frames in a GIF to another known format Requirement + +\subsubsection{Help Context} +\paragraph{Verifies and validates HELP context} + +\begin{enumerate} +\item{Help Context-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded\\ +Input: None\\ +Output: None\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Select Help Context} +\item{Reccurse through all Help Context options, verifiy spelling for professionality} +\item{Close help context, verify program remains in same state as launch put it in} +\\ +\end{enumerate} +% +%End of Help Requirement +\end{enumerate} + + +\subsubsection{GIF reset} +\paragraph{Verifies and validates GIF can be reset to loaded state} + +\begin{enumerate} +\item{Modify Attributes-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF loaded\\ +Input: GIF\\ +Output: Inputted GIF\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\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} +\\ +\end{enumerate} + +\item{Modify via adding a frame-id2\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF loaded\\ +Input: GIF, inputted frame\\ +Output: Inputted GIF\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a GIF} +\item{Modify GIF by adding a frame} +\item{Select reset} +\item{Verify GIF loaded has added frame removed} +\\ +\end{enumerate} + +\item{Modify via frame subset selected-id3\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF loaded\\ +Input: GIF\\ +Output: Inputted GIF\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a GIF} +\item{Modify GIF by subsetting what frames are used} +\item{Select reset} +\item{Verify GIF loaded returns to full GIF state} +\\ +\end{enumerate} + +% +%End of Reset Requirement +\end{enumerate} + + +\subsubsection{Frame Addition} +\paragraph{Verifies frame addition} + +\begin{enumerate} +\item{Add GIFs-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded\\ +Input: GIF x 2\\ +Output: Concatinated GIFs\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a Gif} +\item{Select a frame and import a gif} +\item{Gif should subset from frame to end of the imported gif} +\item{Verify the concatination holds on export} +\\ +\end{enumerate} + +\item{Add PNGs-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded\\ +Input: GIF; PNG image\\ +Output: GIF with PNG input added as a frame\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a Gif} +\item{Select a frame and import a PNG} +\item{Verify PNG is added after current frame in GIF} +\item{Verify the the new GIF is exported the same way} +\end{enumerate} +\item{JPEG frames to GIF-id2\\} +This test is identical to id2 with PNG replaced with JPEG + +\item{TIFF frames to GIF-id3\\} +This test is identical to id2 with PNG replaced with TIFF + +\item{BMP frames to GIF-id4\\} +This test is identical to id2 with PNG replaced with BMP +% +%End of Frame Addition Requirement +\end{enumerate} + +\subsubsection{Frame Drawing} +\paragraph{Verifies and validates ability to draw on frames} + +\begin{enumerate} +\item{Single Frame Drawing-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF loaded\\ +Input: GIF\\ +Output: Inputted Gif with image overlay on a frame\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a GIF} +\item{Make an obvious edit to a frame via drawing} +\item{Export the GIF and verify obvious change remains} +\\ +\end{enumerate} +\item{Multi Frame Drawing-id1\\} + +Type: Manual Functional.\\ +Initial State: Program loaded; GIF loaded\\ +Input: GIF\\ +Output: Inputted Gif with image overlay many frames\\ + +How test will be performed: +\begin{enumerate} +\item{Launch the program} +\item{Load a GIF} +\item{Make an obvious edit to a frame via drawing} +\item{Make the edit extend over a set of frames} +\item{Export the GIF and verify obvious change remains on all selected frames} +\\ +\end{enumerate} +% +%End of Frame Drawing Requirement +\end{enumerate} \subsection{Tests for Nonfunctional Requirements} -- GitLab