The difference between software testing and hardware testing
Last night, I talked about testing with a friend who did embedded, and then I heard that I was focused on test automation for some time, so I discussed some hardware testing and software testing related things, which are fragmentary. But it is also a bit of a waste of valuable time to catch up when friends meet and talk about technology. However, this question remains in my To Be answered's question. Today, I flipped through the book "Wiley.Systems Engineering Principles and Practice.2Ed.2011" and finally found the relevant answer.
The overall goal of software testing and hardware system testing is roughly the same, but the basic differences between hardware and software lead to great differences in testing skills and strategies.
Test path. The unlimited use of control structures (branches, loops, and switch) allows even small programs to have many possible logical paths. It is impossible to test all possible paths, so you must force the selection of a limited number of test cases. Interface. The large number of interfaces between software modules and their depth and limited visibility make it difficult to locate test points and test inconsistencies. Abstract. The design description of software is more abstract and less easy to understand than hardware design documents. This complicates the test plan. change. Significant changes in the software require more retesting accordingly. Local changes require repetitive system tests. Failure mode. The catastrophe of many software errors has two serious consequences. One is the impact on the operation of the system. The second is the hint of failure diagnosis when the system does not work.