At Codethink we work with automotive OEMs on software integration strategies, helping them satisfy regulatory and market requirements. As you may expect we are seeing more organisations taking UNECE 155/156 compliance very seriously.
The upshot of UNECE R155/156 is that OEMs need to take a long-term view of the vehicles they're putting into the field. They must be prepared to provide full system software updates from the start of development to 15+ years after the last model rolls off the production line.
To succeed OEMs need the following:
- Automated and effective integration testing
- A rock-solid OTA update mechanism
- Always up-to-date software, thanks to a long-term maintainability strategy
If OEMs fail to deliver on the above they will fail to meet UNECE R155/156, with terrible business consequences. For OEMs that successfully meet the regulatory requirements the benefits include access to new marketplaces across the globe, improved automotive cybersecurity, and increased consumer confidence and trust. We want our clients to achieve this level of success, but it doesn’t happen overnight.
This article will explain why each topic is essential to ensure compliance with UNECE R155/156.
Automated and effective testing at the integration level
What do we mean by ‘at the integration level’?
Those who care about UNECE R155/156 should only be interested in testing at the full system level. I've lost count of my discussions with clients who believe unit tests alone are a valid way to measure confidence when deploying software. As an integrator, I don't care about unit tests; without a way to test the interactions of the 'units' in my integrated system, they’re worthless.
If you don't believe me, ask NASA and Lockheed Martin, who employed different measurement systems (imperial and metric, respectively) when collaborating on a Mars-bound spacecraft project in the 1990s. An assumption was made that an effective conversion between these systems was implemented, but it wasn’t covered by integration tests, resulting in a factor 4.45 error in thrust, leading to disaster. The unit tests all passed.
Automating your integration tests is more complex and costly than unit tests. Ultimately this work needs to be done, and it needs to be established as early as possible in the life of a project. Although manual testing can never be entirely replaced (and shouldn't be), Codethink has worked with multiple OEMs to establish automated integration tests using entirely open source tooling (Testing in a Box, USB-Switcher, OpenQA) both at the level of individual ECUs and the combined ECU full vehicle release level.
Implementing a rock-solid update mechanism
It goes without saying, but it’s critically important to have an over-the-air software update that is 100% reliable. It needs to be bullet-proof, and it needs to be tested to the point at which you have complete confidence in it being bullet-proof. Every project understands the former. Sadly, many projects do not understand the latter. If they did, the OTA tests would be one of the very first automated tests written (or at least written as soon as feasible), and the devices under test would be flashed/updated via OTA in every single CI run.
One of the worst possible scenarios for an OEM is performing an OTA rollout, crossing your fingers, and hoping it goes well. This is why Codethink advocates automating the test as soon as it’s feasible. We have recently worked with an OEM - and collaborated with various third-party suppliers - to implement this, achieving a fully automated end-to-end test of an OTA update via GitLab CI pipelines. This consisted of taking a release candidate image, triggering the fleet management platform API to perform a rollout action, connecting to the telematics ECU and pushing the latest update to the IVI system.
Compared with the previously all-manual OTA testing, this had a 10X impact on the capacity to test software rollouts, allowing thousands of OTA tests to be completed before any production update.
Why up-to-date software matters
Many readers of this blog post will already be aware that Codethink considers the current status quo for deploying software indefensible. We have spoken about this before, of course. Traditionally, OEMs were happy to release vehicles into the field without an upgrade plan, patching them only when necessary, effectively keeping them on 'life support'. It should by now be well established that the scale of software complexity we're dealing with extends far beyond this.
OEMs who want to comply with UNECE R155/156 must plan to deploy fully upgradeable software. For the vast amount of open source software in use this means keeping as close to upstream releases as possible. This is nothing new, of course, and it’s not just Codethink that has been saying it.
For commercial software OEMs need to have contractual terms with suppliers to ensure they will continue to support over the lifetime of the vehicle production. This could be either via updates to old versions or commitments to provide the next version of the software in an easily consumable manner (i.e. small incremental updates rather than significant breaking changes years apart). In an ideal world OEMs could even persuade suppliers to provide source code and/or push their changes upstream instead of agreeing to give updates over the long term. OEMs who care about compliance with UNECE R155/156 should be pushing for source code as it grants the level of control needed for the OEM.
Regardless of whether the software is proprietary or FOSS, the biggest challenge OEMs face when updating software is the vast amount of regression testing needed to instil confidence before a complete system upgrade. This is where automated testing for vehicle security steps in: the more automated tests in place earlier in the project, the more valuable testing can be done every time an update occurs, instilling more confidence and accelerating the development process.
Conclusion
Ultimately for OEMs to navigate the UNECE R155/156 compliance minefield, continuous testing in automotive is not just a best practice but a necessity. The regulations demand a long-term commitment to software integration, updates, and long-term maintainability.
OEMs can help to ensure compliance throughout a vehicle's lifecycle by focusing on automated integration testing and robust OTA update mechanisms. In addition, demanding accountability for long-term maintainability from suppliers is vital to meeting regulatory challenges.
With the right processes and strategies OEMs will ensure their vehicles remain reliable and compliant for years to come.
At Codethink, we help our customers overcome safety and security challenges to deliver critical software projects. Click here to learn more about our approach to delivering trustable software.
Other Content
- Codethink’s Insights and Highlights from FOSDEM 2025
- CES 2025 Roundup: Codethink's Highlights from Las Vegas
- FOSDEM 2025: What to Expect from Codethink
- Codethink Joins Eclipse Foundation/Eclipse SDV Working Group
- Codethink/Arm White Paper: Arm STLs at Runtime on Linux
- Speed Up Embedded Software Testing with QEMU
- Open Source Summit Europe (OSSEU) 2024
- Watch: Real-time Scheduling Fault Simulation
- Improving systemd’s integration testing infrastructure (part 2)
- Meet the Team: Laurence Urhegyi
- A new way to develop on Linux - Part II
- Shaping the future of GNOME: GUADEC 2024
- Developing a cryptographically secure bootloader for RISC-V in Rust
- Meet the Team: Philip Martin
- Improving systemd’s integration testing infrastructure (part 1)
- A new way to develop on Linux
- RISC-V Summit Europe 2024
- Safety Frontier: A Retrospective on ELISA
- Codethink sponsors Outreachy
- The Linux kernel is a CNA - so what?
- GNOME OS + systemd-sysupdate
- Codethink has achieved ISO 9001:2015 accreditation
- Outreachy internship: Improving end-to-end testing for GNOME
- Lessons learnt from building a distributed system in Rust
- FOSDEM 2024
- QAnvas and QAD: Streamlining UI Testing for Embedded Systems
- Outreachy: Supporting the open source community through mentorship programmes
- Using Git LFS and fast-import together
- Testing in a Box: Streamlining Embedded Systems Testing
- SDV Europe: What Codethink has planned
- How do Hardware Security Modules impact the automotive sector? The final blog in a three part discussion
- How do Hardware Security Modules impact the automotive sector? Part two of a three part discussion
- How do Hardware Security Modules impact the automotive sector? Part one of a three part discussion
- Automated Kernel Testing on RISC-V Hardware
- Automated end-to-end testing for Android Automotive on Hardware
- GUADEC 2023
- Embedded Open Source Summit 2023
- RISC-V: Exploring a Bug in Stack Unwinding
- Adding RISC-V Vector Cryptography Extension support to QEMU
- Introducing Our New Open-Source Tool: Quality Assurance Daemon
- Achieving Long-Term Maintainability with Open Source
- FOSDEM 2023
- PyPI Security: How to Safely Install Python Packages
- BuildStream 2.0 is here, just in time for the holidays!
- A Valuable & Comprehensive Firmware Code Review by Codethink
- GNOME OS & Atomic Upgrades on the PinePhone
- Flathub-Codethink Collaboration
- Codethink proudly sponsors GUADEC 2022
- Tracking Down an Obscure Reproducibility Bug in glibc
- Web app test automation with `cdt`
- Full archive