diff --git a/BlankProjectTemplate/Doc/TestPlan/TestPlan.pdf b/BlankProjectTemplate/Doc/TestPlan/TestPlan.pdf index f6188d83a0c5b0fd0fac09fb367e195c8d645d71..f6e236d7143c7e44d20343069dfadb3cfb3c0011 100644 Binary files a/BlankProjectTemplate/Doc/TestPlan/TestPlan.pdf and b/BlankProjectTemplate/Doc/TestPlan/TestPlan.pdf differ diff --git a/BlankProjectTemplate/Doc/TestPlan/TestPlan.tex b/BlankProjectTemplate/Doc/TestPlan/TestPlan.tex index a1bedaca84f3b0056f7d3c5698634bfac57b2912..9974803ee65dec78fe93b5d4ad78b1bc979d70e3 100644 --- a/BlankProjectTemplate/Doc/TestPlan/TestPlan.tex +++ b/BlankProjectTemplate/Doc/TestPlan/TestPlan.tex @@ -4,6 +4,7 @@ \usepackage{tabularx} \usepackage{hyperref} \usepackage{amsmath} +\usepackage{url} \hypersetup{ colorlinks, citecolor=black, @@ -38,8 +39,8 @@ \begin{tabularx}{\textwidth}{p{3cm}p{2cm}X} \toprule {\bf Date} & {\bf Version} & {\bf Notes}\\ \midrule -10/25/2018 & 1.0 & Andy added section 4.0\\ -10/26/2018 & 1.0 & Andy added section 1.0 and 7.0\\ +10/25/2018 & 1.0 & Usman added section 3.1, Vaibhav added section 3.2, Andy added section 4. \\ +10/26/2018 & 1.0 & Andy added section 1 and 7, Vaibhav added section 2 and 5, Usman added section 6\\ Date 2 & 1.1 & Notes\\ \bottomrule \end{tabularx} @@ -102,19 +103,31 @@ PyUnit& Testing framework for python software development\\ The document will summarize the test cases that will be conducted on Snake 2.o, a remake of the orignal snake game using Python and the Pygame library. Several testing techniques are used including automated testing, white box testing, black box testing, manual testing, integration and system testing and static analysis. The document will outline the plan for testing, a description of the test system with non-functional and functional test cases, unit testing and POC testing, and other details pertaining to the testing of Snake 2.o. \section{Plan} - + \subsection{Software Description} +The software will act as a medium of entertainment to the users. It is a Snake Game with added functionality such as different speed and themes option. The implementation of this software is done using Python. + \subsection{Test Team} +The individuals responsible for testing are Vaibhav Chadha, Usman Irfan and Andy Hameed. Each person will be responsible for testing one's own work. For example, Vaibhav is working on the Graphical User interface of the main screen, hence is responsible for testing it. Usman and Andy will be collaboratively working on the snake game ( which includes recording highest score, current score, snake movement etc.) and will be responsible for testing them sidewise. + \subsection{Automated Testing Approach} +The most part of this software will include Manual testing. The reason behind this is that a game can be tested better when played as the user can see errors and delays better. + +However, automated testing will also be done in order to check the certain functionality of the program. For this, PyUnit testing will be done. + \subsection{Testing Tools} +PyUnit testing will be used as a testing tool for this program. + \subsection{Testing Schedule} - + See Gantt Chart at the following url ... +\url{https://gitlab.cas.mcmaster.ca/hameea1/se3xa3/tree/master/BlankProjectTemplate/ProjectSchedule} + \section{System Test Description} \subsection{Tests for Functional Requirements} @@ -342,9 +355,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID17}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The game should be installed on the device. @@ -361,9 +374,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID18}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The program will be running for a human nearing 10 years of age or above @@ -380,9 +393,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID19}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Functional, Dynamic, Manual Initial State: The program will be running with the main user interface open. @@ -392,9 +405,9 @@ How test will be performed: The developer will test this requirement by intentio How the test will be performed: It will be performed using human actions. The response would be times to be as precise as possible. Also, it will be taken into consideration that the user doesn't have to wait for a long observable time. - \item{test-id1\\} + \item{\textbf{TID20}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The snake Game will be running on the device. @@ -404,9 +417,9 @@ How test will be performed: The developer will test this requirement by intentio How the test will be performed: The game will be played with inputting different speeds. Then, the speed difference will be observed as the game progressed through and taken care that the game goes at the constant speed at each level. - \item{test-id1\\} + \item{\textbf{TID21}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The snake Game will be running on the device. @@ -423,9 +436,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID22}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The program will be moved on a USB. @@ -442,9 +455,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID23}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Functiona Dynamic, Manual Initial State: The program will be moved to a Windows, Mac OS and Linux operating devices. @@ -461,9 +474,9 @@ How test will be performed: The developer will test this requirement by intentio \begin{enumerate} - \item{test-id1\\} + \item{\textbf{TID24}\\} - Type: (Structural, Functional, unit), Dynamic, Manual + Type: Structural, Dynamic, Manual Initial State: The program will be running. @@ -475,17 +488,17 @@ How test will be performed: The developer will test this requirement by intentio \end{enumerate} -\subsection{Traceability Between Test Cases and Requirements} - \section{Tests for Proof of Concept} +The POC consists of a simple demonstration of the moving snake in the game window along with a start menu. The food item will not be created in the demo, instead, the testing will only involve the movement of the snake and the main menu that has been created at the start of the game. + \subsection{Snake Dynamics} \paragraph{Snake Movement and Speed} \begin{enumerate} -\item{T1D1\\} +\item{\textbf{TID25}\\} Type: Dynamic @@ -501,7 +514,7 @@ How test will be performed: \item After starting the game, the user will click on each one of the four directions and verify whether or not the snake is moving in the corresponding direction, using the graphical interface created with Pygame. \end{itemize} -\item{T1D2\\} +\item{\textbf{TID26}\\} Type: Dynamic, Functional testing @@ -525,7 +538,7 @@ How test will be performed: A method will be created under the POC test class wh \begin{enumerate} -\item{T1D3\\} +\item{\textbf{TID27}\\} Type: Integration, System testing @@ -548,6 +561,20 @@ How test will be performed: Several peers will be asked to test the game from st \section{Comparison to Existing Implementation} +Currently, we have the following tests that compare to the existing comparison: + +\begin{enumerate} + \item TID3 : In the Proof of Concept, it has already been tested that the snake appears at a random position everytime a new game is played. + + \item TID6, TID7, TID8, TID9 : In the code, its already tested that the snake moves in the direction of the button pressed as soon as it is pressed. + + \item TID19 : The current code for the game meets the requirement as it launched the operation of a button as soon as it is pressed. For this, the "Play Game" button and "Quit" button has been tested. + + \item TID23 : The present code was transferred on windows and Mac OS devices and was working completely fine. + + \item TID25 : All the mentioned testing has been done for the POC. +\end{enumerate} + \section{Unit Testing Plan} The PyUnit testing framework would be used to test our desktop application. \subsection{Unit testing of internal functions}