90% test coverage across a multi platform signage ecosystem. Test plan and Playwright suites written with Claude.
Project
Business challenges
Zero structured testing existed across multiple player integrations and signage platforms. Every unverified impression was a potential revenue leak. Devices in signage environments rarely run on ideal networks. Untested CPU and network throttling edge cases were creating silent failures in production.
Goals & objectives
Built with Claude
One embedded QA engineer covered six signage platforms. Claude did the writing: plans, test code, fixes and failure analysis. The engineer owned the decisions and reviewed every line before it merged.
Claude reads the player specs, the playlist config and the proof of play schema, then drafts a test plan per integration. The engineer edits it and signs it off.
Claude turns the approved plan into Playwright tests, including the CPU and network throttling profiles and the proof of play assertions.
When a player UI or selector changes, Claude rewrites the affected tests and opens the change for review.
Claude reads failed CI runs, player logs and proof of play gaps. It separates real defects from flaky runs before the engineer files a bug.
VXT, ASC and Brightsign each started from the existing suite. Claude adapted the plan and the tests to every new player in days.
Playwright automated testing
Every Playwright suite in LDSK's internal automation repos was written with Claude. The suites run in CI on every change and on BrowserStack for real device and browser combinations.
Tests run under CPU and network throttling profiles that match the hardware and connections found in signage locations.
Each playback run is compared against the proof of play log. A missing or duplicated impression fails the build.
Suites are wired into the release pipeline. Release sign off waits for a green run.
The same suites cover VXT, ASC and Brightsign player integrations through BrowserStack.
// Written with Claude: playback under a constrained device profile const cdp = await page.context().newCDPSession(page); await cdp.send('Emulation.setCPUThrottlingRate', { rate: 4 }); await cdp.send('Network.emulateNetworkConditions', { offline: false, latency: 400, downloadThroughput: 750 * 1024 / 8, uploadThroughput: 250 * 1024 / 8, }); await expect(page.getByTestId('playback-status')).toHaveText('playing');
Key deliverables
Built an end to end QA process from scratch for the signage playback team. Claude drafts the test plans and the tests. The engineer runs execution and release sign off.
Simulated real world signage conditions where devices run on unreliable networks with constrained hardware. This caught failure modes that never surface on ideal test environments.
Test coverage across VXT, ASC and Brightsign player integrations. Playback behaves the same on every platform as scope expanded.
Verified billing grade accuracy for every impression logged across the reporting pipeline.
Technologies used
Test coverage across a multi platform signage ecosystem
Written with Claude. Verified by engineers who test what they build.