
The overall steps of embedded software testing are complex and interlinked. From porting the operating system and writing low-level system drivers to system platform testing, then testing software modules, followed by integration testing, and finally system testing, a comprehensive check of various aspects such as functionality, performance, and interfaces of the entire system is conducted. If the system testing passes, testing can be concluded. After the first product is produced, it also needs to be tested, and if the test passes, it indicates that all testing steps for the embedded product have been completed.


(Image source: Internet)
Testing requirements include multiple aspects. In the data collection and processing of the valve controller, once the software starts collecting, it opens the serial port, and the valve controller periodically (every 1s) sends instantaneous flow, billing flag, and pipeline pressure data to the system under test, which displays the received data on the software interface. At the same time, to ensure fault tolerance of the collected data, truncation processing must be performed when the collected data exceeds the range. In terms of controlling pipeline pressure, the pressure is controlled based on the pipeline pressure sent by the valve controller, limiting the water flow pressure in the pipeline to a certain range. In the instantaneous flow alarm processing, when the collected instantaneous flow is greater than or equal to 300m³, an instantaneous flow alarm prompt is given on the software interface. In the flow billing processing, when the collected billing flag is 1, the accumulated flow calculation for the received instantaneous flow must be performed, and the amount to be charged for the accumulated flow must be calculated.

(Image source: Internet)
In summary, the stability and reliability of embedded systems depend on improving the quality at all stages from hardware to upper-level software. In each stage of testing, different content is focused on, and different tools are required. Compared to pure software testing, embedded systems are more deeply integrated at the application end. Therefore, the corresponding capabilities need to be enhanced.