{"id":17330041,"url":"https://github.com/coderbyheart/firmware-test-automation-using-real-embedded-devices","last_synced_at":"2026-02-14T00:43:07.672Z","repository":{"id":39973381,"uuid":"488624126","full_name":"coderbyheart/firmware-test-automation-using-real-embedded-devices","owner":"coderbyheart","description":"Slides for my talk about firmware test automation using real embedded devices","archived":false,"fork":false,"pushed_at":"2022-05-27T07:54:50.000Z","size":3387,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"saga","last_synced_at":"2025-06-30T19:05:28.404Z","etag":null,"topics":["end-to-end-tests","firmware","slides","talk"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coderbyheart.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-04T14:34:11.000Z","updated_at":"2022-05-06T13:34:01.000Z","dependencies_parsed_at":"2022-08-30T16:41:33.836Z","dependency_job_id":null,"html_url":"https://github.com/coderbyheart/firmware-test-automation-using-real-embedded-devices","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coderbyheart/firmware-test-automation-using-real-embedded-devices","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderbyheart%2Ffirmware-test-automation-using-real-embedded-devices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderbyheart%2Ffirmware-test-automation-using-real-embedded-devices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderbyheart%2Ffirmware-test-automation-using-real-embedded-devices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderbyheart%2Ffirmware-test-automation-using-real-embedded-devices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderbyheart","download_url":"https://codeload.github.com/coderbyheart/firmware-test-automation-using-real-embedded-devices/tar.gz/refs/heads/saga","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderbyheart%2Ffirmware-test-automation-using-real-embedded-devices/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276896536,"owners_count":25724047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["end-to-end-tests","firmware","slides","talk"],"created_at":"2024-10-15T14:50:11.400Z","updated_at":"2025-09-25T09:36:53.467Z","avatar_url":"https://github.com/coderbyheart.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Firmware test automation using real embedded devices\n\n![Publish](https://github.com/coderbyheart/firmware-test-automation-using-real-embedded-devices/workflows/Publish/badge.svg?branch=saga)\n\nSlides for my talk about firmware test automation using real embedded devices\n\n- [Markdown](./slides.md)\n- [Interactive](https://coderbyheart.github.io/firmware-test-automation-using-real-embedded-devices/index.html)\n\n## Abstract\n\nIn this talk I am going to present my approach on testing embedded firmware that\nusing real hardware, because testing firmware in emulators drastically limits\nwhat actually gets tested and it can quickly become very tedious to mock, fake\nand set up environments for embedded firmware that needs to connect to cloud\nservices. The approach I am showing is going a different route: let the firmware\nrun on real hardware, and test its behavior. I will show how I implemented these\ntests using Zephyr, and AWS but this solution can be applied in any environment\nwhich cannot be run inside a test runner.\n\nHere is how it looks like:\nhttps://twitter.com/coderbyheart/status/1321394949007560704\n\nKey takeaways:\n\n- Learn how to use GitHub Action Hosted Runners to execute firmware builds on\n  real target\n- Have an idea which building blocks are needed to run tests\n- Know which essentials to focus on: firmware-over-the-air updates\n\n## Viewing\n\nAn up-to-date version is published to\n[GitHub pages](https://coderbyheart.github.io/firmware-test-automation-using-real-embedded-devices/index.html).\n\nPress `s` to show the speaker notes.\n\n### Locally\n\nOpen the project using\n[Dev Container](https://code.visualstudio.com/docs/remote/containers).\n\nOpen two shells:\n\n1. `npm run watch`\n2. `npm start`\n\nYou can now view the slides at \u003chttp://127.0.0.1:8000\u003e.\n\n## Building\n\nRender to reveal.js:\n\n    make build\n\nRender to PowerPoint (useful for copying to a PowerPoint template):\n\n    make public/slides.pptx\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderbyheart%2Ffirmware-test-automation-using-real-embedded-devices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderbyheart%2Ffirmware-test-automation-using-real-embedded-devices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderbyheart%2Ffirmware-test-automation-using-real-embedded-devices/lists"}