0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用emSim轻松地进行自动化测试

麦克泰技术 来源:麦克泰技术 2023-11-10 11:14 次阅读

对于嵌入式或本地解决方案来说,软件测试似乎是一件令人头疼的事情,但事实并非如此!

当然软件测试也有挑战。时间和资源的限制会限制测试的级别,而且测试很难模拟所有真实世界的场景和极端情况,这可能导致缺陷在发布后修复成本最高的阶段被发现。

测试是向市场交付功能齐全且可靠的解决方案的关键步骤,因此建立和维护测试制度可能非常耗时、复杂、昂贵,这是合理的。不幸的是,业务压力可能意味着测试被简化,或者不被重视,这只会把问题推到未来。

一个全面的软件测试解决方案的好处是显而易见的。首先,良好的测试方法有助于及时发现和修复代码中的错误。消除错误可以避免现场的功能故障,并减少产生安全漏洞的风险。更重要的是,它可以帮助避免产品负面评论。

从开发团队的角度来看,软件测试确保交付指定的功能,并最终帮助我们向市场交付可靠的产品。

测试的类型

单元测试:单独测试软件的各个组件或单元,以确保正确性和功能。这些单元可以是单个函数或更复杂的算法,但通常会在开发周期中随着时间的推移而构建。指令模拟器或在线调试器可以通过与MCU外设交互实现单元测试。对于计算功能,可以使用指令集模拟器,如SEGGER emSim

集成测试:随着开发开始构建,我们进入集成测试阶段,需要测试更复杂的多功能算法。可以使用与单元测试类似的原理,但随着对MCU外设功能的访问变得至关重要,转向在线测试(如J-Link commander)更为常见。

功能测试:这种类型的测试评估软件是否满足指定的功能需求。它包括测试发布软件的不同特性和功能,可以根据用户界面的复杂程度自动完成。

回归测试:回归测试确保对软件的更改或更新不会对现有功能产生不利影响。它可以包括上述所有方法。

用户验收测试(UAT):UAT包括终端用户对软件进行测试,以确保软件满足他们的需求和期望。

快速看一下单元测试

实施有效的单元测试,应该遵循某些最佳实践。测试用例应该涵盖一系列场景,包括典型用例和边缘用例。测试应该是自动化的,使它们能够在没有人工干预的情况下频繁地执行。

如前所述,使用指令集模拟器(如SEGGER emSim)可以在嵌入式体系结构上进行测试,而不是依赖于可能隐藏诸如可变大小和库约束等问题的PC应用。

如何使用emSim设置一个简单的单元测试

首先需要下载并安装最新版本的Embedded Studio,它包含了一个完整的开发套件(编辑器、编译器等)以及emSim。Embedded Studio可以在Windows、macOS和Linux平台上进行评估,针对商业用途提供了灵活的许可模式。

接下来,我们编写要测试的功能,并将其封装在单元测试中。下面是一个非常简单的例子,增加一个字符并测试返回值。我们可能期望这对函数的所有输入都有效,但当输入超过8位字符值时,逻辑将失败。

eab397c6-7f75-11ee-939d-92fbcf53809c.png

其中function_to_test()是要测试的代码,其参数test_val从命令行传递到测试单元中。然后对返回值ret进行测试,在本例中是传递给测试函数的变量的增量。

一旦单元测试按预期工作,下一步就是准备一个脚本来测试一系列输入值。下面是一个例子,但是这也可以被内置到单元测试中:

eac93568-7f75-11ee-939d-92fbcf53809c.png

它返回以下内容,可以根据需要进行进一步处理。

ead65b44-7f75-11ee-939d-92fbcf53809c.png

如果您希望在实际目标硬件上集成单元测试,那么最后一步是通过脚本化的emSim测试配置(J-Run),基于J-Link调试器访问芯片和部外设。

还可以通过设置断点来退出测试并生成指令跟踪输出来扩展测试。

emSim是作为SEGGER Embedded Studio的一部分提供的,运行在Windows、MAC和Linux平台上,支持各种ARM架构的,包括ARM64、v4t、v5te、v6、v6m、v7m、v7em、v7r、v7a、v8a、v8r、v8m_baseline、v8m_mainline、v8.1m_mainline,可以通过在命令行中添加-arch来配置。

