diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index dcb55ba9f00..ffee976e133 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -691,43 +691,153 @@ testers are expected to do more *exploratory* testing.
1. Initial launch
- 1. Download the jar file and copy into an empty folder
-
- 1. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.
-
-1. Saving window preferences
-
- 1. Resize the window to an optimum size. Move the window to a different location. Close the window.
-
- 1. Re-launch the app by double-clicking the jar file.
- Expected: The most recent window size and location is retained.
-
-1. _{ more test cases … }_
-
-### Deleting a person
-
-1. Deleting a person while all persons are being shown
-
- 1. Prerequisites: List all persons using the `list` command. Multiple persons in the list.
-
- 1. Test case: `delete 1`
- Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.
-
- 1. Test case: `delete 0`
- Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.
-
- 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
- Expected: Similar to previous.
-
-1. _{ more test cases … }_
+ 1. Download the jar file and copy into an empty folder.
+
+ 2. Double-click the jar file.
+ Expected: A help window appears for first-time users, along with the GUI displaying a set of sample contacts. The window size may not be optimal.
+
+2. Saving window preferences
+
+ 1. Resize the window to an optimal size, move it to a different location and close it.
+
+ 2. Relaunch the app by double-clicking the JAR file.
+ Expected: No help window appears. The most recent window size and location are retained.
+
+### Adding a student
+
+1. Adding a student with a new NRIC
+ 1. Prerequisites: Student with NRIC number T3848559A does not exist in the system.
+ 2. Test case: `add n\Sam Tan i\T3848559A yg\3 p\81003999 e\samtan@gmail.com a\9 Smith Street s\Science`
+ Expected: Student named Sam Tan with NRIC T3848559A is added to the list.
+2. Adding a student with an existing name but new NRIC
+ 1. Prerequisites: A student named Sam Tan exists in the system.
+ 2. Test case: `add n\Sam Tan i\S2684225J yg\2 p\88247432 e\sammmie@gmail.com a\16 Next Street s\Math`
+ Expected: Student named Sam Tan with NRIC S2684225J is added to the list.
+3. Adding a student with an existing NRIC
+ 1. Prerequisites: A student with NRIC number T3848559A exists in the system.
+ 2. Test case: `add n\John Doe i\T3848559A yg\2 p\91234567 e\johndoe@yahoo.com a\10 Orchard Road s\Science s\Math`
+ Expected: Error message indicating that another student with the same NRIC already exists in the system.
+
+### Editing a student
+
+1. Editing an existing student's details
+ 1. Prerequisites: A student with ID S00001 exists in the system.
+ 2. Test case: `edit s00001 p\91234567 a\18 Tampines Road`
+ Expected: Student with ID S00001 is updated with phone number "91234567" and address "18 Tampines Road".
+ Success message is shown in the message box.
+2. Editing a non-existent student's detail
+ 1. Prerequisites: Student with ID S00999 does not exist in the system.
+ 2. Test case: `edit s00999 p\84754243 a\25 Orchard Road`
+ Expected: Error message indicating that no student is found with the provided student ID.
+3. Editing a student's NRIC to match an existing student's NRIC.
+ 1. Prerequisites:
+ * Student with ID S00001 exists in the system.
+ * Another student with NRIC S2684225J exists in the system.
+ 2. Test case: `edit s00001 i\S2684225J`
+ Expected: Error message indicating that another student with the same NRIC already exists in the system.
+
+### Adding subject(s) to a student
+
+1. Adding one subject to a student
+ 1. Prerequisites: Student with ID S00001 exists in the system.
+ 2. Test case: `addsubject S00001 s\Math`
+ Expected: Student with ID S00001 is added to the subject Math. Existing subjects remain unchanged.
+2. Adding multiple subjects to a student
+ 1. Prerequisites: Student with ID s00001 exists in the system.
+ 2. Test case: `addsubject S00001 s\History s\Chinese`
+ Expected: Student with ID S00001 is added to subjects History and Chinese. The existing subjects remained unchanged.
+
+### Deleting a student
+
+1. Deleting an existing student
+ 1. Prerequisites: Student with ID S00001 exists in the system.
+ 2. Test case: `delete S00001`
+ Expected: Student with ID S00001 is deleted from the list. Details of the deleted student are shown in the success message.
+2. Deleting a non-existent student
+ 1. Prerequisites: Student with ID S00001 does not exist in the system.
+ 2. Test case: `delete S00001`
+ Expected: No student is deleted. Error message indicating that no student is found with the provided student ID.
+
+### Viewing student's detail
+
+1. Viewing details of an existing student
+ 1. Prerequisites: Student with ID S00002 exists in the system.
+ 2. Test case: `detail S00002`
+ Expected: A pop-up window displays the details of the student with ID S00002.
+2. Closing the pop-up window
+ 1. Prerequisites: A pop-up window is displayed.
+ 2. Test case: Press `B` on the keyboard
+ Expected: The pop-up window closes.
+
+### Searching for a student
+
+1. Searching for students by full name
+ 1. Prerequisites:
+ * Multiple students exist in the system.
+ * A student named Sam Tan exists in the system.
+ 2. Test case: `find sam`
+ Expected: A list of students, including Sam Tan, is shown.
+2. Searching for students by partial name
+ 1. Prerequisites:
+ * Multiple students exist in the system.
+ * A student named Sam Tan exists in the system.
+ 2. Test case: `find sa`
+ Expected: A list of students, including Sam Tan, is shown.
+
+### Sorting the student list
+
+1. Sorting the student list by specific field
+ 1. Prerequisites: Multiple students exist in the system.
+ 2. Test case: `sort by\name`
+ Expected: Student list is sorted in ascending lexicographical order by name.
+ 3. Test case: `sort by\subject`
+ Expected: Student list is sorted by the lexicographically smallest subject they are taking.
+ 4. Test case: `sort by\studentId`
+ Expected: Student list is sorted in ascending order by student ID.
+ 5. Test case: `sort by\yearGroup`
+ Expected: Student list is sorted in ascending order by year group.
+
+### Filtering the student list
+
+1. Filter by year group
+ 1. Prerequisites:
+ * Multiple students exist in the system.
+ * At least one student from year group 3 exists.
+ 2. Test case: `filter yg\3`
+ Expected: A list of students in year group 3 is shown.
+2. Filter the student list by subject
+ 1. Prerequisites:
+ * Multiple students exist in the system.
+ * At least one student taking subject English exists.
+ 2. Test case: `filter s\English`
+ Expected: A list of students taking English is shown.
+
+### Tracking subject statistics
+
+1. Opening the track subject window
+ 1. Prerequisites: None
+ 2. Test case: `tracksubject`
+ Expected: A window displays subject statistics.
+2. Closing the track subject window
+ 1. Prerequisites: The track subject window is displayed.
+ 2. Test case: Press `B` on the keyboard
+ Expected: The track subject window closes.
### Saving data
-1. Dealing with missing/corrupted data files
-
- 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_
-
-1. _{ more test cases … }_
+1. Dealing with missing data file
+ 1. Prerequisites: Storage file exits (default location: ./data/academyassist.json)
+ 2. Test case: Delete `academyassist.json`
+ Expected: AcademyAssist erases all existing data and start with a blank data file.
+
+2. Dealing with corrupted data file
+ 1. Prerequisites: Storage file exits (default location: ./data/academyassist.json)
+ 2. Test case: Edit the file into an invalid JSON format (e.g., deleting a `:`)
+ Expected: AcademyAssist erases all existing data and start with a blank data file.
+ 3. Test case: Duplicate a student's entries
+ Expected: AcademyAssist erases all existing data and start with a blank data file.
+ 4. Test case: Set `idGeneratedCount` to a value greater than 99999
+ Expected: AcademyAssist erases all existing data and start with a blank data file.
--------------------------------------------------------------------------------------------------------------------