It's fair to say that the automotive industry has been very successful in integrating software systems for many decades. In fact, systems like traction control, electronic stability programs and anti-lock braking systems have dramatically improved the performance and safety of vehicles over the years. Recently, however, safety issues related to the software in road vehicles have made the news headlines, resulting in vehicle recalls that have damaged the industry’s reputation and cost millions of pounds.
This trend is not entirely unpredictable. The automotive industry is extremely competitive and automotive manufacturers operate in a state of exacerbated competition. Innovative products are often sped to market in order to compete aggressively with competitors who are also driving the next big thing.
For many years, the automotive industry has been very successful in driving innovation. However, unlike previous software systems, today’s entertainment systems, Head-Up Displays, hybrid propulsion systems, parking aids, driver inputs and actuators are complex and integrated. Alongside many other new automotive systems, they present entirely new safety issues.
Further complexity is added when we consider that vehicles are operated on streets, driven by ordinary people and repaired in high-street garages. This presents a rather uncontrolled environment, particularly when compared to the systems used in the aerospace industry. In the aerospace sector, aircraft are flown over controlled airspaces by trained pilots and maintained by trained engineers who adhere to highly controlled maintenance and operation procedures.
Software complexity is also growing exponentially, with an increase in the number of lines of code often correlating with a rising number of software problems. The average luxury car now has about 100 million lines of code, while the rigorously tested Boeing 787, one of the most modern aircraft in the world, has only seven million lines of code. On average, before software testing activities, 100,000 bugs will exist per million lines of code.
All of these factors present systems engineering challenges for the automotive industry, the outcome of which is complex software with different fail safe paths and increased logic in Failure Detection, Isolation and Recovery algorithms. Although systems engineering and software standards in the automotive industry are on a par with those in the aerospace industry, road vehicles have been much more prone to prominent software issues than Western aircraft systems. The aerospace industry learned painful lessons from integrating complex software systems badly long ago and have adopted a stringent safety-critical approach when developing software, systems, equipment and operational procedures.
Like in other industries, independent testing should be used to verify the operational safety of automotive software systems that are safety-critical. The goal should be to improve a system’s reliability, availability and safety performance. Independent testing identifies suitable design assurance levels across a process to achieve compliance with a specific functional safety standard. Such testing ensures the system’s requirements are fit for purpose by determining whether they fulfil key performance and safety obligations. Testing also ensures that the system’s design is faithful to these requirements, and that the software artefacts are faithful to the overall system design.
However, software testing activities are often awarded to specialised departments within the company or the group producing the system in the first place, removing independence. Although this conforms with written standards requirements, this can create a conflict of interest, as the testing department is often sensitive to the same competitive financial constraints as the automotive manufacturer.
By contrast, common practice in the aerospace industry dictates that testing activities are awarded to companies with no technical, financial or shareholder links with the system manufacturer. As an indication of where the automotive industry may be heading, these standards were enforced on the aerospace industry by governments, through certification authorities and prime contractors who feared their latest assets were too unreliable, expensive and dangerous. At the time, other industries with critical systems and assets overlooked the approach, deeming it ‘unnecessary’, ‘uncompetitive’, ‘slow-moving’, ‘not applicable’ and ‘too expensive’. Those industries have since paid for that approach, with significant embarrassment, economic loss and, most regrettably, human lives.
With more and more industries relying on independent testing to sustain confidence and assurance in their mission, safety and business-critical processes, it surely won’t be long before the automotive industry joins them.
David Gil is a Senior Engineer at Critical Software
Share this story