Testing Embedded Systems for Sure-Shot Success
An important issue that all organizations, especially SMEs & startups tend to ignore is substantial testing of the embedded system. See, a product can never be guaranteed for 100% testing, but this might be true only for the software component. The hardware part needs to be completely ensured for reliability and functionality as ideated.
One more problem in this regard is the tendency of developers to test the product after the final design- which can never assure an error-free fabrication.
Sensitizing both the hardware and software developers about the importance of testable products and throwing light on different tests for embedded systems at different stages is the core idea behind this article by the Embedded Systems Development team of InSemi.
Types of tests on Embedded Systems
In a nutshell, the tests conducted on embedded systems are broadly classified into two main categories:
Let’s check them in detail.
Non-Recurring Tests
Being carried out on the prototypes and pre-release products, these tests assure the functionalities of the system. Non-Recurring Tests are mainly of two main types:
1. Firmware-Based Solution –
These are developed by the designers to get new designs and PCBAs into existence. Though this can test all CPU-accessible peripherals, predominantly it is used to get the board and authenticate the PCBA parameters.
2. Tests to ensure benchmarks –
There are special tests to ensure that the design meets the safety and environmental benchmarks as made mandatory by governing authorities of different countries/zones. In this, special firmware is developed to test compliance.
Recurring Tests
In the product manufacturing line three main tests viz. PCB Assembly testing, sub-system testing, and Whole product testing are conducted. There is also another test after it – Product Support Testing. It is loaded into the system but conducted only when some malfunctioning report is received.
Developing a testable embedded system is vital for a product’s success. Within two phases viz. development phase and manufacturing phase, a classic embedded system goes through seven tests. The 4 tests in the manufacturing phase have been mentioned above and in the development phase, there are three tests- Power-On Self-Test, Verification and Validation, and Compliances and Certification Tests.
So now let’s check Power-On Self-Test
Recommended by LinkedIn
Power-On Self-Test and Board Bring up Code
The Bring Up code is special software running in processor-based systems, used to test a new board for each section. In this, the user can feed parameters to alter the test data and can test the board with different data sets.
This non-interactive version of the bring-up code is Power-On Self-Test. It is a special software executed in the manufactured product to diagnose it on every boot-up. In earlier days when peripherals and memories used to be separate devices, the POST holds greater significance as external components of different vendors need critical testing. For example, BIOS were the POST for microprocessors on PC
A big challenge with a microprocessor having peripherals external to the chip is that the developer has to develop the code using internal processor resources firstly to test the memories and then execute the full POST/BIOS from them. The introduction of microcontrollers has greatly made POST development easy as everything like memory and peripherals are integrated into one device. The pin level testing ensures that PCBA is intact and the interconnections are perfect.
The BUC is required to bring up a new PCBA and the board BUC is generally the same POST code with interactive features to add data sets.
One general mistake made by most hardware developers is leaving loopholes in the proper provisioning of programming in microcontrollers. There is a lack of uniformity in programming techniques to follow. However, providing a JTAG port is somewhat of a global standard. This serial interface is specifically developed for testing ICs and PCBA within the manufacturing line, fast & easy.
Design Verification and Validation Testing
The next test comes for V&V and is, in general, a customized version of system software. This test ensures that the system and its hardware counterparts are completely tested for proper functionality and that the faults are rectified.
Verification & Validation software is architected based on documented specifications that the product requires. For products to be used in the medical or avionics domain, the test case is required for each and every direct and indirect implication, sternly. One cannot leave any stone unturned in products to be used across a such domain, as a minor fault can put lives at risk!
In-Circuit Testing
As a simple PCBA does not make the complete embedded system, other components are also needed; the 4 tests in the product manufacturing phase do not suffice and further processes are essentially required.
The PCBAs need to be tested individually before being assembled into the main system, so are tested using the in-circuit testers. The PCBAs sometimes have connectivity issues due to imperfect soldering and in-circuit testers focus on those interconnects as well.
The in-circuit testers bank on the back driving principle and measure response from the node under test. They are unique as the PCBAs are tested with pins in the test fixture, which directly examine the test pads provided in the PCB for testing.
There are other tests like subsystem and assembled product testing, and standard compliance testing. All these tests discussed here impact the quality of the embedded system as a whole in several ways. If a fault is detected at the early stages the testing cost is very less compared to investigation in a complete device. A quality assured product leads to greater client satisfaction and the organization’s image greatly improves. This is more crucial to the SMEs or startups that their products are completely foolproof and efficient, creating a solid impact across the market.
For More Visit: www.insemitech.com