End-to-End Test Scripts

ABC Education Module — E2E Test Scripts

Complete test flows covering admin setup, profile management, course curriculum, student enrollment, attendance & grades, financial operations, portal experiences for instructors/students/companies, and specialized programs. 47 test cases across 12 flows.

Flow 1 Admin 0/4
Flow 2 Craft & Location 0/3
Flow 3 Instructor 0/3
Flow 4 Student 0/4
Flow 5 Courses 0/5
Flow 6 Enrollment 0/4
Flow 7 Attendance 0/3
Flow 8 Financial 0/4
Flow 9 Portal Instr 0/3
Flow 10 Portal Student 0/5
Flow 11 Portal Company 0/4
Flow 12 Specialized 0/5
Admin Setup
Configuration
Module Management
TC-1.1 School Year & Semester Setup
Hybrid
Flow 1 / Admin Setup & Configuration
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. User is logged into CHAD2 platform
  3. Navigation to Education → Education Admin is accessible
Test Steps
Step 1
Navigate to Education AdminAcademic StructureSchool Year Management
School Year Management screen displays; current year shows with (default) label; list of existing years visible
Step 2
Click Create New School Year button
Modal appears with fields: Year Name, Start Date, End Date, Default Year checkbox
Step 3
Enter year name "2026-2027", start date 07/01/2026, end date 06/30/2027; do NOT check default
All fields populate correctly; validation accepts the entry
Step 4
Click Save; verify new year appears in list
New school year created and visible in School Year list; no (default) label shown
Step 5
Click Semester Configuration and enable semester usage via chapter setting
Semester settings screen appears; chapter staff can add/remove semesters and define start/end dates
Step 6
Add two semesters: "Fall 2026" (08/01/2026 - 12/15/2026) and "Spring 2027" (01/15/2027 - 06/30/2027)
Both semesters saved and visible in semester list with correct date ranges
Bug Risks
  • School year creation fails with validation error on valid dates
  • Default year designation not persisting after save
  • Cannot create school years with end dates before start dates
  • Semester overlap validation missing
Verify that school years cannot be modified if active courses exist. Test the year selector dropdown on browse screens to confirm default year is pre-selected.
ABC-3178
TC-1.2 Lookup Tables & Chapter Defaults
Hybrid
Flow 1 / Admin Setup & Configuration
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 access
  2. User is logged into CHAD2 platform
  3. Chapter Site Settings accessible
Test Steps
Step 1
Navigate to Chapter SettingsEducation section
Education section appears in Chapter Settings with Lookup Tables and Default options
Step 2
Click Lookup Tables link filtered to Education module
Lookup Tables screen displays with Education-only tables: Attendance Types, Student Craft/Course Enrollment Options, Student Types, Level Notes, Assignment Types
Step 3
Verify Attendance Types show hard-coded options: Present, Absent, Excused, Late, Partial
All 5 attendance type options are visible and cannot be deleted; only enable/disable available
Step 4
Verify Student Enrollment Options: Enrolled, Completed, Withdrawn, Inactive (for both craft and course)
All 4 enrollment status options present for both Craft and Course enrollment tables
Step 5
Navigate to Chapter-Defined Defaults in Education section
Defaults screen shows Education section with dropdowns for Default Attendance Type and Default Student Type
Step 6
Select "Present" as default Attendance Type and "Apprentice" as default Student Type; save
Defaults saved successfully; values persist after page refresh
Bug Risks
  • Education lookup tables not filtered in global Lookup Tables screen
  • Hard-coded attendance types can be deleted or modified
  • Default values not persisting after save
  • Missing custom Student Types in dropdown
Verify that these defaults are used in enrollment and student profile creation flows. Test the impact of changing defaults mid-chapter-year.
ABC-3179 ABC-3180
TC-1.3 Module Management (Browse, Add Bulk, Edit, Delete)
Hybrid
Flow 1 / Admin Setup & Configuration
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Craft "Electrical" already created in system
  3. School year selected in context
Test Steps
Step 1
Navigate to Education AdminModule ManagementBrowse Modules
Browse Modules screen displays with columns: Module ID, Name, Hours, Level, Craft, Edition, Status; filters for Craft, Level, Status, Edition, Search
Step 2
Filter by Craft="Electrical"; verify only Electrical modules display
List filtered to Electrical craft modules; count and details accurate
Step 3
Click Add Modules to open bulk creation interface
Bulk add modal opens with inline table, Craft Association field, Add Row/Remove Row buttons
Step 4
Add 3 modules: ID "ELC-101"/"Fundamentals"/40hrs/Core, "ELC-102"/"Safety"/8hrs/Level 1, "ELC-103"/"Wiring"/32hrs/Level 1
All rows populate correctly; Craft Association "Electrical" applies to all; validation passes
Step 5
Click Save All Modules
All 3 modules created; browse list updated; status shows "Active" by default
Step 6
Click Edit on module "ELC-102" and change hours to 10, add Edition "v2.0"
Edit modal opens with all current fields; changes save; version history available showing change timestamp
Step 7
Verify module "ELC-101" is assigned to course "Electrical Core 2026"; try to delete it
Delete is blocked with message "Module assigned to active course; cannot delete"; no confirmation dialog appears
Step 8
Create new unassigned module "ELC-999"/"Test"/5hrs and attempt delete
Delete confirmation dialog appears; upon confirmation, module is removed from list
Bug Risks
  • Module IDs can be duplicated within system
  • Bulk add allows negative or invalid hours values
  • Craft Association not applying to all rows in bulk add
  • Delete allowed on modules with active course assignments
  • Version history not tracking or displaying correctly
Test that modules with zero hours are allowed. Verify that NCCER edition updates are properly tracked. Test bulk add with 20+ modules for performance.
ABC-3181 ABC-3182 ABC-3183
TC-1.4 Work Process (OJT) Management
Hybrid
Flow 1 / Admin Setup & Configuration
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Craft "Plumbing" already created in system
  3. No active students with recorded OJT hours in target work processes
Test Steps
Step 1
Navigate to Education AdminWork Process (OJT) Management
Browse Work Processes screen displays with columns: Work Process ID, Name, Required Hours, Craft, Status; filters for Craft, Status, Search
Step 2
Click Add Work Processes to open bulk creation interface
Bulk add modal opens with inline table, Craft Association single-select, Add Row/Remove Row buttons
Step 3
Add 2 work processes: "PLB-WP01"/"Piping Installation"/500hrs, "PLB-WP02"/"Repairs"/200hrs; select Craft "Plumbing"
Both rows populate; whole number hours validation applied; Craft applies to both
Step 4
Click Save All Work Processes
Both work processes created and visible in browse list with status "Active"
Step 5
Click Edit on "PLB-WP02" and try to reduce Required Hours from 200 to 100
Edit modal opens; system allows reduction if no students have recorded 100+ hours for this work process
Step 6
Create scenario: student "John Doe" has 180 hrs recorded for "PLB-WP02"; try to reduce hours to 150
Validation error appears: "Cannot reduce below 180 hours (maximum recorded)"; edit blocked
Step 7
Verify that work processes with no recorded student hours can be deleted
Delete confirmation dialog appears and work process is removed from system
Bug Risks
  • Work process IDs can be duplicated within craft
  • Bulk add accepts decimal hours instead of whole numbers
  • Maximum recorded hours validation not enforced on edit
  • Cannot delete work process even when no hours recorded
  • Craft association dropdown not showing available crafts
Verify uniqueness of work process IDs across the entire system, not just per craft. Test OJT hour submissions to ensure proper integration with work process definitions.
ABC-3184 ABC-3185 ABC-3186
Craft Management
Location Management
Document Requests
TC-2.1 Craft CRUD with Module/Work Process Assignments
Hybrid
Flow 2 / Craft & Location Management
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Modules for HVAC craft already created (HVAC-101 through HVAC-105)
  3. Work processes for HVAC created (HVAC-WP01, HVAC-WP02)
Test Steps
Step 1
Navigate to Education AdminCraft ManagementBrowse Crafts
Browse Crafts screen displays with columns: Craft Name, Description, Number of Levels, Active Students (count), Status; filters available
Step 2
Click Add Craft to create new craft "HVAC Systems"
Add Craft form opens with fields: Craft Name, Description, Number of Levels; Modules and Work Processes sections visible
Step 3
Enter Craft Name "HVAC Systems", Description "HVAC installation and maintenance", Number of Levels "5"
Form populates correctly; validation accepts entry; status defaults to "Active"
Step 4
In Modules section, click Add Modules and add HVAC-101 to Core level, HVAC-102/103 to Level 1
Module selection dialog appears filtered by HVAC craft; modules added to correct levels; table shows Module ID, Name, Hours, Level read-only
Step 5
In Work Processes section, click Add Work Process and add both HVAC-WP01 and HVAC-WP02
Work process selection dialog appears; both processes can be multi-selected and added; table shows ID, Name, Hours read-only
Step 6
Click Save Craft
Craft created; browse list updated; craft shows 5 levels, module/work process counts visible
Step 7
Edit craft and try to remove module HVAC-102 (which is assigned to active course)
Remove button disabled with tooltip: "Module assigned to active course; cannot remove"
Step 8
Try to delete craft with active students enrolled
Delete blocked with message "Active students enrolled in this craft; cannot delete"
Bug Risks
  • Craft name uniqueness not validated
  • Cannot add modules to non-existent levels
  • Modules/work processes persist even after removal from craft
  • Module deletion not blocked when assigned to craft with active courses
Verify that craft deletion is blocked only when students are actively enrolled, not just historically. Test module reordering within levels.
ABC-3187 ABC-3188
TC-2.2 Location CRUD and Validation
Hybrid
Flow 2 / Craft & Location Management
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Chapter has multiple companies available
  3. No active courses using target locations
