FormsRefresh

Student forms / form3-section-course

form3-section-course

A section's course number is checked by WHEN-VALIDATE-ITEM: an unknown number gives "This course does not exist in the database."; an existing one passes, and the trigger's FETCH INTO :COURSE.COURSE_NO writes it into the master block's course number.

0defects
436values match
0tolerated by policy
0waived
0unmapped

Three runs from a fresh database gave byte-identical diffs. Behaviour that looks odd in the migrated app but is the original's: faithful to the original and waivers. Files: scenario, golden record, target record, diff (JSON).

Scenario steps

Items are addressed by their Forms name (BLOCK.ITEM[row]), the same name in the original and, through the mapping, in the migrated app.

#StepActionChecked on the original
0Open form QAFE_FORM3
1show sectionsClick COURSE.PUSH_BUTTON_WINDOW
2Type SECTION.COURSE_NO[0] = 9999
3leave course noPress Tab
4Type SECTION.COURSE_NO[0] = 455
5leave course no againPress Tab

Screens, step by step

Left: the original Oracle Forms application, recorded on a virtual display. Right: the migrated application in headless Chromium. Screenshots are evidence only; the comparison works on the recorded values.

Step 0: open QAFE_FORM3

Original (Oracle Forms 14.1.2), step 00-open
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 00-open
Migrated (.NET, PostgreSQL)

Step 1: show sections

Original (Oracle Forms 14.1.2), step 01-show-sections
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 01-show-sections
Migrated (.NET, PostgreSQL)

Step 2: type

Original (Oracle Forms 14.1.2), step 02-type
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 02-type
Migrated (.NET, PostgreSQL)

Step 3: leave course no

Original (Oracle Forms 14.1.2), step 03-leave-course-no
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 03-leave-course-no
Migrated (.NET, PostgreSQL)

Step 4: type

Original (Oracle Forms 14.1.2), step 04-type
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 04-type
Migrated (.NET, PostgreSQL)

Step 5: leave course no again

Original (Oracle Forms 14.1.2), step 05-leave-course-no-again
Original (Oracle Forms 14.1.2)
Migrated (.NET, PostgreSQL), step 05-leave-course-no-again
Migrated (.NET, PostgreSQL)

Golden record of the original

After each step: the focus, the displayed values that changed, the message line and any alert. The full record (every item of every step, windows, lists of values) is in the JSON file.

#StepAction (by name)Focus afterDisplayed values that changedMessage lineAlertExpect
0Open form QAFE_FORM3COURSE.COURSE_NO[0]COURSE.COST[0] = 40
COURSE.COURSE_NO[0] = 456
COURSE.CREATED_BY[0] = Qafe
COURSE.CREATED_DATE[0] = 29-APR-2016
COURSE.DESCRIPTION[0] = Dutch Grammar
COURSE.MODIFIED_BY[0] = Qafe
COURSE.MODIFIED_DATE[0] = 29-APR-2016
COURSE.SECTIONCOUNT[0] = 3
COURSE.STUDENTCOUNT[0] = 0
1show sectionsClick COURSE.PUSH_BUTTON_WINDOWSECTION.SECTION_ID[0]SECTION.CAPACITY[0] = 25
SECTION.CAPACITY[1] = 25
SECTION.CAPACITY[2] = 25
SECTION.COURSE_NO[0] = 456
SECTION.COURSE_NO[1] = 456
SECTION.COURSE_NO[2] = 456
SECTION.CREATED_BY[0] = QAFE
SECTION.CREATED_BY[1] = QAFE
SECTION.CREATED_BY[2] = QAFE
SECTION.CREATED_DATE[0] = 29-APR-2016
SECTION.CREATED_DATE[1] = 29-APR-2016
SECTION.CREATED_DATE[2] = 29-APR-2016
SECTION.INSTRUCTOR_ID[0] = 101
SECTION.INSTRUCTOR_ID[1] = 101
SECTION.INSTRUCTOR_ID[2] = 102
SECTION.LOCATION[0] = Glass Room
SECTION.LOCATION[1] = Glass Room
SECTION.LOCATION[2] = Glass Room
SECTION.MODIFIED_BY[0] = QAFE
SECTION.MODIFIED_BY[1] = QAFE
SECTION.MODIFIED_BY[2] = QAFE
SECTION.MODIFIED_DATE[0] = 29-APR-2016
SECTION.MODIFIED_DATE[1] = 29-APR-2016
SECTION.MODIFIED_DATE[2] = 29-APR-2016
SECTION.SECTION_ID[0] = 159
SECTION.SECTION_ID[1] = 160
SECTION.SECTION_ID[2] = 161
SECTION.SECTION_NO[0] = 1
SECTION.SECTION_NO[1] = 2
SECTION.SECTION_NO[2] = 3
SECTION.START_DATE_TIME[0] = 29-APR-2016
SECTION.START_DATE_TIME[1] = 29-MAY-2016
SECTION.START_DATE_TIME[2] = 28-JUN-2016
2Type SECTION.COURSE_NO[0] = 9999SECTION.COURSE_NO[0]SECTION.COURSE_NO[0] = 9999
3leave course noPress TabSECTION.COURSE_NO[0]This course does not exist in the database.
4Type SECTION.COURSE_NO[0] = 455SECTION.COURSE_NO[0]SECTION.COURSE_NO[0] = 455This course does not exist in the database.
5leave course no againPress TabSECTION.SECTION_NO[0]COURSE.COURSE_NO[0] = 455

Database effects

None: the scenario changes no row and draws no sequence value.

Classified diff against the migrated app

Diff: form3-section-course
counts: match 436, tolerated 0, waived 0, defect 0, unmapped 0, harness 0
generated-id pairs (source -> target): none

waivers:
  S1 [proposed] Screen-reader announcement of the COURSE_NO item read as a message: applied to 0 value(s)

Waivers

No waiver applies to this scenario: every compared value matches or is within the tolerance policy.