Improving Embedded Software Test Effectiveness in Automotive Applications

As the automotive industry introduces more and more safety-critical, computer-based systems (e.g., brake-by-wire), there is a growing convergence between the guidelines that the Automotive and Aerospace industries use for developing safe and reliable embedded software.

The Automotive industry implements strong software development processes, using software standards and certification in an effort to improve the overall quality and reliability of embedded software. The intelligent interconnection of tools, processes and methods should also be a central focus of developing better software. This discussion focuses on how structural coverage analysis techniques may be used to improve overall test effectiveness, one aspect of the Automotive and Aerospace software development guidelines.

Methodologies to improve the testing and testability of software have improved in recent years, but it is not unusual for an embedded application to have as little as 20-30 percent of its code actually tested before first customer shipment. In most projects this is a quality, time and cost issue, but in systems where safety is a major characteristic, the problem can be more acute.

Testing is an essential component of the software verification process, and it serves two primary functions: to prove that the software works correctly and to detect programming errors and mistakes in the implementation of the software design. For large embedded systems, the human capacity to comprehend complexity is limited, and defects can never be completely ruled out. The following examples highlight difficulties with software testing:

  • Defects in the software design are difficult to identify
  • Systems interacting with the real world present unique issues as hardware and software are not continuous and testing boundary values is not guaranteed to ensure test completeness
  • Traditional functional and black box testing does not guarantee that all executable code or states can be reached.

Good embedded software testing is to some extent an art form and requires effective methods and tools to support the deployed testing strategy. Typically, more than 50 percent of development time is spent testing the software, representing a significant cost. For safety-critical software, it is important that the effectiveness and quality of this testing be tracked and measured to ensure test completeness. For safety-critical avionics software, structural coverage analysis data must be submitted to the certification authorities to prove that the software has been tested completely.

View Entire Paper | Previous Page | White Papers Search

If you found this page useful, bookmark and share it on:

 
Embedded Star Newsletter
Don't have time to visit Embedded Star everyday? Then sign up for our free newsletter. We'll send you an email when we have something to share with you. Your email address will be kept confidential and we will not share, sell, or rent it to anyone. You can unsubscribe at any time by clicking a link in the email.

Enter your email address to sign up for our free newsletter:   

If you are familiar with RSS feeds, you can also sign up for our free blog feed. Our RSS feed is updated in real-time while our newsletter is updated daily.