Test Steps
Step 1
Navigate to Education AdminLocation Management
Browse Locations screen displays with columns: Location Name, Type, Address, Status; filters for Type, Status, Search
Step 2
Click Add Location to create Physical location
Add Location form opens with Type dropdown; selecting "Physical" shows: Name, Address, City, State, Zip, Main Phone, Location Contact (Name/Phone/Email)
Step 3
Enter Physical location: "Downtown Campus", "123 Main St", "Springfield", "IL", "62701", phone "217-555-0001"
All fields populate; validation passes; contact info optional fields can be left blank
Step 4
Click Save; create second location Type "Company" linked to "ABC Corp"
Company location type shows Company dropdown selector instead of address fields; location saved successfully
Step 5
Create third location Type "Virtual" with no address required
Virtual location type has minimal fields; saves successfully
Step 6
Edit Physical location to change address; verify change persists
Edit form opens with current values pre-populated; changes save and display in browse list
Step 7
Try to delete Virtual location (unassigned to courses)
Delete confirmation dialog appears; location removed from system
Step 8
Try to delete "Downtown Campus" assigned to active course
Delete blocked with message "Location assigned to active course; cannot delete"
Bug Risks
  • Location name not enforced as unique
  • Company location type allows non-existent company selection
  • Address fields required for Virtual/Company location types
  • Delete allowed on locations with active course assignments
Verify that location types are fully separated and don't mix fields. Test that changing company on Company-type location cascades correctly.
ABC-3189 ABC-3190
TC-2.3 Document Requests (Browse, Create, View Submissions)
Manual
Flow 2 / Craft & Location Management
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Portal students and instructors with active enrollments
  3. Document request feature enabled in chapter settings
Test Steps
Step 1
Navigate to Chapter SiteEducation AdminDocument Requests
Browse Document Requests screen displays with columns: Request ID, Requester, Document Type, Status, Date Created; filters available
Step 2
Click on existing request to view details; verify requestor info, document type, submission status visible
Request detail view shows requester name, email, document type requested, due date, current submission status, file upload history
Step 3
Navigate to Portal as student and verify Documents section available
Portal Documents section shows Pending Requests tab with list of outstanding document requests for student
Step 4
As student, click Upload Document for pending request and attach file
File upload dialog appears; student can select and upload document; submission timestamp recorded
Step 5
Return to Chapter Site and view same request; verify student submission appears in history
Request detail shows student submission with file link, upload date, student name; admin can download or reject
Bug Risks
  • Document requests not visible to target students in portal
  • File upload fails for certain file types
  • Submission timestamp not accurate
  • Admin cannot view uploaded file content
Test with various file types (PDF, DOC, images). Verify file size limits are enforced. Check that resubmission overwrites previous file.
ABC-3175
Instructor Profiles
Profile Management
Access Control
TC-3.1 Browse & Add Instructor
Hybrid
Flow 3 / Instructor Profile Management
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Individual "Jane Smith" exists in Contacts module
  3. Crafts "Electrical" and "Plumbing" exist in system
Test Steps
Step 1
Navigate to EducationProfilesBrowse Instructors
Browse Instructors screen displays with columns: Name, Email, Crafts, Active Status, Portal Access; filters for Status, Craft, Search
Step 2
Click Add Instructor button
Add Instructor form opens with sections: Profile Info, Crafts/Specializations; link to existing individual or create new option
Step 3
Click Link Existing Individual and search for "Jane Smith"
Individual search modal opens; "Jane Smith" appears in results; can be selected
Step 4
Select Jane Smith; verify name, email, phone auto-populate from individual record
Profile info section shows linked individual's contact information; status defaults to "Active"
Step 5
In Crafts section, select "Electrical" and "Plumbing" as specializations
Craft selection multi-select dropdown shows available crafts; selected crafts appear in list
Step 6
Enable Portal Access toggle and click Save
Instructor created; browse list updated with new instructor; portal access enabled for login
Step 7
Verify portal access login works; instructor can access "My Courses"
Instructor logs into portal with individual credentials; can see assigned courses; cannot access admin functions
Bug Risks
  • Individual search not returning results
  • Duplicate instructor creation if same individual linked twice
  • Portal access toggle not enabling login capability
  • Email conflicts not detected when linking individual
Test creating instructor from new individual (not linked). Verify that inactive instructors cannot be assigned new courses.
ABC-3192 ABC-3193
TC-3.2 View & Edit Instructor Profile (Section-based)
Hybrid
Flow 3 / Instructor Profile Management
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Instructor "John Doe" exists with assigned courses
  3. Multiple crafts available for association
Test Steps
Step 1
Click on instructor "John Doe" in browse list to view profile
Instructor detail page opens with tabs: Main, Courses, Notes; view mode by default with Edit button
Step 2
Click Edit button to switch to edit mode
Profile switches to edit mode; all fields become editable; save/cancel buttons appear
Step 3
In Main tab, add new craft specialization "HVAC"; toggle status from Active to Inactive
Craft added to multi-select; status toggle updates correctly in edit mode
Step 4
Click Save to persist changes
Changes saved; page returns to view mode; updated crafts and status visible
Step 5
Click Courses tab
Courses tab shows list of all courses assigned to instructor (current and past); read-only view with course details
Step 6
Click Notes tab
Notes tab shows instructor-specific notes with add/edit capability; timestamp and author visible
Bug Risks
  • Craft specialization not saving correctly
  • Status toggle not persisting on inactive instructors
  • Courses tab showing incorrect course assignments
  • Notes not timestamped or author not displayed
Verify that setting instructor to Inactive prevents new course assignments. Test that profile changes are logged in change history.
ABC-3194 ABC-3553
TC-3.3 Instructor Change History & Portal Access
Manual
Flow 3 / Instructor Profile Management
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Instructor has prior profile modifications
  3. Instructor record has portal access enabled
Test Steps
Step 1
Open instructor profile and click Change History link
Change History page displays with table: Field Changed, Old Value, New Value, Changed By, Date/Time; search functionality available
Step 2
Verify history shows multiple changes (e.g., status changed from Active to Inactive, craft added)
All modifications appear in chronological order with complete audit trail; each change timestamped
Step 3
Search change history for "status" to filter to status changes only
Search filters history to show only status field changes; other modifications hidden
Step 4
Click Portal Access column in browse instructors; verify toggle working
Portal access can be toggled per instructor; change takes effect immediately for login capability
Step 5
Disable portal access for instructor and attempt login to portal
Portal login fails with message "Access denied"; instructor cannot access portal after access disabled
Bug Risks
  • Change history not recording all modifications
  • Changed By field showing incorrect user
  • Search functionality not filtering history correctly
  • Portal access changes not taking effect immediately
Verify change history persists indefinitely and cannot be edited. Test that disabling portal access revokes active sessions.
ABC-3195 ABC-3554
Student Profiles
Profile Management
Company Association
TC-4.1 Browse & Add Student (with individual linking)
Hybrid
Flow 4 / Student Profile Management
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Individuals exist in Contacts module
  3. Companies available for student association
Test Steps
Step 1
Navigate to EducationProfilesBrowse Students
Browse Students screen displays with columns: Name, Email, Craft, Level, Company, Status; filters for Status, Craft, Company, Search
Step 2
Click Add Student button
Add Student form opens with option to link existing individual or create new
Step 3
Click Link Existing Individual and search for "Mike Johnson"
Individual search modal opens; "Mike Johnson" appears if exists; email can be verified before selection
Step 4
Select Mike Johnson; verify name, email, phone auto-populate
Individual info auto-fills; profile info section pre-populated with linked individual's data
Step 5
Select Craft "Electrical" and initial Level "1"; associate with Company "ABC Corp"
Craft and level dropdowns populate; company association shows company details if selected
Step 6
Click Save to create student profile
Student created; browse list updated; student appears with craft, level, company visible
Step 7
Try to create another student with same email as Mike Johnson
Duplicate email detection modal appears; warns of existing student record for same email address
Bug Risks
  • Individual search not returning results
  • Duplicate email detection not working
  • Company association not persisting
  • Craft and level not properly saved
Test creating student from new individual (auto-create). Verify that email conflicts are detected regardless of case sensitivity.
ABC-3196 ABC-3197
TC-4.2 View & Edit Student Profile (All Tabs/Sections)
Hybrid
Flow 4 / Student Profile Management
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Student "Sarah Lee" exists with course enrollments and OJT records
Test Steps
Step 1
Click on student "Sarah Lee" to view profile
Student detail page opens with tabs: Main, Courses, OJT, Notes, Actions; view mode by default
Step 2
Click Edit; verify all Main tab sections editable (profile info, company, craft enrollment)
Edit mode activates; all fields in Main tab become editable; save/cancel buttons visible
Step 3
Modify company association from "ABC Corp" to "XYZ LLC"; save
Company change persists; profile returns to view mode with updated company
Step 4
Click Courses tab
Courses tab shows all course enrollments (current and past) with status, dates, grades summary; read-only view
Step 5
Click OJT tab
OJT tab shows per-craft OJT progress, hours completed/required, submission history; monthly submission records visible
Step 6
Click Notes tab
Notes tab shows student-specific notes with add/edit capability; author and timestamp visible
Step 7
Click Actions tab
Actions tab shows quick actions: View Courses, View Invoices, Manage OJT, Download Progress Report
Bug Risks
  • Company change not cascading to OJT verification (if company-led OJT)
  • Courses tab not showing all enrollments
  • OJT tab not displaying submission history
  • Notes not saving or showing correct author
Test company change impact on OJT verification routing. Verify that inactive students cannot enroll in new courses.
ABC-3198 ABC-3555
TC-4.3 Student Change History & Portal Access
Manual
Flow 4 / Student Profile Management
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Student has prior profile modifications
  3. Student record has portal access enabled
