The sheer amount of software required by a modern vehicle has grown to tens of millions of lines of code, putting pressure on OEMs and suppliers to write, deploy and integrate code more quickly and efficiently. New testing methods are accelerating that process.
At the same time, software has graduated from enabling infotainment and engine functions to controlling new safety-critical features such as advanced driver-assistance systems (ADAS) and autonomous driving systems, raising the stakes and vastly increasing the complexity of testing.
The pace of technological change puts pressure on OEMs to incorporate new features closer to the start of production and even after vehicles have been sold. Developers need short feedback loops, enabled by testing, to continually update code without lengthy approval processes.
A sea change in development
Changes in testing are part of a broader transition in the way the industry develops both software and hardware.
Traditionally, developers have written software for each hardware component and then integrated it with code for other parts of the vehicle. Testing of the integrated software has come late in the process, limiting the time for additional changes. Development of each component and vehicle platform has been a one-off process that starts over again for the next platform.
OEMs are beginning to shift from this incremental, vertically integrated approach to more agile, iterative methods in which independent teams continuously write, integrate and test their own code. Horizontal layers of middleware take the place of code specific to each component or vehicle platform. Applications and functions are integrated via application programming interfaces ( APIs) shared among the development teams. This continuous integration/ continuous deployment (CI/CD) method lets development teams update their code throughout the life of a vehicle and reuse proven code from other components and platforms to minimize cost and errors.
The new software methods also help OEMs implement new architectures in which processing moves to large, centralized domain controllers from smaller electronic control units, reducing cost and complexity.
Continuous testing supports iterative development
New testing methods are part of this fundamental change. Testing software as it is being developed — to meet new demands for speed and scalability — requires the division of code into components linked by APIs and the use of automated tests on those components. Testing early and often, using automation, and adopting cloud platforms can improve all three stages of testing: software-in-the-loop (SIL), hardware-in-the-loop (HIL) and vehicle-in-the-loop (VIL).
Read more about how these testing stages work together in our white paper.