diff --git a/BlankProjectTemplate/Doc_Revision1/SRS/SRS.tex b/BlankProjectTemplate/Doc_Revision1/SRS/SRS.tex index 2617cae072231141ae195fcdb3c2bdf2c650be2d..05da8c8c8325b1c8e81ae3408856ca1c739bc747 100644 --- a/BlankProjectTemplate/Doc_Revision1/SRS/SRS.tex +++ b/BlankProjectTemplate/Doc_Revision1/SRS/SRS.tex @@ -359,7 +359,7 @@ An article on linkedIn by Sumit Jain summarizes the steps involved in the game d \begin{itemize} \item Technical Analysis: Use reverse engineering to understand how the game was originally built and analyze the main modules/ framework used to develop the game. \item Development: Using Python and Pygame to develop the source code for the game; Analysis from the previous step will be necessary to break down the developement process. -\item Testing: Test using unittest in python and principles of white box and black box testing. In further developments, this would also include intergation testing with the user interface and the collection of modules created for the application. +\item Testing: Test using principles of white box and black box testing. In further developments, this would also include intergation testing with the user interface and the collection of modules created for the application. \end{itemize} Project members should expect the development cycle to resemble the previously mentioned framework. Once the cycle has been iterated until completion of Snake 2.o, the team will move on to the deployment stage, considering options for making the game available on a DDS such as the Microsoft Store. diff --git a/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.pdf b/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.pdf index 99b493e0ea57c81a9431b35ca7cc941929f861d5..e0c88958fd3854cfebef7aca10039495c8894503 100644 Binary files a/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.pdf and b/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.pdf differ diff --git a/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.tex b/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.tex index 50d257670263cd7e565577e207fffbf7408395ed..e17aa765b4bb69dbeac853b5253678ebf59f85a1 100644 --- a/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.tex +++ b/BlankProjectTemplate/Doc_Revision1/TestPlan/TestPlan.tex @@ -6,7 +6,7 @@ \usepackage{amsmath} \usepackage{xcolor} \usepackage{url} - +\usepackage{soul} \hypersetup{ colorlinks, @@ -59,7 +59,7 @@ \subsection{Purpose} Testing will be conducted to ensure that the software meets the requirements set in the original development as well as the new requirements that are set as enhancements to the original game. The generated test cases will also serve as guiding rules for developing code using TDD. -The reinvention of the Snake game as Snake 2.o will involve new features such as custom speed, high score menu, customizable themes and a multiplayer mode if time permits. These new features, along with the requirements set for the original implementation of the game will be tested to detect any bugs or errors. The use of the Pygame library allows for a GUI that will enable integrated and system testing. Peers will be able to demo the game and catch any errors or bugs by doing so. White box testing will be used as well on the existing code that was used for the POC demonstration. Automated testing will be implemented using the unittest framework built into Python. Aspects that have not yet been implemented or would be hard to detect visually, like for example the speed of the moving snake, will be tested using static analysis along with automated testing. +The reinvention of the Snake game as Snake 2.o will involve new features such as custom speed, high score menu, customizable themes and a multiplayer mode if time permits. These new features, along with the requirements set for the original implementation of the game will be tested to detect any bugs or errors. The use of the Pygame library allows for a GUI that will enable integrated and system testing. Peers will be able to demo the game and catch any errors or bugs by doing so. White box testing will be used as well on the existing code that was used for the POC demonstration. \textcolor{red}{ \st{Automated testing will be implemented using the unittest framework built into Python}}. Aspects that have not yet been implemented or would be hard to detect visually, like for example the speed of the moving snake, will be tested using static analysis along with automated testing. \subsection{Scope} Testing will cover all of the behaviours mentioned below. Note that this is a general overview and more details are provided further on in the document. @@ -120,7 +120,7 @@ The individuals responsible for testing are Vaibhav Chadha, Usman Irfan and Andy One of the more difficult parts of testing the software will be 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 certain functionality of the software. For this, PyUnit testing will be used. +\st{However, automated testing will also be done in order to check certain functionality of the software. For this, PyUnit testing will be used.} \subsection{Testing Tools} @@ -520,11 +520,13 @@ Currently, we have the following tests that compare to the existing comparison: \end{enumerate} \section{Unit Testing Plan} -The PyUnit testing framework would be used to test our desktop application. +\st{The PyUnit testing framework would be used to test our desktop application. \subsection{Unit testing of internal functions} -The PyUnit testing framework will be used to test our source code's functions, this is an automated testing unit, and it provides classes which can ease different testing functions. By using PyUnit we can check the robustness of our program, if wrong inputs are given will the program be able to handle such cases without crashing. Besides, the requirement of the program can be tested to see if our program matches with the functional and non-functional requirements of the program. +The PyUnit testing framework will be used to test our source code's functions, this is an automated testing unit, and it provides classes which can ease different testing functions. By using PyUnit we can check the robustness of our program, if wrong inputs are given will the program be able to handle such cases without crashing. Besides, the requirement of the program can be tested to see if our program matches with the functional and non-functional requirements of the program.} \subsection{Unit testing of output files} -The testing of the output files through unit testing will tell the developers if all the test cases designed by them run efficiently. The snake's movement would be compared to the actual output if the user is pressing the UP key and the snake is moving in the respective direction it would pass the unit testing. Testing the output files can also help us to find that if different modes of the game are selected then different rules of the games should be followed. The game being played in the Hard mode could be tested that the snake is not allowed to cross boundaries and this could be compared with automated testing allowing us to know if our output files have passed their unit test. +\st{The testing of the output files through unit testing will tell the developers if all the test cases designed by them run efficiently. The snake's movement would be compared to the actual output if the user is pressing the UP key and the snake is moving in the respective direction it would pass the unit testing. Testing the output files can also help us to find that if different modes of the game are selected then different rules of the games should be followed. The game being played in the Hard mode could be tested that the snake is not allowed to cross boundaries and this could be compared with automated testing allowing us to know if our output files have passed their unit test.} + +Due to the nature of the project, manual and integrated/system testing will be performed throughout the development process to check for correctness and verify adherence to functional and nonfunctional requirements. \newpage