Test Steps
Step 1
Open student profile and click Change History link
Change History page displays with columns: Field Changed, Old Value, New Value, Changed By, Date/Time
Step 2
Verify multiple changes visible (company changes, status changes, craft enrollment changes)
All modifications appear in chronological order; each change complete with old and new values
Step 3
Search history for "company" to filter changes
Search filters to show only company-related changes; other fields hidden
Step 4
In Browse Students, locate Portal Access column and toggle for target student
Portal access can be toggled; change reflects immediately for login capability
Step 5
Disable portal access and attempt student portal login
Portal login fails with appropriate error message; student cannot access portal
Bug Risks
  • Change history missing portal access toggle changes
  • Portal access changes not taking effect immediately
  • Changed By field incorrect or missing
  • Search not filtering history correctly
Verify change history persists and cannot be modified. Test that active sessions are revoked when portal access disabled.
ABC-3199 ABC-3554
TC-4.4 Company Profile Students Tab & Active Students Filter
Hybrid
Flow 4 / Student Profile Management
M
Medium Difficulty
8 min
Preconditions
  1. User has Education Admin Level 3 or Contacts access
  2. Company "ABC Corp" exists with associated students
  3. Some students are actively enrolled in courses, others not
Test Steps
Step 1
Navigate to Contacts module and open Company "ABC Corp" profile
Company profile displays with multiple tabs including Students tab
Step 2
Click Students tab
Students tab displays all students associated with company; columns show: Name, Email, Craft, Level, Status
Step 3
Verify Active Students filter is available in filter bar
Filter dropdown shows "Active Students" option; selecting it filters to students with active course enrollments only
Step 4
Apply Active Students filter; verify only currently enrolled students display
List filtered to show only students with active course enrollments; inactive/completed students hidden
Step 5
Click count badge on Craft Management Browse Crafts "Active Students" for that craft
Opens Browse Students in new tab with that craft pre-filtered and Active Students filter pre-applied
Bug Risks
  • Active Students filter not working correctly
  • Company Students tab showing no students despite associations
  • Craft Active Students count incorrect
  • Filter pre-application not working when linking from Craft browse
Test Active Students count accuracy in real-time as enrollments are added/withdrawn. Verify inactive student can still be viewed in full list.
ABC-3201 ABC-3202
Course Management
Curriculum
Scheduling
TC-5.1 Browse Courses & Add Course (All 4 Sections)
Hybrid
Flow 5 / Course & Curriculum Management
M
Medium
15 min
Preconditions
  1. User has Education Admin Level 3 access
  2. School year "2026-2027" exists and is selected
  3. Craft "Electrical", locations, and instructors exist
Test Steps
Step 1
Navigate to EducationCoursesBrowse Courses
Browse Courses displays with columns: Course Name, Craft/Level, Schedule, Enrollment, Status; filters available
Step 2
Click Add Course button
Add Course form opens with 4 sections: Course Info, Location & Instructors, Capacity & Registration, Pricing & Payment Policy
Step 3
Section 1 - Enter: Course Name "Electrical Level 1", Craft "Electrical", Level "1", Description, Status "Active"
All fields populate; course name validation checks for uniqueness within school year
Step 4
Section 2 - Select Location "Downtown Campus" and assign Instructors "Jane Smith" and "John Doe"
Location and instructor multi-select populate; selections persist across sections
Step 5
Section 3 - Set Capacity "25", Registration Status "Open", Enable Performance Evaluations checkbox
Capacity allows positive numbers; registration status options appear; performance evals checkbox available
Step 6
Section 4 - Enter Member Tuition "$800", Non-Member "$1000", Payment Policy "Pay During Registration", Late Fee "$50" after 09/01
Pricing fields accept decimal currency values; payment policy dropdown functions; late fee date picker works
Step 7
Click Save Course
Course created; browse list updated; course shows all entered details
Bug Risks
  • Course name uniqueness validation not checking within school year context
  • Instructor assignments not persisting across sections
  • Pricing validation allowing negative values
  • Section navigation not working; form loses data on section change
Test that capacity can be overridden (allow over-enrollment with warning). Verify that non-member pricing only applies to portal registrations.
ABC-3203 ABC-3206
TC-5.2 View & Edit Course (Overview Tab Sections)
Hybrid
Flow 5 / Course & Curriculum Management
M
Medium
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course "Electrical Level 1" exists with modules and schedule
Test Steps
Step 1
Click on course "Electrical Level 1" to view course detail
Course detail page displays with Overview tab showing: Course Info, Location & Instructors, Capacity & Registration, Modules, Schedule, Enrollments sections
Step 2
Click Edit in Course Info section; change description and disable Performance Evals
Section edit mode activates inline; changes can be saved without leaving page
Step 3
Click Edit in Location & Instructors section; add new instructor "Sarah Wilson"
Instructor multi-select available in edit mode; new instructor added to list; can be removed
Step 4
View Modules section; verify assigned modules listed (read-only); click to edit modules
Modules section shows Module ID, Name, Hours; edit button opens module assignment interface
Step 5
View Schedule section; verify generated class sessions (read-only); click to edit schedule
Schedule shows Class #, Date, Time, Hours, Module ID for each session; edit button opens schedule management
Step 6
View Enrollments section; verify enrolled student count and capacity usage
Enrollments shows current enrollment count, capacity, percentage filled; button to manage enrollments
Bug Risks
  • Inline section editing not saving changes
  • Modules section not showing all assigned modules
  • Schedule not displaying or editing correctly
  • Enrollment count not accurate
Verify that course cannot be deleted if active courses exist. Test section save/cancel behavior.
ABC-3207
TC-5.3 Assign Modules to Course (Two-Pane Interface)
Hybrid
Flow 5 / Course & Curriculum Management
Preconditions
  1. User has Education Admin Level 3 access
  2. Course exists with modules already assigned
Test Steps
Step 1
Click Edit Modules button in Modules section
Two-pane interface opens: left pane shows available modules, right pane shows assigned modules in course order
Step 2
Drag module from left pane to right pane to add; drag within right pane to reorder
Drag-and-drop functional; modules add to assigned list; reordering persists; can remove modules from right pane
Step 3
Click Save Module Assignments
Module assignments persist; course detail refreshes showing updated module list in new order
Bug Risks
  • Drag-and-drop not functioning
  • Module order not persisting after save
  • Cannot remove modules from assigned list
Test with 20+ modules for performance. Verify module removal is blocked if hours are recorded against that module.
ABC-3208
TC-5.4 Class Schedule Management (Generate, Edit, Holidays)
Hybrid
Flow 5 / Course & Curriculum Management
Preconditions
  1. User has Education Admin Level 3 access
  2. Course with modules assigned exists; no schedule yet generated
Test Steps
Step 1
Click Edit Schedule button
Schedule Management interface opens with options: Generate by Date Range or by Class Count
Step 2
Select "Generate by Date Range"; enter Start Date 09/01/2026, End Date 12/15/2026, Days M/W/F, Times 09:00-11:00
Calendar interface or date range selector appears; day selection multi-select functions; time picker works
Step 3
Click Generate Schedule
Schedule generated showing class sessions for M/W/F from 09/01 to 12/15; editable grid displays Class #, Date, Time, Hours, Module
Step 4
Click on Labor Day (09/02) to add as holiday/break; verify scheduled class on that date is removed
Holiday date picker or calendar interface available; classes on holiday dates automatically skipped
Step 5
Manually edit specific class session (e.g., change Module ID or Time); click Save
Inline row editing available; changes persist; Module total hours update correctly
Bug Risks
  • Schedule generation not respecting day selection
  • Holiday dates not being excluded from generated schedule
  • Manual schedule editing not persisting
  • Module allocation showing incorrect total hours
Test class count generation vs date range. Verify that break weeks (Thanksgiving) can be excluded.
ABC-3209
TC-5.5 Copy Course (Single and Bulk Utility)
Hybrid
Flow 5 / Course & Curriculum Management
Preconditions
  1. User has Education Admin Level 3 access
  2. Course "Electrical Level 1" exists with modules, schedule, pricing
  3. Target school year "2027-2028" exists
Test Steps
Step 1
Navigate to Browse Courses and find "Electrical Level 1"; click Copy button
Copy options dialog appears with checkboxes: Always Copy (location, instructors, modules, pricing, schedule) and Never Copy (enrollments)
Step 2
Select target school year "2027-2028", check "Copy Schedule"; uncheck "Copy Enrollments"; click Copy Course
Course copied with new name; schedule generated for new year; enrollments not copied; pricing/modules copied
Step 3
Verify copied course appears in Browse Courses with updated school year; open to verify details
Copied course displays with correct school year, modules, instructors, pricing; schedule shows dates adjusted to new school year
Step 4
Navigate to Utilities → Copy Courses (Bulk); select multiple courses to copy
Bulk copy utility interface opens with course multi-select; same copy options available
Step 5
Select 3 courses and target year "2027-2028"; execute bulk copy
All 3 courses copied with same rules applied; confirmation shows success count
Bug Risks
  • Copy options not respected (always copies everything)
  • Schedule dates not adjusted for new school year
  • Pricing not copied correctly
  • Bulk copy missing courses or copying incorrectly
Verify that copied course name is unique (add suffix if duplicate). Test that enrollments are never copied regardless of selection.
ABC-3204 ABC-3205
Student Enrollment
Utilities
Bulk Operations
TC-6.1 Browse & Add Enrollment (Bulk, Payment Responsibility)
Hybrid
Flow 6 / Student Enrollment & Utilities
M
Medium
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course "Electrical Level 1" exists with no enrollments
  3. 3+ students exist in system with active status
Test Steps
Step 1
Navigate to EducationEnrollments
Browse Enrollments screen displays with columns: Student, Course, Status, Enrollment Date, Payment Status; filters available
Step 2
Click Add Enrollment button
Add Enrollment (Bulk) form opens: Step 1 - Select Course, Step 2 - Select Students, Step 3 - Enrollment Details, Step 4 - Payment Responsibility
Step 3
Select Course "Electrical Level 1" in Step 1; proceed to Step 2
Course selection persists; Step 2 shows student multi-select with 3+ available students
Step 4
Select 3 students: "John Doe", "Sarah Lee", "Mike Johnson"; proceed to Step 3
Student selections persist; Step 3 shows enrollment date picker and options
Step 5
In Step 3, set Enrollment Date 09/01/2026, Status "Active"; proceed to Step 4 Payment Responsibility
Enrollment details saved; Step 4 shows payment responsibility options for bulk students
Step 6
Select "Student Pays" for John Doe, "Company Pays" for Sarah Lee (with company "ABC Corp"), "Split 70/30" for Mike Johnson
Per-student payment responsibility options available; split ratio entry works
Step 7
Click Complete Enrollment
All 3 students enrolled; invoices generated per payment responsibility; confirmation shows enrollment count; post-save emails sent per configuration
Bug Risks
  • Student selections not persisting across steps
  • Payment responsibility not applied correctly per student
  • Invoices not generated for all students
  • Split payments not calculating correctly (over/under 100%)
Test over-capacity enrollment (should warn but allow). Verify that payment due reminders are scheduled correctly.
ABC-3211 ABC-3212
TC-6.2 View & Transfer Enrollment
Hybrid
Flow 6 / Student Enrollment & Utilities
Preconditions
  1. User has Education Admin Level 3 access
  2. Student enrollment exists with attendance recorded
  3. Target course exists for transfer
Test Steps
Step 1
Click on enrollment in Browse Enrollments to view read-only details
Enrollment detail shows: Student info, Course, Enrollment Status, Dates, Payment Responsibility, Grades summary, Attendance %; quick action buttons
Step 2
Click Transfer quick action button
Transfer dialog opens: select Target Course, Effective Date, Attendance Handling option (copy/recalculate/none)
Step 3
Select target course "Electrical Level 2", effective date 10/01/2026, attendance handling "Copy"
Transfer parameters accepted; validation checks that target course exists and has capacity
Step 4
Click Complete Transfer
Student transferred to new course; original enrollment status changed to "Transferred"; new enrollment created with transferred attendance/grades; confirmation displayed
Bug Risks
  • Transfer dialog not appearing or not functional
  • Target course validation not checking capacity or existence
  • Attendance records not copying correctly
  • Original enrollment not marked as Transferred
Test transfer with grades and payment responsibility handling. Verify that failed transfers don't create orphaned enrollments.
ABC-3213 ABC-3214
TC-6.3 Withdraw Enrollment & Split Students Utility
Manual
Flow 6 / Student Enrollment & Utilities
Test Steps
Step 1
In enrollment detail, click Withdraw quick action
Withdrawal confirmation dialog; shows effective date options and invoice impact; refund options if payment made
Step 2
Select withdrawal effective date and confirm
Enrollment marked as Withdrawn; status changed; balance/refund processed if applicable; confirmation received
Step 3
Navigate to Education AdminUtilitiesSplit Students
Split Students utility opens; course selector and student list interface visible
Step 4
Select over-capacity course (25 students in 25-capacity course); select 5 students to move
Course shows enrollment status; student multi-select allows up to capacity difference; rebalance options appear
Step 5
Create new section "Electrical Level 1 - Evening" or select existing course as target
Course creation/selection works; target course shows capacity available
Step 6
Click Move Students
Students transferred to target course; original course back to capacity; both courses updated in browse list
Bug Risks
  • Withdrawal not properly updating enrollment status
  • Refund calculation incorrect or not processing
  • Split utility not respecting capacity limits
  • Target course creation failing
Test refund logic with different payment responsibility scenarios. Verify split utility handles payment responsibility inheritance correctly.
ABC-3215
TC-6.4 Level Promotion (Bulk Utility)
Hybrid
Flow 6 / Student Enrollment & Utilities
Preconditions
  1. User has Education Admin Level 3 access
  2. Students enrolled in multiple craft levels with completed courses
  3. Craft has at least 5 levels defined
Test Steps
Step 1
Navigate to Education AdminUtilitiesLevel Promotion
Level Promotion utility opens with Craft selector and promotion parameters
Step 2
Select Craft "Electrical"; identify students eligible for promotion from Level 3→4
Utility shows candidate students for Level 3→4 promotion; displays completion status, grades, eligibility
Step 3
Review candidates; note processing order (4→5, then 3→4, then 2→3, then 1→2) and confirm promotions
Candidate list shows in reverse level order; multi-select available for bulk promotion; confirmation button present
Step 4
Select 5 students for promotion; click Promote
Students promoted; Craft Enrollment Status updated to next level; confirmation shows promotion count
Step 5
For student promoted from Level 5 (max level), verify status set to "Graduated/Completed"
Maximum-level students have Craft Enrollment Status changed to "Completed" or "Graduated" instead of cycling to Level 1
Bug Risks
  • Promotion processing not following reverse-order rules
  • Max-level students not being marked as Graduated
  • Promotion status not persisting in student profile
  • Bulk promotion missing some selected students
Test mixed-level promotion (Level 2→3 and Level 3→4 simultaneously). Verify graduation flag prevents further enrollments.
ABC-3216
Attendance Tracking
Grading
Performance Evals
TC-7.1 Record & View Attendance
Hybrid
Flow 7 / Attendance, Grades & Performance
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course with scheduled sessions exists and is visible
  3. Multiple students enrolled in the course
Test Steps
Step 1
Navigate to View CourseAttendance Tab
Attendance Tab displays with Session Selector dropdown and Record Attendance call-to-action
Step 2
Select a past/current session date from the Session Selector dropdown
Session panel updates; if not yet recorded, shows "Record Attendance" button; if recorded, shows read-only roster
Step 3
Click Record Attendance to open inline editable roster table
Roster table displays with columns: Select, Student, Company, Status, Hours Absent, Makeup + Date, Notes
Step 4
Select 2 students, mark one "Present" and one "Absent"; set Hours Absent = 2 for the absent student
Status and hours populate correctly in the roster table
Step 5
For the absent student, add a Makeup session date and verify Hours Absent resets to zero
Makeup date saved; Hours Absent automatically changes to 0 when makeup is added
Step 6
Click Save to persist attendance record
Attendance saved; roster view becomes read-only; Attendance History panel populated
Step 7
Verify Attendance History displays totals: Present count, Absent count, Total Hours; select another past session to view its history
History panel shows accurate counts and student-by-student breakdown; can navigate between sessions
Bug Risks
  • Session selector allows selection of future dates (validation issue)
  • Makeup date entry fails to auto-reset Hours Absent
  • Attendance history not persisting after save
  • Hours Absent validation allows values > session hours
  • Instructor cannot take attendance without admin override
Verify that attendance Status options match the Attendance Types lookup table. Test the impact of withdrawing a student after attendance is recorded. Confirm makeup session visibility and processing.
ABC-3217
TC-7.2 Assignments & Grade Entry
Hybrid
Flow 7 / Attendance, Grades & Performance
M
Medium Difficulty
14 min
Preconditions
  1. User has Education Admin Level 3 or Instructor access
  2. Course with assigned modules exists
  3. Students enrolled in course
Test Steps
Step 1
Navigate to View CourseGrades Tab
Grades Tab displays with Assignments panel (left) and Grades panel (right)
Step 2
Click Add Assignment to open assignment modal
Modal displays fields: Assignment Name, Module, Assignment Type, Grading (Percentage/Pass-Fail), Administered Date, Due Date
Step 3
Create assignment: Name="Midterm Exam", select a Module, Assignment Type="Quiz", Grading=Percentage, set dates, save
Assignment saved and appears in Assignments table with all fields visible
Step 4
Click Enter Grades on the Midterm Exam assignment
Grades panel on right displays inline editable roster with columns: Student, Company, Grade (numeric 0-100), Retake/2nd Grade, Notes
Step 5
Enter grades for 3 students: 85, 92, 78 (all within 0-100 range)
All grade values entered correctly; validation accepts percentage values
Step 6
For one student, enter a Retake/2nd Grade value of 88; click Save Grades
Grades saved successfully; retake grade persists; grade history available for review
Step 7
Create a second assignment with Grading=Pass/Fail; enter Pass/Fail results for students
Pass/Fail option works correctly; grades are binary (Pass or Fail), not numeric
Step 8
Edit the first assignment, switch grading from Percentage to Pass/Fail
System prompts confirmation warning about data impact; switching grading method allowed with acknowledgment
Bug Risks
  • Grade entry validation allows values outside 0-100 range
  • Retake/2nd grade field not appearing for percentage grading
  • Switching grading type loses existing grade data without confirmation
  • Assignment Type dropdown not populated from lookup table
  • Module selector not filtering to modules assigned to course
Verify that Assignment Type comes from the Assignment Types lookup table. Test grade history tracking and the ability to view previous grades. Confirm that notes are properly stored with each grade entry.
ABC-3218
TC-7.3 Performance Evaluations
Hybrid
Flow 7 / Attendance, Grades & Performance
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 or Instructor access
  2. Course with multiple modules and scheduled sessions
  3. Students enrolled in course
