What is embedded testing?list out the components in embedded testing

Showing Answers 1 - 1 of 1 Answers

Embedded systems are in every "intelligent" device that is infiltrating our daily lives: the cell phone in our pocket, and all the wireless infrastructure behind it; the Palm Pilot on our desk; the Internet router your e-mails are channeled through; your big-screen home theater system; the air traffic control station as well as the delayed aircraft it is monitoring! Software now makes up 90 percent of the value of these devices.

Embedded systems are complex systems that can be composed of extremely diverse architectures ranging from tiny 8-bit micro-controllers up to large distributed systems made of multi-processor platforms. However, two-thirds of these systems run on a real-time operating system (RTOS), either commercial off-the-shelf or in-house, and implement the concept of threads (a thread is a granule with an independent flow of control) that extend to the RTOS task or process. In the UML, this concept is referred to as a Component, while a node refers to an independent processing unit running a set of tasks managed by an RTOS. Any communication between nodes is usually performed using message-passing protocols such as TCP/IP.

The vast majority of developers of embedded systems use C, C++, Ada or Java as programming languages (70 percent will be using C in 2002, 60 percent C++, 20 percent Java, 5 percent Ada). It is not unusual to see more than one language in an embedded system, in particular C and C++ together, or C and Java. C is supposed to be more efficient and closer to the platform's details, while Java or C++ are (supposedly) more productive thanks to object-oriented concepts. However, it should be noted that embedded systems programmers are not object devotees!

In the context of embedded systems, a granule can be one the following (sorted by incremental complexity):

  • C function or Ada procedure
  • C++ or Java class
  • C or Ada (set of) module(s)
  • C++ or Java cluster of classes
  • an RTOS task
  • a node
  • the complete system

For the smallest embedded systems, the complete system is composed of a set of C modules only and doesn't integrate any RTOS-related code. For the largest ones (distributed systems), networking protocols add another level of complexity.

Testing timing constraints is as important as testing functional behavior for an embedded system.

Even though the embedded systems testing process resembles that used for many other kinds of applications, it is impacted by some issues important to the embedded world:

  • Separation between the application development and execution platforms
  • A large variety of execution platforms and thus of cross-development environments
  • A wide range of deployment architectures
  • Coexistence of various implementation paradigms
  • Tight resources and timing constraints on the execution platform
  • Lack of clear design models
  • Emerging quality and certification standards

Six Aspects of testing embedded systems :

  1. Software unit testing
  2. Software integration testing
  3. Software validation testing
  4. System unit testing
  5. System integration testing
  6. System validation testing

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions