Best CI tools for embedded software development according to Grinn

Best CI tools for embedded software development according to Grinn

Best CI tools for embedded software development according to Grinn 


Continuous integration is a practice of software development that based on constant code changes, testing and code integration. This system of coding is perfect for Agile projects, allowing you to make changes to the current project and shift priorities. Also, continuous integration is ideal for remote teams, or for very large teams where communication is difficult or unlikely. Since all the latest changes are introduced to the repository immediately, all developers, regardless of their location, can be sure that change works as expected.

The advantages also include timely detection and elimination of errors, while shared access to the code provides the ability to roll back changes which led to breakdowns by any project participant. You can read more about how Grinn implements the integration process in our next articles, and, in this one, we will discuss the tools we use every day.

The best CI tools for embedded software development according to Grinn:

  • GitLab CI/CD 

Analyzes code representation and manages errors in a single repository. The advantage is the direct integration with GitLab Workflow and the fact that GitLab Ci/CD displays all progress information in one panel. The program supports command scripts in any language, and there is a free version for community use. 

  • Pytest

Free framework for conducting unit tests on Python-based projects. It can be used to test a wide range of applications on the API and databases. The main advantage for us is a multitude of available libraries that enable the use of Pytest to test embedded devices. The extensibility and reusability offered by Pytest enable the continuous development, modification, and maintenance of all test suites throughout the project.

  • Robot Framework

An open-source framework, the advantage of which is the ability to write tests based on keywords, behavior, and data. It is also a great framework for writing complex tests, as the Robot Framework supports scalar, list, and dictionary variables. One of the most important advantages of Robot Framework is the ability to create test cases in a language that is understandable to both programmers and non-technical project team members.

  • Google Test/Google Mock

What is good about this framework? First, Google Test contains ready-made macros for comparing an acquired result with an expected one. Secondly, running all tests takes incomparably shorter than performing them manually.  And third, it also allows you to generate reports with information on the coverage of the production code with tests, which provides important information when analyzing the quality and stability of the entire project.

  • Unity/CMock/Ceedling

Three frameworks for C unit testing which are light, fast, and convenient. They can be adjusted to the needs of the project and are ideally suited for embedded software development. As for Google Test, these 3 frameworks run tests in a short time and generates informative reports.

  • Metrix++

A framework for testing in C, C++, C#, and Java. Metrix ++ provides basic information on the quality of code provided by developers, enabling much faster and automatic detection of areas in the code that need to be refactored as quickly as possible. Thanks to the static code analysis performed by Metix++, the amount of technical debt that arises during project development is minimized from an absolute minimum.


The transition to continuous integration simplifies the software development process, reduces conflicts in teams, and helps to create a stable, high-quality product. Regardless of the framework you choose, continuous integration will take your development process to the next level. Any questions about embedded software development? Contact us.




The IoT is so firmly entrenched in our lives that sometimes we do not even notice its work. We draw up reports based on the readings from sensors thousands of kilometers away. The digital camera has noticed movement in the backyard and has sent you a notification to make sure it is just a neighbor's dog. Want to know what mechanisms are behind these modern conveniences?

Human-Centric Design in IoT: Dos and Don’ts

The concept of human-centered design was first voiced back in the 20th century, and it evolved along with the popular term design thinking. This is concept of product development, where users' devices and desires come first, the resulting products achieve enormous popularity and also solve real user problems.

Grinn is now a Bluetooth® Special Interest Group member

Grinn is now a Bluetooth® SIG member, learn more about how you as a client will benefit from it. The Bluetooth® Special Interest Group is a community of innovators of Bluetooth® technology. Since Grinn actively uses Bluetooth® wireless technology in its projects, it is important for us to get the latest knowledge from the original source and apply it when developing new products.