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.
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}
\section{Plan}
\subsection{Software Description}
\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}
\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}
\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}
\subsection{Testing Tools}
PyUnit testing will be used as a testing tool for this program.
Initial State: The program will be running with the main user interface open.
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
...
@@ -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.
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.
Initial State: The snake Game will be running on the device.
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
...
@@ -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.
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.
@@ -475,17 +488,17 @@ How test will be performed: The developer will test this requirement by intentio
...
@@ -475,17 +488,17 @@ How test will be performed: The developer will test this requirement by intentio
\end{enumerate}
\end{enumerate}
\subsection{Traceability Between Test Cases and Requirements}
\section{Tests for Proof of Concept}
\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}
\subsection{Snake Dynamics}
\paragraph{Snake Movement and Speed}
\paragraph{Snake Movement and Speed}
\begin{enumerate}
\begin{enumerate}
\item{T1D1\\}
\item{\textbf{TID25}\\}
Type: Dynamic
Type: Dynamic
...
@@ -501,7 +514,7 @@ How test will be performed:
...
@@ -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.
\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}
\end{itemize}
\item{T1D2\\}
\item{\textbf{TID26}\\}
Type: Dynamic, Functional testing
Type: Dynamic, Functional testing
...
@@ -525,7 +538,7 @@ How test will be performed: A method will be created under the POC test class wh
...
@@ -525,7 +538,7 @@ How test will be performed: A method will be created under the POC test class wh
\begin{enumerate}
\begin{enumerate}
\item{T1D3\\}
\item{\textbf{TID27}\\}
Type: Integration, System testing
Type: Integration, System testing
...
@@ -548,6 +561,20 @@ How test will be performed: Several peers will be asked to test the game from st
...
@@ -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}
\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}
\section{Unit Testing Plan}
The PyUnit testing framework would be used to test our desktop application.
The PyUnit testing framework would be used to test our desktop application.