High-quality firmware through Continuous Integration

    Vorige Volgende

    Nov 7, 2017 5:33:39 PM | Door ir. Māris Ābele


    High-quality firmware through Continuous Integration

    The development of firmware is challenging work. Therefore, you use solutions to focus your efforts where they are best utilized. Software testing can take a lot of time. It can also be faster. We will explain that to you in this Continuous Integration blog.

    Let's start with some explanation about Continuous Integration (CI). CI concerns the routine of continually testing any change you make in the repository code. This happens automatically and early in the development process. In this way, the engineer can spot problems early and cope with the problems in time. In other words, Continuous Integration software is a robotic quality manager. Only code that is good enough is allowed on the repository. If that is not the case, the engineer still has work to do.

    The benefits of Continuous Integration

    Now that you know more about the meaning of Continuous Integration, we can tell you about the benefits. The development of hardware products requires a lot of attention. Once a product is released, it cannot be patched or fixed in a way that  is possible with regular software products. Traditionally, testing is done by a group of test engineers after the software has been modified. At Meuleman Electronics we do that differently and efficiently. Continuous Integration allows us to provide the same quality (and even better) products than companies that employ a team of test engineers. This is possible thanks to  automatic testing in the development phase.

    The Continuous Integration process

    Static analysis

    The code is analyzed without actually executing it. We'll see if there are any issues and whether the guidelines have been followed. The static analysis covers several aspects, such as code style, code best practices, security, complexity, compatibility, and so on. Static analysis is the first step because it gives quick feedback when something is wrong with the code without building the program.

    Unit testing

    The code can be divided into smaller segments, such as classes and functions. The engineer writes multiple tests for each function to approve the implementation of the required functionality. This usually happens while working on the code, to make sure that the specific application is working as expected.

    Acceptance testing

    These tests are conducted to determine whether the project meets the criteria of the end user. These tests are focused on user experience, project requirements and business processes. Does the system work to acceptable levels and does it meet the requirements? Finally, the answer must be yes.

    Continuous Integration places the above steps in one continuous process. Each step is completely automatic. It allows the engineers to focus more on building a product and delivering added value to the customer. An additional advantage is that there are fewer bugs in the software due to the tests. Also, it is much easier to add additional features to a product because the development time is shorter when using  automatic testing.

    If you have questions about this blog article, or if we can help you in any other way, please feel free to contact us.

    Deel deze blog