Skip to content
QA Knowledge Hub

Test cases for a video streaming player

Updated 2026-11-13 · 6 min read

These 30 cases use explicit test fixtures and checkable outcomes. Cover normal behavior, boundaries, recovery, security and usability, then adapt the requirements to your product.

How to answer in an interview

Ask whether the player is live or on-demand, which devices and formats it supports, and whether access requires a subscription. Start with playback state and recovery, then cover tracks, accessibility and entitlement. A visible Play icon does not prove that decoded video and audio have started.

Scope and test data

These 30 cases assume on-demand streaming of a synthetic 120-second clip with visible timestamps, spoken second markers, two available quality levels, captions and an alternate audio track. Prepare an authorised test asset and a protected asset for an unentitled account. Live-edge seeking, adverts, downloads and DRM certification are outside this fixture.

Record startup, rebuffering and audio/video synchronisation budgets before running tests. Browser autoplay can be denied; a denial should leave an honest paused state with a manual play action. Supported formats and fullscreen or picture-in-picture availability must come from the browser/device matrix, not assumptions about every browser.

These are proposed manual test cases, not an execution report. Run security and load checks only in an authorised isolated environment. Record agreed limits before execution; a case without its required limit is not ready to pass or fail.

Playback and seeking

IDCategoryTest caseExpected result
V01FunctionalChoose Play on the loaded test clipVideo frames advance and spoken markers begin; UI reports playing
V02FunctionalPause at the visible 20-second markerPlayback time stops advancing and audio stops
V03FunctionalResume from pausePlayback continues near the paused position without restarting at zero
V04FunctionalSeek to 60 secondsFrames and audio move to the requested position within the agreed seek tolerance
V05BoundarySeek to the startPlayback begins at the first available frame; time does not become negative
V06BoundarySeek to the end of the 120-second clipEnded state appears without an endless loading spinner
V07FunctionalReplay after reaching the endPlayback restarts from the beginning once
V08FunctionalMute then unmuteAudio is silent while muted and returns to the chosen volume
V09BoundarySet volume to minimum and maximumOutput follows the endpoints; control does not exceed its bounds
V10FunctionalSelect a supported playback speedProgress rate changes to the selected speed and the UI displays it

Tracks, network and failures

IDCategoryTest caseExpected result
V11FunctionalEnable captions and inspect timed markersSelected captions appear at their corresponding spoken markers
V12FunctionalSwitch alternate audio tracksChosen track plays; old track does not continue underneath it
V13FunctionalSwitch quality during playbackPlayback continues near the current position with the selected representation
V14NegativeThrottle bandwidth below the selected stream's demandBuffering is visible; recovery or automatic quality change follows the player contract
V15NegativeDisconnect during playback and reconnectBuffered content may continue; after exhaustion a recoverable state appears and playback can resume
V16NegativeFail the media request with a missing-asset responseUnavailable-content message replaces perpetual loading and offers the designed recovery action
V17NegativeSupply a deliberately unsupported media formatReadable playback error appears; UI does not claim the video is playing
V18FunctionalDeny autoplay in the browser then open the clipPlayer remains paused with an operable manual Play control
V19FunctionalSeek repeatedly while earlier segment requests are delayedFinal requested position wins; old responses do not jump playback backwards
V20FunctionalLeave and reopen with resume enabledLast acknowledged resume position is restored within the documented tolerance

Access, accessibility and performance

IDCategoryTest caseExpected result
V21SecurityOpen the protected asset as an unentitled accountMedia access is denied by the serving system, not only by hiding Play
V22SecurityExpire the media access grant during a sessionRenewal or access failure follows policy; UI avoids an unexplained permanent spinner
V23SecuritySwitch accounts and reopen protected playback historyNew account cannot access the prior user's private history or grants
V24UIOperate Play, Pause, volume and seek using keyboardControls are reachable, named and operable with visible focus
V25UIEnable captions at a narrow viewport and enlarged textCaptions and essential controls remain readable without covering every frame
V26CompatibilityRun the clip on each supported browser/device/format combinationAudio, video and selected tracks play; unsupported features are explicitly unavailable
V27CompatibilityEnter and exit fullscreen where supportedPlayback position and state remain consistent; exit returns usable controls
V28CompatibilityBackground and foreground the player on supported mobile devicesPause or continuation matches platform policy; foreground UI reflects actual playback
V29PerformanceMeasure click-to-first-frame on defined network profilesStartup meets the profile's recorded budget; failures are reported separately
V30PerformancePlay the full clip under the agreed workloadRebuffer duration and audio/video drift remain within recorded budgets with no crash

Build a playback oracle

Use the visible timestamp and spoken marker together to detect drift. Capture the device, browser, stream representation, network profile and entitlement state with a defect. “Video buffers” without those conditions is hard to reproduce.

An interviewer may ask whether a successful media download is enough. It is not: decoding, track selection, rendering and controls can still fail. Start with a short deterministic clip before testing a long stream or a live broadcast.

Downloads

Quick answers

Should autoplay always succeed?

No. Browser policy can block playback without user interaction. Test a usable manual-start path and truthful paused state.

Can this checklist certify DRM or every codec?

No. Add the actual protected-stream, licence and format matrix for the product; these are general on-demand player cases.

Sources

Want a project you can show in interviews?

The portfolio project kit walks you through testing a deliberately buggy app with Selenium or Playwright and API tests, then explaining it. The app itself is free.