Screen Sharing Testing Checklist (2026)
Screen Sharing Testing Checklist (2026)
Screen Sharing Testing Checklist (2026)
A screen sharing feature lets users broadcast their display, application window, or browser tab to remote participants in real time. Testing this capability requires a systematic approach that covers the nominal flow, failure modes, boundary conditions, accessibility, security, performance, and release readiness. The checklist below groups 30+ concrete items into logical areas, provides clear pass criteria, shows real‑world examples, and indicates which checks can be automated today. After the manual matrix, a short section explains how an autonomous exploration platform such as SUSATest can exercise most of these items in a single pass, turning the checklist into executable regression scripts.
---
1. Happy Path Testing
The happy path validates that screen sharing works when everything is configured correctly and the user follows the intended steps.
1.1 Core Initiation Flow
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| HP‑01 | User clicks “Share Screen” button in the UI. | Share dialog opens, listing available sources (entire screen, window, tab). | Manual / UI test |
| HP‑02 | User selects “Entire Screen” and confirms. | Local preview shows the selected screen; remote participants receive a video stream within 2 seconds. | Automated (WebRTC stats) |
| HP‑03 | User selects a specific application window (e.g., a PDF viewer). | Only that window’s pixels are transmitted; other windows are obscured or blacked out. | Automated (pixel diff) |
| HP‑04 | User selects a browser tab and shares audio. | Tab video + system audio are captured; remote side hears audio without echo. | Automated (audio level check) |
| HP‑05 | User stops sharing via the UI control. | Local preview disappears; remote side receives a “stream ended” event within 1 second. | Automated (signaling message) |
1.2 Multi‑Participant Scenarios
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| HP‑06 | Two remote peers join while screen sharing is active. | Both receive identical streams; no degradation in frame rate (>15 fps) for either. | Automated (parallel clients) |
| HP‑07 | A third participant joins after sharing has started. | New participant receives the stream from the current frame onward; no need to renegotiate. | Automated |
| HP‑08 | Host switches from screen to window sharing mid‑session. | Transition occurs without dropping the stream; remote sees the new source within 1 second. | Automated |
| HP‑09 | Host mutes/unmutes shared audio while sharing a tab. | Audio track toggles instantly; no clicking or popping audible. | Automated |
1.3 Real‑World Example
A typical video‑conferencing app lets a presenter share a PowerPoint deck. The tester verifies:
- The deck’s slide change animations appear smoothly at 30 fps on the remote side.
- Pointer laser highlights are transmitted without lag.
- When the presenter exits full‑screen mode, the sharing reverts to the window border correctly.
---
2. Error Handling
Error handling checks that the feature degrades gracefully when something goes wrong, providing clear feedback to the user and avoiding crashes.
2.1 Permission Denials
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EH‑01 | Browser/OS prompts for screen‑capture permission; user clicks “Deny”. | Share button remains disabled; a toast reads “Screen capture permission required”. | Automated (mock prompt) |
| EH‑02 | System denies capture due to security policy (e.g., corporate MDM). | App logs error code PERMISSION_DENIED; UI shows “Cannot share screen – contact admin”. | Automated (policy simulation) |
| EH‑03 | User grants permission then revokes it via OS settings while sharing. | Stream stops; local preview shows “Sharing stopped – permission revoked”. Remote sees “stream ended”. | Automated (permission toggle) |
2.2 Source Unavailability
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EH‑04 | Selected window is minimized before sharing starts. | Share dialog grays out that window; tooltip says “Window must be visible”. | Automated |
| EH‑05 | Selected tab is closed after sharing begins. | Stream pauses; UI shows “Source unavailable – sharing paused”. Resumes if tab reopened. | Automated |
| EH‑06 | Entire screen is locked (workstation lock screen). | Capture returns black frames; app displays “Screen locked – sharing paused”. | Automated (lock workstation) |
2.3 Network Failures
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EH‑07 | Simulated packet loss (30 %) during sharing. | Video freezes for ≤2 seconds, then recovers; no crash. | Automated (tc netem) |
| EH‑08 | Complete loss of uplink for 5 seconds. | Stream stops; remote receives “stream ended”; local shows “Reconnecting…”. | Automated |
| EH‑09 | DNS failure preventing signaling server reachability. | App shows “Cannot connect to server”; share button disabled. | Automated (hosts file) |
2.4 Resource Exhaustion
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EH‑10 | Low‑memory device (<256 MB free) attempts to share a 4K screen. | App downsamples to 720p locally; logs “Resolution reduced due to memory”. No OOM crash. | Automated (memory pressure) |
| EH‑11 | CPU at 95 % utilization while encoding. | Frame rate drops gracefully to 10 fps; UI shows “High CPU – quality reduced”. | Automated (stress‑ng) |
2.5 Real‑World Example
During a corporate webinar, a participant’s VPN drops for 8 seconds. The tester confirms that the sharing pauses, a reconnect banner appears, and the stream resumes exactly where it left off without requiring the host to restart sharing.
---
3. Edge / Boundary Cases
Edge cases push the limits of input values, timing, and unusual user actions that rarely appear in scripted tests but can surface in production.
3.1 Resolution & Frame Rate Extremes
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EB‑01 | Share a 1 × 1 pixel window (minimum size). | Stream transmits a single pixel; remote sees a solid color block. | Automated |
| EB‑02 | Share an 8K (7680×4320) screen on a capable GPU. | Stream maintains ≥15 fps; bitrate adapts; no encoder overflow. | Automated (GPU‑enabled) |
| EB‑03 | Share at 1 fps (forced low frame rate via encoder settings). | Remote receives updates once per second; no timestamp drift. | Automated |
| EB‑04 | Rapidly toggle sharing on/off 10 times in 5 seconds. | Each toggle produces a clean start/stop; no leaked resources. | Automated |
3.2 Input Device Interference
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EB‑05 | User moves mouse cursor wildly while sharing a window. | Cursor appears correctly in remote view; no jitter artifacts. | Automated (synthetic input) |
| EB‑06 | User draws with a stylus on a touchscreen while sharing the entire screen. | Ink strokes are captured with ≤50 ms latency. | Automated (touch injection) |
| EB‑07 | User presses Ctrl+Alt+Del (Windows) or Cmd+Option+Esc (Mac) while sharing. | OS secure desktop blocks capture; app shows “Secure desktop – sharing paused”. | Automated (session switch) |
3.3 Concurrent Media
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| EB‑08 | Share screen while playing a local 4K video file in another app. | Both video playback and screen share maintain ≥10 fps; no audio echo. | Automated (dual‑stream) |
| EB‑09 | Share screen while using virtual background in the same conferencing app. | Background replacement works only on the local video feed; shared screen remains untouched. | Automated |
| EB‑10 | Share screen while a second screen‑sharing instance is active from a different user on the same machine. | Each stream uses a separate capture source; no conflict or crash. | Automated (multiple processes) |
3.4 Real‑World Example
A designer shares their screen while rotating the display orientation via hotkey (Ctrl+Alt+Arrow). The tester confirms that the shared stream updates to the new orientation within 300 ms, and the remote participant’s view does not appear stretched.
---
4. Accessibility Testing
Accessibility ensures that screen sharing can be used by people with disabilities and complies with WCAG 2.2.
4.1 Keyboard Navigation
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| AC‑01 | User can reach the “Share Screen” button using Tab key only. | Focus order is logical; button activates with Enter/Space. | Automated (axe‑core) |
| AC‑02 | All share‑dialog controls (source list, checkboxes, start/cancel) are operable via keyboard. | No mouse required; each control announces its role and state. | Automated |
| AC‑03 | Escape key closes the share dialog without starting a share. | Dialog dismisses; focus returns to the triggering element. | Automated |
4.2 Screen Reader Support
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| AC‑04 | Screen reader (NVDA/VoiceOver) announces when the share dialog opens. | “Share screen dialog, list box, 3 items”. | Automated (screen‑reader emulator) |
| AC‑05 | Each source entry announces its type and state (e.g., “Entire screen, not selected”). | Correct labeling; dynamic updates when selection changes. | Automated |
| AC‑06 | When sharing starts, a live region announces “Screen sharing started”. | Announcement occurs within 500 ms of start event. | Automated |
| AC‑07 | When sharing stops, live region announces “Screen sharing stopped”. | Same timing requirement. | Automated |
4.3 Color Contrast & Visual Indicators
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| AC‑08 | Share button meets 4.5:1 contrast against its background in all themes. | Contrast ratio verified with color‑contrast analyzer. | Automated |
| AC‑09 | Active source is highlighted with a non‑color indicator (e.g., bold outline) in addition to color change. | Ensures visibility for color‑blind users. | Automated |
| AC‑10 | Preview pane shows a visible border when sharing is active. | Border width ≥2 px, contrast ≥3:1. | Automated |
4.4 Real‑World Example
A low‑vision user relies on magnification software. The tester verifies that the share dialog scales correctly, that the preview remains readable at 200 % zoom, and that screen‑reader announcements keep pace with state changes.
---
5. Security & Privacy
Screen sharing can expose sensitive data; therefore, security and privacy controls are essential.
5.1 Consent & Transparency
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| SE‑01 | Before sharing starts, the app shows a clear overlay stating “You are about to share your entire screen. Continue?” | Overlay cannot be bypassed; requires explicit confirmation. | Automated (UI test) |
| SE‑02 | The overlay includes a link to the privacy policy explaining what data may be captured. | Link opens correct URL in a new tab. | Automated |
| SE‑03 | After sharing begins, a persistent indicator (e.g., red border or icon) remains visible on the shared screen. | Indicator is present for the entire session; cannot be hidden by the user. | Automated (pixel detection) |
5.2 Data Isolation
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| SE‑04 | When sharing a specific window, pixels from other windows are never transmitted. | Frame capture region matches window bounds exactly (verified via screenshot diff). | Automated |
| SE‑05 | Audio capture is limited to the tab/application being shared; system‑wide audio is not included unless explicitly opted‑in. | Audio meter shows zero for non‑shared sources. | Automated (audio hook) |
| SE‑06 | Screen‑sharing stream is encrypted end‑to‑end using DTLS‑SRTP. | Packet inspection shows SRTP encryption; no plain‑frame payloads. | Automated (Wireshark filter) |
5.3 Permission Persistence
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| SE‑07 | Permission granted for a session is not stored for future launches; each start requires fresh consent. | No stored token found in local storage or OS keychain after restart. | Automated (storage scan) |
| SE‑08 | If the user selects “Remember my choice for this site”, the permission persists only for that origin and is cleared when site data is cleared. | Permission cleared after “Clear site data” action. | Automated |
| SE‑09 | Admin policy can disable screen‑sharing entirely; the button is hidden or disabled. | UI reflects policy state; no workaround via console. | Automated (policy injection) |
5.4 Real‑World Example
A financial‑services app disables screen sharing when a user navigates to the “Account Statement” page. The tester confirms that the share button is greyed out, the overlay warns “Sharing disabled for security reasons”, and no video frames are leaked even if the user forces the button via DevTools.
---
6. Performance & Reliability
Performance testing ensures that screen sharing does not degrade the host device or the meeting experience under load.
6.1 CPU & GPU Utilization
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| PE‑01 | Measure CPU usage while sharing a 1080p screen at 30 fps on a mid‑tier laptop. | Average CPU ≤30 %; peaks ≤50 % for <2 seconds. | Automated (perfmon) |
| PE‑02 | Measure GPU encoder utilization when sharing a 4K screen with hardware H.264 encoding. | GPU utilization ≤40 %; encoder queue depth <2 frames. | Automated (NVidia‑smi) |
| PE‑03 | Share screen while running a CPU‑intensive benchmark (e.g., Cinebench R23). | Frame rate does not drop below 12 fps; meeting audio remains uninterrupted. | Automated (benchmark + stream) |
6.2 Bandwidth Adaptation
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| PE‑04 | Start sharing on a 5 Mbps uplink; gradually reduce to 1 Mbps using traffic shaping. | Bitrate adapts downwards; resolution scales to maintain ≥5 fps; no stream freeze >3 seconds. | Automated (tc + WebRTC stats) |
| PE‑05 | Simulate fluctuating RTT (50 ms → 300 ms) during sharing. | Jitter buffer absorbs delay; visible latency stays <400 ms; no excessive packet loss. | Automated |
| PE‑06 | Share screen while downloading a large file on the same network. | Sharing maintains adaptive bitrate; download throughput not starved (>1 Mbps). | Automated (iperf) |
6.3 Stability Over Time
| Test ID | Description | Pass Criteria | Automation Level |
|---|---|---|---|
| PE‑07 | Run a 4‑hour continuous sharing session (1080p30). | No memory leak (>5 MB growth); no crash; frame timestamp monotonic. | Automated (long‑run) |
| PE‑08 | Perform 100 start/stop cycles in rapid succession. | Each cycle ends cleanly; no resource handles left open (checked via lsof). | Automated |
| PE‑09 | Share screen while the host OS undergoes a sleep/wake cycle. | Sharing pauses on sleep; resumes automatically on wake with correct source. | Automated (pmset) |
6.4 Real‑World Example
During a global hackathon, a participant shares their screen while simultaneously compiling a large codebase (using all CPU cores). The tester validates that the shared video stays above 10 fps, the audio remains clear, and the host’s temperature stays within safe limits.
---
7. Release Readiness & Automation
Before a release, the team must verify that the screen sharing feature meets all functional, non‑functional, and regulatory criteria, and that regression tests are in place.
7.1 Checklist Sign‑Off
| Area | Item | Status (✓/✗) | Owner |
|---|---|---|---|
| Happy Path | HP‑01 through HP‑09 | QA Lead | |
| Error Handling | EH‑01 through EH‑11 | Dev Lead | |
| Edge Cases | EB‑01 through EB‑10 | SDET | |
| Accessibility | AC‑01 through AC‑10 | Accessibility Engineer | |
| Security | SE‑01 through SE‑09 | SecOps | |
| Performance | PE‑01 through PE‑09 | Performance Engineer | |
| Regression | Automated scripts cover ≥80 % of checklist items | Automation Engineer | |
| Documentation | Release notes include known limitations and workaround | Tech Writer | |
| Monitoring | Alerts for failed share attempts >1 % in production | SRE |
7.2 Manual vs Automated Coverage
| Test Category | Manual Effort (min) | Automated Effort (min) | Notes |
|---|---|---|---|
| Happy Path | 15 | 5 | UI flows easy to script with Playwright |
| Error Handling | 20 | 10 | Requires mocking prompts and network conditions |
| Edge Cases | 25 | 15 | Some hardware‑specific cases (e.g., 8K) need real devices |
| Accessibility | 12 | 8 | axe‑core + screen‑reader emulator |
| Security | 18 | 12 | Needs packet capture and policy injection |
| Performance | 30 | 20 | Long‑run tests benefit from CI overnight jobs |
| Release Readiness | 10 | 5 | Checklist aggregation and reporting |
*Total estimated effort*: 130 min manual, 75 min automated (~42 % reduction).
7.3 Sample Automation Snippets
Playwright (Web) – Happy Path
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://meet.example.com');
// open share dialog
await page.click('button#share-screen');
await page.waitForSelector('div.share-dialog');
// select entire screen
await page.click('label[source="entire-screen"]');
await page.click('button#start-share');
// verify remote preview (simulate second client)
const second = await browser.newPage();
await second.goto('https://meet.example.com?viewer=2');
await second.waitForFunction(() =>
document.querySelector('video[remote-shared]') !== null,
{ timeout: 5000 }
);
await browser.close();
})();
Appium (Android) – Permission Denial
@Test
public void testScreenCaptureDenied() {
AndroidDriver driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), caps);
driver.findElement(By.id("share_button")).click();
// system dialog appears; click Deny
driver.findElement(By.id("permission_deny_button")).click();
Assert.assertTrue(
driver.findElement(By.id("toast_message"))
.getText()
.contains("Screen capture permission required")
);
driver.quit();
}
CLI for SUSATest (autonomous exploration)
# Install the agent
pip install susatest-agent
# Point at a locally built APK
susatest explore \
--apk ./app-release.apk \
--goal "screen sharing" \
--personas curious impatient power-user \
--output ./susatest-report.json
The agent will launch the app, attempt to share screen via system UI, record success/failure, and generate Appium regression scripts for the paths it exercised.
---
8. Autonomous Exploration with SUSATest
An autonomous QA platform can dramatically reduce the manual burden of the screen sharing checklist by exploring the application without predefined scripts. While it cannot replace targeted performance or security audits, it excels at exercising happy‑path, error‑handling, and many edge‑case scenarios in a single pass.
8.1 How Exploration Works
- Goal Definition – The tester supplies a high‑level goal such as “share screen” or “detect screen‑share failures”.
- Persona‑Driven Actions – Virtual users with distinct behavior profiles (e.g., impatient users tap quickly, elderly users wait longer, adversarial users try to break flows) generate varied interaction sequences.
- State Tracking – The platform builds a graph of visited screens, noting UI elements, dialogs, and system prompts (permission dialogs, OS lock screens, low‑memory warnings).
- Outcome Detection – Built‑in observers watch for crashes, ANRs, permission denials, and stream‑start/stop events using device logs and WebRTC stats.
- Script Generation – After the run, the platform exports reproducible test scripts (Appium for Android, Playwright for Web) that cover every successful path discovered.
8.2 Coverage Mapping to the Checklist
| Checklist Area | % of Items Typically Covered by One Exploration Run |
|---|---|
| Happy Path | 90 % (all core flows) |
| Error Handling | 70 % (permission denials, source unavailability, basic network loss) |
| Edge Cases | 55 % (resolution extremes, rapid toggles, concurrent media) |
| Accessibility | 40 % (keyboard navigation, screen‑reader announcements) |
| Security | 30 % (consent overlay, encryption detection – needs supplemental checks) |
| Performance | 20 % (basic CPU/GPU usage, bitrate adaptation – limited depth) |
| Release Readiness | N/A (requires manual sign‑off) |
The numbers assume a standard device farm (mid‑tier Android, Chrome, Safari) and a 15‑minute exploration session. Adding dedicated performance or security probes can raise those percentages.
8.3 Practical Tips for Using SUSATest with Screen Sharing
- Pre‑grant Permissions – For error‑handling tests, configure the device to auto‑deny or auto‑grant screen‑capture via ADB (
adb shell appops set).SYSTEM_ALERT_WINDOW ignore - Inject Network Conditions – Use the platform’s traffic‑shaping hook to simulate loss or latency while the agent runs.
- Leverage Personas – Enable the “adversarial” persona to attempt rapid start/stop cycles, which often surface race conditions.
- Post‑Run Review – Examine the generated Appium scripts; replace any placeholders with precise assertions (e.g., verify video frame dimensions using
MediaProjectioncallbacks).
When combined with targeted manual checks for accessibility, deep security audits, and sustained performance tests, autonomous exploration provides a solid foundation for regression safety.
---
9. Closing Takeaways
A robust screen sharing feature demands more than a simple “does it work?” validation. The checklist presented here groups 30+ concrete items into happy path, error handling, edge/boundary cases, accessibility, security/privacy, performance, and release readiness, each with unambiguous pass criteria and real‑world illustrations.
By following the matrix, teams can:
- Verify that the nominal flow behaves predictably across devices and network conditions.
- Ensure graceful degradation when permissions are denied, sources disappear, or the network falters.
- Catch rare but production‑relevant edge cases such as extreme resolutions, concurrent media, or OS‑level interruptions.
- Confirm compliance with WCAG 2.2 for keyboard navigation, screen‑reader support, and visual contrast.
- Validate that consent mechanisms, data isolation, and encryption protect user privacy.
- Measure CPU, GPU, bandwidth, and stability under realistic loads to avoid degrading the host or the call.
- Consolidate results into a release‑readiness checklist that drives sign‑off and informs automation priorities.
Autonomous exploration tools like SUSATest can exercise a large portion of this matrix in a single pass, generating reusable regression scripts that reduce manual effort. However, they complement—rather than replace—targeted manual and automated tests for accessibility, deep security, and sustained performance.
Apply this checklist as a living document: update it as new screen‑sharing technologies (e.g., AV1 encoding, platform‑level capture frameworks) emerge, and integrate its items into your CI/CD pipelines to ship screen sharing with confidence every release.
Test Your App Autonomously
Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.
Try SUSA Free