Embedded System Testing

Last published posts

Mobile Application Testing: 10 Steps Approach
Posted on

Mobile application testing is crucial in order to create a reliable product. In this post, we’ll go over the entire testing process step-by-step. Testing is a crucial part of the mobile application lifecycle. However, due to all the time and effort, it takes to complete the full cycle of app testing, it gets overlooked by…
Read more…

Real Agile Approach to Performance Testing
Posted on

Performance testing helps to determine if a system is reliable and comfortable to use. In this post, we’ll explain the main principles of Agile performance testing as well as its benefits. Before launching an app or a website, it’s crucial for a developer and admin to know how the entire system behaves under stressful situations….
Read more…

Posted on

In the development and delivery of software, the most important contribution of DevOps is the elimination of the time lag between project phases: development, testing, trial operation, and delivery of the product to the final consumer. The time2market indicator is one of the key indicators of the competitiveness of products and the success of companies…
Read more…


Testing embedded systems is extremely different from classical testing. First of all, there are quite a few non-standard platforms for embedded systems. Secondly, frequently no test tools or the tests themselves cannot be installed on the device and/or embedded platform. Additionally, the system under test doesn’t wait while its tested. The time to execute a series of operations takes less than a hundred of a second, and a number of tests must be run in this time.

To solve these challenges, we use external boards (carrier-boards) or various IP-KVM devices to send commands to the system under test. Generally, we develop a framework and “harness” for each embedded device in order to run automated tests.

We have two areas for automated testing of embedded systems:


  • Model-based testing
  • Functional testing of the OS/embedded software
  • Regression of the OS/embedded software
  • Unit testing
  • Mocking (emulation of external data sources and signals)
  • Testing of the command stack (including testing floating point operations)
  • Testing components based on protocols (CAN, I2C, RS232, RS245, TCP, REST)
  • Testing of drivers for elements of embedded systems with respect to specific OSes (Linux, RTOS, QNX)


  • Model-based testing using a model for PLD and microcontrollers
  • Spec-based testing
  • Test-bench testing (testing systems on a test bench using external carrier boards and sensors)
  • Testing communications with external systems at the level of interfaces and signals (sampling and analysis of input/output signals)
  • Testing based on modeling external signals (black box – SCPI, VXI-11, or other wave form generator)
  • White-box testing based on a component’s specification
  • Load testing using an input stream of prepared data (measurement of the performance of an MCU or cryptographic coprocessors)
  • Fault testing (supplying edge-case data , modeling crosstalk and voltage surges for power circuits – from a carrier board)

When testing we use our internal tools to store and analyze data (a Neuron-R system), but we use enterprise systems to generate data. Storing and analyzing the test results using a Neuron-R allows us to generate reports, view past results, and assess aggregate metrics in real-time on a single chart, which makes it possible to see the correlation between input and output parameters. This is an important ability when testing embedded systems and devices.