On-Device Testing
Redirection App
Testing Bundle
USB Remote Control
How to Write a Test
CI Features
Adding a Testing Device
CI Features
CI Solution Overview

Pipeline Overview

  1. Push code + tests to GIT repository ✅
  2. Build code on CI (Github Actions) ✅
  3. Deploy build artifacts to statics hosting (create public URL) ✅
  4. Check device state ✅⌛
  5. Set device state ⁉️
  6. Run tests ✅⌛
  7. Get a test run report ✅⌛

Note

Overall we can do all the steps needed to run the tests triggered from the CI right now, or with feasible implementation effort. The most complicated part of “any physical device lab” is the management of the device’s state.

You need to make sure the device passes few conditions before starting the tests:

Device StateCheckSet
Turn on device
  • check via IP ✅
  • check via USB on ✅
⁉️
Testing bundle
  • connected to server ✅
  • add in the CI build process ✅
Launch app / Deploy to device
  • device is online ✅
  • device is running the right source ⌛
  • RO redirection app ✅ ⌛
  • Your build-in app redirection ⌛
  • direct app launch (via network controller only) ✅
Remote controller
  • USB ✅
  • Network ✅
  • USB ✅
  • Network - get new token ⁉️

✅ - Already in the product

✅ ⌛ - Already in the product, but not yet production-ready

⌛ - We understand how to implement this in a feasible time frame - it’s simply another product feature

⁉️ - This area presents a larger unknown, falling outside of our product scope. To tackle it, we’d need to spend additional time and take a more detailed approach. That being said, we’re ready and willing to take this on as a distinct project for you to create customized solutions that meet your specific needs.

RO redirection app

It’s a general-purpose app that enables us to launch different applications hosted on public URLs. This simplifies the app deployment process on the TV: the RO redirection app can be launched directly via the network controller or simply by manually opening it. The RO redirection app can then accept the URL, which will be used to load the public URL containing the deployed app.

Run test and get report

We will add a REST API to our server, which will control the desktop controller app located at the device lab venue (either directly on a computer or in a virtual machine).

The desktop controller app serves as the central hub of the entire lab, capable of managing (adding, removing, editing) devices, controlling the devices, and running the tests.