Skip to content

onmcu/awesome-embedded-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Embedded Testing

Awesome Check Links

Curated list of tools and resources for testing Embedded and Low-level software

Table of Contents

Books, blogs and training materials

Test Frameworks

Rust Test Frameworks

  • embedded-test – Rust test harness and runner for embedded devices Lang: Rust
  • defmt-test – Test harness that lets you write and run unit tests on your device as if using the built-in #[test] attribute. Lang: Rust

General Embedded Testing Frameworks

  • Ceedling/Unity – Popular C-based unit testing and build framework, great for small to medium-sized embedded projects. Lang: C
  • GoogleTest (gtest) – Widely used and highly customizable C++ testing framework, commonly adopted in embedded C++ projects. Lang: C++
  • CppUTest – Flexible testing framework tailored specifically to embedded software, emphasizing memory safety and simplicity. Lang: C++
  • Catch2 – Modern C++ testing framework known for ease of use and expressive assertions, lightweight enough for embedded targets. Lang: C++

Mocking and Hardware Simulation

  • CMock – Generates mock objects automatically for C, ideal for testing interactions with hardware-dependent code. Lang: C
  • Fake Function Framework (FFF) – Lightweight, simple mocking framework for C-based embedded software. Lang: C
  • Renode – Powerful framework for hardware simulation and testing, allowing execution and debugging of embedded binaries without actual hardware. Lang: Multi
  • QEMU – Widely adopted open-source emulator, very useful for full-system simulation of embedded platforms during testing. Lang: Multi
  • embedded-hal-mock – Mocks for testing embedded-hal based drivers without hardware access. Lang: Rust

Embedded Integration & Continuous Integration (CI)

  • PlatformIO – Cross-platform build tool and package manager, ideal for automating builds and tests for embedded projects. Lang: Multi
  • Embench – Open-source benchmarking suite specifically targeting IoT-class embedded systems. Lang: Multi
  • Robot Framework – Generic acceptance-test automation framework, commonly used for higher-level integration and system tests. Lang: Python

Static & Dynamic Analysis

  • Cppcheck – Popular static analysis tool specifically tailored for C and C++ codebases. Lang: C/C++
  • Valgrind – Dynamic analysis tool useful for memory leak detection and error tracking. Lang: Multi
  • Clang Sanitizers – Effective runtime debugging tools for detecting memory safety errors in embedded C/C++ applications. Lang: C/C++

Embedded-Specific Testing Techniques & Tools

Test Automation & Hardware-in-the-Loop (HIL)

  • Labgrid – Automation framework for hardware-in-the-loop testing, integrates smoothly with continuous integration. Lang: Python
  • OpenHTF – Hardware testing framework from Google designed for automated manufacturing tests and HIL testing. Lang: Python
  • OnMCU – CLI for remote MCU development, flashing, and testing on real hardware hosted on the OnMCU platform. Lang: Multi
  • SiliconRig – CLI, Python SDK, and GitHub Action for flashing and testing firmware on real boards (ESP32-S3, STM32, RP2350) hosted on the SiliconRig platform. Lang: Multi

Examples & Reference Projects

  • Nasa JPL's F Prime – NASA's open-source flight software framework, extensively tested and validated. Lang: C++
  • LittlevGL – Embedded GUI library extensively using unit tests and automated integration testing. Lang: C

Releases

No releases published

Packages

 
 
 

Contributors