作者:富连达发布日期:2023-07-20浏览人数:75
What is an embedded system?
An embedded system is a "specialized computer system designed for a specific application that is completely embedded within a controlled device".
An embedded system is "a device used to control, monitor, or assist in the operation of machines and equipment".
Embedded system can also be defined as "application-centered, computer technology-based, hardware and software can be tailored, functionality, reliability, cost, size, power requirements of the strict requirements of the special computer system."
Embedded system consists of embedded hardware and embedded software, hardware is the support, software is the soul.
Embedded systems are categorized by real-time, which can be divided into non-real-time, soft real-time and hard real-time.
Among them, hard real-time means that the system has strict requirements on response time, and if the response time can not be satisfied, it should cause system crash or fatal error; soft real-time means that the system has requirements on response time, but if the system response time can not be satisfied, it will not lead to fatal error or crash of the system.
What is embedded software?
Embedded software is based on the embedded system design software, it is a kind of computer software, also composed of program and its documents, can be divided into operating system, support software, application software three categories, is an important part of the embedded system.
To put it plainly and easily understood is a set of software installed on the PCB board with linux system.
Embedded software features:
1. Small system kernel
2. Strong specialization
3. System streamlining
4. High real-time operating system
5. Based on the complementary hardware and software
6. Similarities and differences with commercial software testing
This article is solely from the perspective of black box testing.
Similarities
The purpose and principles of embedded software testing and commercial software testing are the same, both are to find bugs, track bugs, verify bugs, so that the product to achieve the function of the demand document to meet user needs.
Differences
Different testing environments are needed.
When testing embedded software, you need to prepare the environment is a complete set of equipment, which may contain a power supply, network cable, high-definition cable (a variety of video transmission lines), switches, cameras, microphones, U disk, routers and so on.
Testing commercial software may be an installation package, or a test URL, you need to prepare may be a computer or a cell phone.
The thinking of testing is different (to be able to self-test first if there is a problem).
The testing mindset here is not so much the mindset required when designing test cases, but the mindset is different when it comes to locating bugs.
In the test of embedded software, if there is a function can not be realized, it is possible that it is indeed a function of the implementation of the problem, it may be a memory problem, it may be a hardware support problem, it may be a driver problem, it may be a network problem, it may be a hardware physical interface problems.
Although it may seem that these issues have nothing to do with me, but if it is a hardware support problem, you throw a bug, the development of troubleshooting after the discovery that you do not follow the specifications to access the hardware that can be supported by the embarrassment is not you?
Another example is the POE network port if there is no access to support POE cable, causing problems is not your unprofessional and so on, since we are test engineers, then there should be a professional degree of engineers to complete the work.
In testing commercial software, encountered features can not be realized, most of the time we are directly throwing out the Bug to the development, accompanied by Bug screenshots, logs and operating procedures, usually good to make.
Different Skill Points Required
Based on the experience of testing projects in the past few years, we found that embedded software testing applies computer network principles more frequently.
When testing embedded software, you have to access network cables, perform network configuration, access switches, understand network communication, data transmission, etc. ......
That is to say embedded software testing you need (solid software testing theory and testing methods + computer network related basic knowledge).
When testing commercial software, because the environment is not too complex, involving less knowledge related to computer networks, the need is often solid software testing theory and testing methods.
Embedded software testing its own characteristics and testing difficulties:
- Limited resources of the current system
- Closely related to the hardware system
- Diversification of operating platforms
- Cross-testing mode
- System security, reliability, correctness of system operation results, etc.
The testing strategy of embedded software is very different from that of general commercial software.
Some people may ask embedded software testing is difficult? Which is more difficult compared to commercial software testing?
I feel that in black box testing, embedded software testing is more difficult than commercial software testing, I only stand in the black box testing of embedded software point of view to speak.
Why do I say so? I can only think of the following points for the time being:
Hardware platforms are different, resulting in increased testing difficulty, as embedded software is closely associated with the hardware platform, that is to say, the same set of software, if ported to another platform, you have to test it from start to finish, in the workload than the commercial software, the chances of error will also be enhanced, and accordingly, the testing difficulty will be increased a little. I have encountered a project that needs to run on two platforms.
Test environment leads to increased testing difficulty, I can say with certainty that the same set of equipment in the A environment operates normally, I just change a switch, build a B environment, there is a high probability that a bug will occur, so experienced embedded software testing students in the encounter of a customer complaint of a bug the first time is to ask the environment is what, what are the devices, what are the operating steps? If necessary, take all the equipment will be sent back to reproduce.
Hardware platform performance leads to increased testing difficulties, the chip performance of the hardware platform is certainly not a computer on the CPU so hanging, so in the test, we often have some hardware performance problems lead to some Bug occasional, which is for us testers, want to find an occasional Bug is very difficult to take the tool to track the operating steps to print the log.
External devices lead to increased difficulty in testing, life basically embedded software is the need for external other devices, such as access to the U disk, camera, microphone, etc., in the test if we find that a certain work can not be realized, we need to consider from three aspects:
1, is not the function of the software Bug;
2, is not the hardware physical interface damage problems;
3, is not access to the peripherals and software protocol problems or driver problems and other reasons to increase the test difficulty.
The last reason for the difficulty of testing is that embedded software testing is relatively independent of software testing, related information is also relatively small, and not like commercial software testing, as long as a search, you can find test methods and some test articles. Embedded software testing is more of a practical, each application place of embedded software testing is not the same way of thinking.
Conclusion
Testing is also a technically difficult position, the need to continue to accumulate experience, veteran testing and novice testing the biggest difference is that veteran testing can quickly locate and find Bugs, veteran testing can have more testing methods and testing strategies to find Bugs, have better test management experience and business skills.
Fully Link Relay
Ltd. is a NI alliance, agents, system integrators, mainly NIGPIB, NILABVIEW, NIDAQ, NI boards, NI data acquisition cards and other products. The company has a full set of hardware and software for product testing should be run solutions, the development scope includes ICT, Boundary Scan, functional testing, system testing. Business covers Shenzhen, Guangzhou, Zhuhai, Foshan, Nanjing, Hangzhou, Xiamen, Xi'an, Chengdu, Wuhan, Chongqing, Beijing and other places.
You can contact online customer service if you need!