# Coverage summary: student (generated by harness/coverage/report.py)

Exit check: **PASS**

| Module | Triggers | Program units | Covered | Unreachable | Blocked | Unclassified |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| QAFE_FORM1 | 3 | 0 | 3 | 0 | 0 | 0 |
| QAFE_FORM2 | 11 | 3 | 13 | 1 | 0 | 0 |
| QAFE_FORM3 | 8 | 1 | 9 | 0 | 0 | 0 |
| **total** | 22 | 4 | 25 | 1 | 0 | 0 |

| Database object | Type | Blocks | Covered | Class |
| --- | --- | ---: | ---: | --- |
| ADF_EX10_01_TRIGGERS | PACKAGE BODY | None | 0 | unreachable |
| STUDENT | PACKAGE BODY | None | 0 | unreachable |
| STUDENTPKG | PACKAGE BODY | None | 0 | unreachable |
| TRIGGER_STUDENT_BEFORE_INSERT | TRIGGER | None | 0 | unreachable |
| TRIGGER_STUDENT_BEFORE_UPDATE | TRIGGER | 3 | 2 | partly covered |
| V_EX01_01_STUDENT_TRG | TRIGGER | None | 0 | unreachable |
| V_EX10_01_STUDENT_TRG | TRIGGER | None | 0 | unreachable |
| V_QAFE_FORM1_COURSE_TRG | TRIGGER | None | 0 | unreachable |
| V_QAFE_FORM2_INSTRUCTOR_TRG | TRIGGER | None | 0 | unreachable |
| V_QAFE_FORM2_STUDENT_TRG | TRIGGER | None | 0 | unreachable |

| Item | Class | Scenarios / reason |
| --- | --- | --- |
| `QAFE_FORM1/COURSE/PRE-INSERT` | covered | form1-insert |
| `QAFE_FORM1/COURSE/PRE-UPDATE` | covered | form1-update |
| `QAFE_FORM1/WHEN-NEW-FORM-INSTANCE` | covered | form1-browse, form1-insert, form1-update |
| `QAFE_FORM2/STUDENT.PUSH_BUTTON4/WHEN-BUTTON-PRESSED` | covered | form2-students |
| `QAFE_FORM2/SECTION.PUSH_BUTTON3/WHEN-BUTTON-PRESSED` | covered | form2-courses |
| `QAFE_FORM2/COURSE/ON-POPULATE-DETAILS` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/COURSE/ON-CHECK-DELETE-MASTER` | unreachable | FORM2's COURSE block has Delete Allowed No, so Forms refuses Remove Record with FRM-41049 before the master-detail delete check runs. |
| `QAFE_FORM2/INSTRUCTOR.ZIP/WHEN-MOUSE-DOUBLECLICK` | covered | form2-zip-lov |
| `QAFE_FORM2/INSTRUCTOR.PUSH_BUTTON1/WHEN-BUTTON-PRESSED` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/INSTRUCTOR.PUSH_BUTTON2/WHEN-BUTTON-PRESSED` | covered | form2-student-insert, form2-student-no-first-name, form2-student-update, form2-students |
| `QAFE_FORM2/INSTRUCTOR/PRE-INSERT` | covered | form2-instructor-insert |
| `QAFE_FORM2/INSTRUCTOR/PRE-UPDATE` | covered | form2-zip-lov |
| `QAFE_FORM2/unit:CHECK_PACKAGE_FAILURE` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/unit:QUERY_MASTER_DETAILS` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/unit:CLEAR_ALL_MASTER_DETAILS` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/WHEN-NEW-FORM-INSTANCE` | covered | form2-course-delete-refused, form2-courses, form2-instructor-insert, form2-student-insert, form2-student-no-first-name, form2-student-update, form2-students, form2-zip-lov |
| `QAFE_FORM2/ON-CLEAR-DETAILS` | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM3/SECTION.COURSE_NO/WHEN-VALIDATE-ITEM` | covered | form3-section-course |
| `QAFE_FORM3/SECTION/WHEN-NEW-BLOCK-INSTANCE` | covered | form3-section-course, form3-sections |
| `QAFE_FORM3/SUB_BLOCK.PUSH_BUTTON_CLOSE/WHEN-BUTTON-PRESSED` | covered | form3-sections |
| `QAFE_FORM3/COURSE.COST/WHEN-VALIDATE-ITEM` | covered | form3-cost-invalid |
| `QAFE_FORM3/COURSE.PUSH_BUTTON_WINDOW/WHEN-BUTTON-PRESSED` | covered | form3-section-course, form3-sections |
| `QAFE_FORM3/COURSE.HIDESTUDENTCOUNT/WHEN-BUTTON-PRESSED` | covered | form3-browse |
| `QAFE_FORM3/COURSE/POST-QUERY` | covered | form3-browse, form3-cost-invalid, form3-section-course, form3-sections |
| `QAFE_FORM3/unit:GO_BACK_TO_HOME_SCREEN` | covered | form3-sections |
| `QAFE_FORM3/WHEN-NEW-FORM-INSTANCE` | covered | form3-browse, form3-cost-invalid, form3-section-course, form3-sections |

