# Step IV. Test and Release

The project is not complete until the final submission. The developed code needs to be tested until it has met all of the predetermined test specifications. Schedule flexibility is one of the key ideas in Agile practices to leave sufficient room for testing. Only after a rigorous series of testing will the final product be complete. For better performance, keep refactoring the code to reduce compile time. The final revision tasks should also be included in the Agile board as task cards as shown in Figure 16. Depending on what your in-class project is, often your Agile board can look different. Many times a board will have a list for “Testing” before the task can be marked as “Done”. Even in classes that do not require you to test your code, it is often advisable to test the implementation of features regardless. This way, you can ensure that each task was completed correctly and therefore is in the proper state that is necessary for the submission of the project. In classes like CS 3110, you will often be asked to create a testing suite to test out certain features of the code. Depending on the breakdown of the tasks, you may need to wait until certain other tasks are completed in order to start testing, or if the task does not require testing it can be moved to the “Done” list. When all of the necessary components of the project have been tested and complete their corresponding tests, only then is the project ready to be submitted.\
