# TEST CASE: - Name: Import data to MySQL database server - Procedure - Configure DB connection by editing `constants.py` - Run `main_db.py` - Start DBMS of your choice and validate the result. (phpmyadmin) - Expected output - Python file ran without errors and the database, - tables and records are successfully created in database. - Name: GUI startup - Procedure - Run application via `main_gui.py` - do nothing - Expected output - show "Please select" at programme option menu - show "Please select" at Semester option menu - a empty list of module shown - Name: Select programme - Procedure - Run application via `main_gui.py` - click programme option menu - watch option available in option menu - Expected output - show a list of programme available in DB - Name: after user select programme, user proceed to Select semester - Procedure - Run application via `main_gui.py` - click programme option menu - select "Higher Diploma in Cybersecurity" in option menu - watch options available in "Semester" - Expected output - 1,2,4,5 should be available in semester list - Name: user Selected semester, user proceed to input Grade - Procedure - run procedure "after user select programme, user proceed to Select semester" - select semester "1" - Expected output - the modules available to semester should be listed in the "Modules" frame - the "Please Select" should be shown in every "Grade" option menu. - a empty box should be displayed in the Module, Credit and Grade for every modules row for the rest - Name: user input grade, get total GPA - Procedure - run procedure "user Selected semester, user proceed to input Grade" - input all gpa - Expected output - watch the label at the bottom of the form. - when not all gpa got answered, the gpa won't be updated (keep 0.00) - when app gpa answered, the result gpa will be displayed (1.23) - Name: Screen update - Procedure - Run same procedure as stated in "GPA Calculation Test #2" - re-select "Semester" to 2 - re-select "Semester" to 4 - Expected output - when "Semester" is 2 - Module list should be updated (3 -> 2 items) - Credit list should be updated (3 -> 2 items) - Grade list should be selected "Please select" - when "Semester" is 4 - Module list should be updated (2 -> 1 items) - Credit list should be updated (2 -> 1 items) - Grade list should be selected "Please select" - Name: GPA Calculation Test #1 - Procedure - Run application via `main_gui.py` - Perform semester GPA calculation with the input data stated in excepted output. - Validate the result with expected output. - Input: - Programme: Higher Diploma in Cybersecurity; Semester: 2 - Subjects: - "Vocational Chinese Communication: Putonghua Presentations, Administrative and Technical Text Writing" → A- - "English & Communication: Reports" → C+ - Expected output - Semester GPA: 3.00 shown at bottom - Name: GPA Calculation Test #2 - Procedure - Run application via `main_gui.py` - Perform semester GPA calculation with the input data stated in excepted output. - Validate the result with expected output. - Input: - Programme: Higher Diploma in AI and Smart Technology; Semester: 1 - Subjects: - "Vocational Chinese Communication: Putonghua Conversation and Reports" → A - "English & Communication: Workplace Interaction" → C- - "English & Communication: Workplace Correspondance" → B+ - Expected output - Semester GPA: 3.00 shown at bottom