Test Steps
Step 1
Navigate to View CoursePerformance Evaluations Tab
Performance Evaluations Tab displays with Session Selector and Record Evaluation call-to-action
Step 2
Select a past/current session date from the Session Selector dropdown
Session panel updates showing Record Evaluation setup or read-only history view
Step 3
Click Record Evaluation to open evaluation entry form
Form displays Module selector, Evaluation Date (pre-filled), Notes/Instructions field, and roster table
Step 4
Select a Module from the dropdown; date auto-populates from selected session
Module selected; Evaluation Date matches the session date selected earlier
Step 5
In the roster table, mark 3 students: 2 as "Pass" and 1 as "Fail"; add notes for failed student
Pass/Fail results entered; notes visible in Notes column; Results are binary (no percentage)
Step 6
Click Save to persist evaluation records
Evaluations saved; roster becomes read-only; Evaluation History panel populated
Step 7
Verify Evaluation History displays results by student; select a different session to view other evaluations
History shows per-student Pass/Fail results; can navigate between sessions; historical data accurate
Bug Risks
  • Session selector allows selection of future dates
  • Module dropdown not filtered to modules in course
  • Evaluation date not auto-populating from selected session
  • Pass/Fail results allowing invalid values
  • History not persisting after save; reloading loses data
Verify that evaluations are module-based and module history is tracked. Test the ability to retake an evaluation for a failed student. Confirm that evaluation history is accessible from both admin and instructor portal views.
ABC-3219
Pricing & Payment
Invoicing
Financial Management
TC-8.1 Course Pricing & Payment Policy
Hybrid
Flow 8 / Financial Operations
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course exists in system
  3. User can edit course pricing section
Test Steps
Step 1
Navigate to View/Edit Course → scroll to Pricing & Payment Policy section
Pricing section displays with fields: Member Tuition, Non-Member Tuition, Payment Policy dropdown, Late Registration Fee
Step 2
Enter Member Tuition = $500, Non-Member Tuition = $750
Both tuition amounts accepted; validation confirms numeric currency format
Step 3
Select Payment Policy = Pay During Registration; save course
Policy saved; Pay During Registration enforces immediate payment at enrollment
Step 4
Edit course again; change Payment Policy to Pay By Date and set date = Aug 31, 2026
Policy changed; date picker displayed and accepted; Policy now triggers invoice creation instead of immediate payment
Step 5
Add Late Registration Fee: $25, applicable after Sept 1, 2026; save
Late fee saved with trigger date; will apply to enrollments after trigger date
Step 6
Verify a member-level user viewing this course in portal sees $500 tuition; non-member sees $750
Pricing resolved correctly by authentication (member vs non-member); user cannot self-select pricing tier
Bug Risks
  • Tuition fields accepting non-numeric values
  • Payment Policy dropdown not showing both options
  • Pay By Date picker not accepting valid dates
  • Late fee not being applied based on trigger date
  • Member/Non-Member pricing not resolving correctly by login status
  • Allowing user to manually select member rate in portal
Verify that member status is determined by authenticated login, not user selection. Test that late fees are correctly applied to enrollments made after the trigger date. Confirm that changing pricing mid-year does not affect existing enrollments.
ABC-3220
TC-8.2 Payment Responsibility & Plans
Hybrid
Flow 8 / Financial Operations
M
Medium Difficulty
14 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course with pricing configured exists
  3. Student and company already set up for enrollment
  4. Payment Plans enabled on course (Yes/No toggle visible)