使用emSim可以基于最适合您需求的主机平台和目标体系结构,开始单元测试。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288425
  • 自动化测试
    +关注

    关注

    0

    文章

    171

    浏览量

    26777
  • 软件测试
    +关注

    关注

    2

    文章

    207

    浏览量

    18381
  • 模拟器
    +关注

    关注

    2

    文章

    817

    浏览量

    42697

原文标题:使用emSim轻松地进行自动化测试

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OPhone自动化测试技术概述

    本文将对OPhone平台上可采用的几种自动化测试技术进行介绍,并对每种技术的优缺点做简要的总结。OPhone台除了为应用程序开发提供丰富的API外,也为开展自动化
    发表于 05-06 08:58

    航天器自动化测试测试语言

    这是关于自动化方面的和航天器方面的基于自动化测试测试语言!
    发表于 04-26 19:52

    手机自动化测试方法

    脚本生成后点击调试按钮 8.点击左下角的启动键进行脚本回放,不要控制鼠标,此时鼠标会自动点击小萝贝控机大师进而控制手机进行手机APP自动化测试
    发表于 07-05 15:07

    开关电源自动化测试系统的设计与实现

      摘 要: 按照以软件为核心的模块系统构架,设计并实现了新一代开关电源自动化测试系统。该系统能自动完成开关电源功能测试,并能存储
    发表于 11-29 16:59

    网络路由设备的测试自动化

    网络路由设备的测试自动化
    发表于 06-18 06:34

    自动化测试框架思想和构建

    自动化测试一般是指软件测试自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。本文介绍的是
    发表于 07-18 06:52

    七个步骤完成自动化测试

    我们对自动化测试充满了希望,然而,自动化测试却经常带给我们沮丧和失望。虽然,自动化测试可以把我们
    发表于 07-19 06:12

    自动化测试系统的软件

    软件是自动化测试系统的重要组成部分,软件第一次被用于控制独立的仪器到现在已有40多年。从那时起,软件在自动化测试中的作用日益凸显。事实上,当前大多数
    发表于 07-22 07:58

    如何对用户界面进行自动化测试

    能识别图形界面上的关键信息,比如界面上的文字,数值,图标等。小蚂蚁测试(AnTestin)平台支持对人机接口的屏幕显示进行自动化检测,代替人的眼睛观察,可以识别界面上的关键信息,结合其他操作(比如
    发表于 03-06 19:57

    纳米软件案例之电阻自动化测试系统

    实现测试数据的保存、导出,方便用户进行数据二次查看、分析。项目成果首先运行电阻自动化测试软件,进入软件主界面,主界面设计清晰明了,只有运行测试
    发表于 08-21 11:41

    自动化测试系统问答

    和配置管理,学会在开发工具的同时也学会一些开发和测试自动化流程。而在测试过程中,因为开发的工具不是非常系统,所以可以主要从功能点(按照需求列好功能点
    发表于 10-12 19:02

    请问数据驱动的自动化测试框架结构是怎么构成的?

    自动化测试为什么会出现?相比手工测试自动化测试有哪些优势?自动化
    发表于 04-15 06:55

    如何对多总线自动化测试系统进行测试验证?

    多总线自动化测试系统是由哪些部分组成的?怎样把遗传算法应用到SVM中去?如何对多总线自动化测试系统进行
    发表于 06-08 07:19

    LabVIEW开发卫星通信的自动化测试系统

    LabVIEW开发卫星通信的自动化测试系统测试系统不仅要能够高效率找出故障机板,更要能诊断机板的故障元件。而此系统简单易用,要能快速并准确诊断机板的元件,更要能扩充新的功能,至少要能沿用15 年
    发表于 03-02 20:17

    LabVIEW与Tektronix示波器实现电源测试自动化

    自动化和数据处理的智能。通过LabVIEW编程环境连接Tektronix示波器,可以精确设置测试参数,如电压、电流波形等,确保每次测试的一致性和准确性。
    发表于 12-09 20:37