Documents
e2e-feature-verification
e2e-feature-verification
Type
External
Status
Published
Created
Jun 13, 2026
Updated
Jun 13, 2026
Source
View

End-to-End Feature Verification Test Plan#

Software-level test plan (demo mode + automated). Complements hardware lab testing (#42), encryption testing (#45), and failure path testing (#44).

Refs: #41|Closes

Test Layers#

LayerCommandDescription
1pytest tests/unit/ -qPure-logic, no display (210+ tests)
2xvfb-run pytest tests/ui/ -vHeadless GTK, real widgets (14+ tests)
3BOOTC_DEMO=1 ./run-dev.shFull UI flow, fake install
4flatpak run org.bootcinstaller.InstallerReal sandbox, real GResource
5Hardware lab deploy + real installReal fisherman, real disk (#42)
6Post-reboot verificationInstalled system validates (#42)

Layer 3: Demo Mode Walkthrough#

Welcome Screen#

  • App launches without crashes or tracebacks
  • Welcome text displays correctly
  • Credits button opens credits window with hero cards
  • Credits window shows all sections from credits.json
  • Bluetooth pairing row visible (if BT adapter present)
  • Power off row opens confirmation dialog
  • "Install" row advances to next step

Wizard Steps#

  • Image selection shows images from images.json with logos
  • Custom image entry works (paste URL)
  • Disk selection lists available disks with size/model
  • Battery warning banner shows when on battery power
  • Encryption type selector shows all 4 options
  • Passphrase field accepts input, shows/hides password
  • Timezone map/list works
  • Dinosaur fact shows when country is selected
  • Language/keyboard selection works with search
  • User creation fields validate (username format, password match)

Confirm Screen#

  • Summary shows all selected options as rows
  • Disk info formatted correctly (device + size)
  • Encryption type shown if selected
  • Image name/ref shown
  • "( Become Legend )" button text is correct

Progress Screen#

  • Video plays (not black rectangle, not frozen frame)
  • Video is muted and loops continuously
  • Soundtrack toggle button is clickable
  • QR codes render as actual QR images
  • QR codes are scannable with phone
  • Carousel has indicator dots, auto-advances every 50s
  • Console/media toggle buttons work
  • Progress bar advances through 9 steps (demo: 0% → 100% in ~5s)
  • Step name updates as progress advances

Done Screen#

  • Success: shows "[Image] is installed" with distro name
  • Success: elapsed time in subtitle
  • Success: reboot button visible and functional
  • Failure: shows "Installation failed" with error icon
  • Failure: error hint extracted from log
  • Failure: retry button visible

Sign-off Criteria#

  • All Layer 1 tests pass (210+ unit tests)
  • All Layer 2 tests pass (14+ UI tests)
  • Layer 3 demo walkthrough: all checkboxes checked
  • Layer 4 Flatpak builds without error
  • No Python tracebacks or GStreamer CRITICALs in stderr