嵌入式测试
嵌入式软件测试是确保嵌入式系统的质量和可靠性的重要环节。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。所以要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。
一、在进行嵌入式软件测试时需要掌握的技巧:
1、注重测试环境和用例的准备
确保测试环境与实际部署环境相似,如,硬件平台、操作系统、外部设备等。设计全面且具有代表性的测试用例,覆盖各种功能和边界条件。准备充分可以更好地模拟真实的使用场景,发现潜在的问题。
2、学会利用工具
(1)Matlab 可以让团队模拟状态机、算法并深入研究系统的行为方式。模拟还可以帮助嵌入式开发人员了解整个系统。
(2)嵌入式半实物仿真测试开发环境【ETest】可以可视化创建状态机、通信时序、信号处理等多种可执行模型,还可以使用脚本编程实现灵活丰富的动态控制功能,内置百余项API和界面组件,让测控系统开发变得轻松、简单,满足客户敏捷化与个性化需求。
(3)源码级调试器[Source-level Debugger]
这种调试器一般提供单步或多步调试、断点设置、内存检测、变量查看等功能,是嵌入式调试最根本有效的调试方法。
(3)简单实用的打印显示工具【printf】:printf及类似的打印显示工具估计是最灵活、最简单的调试工具。
(4)ROM监视器【ROMMonitor】:一款驻留在嵌入系统ROM中的小程序,通过串行或网络连接和运行在工作站上的调试软件通信。这是最低端的技术,相对便宜,除了要求一个通信端口和少量的内存空间外,不需要其它任何专门的硬件,提供下载代码、运行控制、断点、单步步进,以及观察、修改寄存器和内存等功能。
(5)性能分析工具【Profiler】:可以用来测试CPU消耗所在,了解系统瓶颈、CPU的使用率以及需要优化之处。
3、专注于业务逻辑
嵌入式开发人员需要认识到,产品的业务逻辑,可以理解成:区分产品的秘诀,可以编写成独立于硬件。无需目标硬件即可在PC 环境中模拟和测试与硬件无关的代码。
4、尽早发现内存问题
(1)内存泄漏
内存泄露是软件设计最常见的内存难题,由于不断分配的内存无法及时地被释放,逐渐耗尽系统内存。大多数的内存泄露虽然无法探测,但会表现为随机的故障,往往会被认为是硬件问题。
(2)内存碎片
随着内存不断被分配并释放,大块内存被不断分解为小块内存,从而形成碎片,后续需要申请大块内存时就有可能会失败。该问题当前最为有效的方法便是使用工具,通过显示系统内存使用情况来找到内存碎片的罪魁祸首并进行改进。
(3)内存崩溃
内存崩溃是内存使用最为严重的结果,主要造成原因有数组访问越界、指针计算错误、重复释放同一段内存、释放非动态内存等。
4、深入理解代码优化
实时性和速度直接影响着代码效率因此了解如何优化代码是每个嵌入式软件开发人员必须具备的技能,而优化代码的前提和必要条件则是找到真正需要优化之处,然后再对症下药。
5、发现问题,分析问题,并解决
在软件测试中,对于隐藏很深、用尽所有工具也无法查到的问题,需要我们通过问题的外在表现或数据输出来寻找其中规律,从而找出问题,再依次分析和解决,最终完成测试。
6、确定测试的完整性
利于覆盖测试可以知道测试的范围,覆盖测试工具可以让我们知道CPU到底执行了哪些代码。通常通过覆盖测试可以知道20%-40%代码没有问题,剩下的可能存在问题的我们可以根据自己的需要选择某个级别。
二、靠谱嵌入式测试机构分享
软件嵌入式测试是是确保嵌入式系统的质量和可靠性的重要环节。而多数企业自身的测试团队不能完全做到客观、公正、公平,人员技术、测试环境等缺乏专业性。
所以最好的办法就是将软件系统测试交给独立的第三方测试机构去做。如柯信优创测评具有三大权威资质(CMA/CNAS及CCRC),最快可一个工作日出具测试报告,可以百分之九十九的弥补企业自身测试团队的不足。
标签:嵌入式测试、嵌入式需要注意的点