Skip to content

View test checklist

Samuel Défago edited this page Apr 25, 2018 · 8 revisions

The following provides a (quite) comprehensive list of which behaviors need to be tested with major changes made to the Letterbox view:

User interface tests

  • Main playback controls:
    • All buttons correctly work.
    • The slider can be easily grabbed and works correctly.
    • Controls can be toggled by tapping on the player.
    • When player controls are hidden full screeen with letterboxing or pillarboxing, tapping on the black areas around the player shows the controls again.
    • Controls disappear after an inactivity delay. They don't disappear while the user is scrubbing or browsing the timeline.
    • Controls are larger on iPhone Plus landscape and iPad.
    • The loading indicator appears when loading the content or seeking. The dimming background is the same as for the controls and does not flicker in any way.
  • All types of contents can be played consistently. The behavior is correct in all cases:
    • VOD
    • VOD with segments
    • AOD
    • AOD with segments
    • Livestream with no DVR support
    • Livestream with DVR support
    • Scheduled livestream
    • SwissTXT live-only stream
    • SwissTXT full DVR stream
    • SwissTXT limited DVR stream
    • 360° content
  • Scheduled livestreams:
    • A countdown is displayed before a scheduled livestream starts.
    • An expiration message is displayed after a scheduled livestream ends.
    • The stream automatically starts and stops. Transitions are sharp and occur immediately.
    • Highlights are updated during playback.
    • After a limited DVR has finished, its highlights can be played.
    • Above 99 days no countdown is displayed anymore, only a label.
    • The countdown layout correctly behaves when crossing the 1 day or 99 days marks.
  • Playlists and continuous playback:
    • Continuous playback is immediate. Transitions are smooth.
    • The user can continue or cancel continuous playback during a transition. The choice is applied immediately.
    • When continuing with the next video, controls are initially hidden (in all cases: 0 delay or > 0 delay).
    • If controls are forced to be hidden, the cancel button is hidden and the continue button is grayed out.
  • Timeline:
    • Selecting a video or audio sequence works correctly. Seeking is sharp.
    • Progress bars are accurate and displayed for all kinds of contents.
    • The current segment is initially selected and visible when opening the timeline.
  • Notifications:
    • A notification is displayed when enabling AirPlay.
    • A notification is displayed when attempting to play a blocked section of a media.
    • A notification is displayed when a scheduled livestream ended.
    • Notifications appear properly for medias with or without segments.
  • VoiceOver:
    • Enable and disable, check that all controls are reachable in the correct order and properly work.
    • When enabling VoiceOver with the controls hidden, controls are switched on and never disappear automatically while VoiceOver remains active (they can still be toggled by double-tapping tapping on the player main accessibility element, though).
    • The slider properly works.
    • The timeline can be properly browsed.
  • Large font sizes:
    • All layouts work and a readable for the standard font size setting.
    • All layouts work and a readable for the smallest font size setting.
    • All layouts work and a readable for the largest font size setting.
  • Picture in picture:
    • Can be enabled from the corresponding button. Restoration correctly works.
    • Can be enabled if the player covers the whole screen, by pressing the iPad home button.
  • AirPlay:
    • When AirPlay is enabled, controls cannot be toggled off anymore.
    • The previous behavior is restored when AirPlay is exited.
    • The user interface behaves well, whether AirPlay is enabled after the player has been opened, or whether it was already active before the player was opened.
    • AirPlay and picture in picture are mutually exclusive on compatible devices.
    • Correct behavior when a scheduled livestream starts.
  • iPhone X layout:
    • Layout is correct in all orientations. Buttons are not placed in the corner.
    • Bottom controls appear above the home activity indicator.
    • When a timeline is displayed, it appears above the home activity indicator.
    • The home indicator disappears after a while, and reappears when interacting with the application.
    • Notifications appear below the activity indicator.
  • Responsiveness:
    • All kinds of overlays properly behave when the player is resized vertically or horizontally
      • Main player layout.
      • Controls.
      • Continuous playback view.
      • Availability view for scheduled livestreams.
      • Error view.
    • The application behaves well when using split view on a compatible iPad.
  • Video gravity:
    • The video gravity (video fits or fills the screen) can be changed by tapping the screen twice when no controls are visible and the video does not fill the screen entirely.
    • Video gravity cannot be changed if not in full screen.
    • The original video gravity is restored after rotating the device.
  • Error display:
    • An error is correctly displayed when no connection is available (Airplane mode, e.g.)
    • An error is correctly displayed when a media is invalid.
    • No error is displayed if no media is opened in the player
    • When an error is displayed, the full screen button (if full screen is available) is visible, provided the player user interface is not forced to be hidden.
    • If the user interface was forced to be hidden, no retry button appears. Otherwise a retry button always appears.
  • Network failure resilience:
    • Start with no connection, then restore it. The player must start automatically and the error overlay must disappear.
    • Test the behavior with bad connections (use the Network Link Conditioner tool available in the settings).
    • Starts playback and enabled Airplane mode before too much of the media has been buffered. The player must stay consistent, even if you seek or use common controls.
  • Compatibility:
    • The player behaves well on all device types (iPhone, iPhone Plus, iPad, iPhone X).
    • The player behaves well on all supported iOS versions.
  • All views behave correctly after the player has been covered by a modal view:
    • Main player layout.
    • Controls.
    • Continuous playback view.
    • Availability view.
    • Error view.
  • Connecting and disconnecting a player to a view:
    • The multilive player works correctly. All playback buttons, slider, etc. are correctly synchronized.
    • When attaching or detaching the player from its view, the view is immediately and correctly refreshed. This is ensured on all views:
      • Main player layout.
      • Controls.
      • Continuous playback view.
      • Availability view.
      • Error view.
  • Screen recording is not possible (production and Testflight versions only).

Developer checks

  • Look for constraint warnings at runtime.
  • Check memory footprint with Instruments.
  • Perform all checks on various platforms (iPhone, iPad, iPad with picture in picture support) and OS versions.
Clone this wiki locally