| Trigger | Branch | Class | Scenarios / reason |
| --- | --- | --- | --- |
| `QAFE_FORM2/COURSE/ON-POPULATE-DETAILS` | queried course - sections queried | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/COURSE/ON-POPULATE-DETAILS` | new course record - nothing | unreachable | FORM2's COURSE block has Insert Allowed No, so it never holds a NEW or INSERT record. |
| `QAFE_FORM2/unit:QUERY_MASTER_DETAILS` | immediate relation - detail queried | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/unit:QUERY_MASTER_DETAILS` | deferred relation - detail marked non-coordinated | unreachable | COURSE_SECTION, FORM2's only relation, has Deferred No. |
| `QAFE_FORM2/unit:CLEAR_ALL_MASTER_DETAILS` | unchanged details - CLEAR_BLOCK(NO_VALIDATE) | covered | form2-courses |
| `QAFE_FORM2/unit:CLEAR_ALL_MASTER_DETAILS` | changed detail - CLEAR_BLOCK(ASK_COMMIT) | unreachable | The detail block SECTION has Insert, Update and Delete Allowed No (typing gives FRM-40200), so it is never CHANGED. |
| `QAFE_FORM2/unit:CHECK_PACKAGE_FAILURE` | previous built-in succeeded | covered | form2-course-delete-refused, form2-courses |
| `QAFE_FORM2/unit:CHECK_PACKAGE_FAILURE` | previous built-in failed - raise | unreachable | It follows GO_BLOCK and GO_ITEM to SECTION or back to the starting item; FORM2 has no navigation or validation trigger that could make them fail, and SECTION is never changed. |
| `QAFE_FORM3/COURSE.COST/WHEN-VALIDATE-ITEM` | cost below 5 - refused | covered | form3-cost-invalid |
| `QAFE_FORM3/COURSE.COST/WHEN-VALIDATE-ITEM` | cost 5 or more - accepted | covered | form3-cost-invalid |
| `QAFE_FORM3/SECTION.COURSE_NO/WHEN-VALIDATE-ITEM` | unknown course - refused | covered | form3-section-course |
| `QAFE_FORM3/SECTION.COURSE_NO/WHEN-VALIDATE-ITEM` | existing course - accepted | covered | form3-section-course |
| `QAFE_FORM3/COURSE.HIDESTUDENTCOUNT/WHEN-BUTTON-PRESSED` | visible - hidden | covered | form3-browse |
| `QAFE_FORM3/COURSE.HIDESTUDENTCOUNT/WHEN-BUTTON-PRESSED` | hidden - shown | covered | form3-browse |

| Scenario | Form | Named pass | FRD pass | 3 runs identical | 3 runs pass | Golden sha256 | Bytes | Items fired |
| --- | --- | --- | --- | --- | --- | --- | ---: | ---: |
| form1-browse | QAFE_FORM1 | True | True | True | True/True/True | `e33225c4fa8512b2` | 3223 | 1 |
| form1-insert | QAFE_FORM1 | True | True | True | True/True/True | `85d5f0ddb51cba73` | 3836 | 2 |
| form1-update | QAFE_FORM1 | True | True | True | True/True/True | `07d4bc90845fa062` | 2954 | 2 |
| form2-course-delete-refused | QAFE_FORM2 | True | True | True | True/True/True | `e27ff31061b90aa0` | 13831 | 7 |
| form2-courses | QAFE_FORM2 | True | True | True | True/True/True | `981e74f0ef296457` | 22259 | 8 |
| form2-instructor-insert | QAFE_FORM2 | True | True | True | True/True/True | `2974098099c8d6ad` | 14854 | 2 |
| form2-student-insert | QAFE_FORM2 | True | True | True | True/True/True | `fb58dd984b1e499e` | 20002 | 2 |
| form2-student-no-first-name | QAFE_FORM2 | True | True | True | True/True/True | `69952792aed3ac76` | 20118 | 2 |
| form2-student-update | QAFE_FORM2 | True | True | True | True/True/True | `47b7abe93c477d2b` | 16375 | 2 |
| form2-students | QAFE_FORM2 | True | True | True | True/True/True | `161fb653140cf283` | 9326 | 3 |
| form2-zip-lov | QAFE_FORM2 | True | True | True | True/True/True | `d4ff8cd91940720e` | 48920 | 3 |
| form3-browse | QAFE_FORM3 | True | True | True | True/True/True | `d3d79207cc4cb7c1` | 11589 | 3 |
| form3-cost-invalid | QAFE_FORM3 | True | True | True | True/True/True | `1ff71e7e9371e264` | 14389 | 3 |
| form3-section-course | QAFE_FORM3 | True | True | True | True/True/True | `69fa282e4c3c5b67` | 18220 | 5 |
| form3-sections | QAFE_FORM3 | True | True | True | True/True/True | `cf9b1d37be7c06ea` | 6986 | 6 |