Test Steps
Step 1
Navigate to Add Enrollment for a course with payment plans enabled
Enrollment form displays with Payment Responsibility section: Student Pays / Company Pays / Split options
Step 2
Select Student Pays option (100% student responsibility)
Option selected; form shows payment methods/plan options applicable to student only
Step 3
Select Company Pays option; verify company billing info is on file
Option selected; company payment terms apply; validation confirms company has valid billing contact
Step 4
Select Split option; choose Percentage-based split: Company 70%, Student 30%
Split option expanded; percentage fields shown; validation confirms percentages total 100%
Step 5
Enable payment plans; select 3 installments, Monthly interval, require first payment at setup
Payment plan options displayed; installment count, interval, and first payment options available
Step 6
Verify calculated installment amounts and dates shown (derived from student's 30% split of tuition); note that company 70% not included in plan
Installment amounts correct (student portion only); dates spaced monthly from setup; company portion billed separately
Step 7
Save enrollment; verify separate invoices generated for student (30%) and company (70%)
Enrollment persisted; two invoices created (split); payment plan installments scheduled for student portion only
Bug Risks
  • Payment Responsibility options not appearing
  • Split percentage validation allowing non-100% totals
  • Company portion included in payment plan calculation
  • Cannot assign company responsibility without valid billing info
  • Payment plan not creating separate installment invoices
  • First payment requirement not enforced at enrollment
Verify that split invoices are generated correctly with distinct amounts. Test that payment reminders only apply to the responsible party (student vs company). Confirm that company portion is NOT included in payment plan calculations, as per requirements.
ABC-3221 ABC-3222
TC-8.3 Invoice Generation & Browse
Hybrid
Flow 8 / Financial Operations
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Multiple course enrollments with different payment paths exist
  3. Some enrollments use split payment responsibility
  4. Some enrollments have payment plans
Test Steps
Step 1
Enroll student using "Pay Now" payment option during registration
Enrollment completed; paid invoice generated immediately marked as "paid"
Step 2
Enroll another student using "Request Invoice" option (Pay By Date policy)
Enrollment pending payment; "unpaid" invoice auto-generated with due date
Step 3
Enroll student with Split payment (70% company, 30% student); verify TWO invoices created
Both invoices generated: one for company portion, one for student portion; amounts and payee distinct
Step 4
Enroll student with 3-installment payment plan; verify installment invoices created for each period
Multiple invoices created (one per installment); each has distinct due date and amount
Step 5
Navigate to Browse Education Invoices screen
Browse screen displays with filters (Student, Company, School Year, Semester, Course, Craft/Level, Date Ranges) and columns (Invoice #, Date, Student, Company, Course, Amount, Status, Payment Date, Due Date)
Step 6
Filter by Course name and Payment Status=Unpaid; verify all unpaid invoices for that course display
Filters work correctly; unpaid invoices listed; count accurate
Step 7
Select unpaid invoices and click Send Unpaid Invoice Email
Unpaid invoice reminders sent to responsible parties; action logged; invoices remain in browse list
Step 8
Click on an invoice row to view invoice detail; verify ability to manually record payment
Invoice detail screen opens; payment recording interface available; payment saved and invoice marked paid
Bug Risks
  • Invoices not being generated for "Pay Now" enrollments
  • Request Invoice not creating unpaid invoices
  • Split payment not creating separate invoices for student and company
  • Payment plan installments not creating individual invoices
  • Browse Invoices filters not working correctly
  • Send Unpaid Invoice Email button not functional
  • Manual payment recording failing to update invoice status
Verify that invoices are created for ALL payment paths: Pay Now, Request Invoice, and payment plans. Test that split invoices show correct payee and amount. Confirm that email recipients are correct based on payment responsibility.
ABC-3224 ABC-3225
TC-8.4 Payment Due Reminders & Past Due Blocking
Manual
Flow 8 / Financial Operations
M
Medium Difficulty
15 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course enrollment with unpaid invoice and due date exists
  3. System can send automated emails
  4. Payment plan with multiple installments exists
Test Steps
Step 1
Create course enrollment with "Pay By Date" policy (due date = Aug 31, 2026)
Unpaid invoice created with due date; Payment Due notice automatically sent to student/company
Step 2
Verify Payment Due reminder email received by responsible party on or before due date
Automated reminder email sent; contains invoice amount, due date, and payment instructions
Step 3
Create enrollment with 3-installment payment plan; verify first installment reminder sent before due date
Payment Plan Reminder email sent X days before first installment; includes installment amount and due date
Step 4
Do NOT make payment on due invoice; allow date to pass making balance past-due
Invoice status changes to "past due"; student flagged in enrollment view
Step 5
Attempt to register student with outstanding past-due balance for a new course
Registration blocked with message: "Outstanding past-due balance must be resolved or a payment plan established"; cannot proceed
Step 6
Pay the past-due balance in full
Invoice marked paid; past-due flag cleared; student can now register for new courses
Step 7
For another student, set up payment plan for past-due balance instead of full payment
Payment plan accepted as resolution; registration blocking removed; plan installments begin
Bug Risks
  • Payment Due reminder email not sending automatically
  • Payment Plan reminders not triggering X days before installment
  • Invoice status not updating to past-due after due date passes
  • Registration blocking not enforcing for past-due balances
  • Payment plan resolution not clearing registration block
  • Email recipients incorrect (sending to wrong party)
  • Email content missing invoice details or payment instructions
Test that past-due flag only appears when balance is actually overdue (after due date). Verify that payment plans are accepted as a valid resolution to past-due blocks. Confirm that automatic reminders are timezone-aware and respect chapter preferences. Test that staff can manually send reminders from the Browse Invoices screen.
ABC-3223
Portal
Instructor Experience
Task Management
TC-9.1 My Courses & View Course
Hybrid
Flow 9 / Portal - Instructor Experience
M
Medium Difficulty
8 min
Preconditions
  1. Instructor account with portal access exists
  2. Instructor assigned to 2+ courses
  3. User logged into Education Portal as instructor
Test Steps
Step 1
Log into Portal as Instructor; navigate to My Courses
My Courses screen displays list of ONLY courses assigned to this instructor (not all chapters courses)
Step 2
Verify course list shows: Course Name, Start Date, End Date, Student Count, Action buttons
All relevant course info displayed; only instructor's assigned courses shown
Step 3
Click on a course name to View Course
Course detail screen opens (read-only); displays course info, schedule, enrolled students, task shortcuts
Step 4
Verify task shortcuts visible: Take Attendance, Enter Grades, Performance Evaluations
All task links accessible; clicking each opens appropriate task screen
Step 5
Verify NO finance/pricing info visible (payment status, invoices, cost, payment responsibility)
Financial information completely hidden; instructor sees only academic/instructional content
Step 6
Attempt to cancel a class; verify option not available
Cancel Class option not visible; instructors cannot cancel classes (admin only)
Bug Risks
  • My Courses showing ALL courses instead of only assigned
  • Task shortcuts not functional or missing
  • Financial info visible to instructor
  • Cancel Class option appearing for instructor
  • View Course showing editable fields instead of read-only
  • Student information including PII fully exposed
Verify that instructor permission levels are consistent (all portal instructors have same capabilities). Test that course roster only shows enrolled students. Confirm that scheduling info is visible but date/time editing is disabled.
ABC-3226 ABC-3240
TC-9.2 Attendance/Grades/Performance via Portal
Hybrid
Flow 9 / Portal - Instructor Experience
M
Medium Difficulty
12 min
Preconditions
  1. Instructor logged into Portal
  2. Assigned course with enrolled students and scheduled sessions
  3. No prior attendance/grades recorded for course
Test Steps
Step 1
From My Courses, click Take Attendance shortcut for a course
Directs to View Course → Attendance Tab (portal-specific read-only view with record capability)
Step 2
Select a session and record attendance for 5+ students (mix of Present, Absent, Late)
Session panel shows editable roster; attendance statuses accepted; save persists records
Step 3
From My Courses, click Enter Grades shortcut
Directs to View Course → Grades Tab with assignment/grade entry interface
Step 4
Create an assignment and enter percentage grades for 5+ students
Assignment created; grades entered (0-100); save persists; no financial data visible
Step 5
From My Courses, click Performance Evaluations shortcut
Directs to View Course → Performance Evaluations Tab
Step 6
Select a session and module; record pass/fail evaluations for students
Evaluation roster shows; pass/fail options available; records saved; history preserved
Step 7
Verify all three task screens are read-only EXCEPT for data entry (editable rosters only, not course details)
Instructor can record attendance/grades/evaluations but cannot modify course name, dates, pricing, or other admin fields
Bug Risks
  • Task shortcuts not functional or pointing to wrong pages
  • Attendance/Grades/Performance tabs not available in portal view
  • Session selector showing future dates
  • Save button not persisting records
  • Course editable fields appearing when should be read-only
  • Finance/payment info visible in any tab
  • Student email or sensitive PII visible in rosters
Verify that all three task screens (Attendance, Grades, Performance) share consistent UX and data structures. Test that records created via portal are immediately visible in chapter site admin view. Confirm that instructors cannot modify student enrollment or course schedule.
ABC-3217 ABC-3218 ABC-3219
TC-9.3 Student Profile Snapshot
Hybrid
Flow 9 / Portal - Instructor Experience
M
Medium Difficulty
8 min
Preconditions
  1. Instructor logged into Portal
  2. Assigned course with enrolled students
  3. Student has profile data (company, craft enrollment, notes)
Test Steps
Step 1
From a course roster or student list, click a student name to view Student Profile Snapshot
Snapshot panel opens with constrained view of student info; read-only display
Step 2
Verify snapshot displays: Student Name, Company, Craft Enrollment, Level, Profile Notes (if any)
Limited info displayed relevant to instruction only; sufficient context for instructor planning
Step 3
Verify ALL of the following are NOT visible: Email, Phone, Social Security, Address, Payment Status, Invoice Balance, Financial Account Info
All PII and financial information completely hidden; only instruction-relevant fields shown
Step 4
Verify snapshot is read-only; no edit capability available
Edit button/pencil icon not present; instructor cannot modify student profile from this view
Step 5
If instructor notes field exists, verify instructor can VIEW but not EDIT notes
Instructor notes visible as read-only; no note editing capability in portal
Step 6
Close snapshot and verify no data leakage (e.g., hidden divs with PII, performance issues from hidden data loads)
Clean snapshot closure; no console errors; no PII exposed even via developer tools inspection
Bug Risks
  • Snapshot showing full student profile including PII
  • Financial information visible in snapshot
  • Edit functionality appearing for instructor
  • Email/Phone numbers displayed when should be hidden
  • PII exposed in page HTML (hidden divs visible to inspector)
  • Instructor notes showing editable fields
  • Snapshot not loading or displaying timeouts
This is a security-critical test case. Verify that the snapshot is truly constrained and no data leakage occurs. Test with students having sensitive profile notes to ensure appropriate filtering. Confirm that instructor cannot navigate to full student profile from snapshot.
ABC-3241
Portal
Student Experience
Self-Service
TC-10.1 Course Catalog (Browse & Filter)
Hybrid
Flow 10 / Portal - Student Experience
M
Medium Difficulty
10 min
Preconditions
  1. Portal Student Course Registration enabled in chapter settings
  2. Multiple courses available (open enrollment, future start dates)
  3. Student logged into Portal
  4. Mix of member and non-member courses for testing
Test Steps
Step 1
Log into Portal as Student; navigate to Course Catalog
Course Catalog displays list of available courses with future start dates (not past/completed)
Step 2
Verify course list columns: Course Name, Craft, Level, Start Date, Capacity Status (open/limited/full), Member Price, Non-Member Price
All columns visible; pricing shows both member and non-member rates
Step 3
Apply filter: Craft = "Electrical" and Level = "Level 1"
List filtered to matching courses; count accurate; unrelated courses removed
Step 4
Verify capacity status displays correctly: "Open" for <100% capacity, "Limited" for 90-99%, "Full" for 100%
Capacity indicators accurate; color-coded if applicable
Step 5
Verify pricing displayed: authenticated member user sees only member pricing applied; non-member sees non-member pricing
Pricing resolved correctly by login status; student cannot manually override member status
Step 6
Click on a course to view details; verify Register Now button visible
Course detail page displays; Register Now button present and functional
Bug Risks
  • Catalog showing past or completed courses
  • Pricing not resolving correctly by member status
  • Student able to manually select member discount
  • Capacity status showing incorrect counts
  • Filters not working or showing incomplete results
  • Register Now button missing or non-functional
  • Full capacity courses not showing properly
Verify that the catalog only shows courses with open enrollment. Test edge cases: courses at 100% capacity (should still allow registration if chapter policy permits). Confirm member pricing is automatic based on membership, not user selection.
ABC-3227
TC-10.2 Registration Flow (Entry → Complete → Confirmation)
Hybrid
Flow 10 / Portal - Student Experience
M
Medium Difficulty
16 min
Preconditions
  1. Student logged into Portal
  2. Available course for registration (open enrollment, capacity available)
  3. Chapter has payment policy configured (Pay Now or Pay By Date)
  4. No outstanding past-due balance on student account
Test Steps
Step 1
From Course Catalog, click Register Now on a course
Registration Entry page displays with course summary, terms, and Next/Continue button
Step 2
Review registration details (course name, dates, pricing); check acknowledgment checkbox; click Continue
Entry validated; proceeds to Complete & Payment Options step
Step 3
On Complete & Payment Options, verify payment choices displayed based on course payment policy
If Pay During Registration: Pay Now option; If Pay By Date: Request Invoice option shown
Step 4
Select Pay Now; verify payment method selection (credit card, etc.) and amount shows
Payment form displays with correct tuition amount (member/non-member); payment method options available
Step 5
Alternatively, select Request Invoice option
Invoice option selected; no payment processing required; registration proceeds to confirmation
Step 6
Complete payment or request invoice; click Confirm Registration
Registration processed; confirmation page displays with confirmation number, course details, invoice/payment status
Step 7
Verify confirmation email sent to student; includes registration details, course info, payment status/next steps
Automated confirmation email received; contains all essential registration info and payment instructions
Bug Risks
  • Registration Entry not validating required fields
  • Payment options not displaying based on policy
  • Pay Now payment processing failing silently
  • Request Invoice not creating unpaid invoice
  • Confirmation page not displaying after completion
  • Confirmation email not sending or missing key info
  • Pricing showing incorrect member/non-member rate
  • Cannot proceed if past-due balance exists (blocking not enforced)
Test both payment paths: Pay Now (immediate payment) and Request Invoice (Pay By Date). Verify that confirmation email is sent for both paths. Test that student cannot register with an outstanding past-due balance (blocking check).
ABC-3243 ABC-3244 ABC-3245
TC-10.3 My Courses & View Course (Read-Only)
Hybrid
Flow 10 / Portal - Student Experience
M
Medium Difficulty
10 min
Preconditions
  1. Student enrolled in 2+ courses (mix of current and past)
  2. Student logged into Portal
  3. Current course has recorded attendance/grades
  4. Past course already completed
Test Steps
Step 1
Log into Portal as Student; navigate to My Courses
My Courses displays with Current and Past toggle; defaults to Current
Step 2
Verify Current tab shows: Course Name, Craft/Level, Instructor(s), Progress (attendance %, grade summary), Action buttons
Current courses listed with relevant progress metrics; only active courses shown
Step 3
Switch to Past tab
Past tab displays completed/withdrawn courses; past courses only
Step 4
Click on a current course to view full course detail
Course detail page displays (read-only): schedule, instructor, modules, current attendance %, current grade summary
Step 5
Verify course detail is read-only; no edit buttons, no payment/invoice info visible
All fields read-only; financial information hidden; academic progress visible only
Step 6
Click on a past course; verify final grade and attendance summary shown
Past course detail displays final performance; read-only; no invoice/payment data visible
Bug Risks
  • My Courses showing all courses regardless of enrollment status
  • Current/Past toggle not filtering correctly
  • Progress metrics incorrect or missing
  • Course detail showing editable fields
  • Financial/payment info visible in course view
  • Attendance % not calculating correctly
  • Grade summary missing or incorrect
Verify that attendance % is calculated from recorded sessions. Test that grade summary shows current/final grade and number of assignments completed. Confirm that students cannot see other students' course enrollments.
ABC-3249 ABC-3250
TC-10.4 View My Profile (Student Tab)
Hybrid
Flow 10 / Portal - Student Experience
M
Medium Difficulty
8 min
Preconditions
  1. Student logged into Portal
  2. Student has profile data: OJT enrollment, correspondence training, company-led training
  3. Relevant training flags enabled for student
Test Steps
Step 1
Navigate to My Profile in Portal
Profile page displays with Student Tab (default), OJT section, Correspondence section, Company-Led section
Step 2
Verify Student Tab shows: Name, Email, Company (if applicable), Craft Enrollment(s) with Level/Status
Student info displayed; read-only; no edit capability from portal
Step 3
Verify OJT Section visible if student has OJT enrollment active
OJT section displays (may link to OJT Submission screen or show status); navigation to submit OJT available
Step 4
Verify Correspondence Section visible if flagged for correspondence training
Correspondence section shows status, eligible modules/crafts, link to correspondence training interface
Step 5
Verify Company-Led Section visible if flagged and company assigned
Company-Led section shows company name, lead company (if applicable), training status and link
Step 6
Verify all sections are read-only; no edit fields in portal view
All profile sections display information only; no edit capability; students cannot modify profile from portal
Bug Risks
  • Profile sections not displaying for eligible students
  • OJT/Correspondence/Company-Led sections always visible even when not applicable
  • Edit buttons appearing in portal view
  • Incorrect company association displayed
  • Training status showing wrong eligibility or flags
  • Links to training interfaces non-functional
Verify that OJT section appears ONLY if student has OJT enrollment for at least one craft. Correspondence and Company-Led sections appear based on eligibility flags set in admin. Test that clicking through to training interfaces from profile works correctly.
ABC-3251
TC-10.5 Invoices & Documents (Open/History, Upload/Download)
Hybrid
Flow 10 / Portal - Student Experience
M
Medium Difficulty
12 min
Preconditions
  1. Student logged into Portal
  2. Student has unpaid and past invoices (some paid, some due)
  3. Document requests exist for student or portal has upload capability
Test Steps
Step 1
Navigate to Invoices & Payments in Portal
Invoices screen displays with Open and History tabs
Step 2
Verify Open Tab shows unpaid invoices: Invoice #, Amount, Due Date, Status, Action buttons
All unpaid invoices listed; can click to view detail; payment option available
Step 3
Click on an open invoice to view detail; verify course info, amount, due date, payment responsibility
Invoice detail displays all relevant info; past-due flag visible if applicable
Step 4
Switch to History Tab; verify paid invoices displayed with payment date and method
All paid invoices listed; payment history visible; invoices marked as "Paid"
Step 5
Navigate to Documents section; verify Document Requests and upload functionality
Documents screen displays with request list and upload capability
Step 6
If document request exists, click to view details; upload required document file (PDF, Word, etc.)
Upload form displays; file selected and uploaded; confirmation message shown
Step 7
Verify ability to download previously uploaded documents
Download button available for uploaded files; file downloads successfully
Bug Risks
  • Open/History tabs not filtering correctly
  • Invoice detail not showing all relevant info
  • Payment action not working from portal
  • Document upload failing with file validation errors
  • Previously uploaded documents not downloadable
  • Student seeing other students' invoices or documents
  • Past-due flag not displaying when invoice is overdue
  • File size or type restrictions too restrictive
Verify that students can only see their own invoices and documents (privacy check). Test payment from Open Invoices view. Confirm that document uploads respect file type/size limits and provide appropriate error messages.
ABC-3247 ABC-3257
Portal
Company Portal
OJT Verification
TC-11.1 My Students & View Student
Hybrid
Flow 11 / Portal - Company & OJT
M
Medium Difficulty
8 min
Preconditions
  1. Company account with portal access exists
  2. Company has 2+ students associated (enrolled courses)
  3. User logged into Portal as Company
Test Steps
Step 1
Log into Portal as Company; navigate to My Students
My Students screen displays list of students associated with this company
Step 2
Verify student list shows: Name, Craft/Level, Current Course(s), Payment Responsibility, Status
All company students listed; only students associated with company shown
Step 3
Click on a student name to view Student Snapshot
Student detail panel opens showing read-only snapshot of student info
Step 4
Verify snapshot displays: Name, Craft/Level, Courses, Payment Responsibility, Company Association
Relevant company-viewable student data shown; read-only; no edit capability
Step 5
Verify NO PII visible (email, phone, SSN, address); no payment method or financial account info exposed
Only instruction-relevant and payment-responsibility data visible; personal contact info hidden
Step 6
If company is payment-responsible for portion/all of tuition, verify Pay button visible in student snapshot
Pay action appears for company-responsible students; clicking opens payment interface
Bug Risks
  • My Students showing all chapter students, not just company students
  • Student snapshot exposing PII or financial info
  • Edit buttons appearing when should be read-only
  • Pay action missing for company-responsible students
  • Incorrect payment responsibility displayed
  • Snapshot not loading or showing errors
Verify that company can only see students associated with their account. Test with students having split payment responsibility to ensure company sees only its portion. Confirm that Pay button only appears when company is responsible for payment.
ABC-3228 ABC-3254
TC-11.2 Student OJT Submission
Hybrid
Flow 11 / Portal - Company & OJT
M
Medium Difficulty
10 min
Preconditions
  1. Student logged into Portal
  2. Student has OJT enrollment active (per craft, active company)
  3. Current month or past month available for submission
  4. Chapter has OJT enabled in portal settings
Test Steps
Step 1
Navigate to OJT Submission in Portal (from My Profile or dedicated section)
OJT Submission screen displays with month/year selector and work process list
Step 2
Select current month; verify work processes for student's craft display with required hours and entry fields
Month selected; work processes show with Hours Completed field per work process
Step 3
Enter hours completed for 2-3 work processes (e.g., 20, 15, 10 hours)
Hours entered successfully; values displayed in entry fields
Step 4
Click Save Draft to save submission without submitting
Draft saved; system message confirms; submission not yet sent to company for verification
Step 5
Return to OJT Submission for same month; verify draft hours are restored
Draft data persists; student can edit and re-save or submit
Step 6
Click Submit for Verification to send to company
Submission sent to associated company; status changes to "Pending Verification"; confirmation message shown
Step 7
Verify student can view submission history and status (Pending, Approved, Adjusted, Rejected)
History tab shows all monthly submissions with current status; can view details of past submissions
Bug Risks
  • OJT submission screen not loading or showing work processes
  • Save Draft not persisting data
  • Submit action not routing to correct company
  • Status not updating to Pending after submit
  • History not showing past submissions
  • Allowing submission after company association changes (should route to new company)
  • Not validating hours against work process requirements
Test that draft submissions can be modified before final submit. Verify that monthly submission pattern works correctly (only one submission per month per craft). If company association changes mid-month, confirm that subsequent submissions route to the new company. Test guardrails to prevent over-submitting.
ABC-3252
TC-11.3 Company OJT Verification
Hybrid
Flow 11 / Portal - Company & OJT
M
Medium Difficulty
12 min
Preconditions
  1. Company logged into Portal
  2. Company has students with pending OJT submissions
  3. OJT submissions in various states (pending, some ready to verify)
Test Steps
Step 1
Navigate to OJT Verification in Company Portal
OJT Verification screen displays with Pending Submissions and History tabs
Step 2
Verify Pending Submissions tab shows: Student Name, Craft, Month, Hours Submitted, Work Processes, Action buttons
All pending submissions listed for this company's students
Step 3
Click Approve on one submission; verify submission marked as Approved in system
Approval action succeeds; submission removed from pending list; moved to history as Approved
Step 4
Click Adjust on another submission; modify hours (e.g., from 20 to 18) and add comment "Time card discrepancy"
Adjust modal opens; company can edit hours and add comment; adjustment saved with comment preserved
Step 5
Click Reject on another submission; provide rejection reason (e.g., "Missing documentation")
Rejection modal opens; reason required; submission marked as Rejected; reason visible in history
Step 6
Switch to History Tab; verify all processed submissions (approved, adjusted, rejected) display with actions taken and comments
History shows complete audit trail: submission details, action taken (approve/adjust/reject), comments, date/time
Step 7
Verify student receives notification of approval/adjustment/rejection with company comments
Automated notification sent to student; includes action, adjusted hours (if applicable), and company comments
Bug Risks
  • Pending Submissions tab not showing company's student submissions
  • Approve/Adjust/Reject actions failing or not persisting
  • Comments not being stored with adjustments/rejections
  • History not displaying complete audit trail
  • Student notifications not sending or missing details
  • Adjusted hours not updating student record
  • Rejected submissions allowing re-submission without guardrails
Verify that adjust action allows company to modify hours with comment but does NOT re-send to student for approval. Rejection should explain reason clearly to student. Test that after rejection, student can resubmit for the same month. Confirm audit trail shows ALL changes with timestamps.
ABC-3255
TC-11.4 Company Invoices & Documents
Hybrid
Flow 11 / Portal - Company & OJT
M
Medium Difficulty
10 min
Preconditions
  1. Company logged into Portal
  2. Company has invoices (some company-responsible, some split)
  3. Document requests exist for company
Test Steps
Step 1
Navigate to Invoices & Payments in Company Portal
Invoices screen displays with Open and History tabs; shows ONLY company-responsible portions
Step 2
Verify Open tab shows unpaid invoices: Student Name, Course, Company Amount Due, Due Date, Status
Only company's portion of split invoices displayed; student portion hidden from company view
Step 3
Click on an open invoice to view detail; verify amount shown is company's portion only
Invoice detail displays company amount (not student portion); payment responsibility confirmed as company
Step 4
Switch to History tab; verify paid invoices displayed with payment date and method
Paid invoices listed; payment history visible; showing company's portion only
Step 5
Navigate to Documents section; verify document requests specific to company
Documents screen displays; company document requests and uploads visible
Step 6
If document request exists, upload required document (e.g., W-9 form)
Upload successful; document stored and confirmation message shown
Step 7
Verify ability to download previously uploaded documents
Download button available; file downloads successfully
Bug Risks
  • Company seeing student portion of split invoices
  • Invoice amount incorrect (not company's portion only)
  • Document upload failing
  • Previously uploaded documents not downloadable
  • Company seeing other company's invoices/documents
  • Payment action showing when company already paid
  • History not filtering correctly for paid status
This test case is CRITICAL for financial data security. Verify that company ONLY sees its own portion of split invoices. Test with multiple companies to ensure data isolation. Confirm that student portion is completely hidden from company view.
ABC-3256 ABC-3257
Specialized Programs
Communications
Correspondence Training
TC-12.1 Correspondence Training (Flag, Browse, Record, View Progress)
Hybrid
Flow 12 / Specialized Programs & Communications
M
Medium Difficulty
14 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Student with eligible craft selected
  3. Correspondence Training modules available for craft
Test Steps
Step 1
Navigate to Education AdminOJT Correspondence (or similar menu item)
Correspondence Training admin screen displays with Browse, Flag, and Progress options
Step 2
Select a craft and flag students as Eligible for Correspondence Training
Eligibility flag saved; flagged students now available for correspondence training modules
Step 3
Navigate to Correspondence Training - Browse Students
Browse screen displays flagged students for correspondence training; filters available (name, craft, level, status)
Step 4
Filter by Craft and Level; select a student to Record Completion
Record Completion form displays; allows selection of Module, Grade, and Hours
Step 5
Select a module, enter percentage grade (85), hours completed (20), and save
Completion record saved; student's transcript updated with module completion
Step 6
Navigate to Correspondence Training - View Progress
Progress screen displays per-craft/level completion status; shows modules completed, hours earned, date recorded
Step 7
Click Export Progress to download progress report
Export file generated (CSV or PDF); includes student name, modules completed, grades, hours, dates
Bug Risks
  • Correspondence Training flag not persisting
  • Unflagged students appearing in browse list
  • Record Completion not saving or validating hours
  • Progress not updating after record completion
  • Export functionality missing or generating empty reports
  • Grade validation allowing invalid percentages
  • Modules filtered incorrectly to craft
Verify that correspondence training is per-craft and students must be flagged before appearing in browse lists. Test that completion records are immutable (no editing after save). Confirm that progress export includes all relevant data and is formatted correctly.
ABC-3259 ABC-3260 ABC-3261 ABC-3262
TC-12.2 Company-Led Training (Flag with Lead Company, Browse, Record)
Hybrid
Flow 12 / Specialized Programs & Communications
M
Medium Difficulty
12 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Student with company association
  3. Lead company selected/available for training
  4. Company-Led Training modules available
Test Steps
Step 1
Navigate to Education Admin → Company-Led Training (Training → Company-Led Training)
Company-Led Training admin screen displays
Step 2
Flag student for Company-Led Training: select Craft, select Lead Company, flag student
Flag saved; lead company requirement enforced (cannot flag without lead company selected)
Step 3
Navigate to Company-Led Training - Browse Students
Browse screen displays flagged students; filters available (name, craft, company, lead company)
Step 4
Click Record Completion for a student; select module and hours, save
Completion record saved; transcript updated
Step 5
Navigate to Company-Led Training - View Progress
Progress screen displays modules completed by craft/level; hours earned and dates recorded
Step 6
Click Export Progress
Export file generated with company-led training completion data
Bug Risks
  • Allowing flag without lead company assigned
  • Unflagged students appearing in browse list
  • Record Completion not validating lead company
  • Progress not showing company-led modules
  • Export missing company-led data
  • Lead company not displayed correctly in progress view
Verify that lead company is REQUIRED for Company-Led Training flag. Test that changing lead company updates existing flagged students appropriately. Confirm that progress export distinguishes company-led from other training types.
ABC-3263 ABC-3264 ABC-3265
TC-12.3 OJT Admin Tracking (Flag, Browse, Detail, Export, Bulk Submit)
Hybrid
Flow 12 / Specialized Programs & Communications
M
Medium Difficulty
14 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Students with active OJT enrollments
  3. OJT submissions in various states (draft, pending, approved)
  4. Admin-level OJT tracking accessible
Test Steps
Step 1
Navigate to Education Admin → OJT CorrespondenceOJT Progress - Browse Students
OJT admin tracking screen displays; list of students with OJT enrollments; filters by craft, level, status
Step 2
Filter by Craft; view list of students with OJT for that craft; select students for bulk action
Multi-select checkboxes appear; can select multiple students; bulk action toolbar activates
Step 3
Click Bulk Submit Hours on selected students
Bulk submit dialog opens; allows admin to submit pending OJT for multiple students at once
Step 4
Click on a student name to view OJT Detail & Export
Student detail screen displays; shows work process summary, monthly submissions, hours completed vs required
Step 5
In student detail, verify monthly submission history: date, hours per work process, status
Complete submission history visible; can drill into each month; shows what was submitted vs approved
Step 6
Click Export to download student OJT detail as file (CSV or PDF)
Export generated with complete OJT transcript: work processes, hours completed, status, dates
Bug Risks
  • OJT browse list not showing all eligible students
  • Filters not working correctly
  • Bulk submit action failing or not processing correctly
  • Student detail not loading or showing incomplete data
  • Monthly submission history missing records
  • Export functionality broken or generating incomplete files
  • Hours not calculating correctly (completed vs required)
Verify that OJT tracking is per-craft and shows all work processes with separate hour tracking. Test bulk submit to ensure it only submits pending submissions (not already-approved ones). Confirm export includes complete audit trail with dates and company verification details.
ABC-3266 ABC-3267 ABC-3268
TC-12.4 Mass Communications (Entry, Target, Compose, Send, History)
Manual
Flow 12 / Specialized Programs & Communications
M
Medium Difficulty
16 min
Preconditions
  1. User has Education Admin Level 3 access (required for mass communications)
  2. Multiple students enrolled in courses
  3. Email/SMS delivery configured
Test Steps
Step 1
Navigate to Education Admin → Mass Communications
Mass Communications entry screen displays; access restricted to Level 3 only
Step 2
Click New Message to begin; select Targeting & Audience filters
Audience selection screen displays; filters available (course, craft, level, enrollment status, company, date ranges)
Step 3
Apply filters: Course="Electrical 101", Enrollment Status="Active"; preview audience size
Filters applied; audience count shown (e.g., "45 students matching criteria")
Step 4
Click Compose Message; select message type (Email or SMS)
Compose form displays; type selection available; auto-context fields pre-populated (e.g., course name, student name)
Step 5
Compose message: "Hi {{StudentName}}, reminder that {{CourseName}} starts {{CourseStartDate}}. See you soon!" and subject
Message saved; auto-context variables recognized and formatted correctly
Step 6
Click Test to send test message to admin's email
Test email received with variables populated correctly; allows review before sending to all
Step 7
Click Send to send message to all 45 matching students
Messages sent; confirmation page shows "45 messages sent"; records logged in history
Step 8
Navigate to Mass Communications - History to view all sent messages
History displays all sent communications: date, audience, message, delivery status, open/click rates (if tracked)
Bug Risks
  • Mass Communications access not restricted to Level 3
  • Audience filters not working or showing incorrect counts
  • Auto-context variables not being populated
  • Test message not sending
  • Send action failing with error
  • Messages sent to wrong audience (not filtered correctly)
  • History not logging sent messages
  • Email/SMS delivery failures not being reported
This is a permissions-critical test. Verify that ONLY Level 3 admin can access Mass Communications. Test that auto-context variables are correctly injected (student name, course, date, etc.). Confirm that test mode doesn't send to actual audience. Verify that message history includes delivery status and audit trail.
ABC-3269 ABC-3270 ABC-3271
TC-12.5 Quick Class Notice & Metabase Reporting
Manual
Flow 12 / Specialized Programs & Communications
M
Medium Difficulty
10 min
Preconditions
  1. User has Education Admin Level 3 access
  2. Course with enrolled students exists
  3. Metabase reporting configured and accessible
Test Steps
Step 1
Navigate to a course detail/overview page; locate Quick Class Notice button
Quick Notice button visible on course page; clicking opens message compose modal pre-filled with this course
Step 2
Compose message: "Today's session has been rescheduled to 6 PM"; audience pre-selected as enrolled students
Message text entered; audience confirmed as enrolled students only; send button ready
Step 3
Click Send to notify all enrolled students
Message sent; confirmation shown; record logged
Step 4
Navigate to Reporting & Analytics - Metabase
Metabase dashboard accessible with curated Education reports
Step 5
Explore available reports: Enrollment Trends, Attendance Summary, Grade Distribution, OJT Progress, etc.
Multiple curated reports available; each shows relevant education metrics; filters available
Step 6
Open "Enrollment Trends" report; apply filters: School Year, Craft; review data/charts
Report displays filtered data; charts render correctly; export option available
Step 7
Click Export on report; download as CSV or PDF
Export file generated and downloaded successfully; contains all filtered data
Bug Risks
  • Quick Class Notice button not appearing on course page
  • Quick Notice not pre-filling course context
  • Audience not filtering to enrolled students only
  • Metabase reports not loading or showing errors
  • Filters not working in reports
  • Report data inaccurate or missing
  • Export functionality not working
  • Wrong users able to access Metabase (should be Level 3 only)
Quick Class Notice is a UX convenience that routes to the same mass communications system. Verify that course context is correctly pre-filled. Test Metabase reports with various data ranges and filters. Confirm that all reports refresh with current data and support export formats.
ABC-3272 ABC-1058