兴许你生疏,但在智能物联网时代,人们会越来越关注嵌入式软件测试。
说起嵌入式软件测试,咱们先疾速理解一下嵌入式软件本身的特点:嵌入式软件具备实时性、内存空间无限、I/ O 通道少,而且要求功耗低、高可靠性,对老本也比拟敏感,和硬件关联性强等特点,因而嵌入式软件的测试与个别商用软件的测试有较大的区别。
嵌入式软件开发和运行的环境齐全不一样,是离开的,开发在 Windows/Mac OS 桌面客户端(宿主机环境)上进行,而运行的环境是在指标机环境上,即个别是基于 Linux/Android 内核开发的嵌入式操作系统或像 RT-thread 那样的实时操作系统,反对 ARM CPU、MCU 和 蓝牙芯片等低功耗的要害硬件。
嵌入式软件的单元测试个别在宿主机环境下进行,只是在个别情况下(如指标机编译器可能有缺点)会要求在指标机环境下进行,所以在单元测试上,嵌入式软件和个别商用软件的之间差异比拟小,不过,嵌入式软件的单元测试对代码的品质要求比拟高,个别要求达到 MC/DC 覆盖率。
嵌入式软件的集成测试,个别指与指标机的硬件环境集成,也能够和仿真环境集成,这时须要做相应的硬件兼容性测试。但到了零碎测试、配置项测试或确认测试,个别就会在指标机环境下执行,这时和个别商用软件的测试有较大的差异。
因为嵌入式零碎的实时性,其测试应充分考虑零碎实时响应的问题,其响应工夫个别要求在毫秒级别,其对应的负载测试少不了。在对指标机进行测试时,个别须要对在宿主机上编译通过的代码进行插桩解决。这样能够在指标机执行程序的时候,将插桩时预测好的数据返回到宿主机上进行剖析,因而,宿主机和指标机之间的数据传输也要认真对待。
除此之外,咱们须要制订合乎零碎需要的可靠性级别和安全级别,进行相应的可靠性测试和安全性测试。嵌入式软件测试工具,开源工具比拟少,少数是商业工具,而且往往成套,笼罩零碎性能、性能剖析和安全性测试。明天咱们就介绍比拟罕用的或好用的嵌入式软件测试工具,次要有:
- ETest Studio
- Klocwork
- Hitex TESSY
- Rapita Verification Suite
- Squish
- Trinity DT10
- VectorCAST
一、ETest Studio
一款国产化黑盒测试工具,能够做配置项测试和零碎测试,包含测试资源管理、环境形容、接口协议定义、用例设计、实时数据监控、测试工作治理等性能,次要特点有:
- 提供各类管制总线和仪器接口 API,可由开发人员集成各类通用接口板卡和用户自定义的接口板卡。反对的 I / O 类型包含:RS232/422/485、1553B、CAN、TCP、UDP、AD、DA、DI、DO、ARINC429 等,并可灵便扩大;
- 反对看待测系统及其外围环境、接口状况等进行可视化仿真建模设计,如提供 Matlab/Simulink 集成接口,可实现现有仿真模型的开发和利用,反对仿真模型实时代码的生成和运行;
- 提供接口协议描述语言(DPD 语言)及其编辑编译环境;
- 可通过表格、仪表、曲线图、状态灯等虚构仪表实时监测接口数据;
- 可按二进制、十进制、十六进制监测输出与输入的原始报文并查问过滤;
- 测试脚本反对时序测试和多任务实时测试,具备可主动生成满足不同组合笼罩要求测试数据的性能;
- 提供实时内核模块,可实现高可靠性强实时测试,响应工夫 <=1ms,同步传送和抖动工夫小于 10us。上位机和下位机别离采纳 Windows 和实时操作系统。
官网地址:http://www.kiyun.com/Show/fan…
二、Klocwork
Klocwork 是一款反对百万行甚至千万行以上的 C /C++/Java/JS/C# 代码品质动态检测工具,利用当先的深度数据流剖析技术,动态地跨类、跨文件地查找软件运行时缺点、谬误和安全漏洞,并精确定位谬误产生的代码堆栈门路。次要性能包含:
- Klocwork 反对自动化扫描 1000 多种代码缺点,包含空指针、资源及内存透露、未捕捉的异样、除零等,全面检测代码品质问题;
- Klocwork 提供全面的平安规定扫描能力,反对 CWE, OWASP, CERT, PCI DSS, DISA STIG, 和 ISO/IEC TS 17961 等规范,深度数据流剖析能力强、准确率高、漏报率低;
- 反对罕用的 IDE,如 Eclipse, Visual Studio, IntelilJ Idea 等,并与 CI/CD 工具和集成、B/S+C/ S 部署形式;
- Klocwork 反对动态检测软件应用的安全漏洞,包含 SQL 注入、被净化的数据、缓存溢出、弱代码实现及其它多种常见利用安全漏洞。
官网地址:https://www.perforce.com/prod…
三、Hitex TESSY
Tessy 源自戴姆勒 - 奔驰公司的软件技术实验室,由德国 Hitex 公司负责寰球销售及技术支持服务,是一款专门针对基于 C /C++ 开发的嵌入式软件进行单元 / 集成测试的工具,Tessy 也能够满足各类规范(如 ISO26262、IEC61508、EN 50128/50129 等)对测试的需要,而工具本身也通过了 TUV 的认证,证实该软件是安全可靠的。次要性能有:
- 主动生成测试环境、一键执行及评估后果;
- 便捷的测试用例设计形式,如集成了分类树编辑器 CTE,反对导入导出多种格局的测试用例;
- 通过剖析源文件自动识别函数及相干接口,在接口产生变更时,反对通过简便的操作进行测试数据复用,实现高度自动化的回归测试;
- 提供分支笼罩、MC/DC、多条件笼罩 MCC 等多种覆盖度剖析。
还提供其它一些工具,如:
- Static code anlaysis
- Test case specification
- Working with standards
- Analyzer
- Hardware-in-the-loop test
官网地址:https://www.hitex.com/embedde…
四、Rapita Verification Suite (RVS)
RVS 是一套面向嵌入式软件的测试工具集,反对 MC/DC 覆盖率剖析,满足 DO-178C 和 ISO 26262 认证要求。其中 RapiTest 具备易于编写和易于审查但功能丰富的测试格局,以及创立多线程测试和测试代码元素(如泛型和公有类型)的能力(无需编写源代码)。
- 单元、集成和零碎测试的生成和执行 – RapiTest;
- 结构性代码覆盖率剖析 – RapiCover;
- 执行工夫剖析 – RapiTime;
- 调度剖析 – RapiTask。
官网地址:https://www.rapitasystems.com…
五、Squish
Froglogic 公司的 Squish 是广受欢迎的跨平台、多技术交融的 GUI 测试工具,尤其是对如下利用提供业余和全面的反对:Qt、Java GUIs、Web、Linux、Windows、IOS 和 android 等。Squish 反对 BDD、数据驱动、分布式批量测试和视觉验证等,辨认自定义的控件或 2D/3D 图像,反对多种脚本语言:Python、Perl、JavaScript、Ruby 和 Tcl,平台有两大产品:
- Squish:自动化 GUI 测试;
- Squish CoCo:代码覆盖率剖析。
官网地址:https://www.froglogic.com/squ…
六、DT10
DT10(Dynamic Test Tool DT10)是一款反对 C /C++, C#, Java 等多种语言的软件灰盒测试和零碎动静跟踪调试工具,利用当先的自动化代码插装和数据采集技术,反对对软件系统的简单的、偶发的缺点的回溯调试、性能测试、CPU 负载剖析、变量监控、逻辑剖析、内存应用剖析、硬件监测和剖析,及覆盖率剖析等灰盒测试场景。DT10 由硬件设施 Dynamic Tracer 和 PC 端软件两个次要局部组成,软件局部负责源码插装、数据处理和后果剖析等,硬件局部简单接口、信号采集和数据通讯。
弱小的缺点回溯定位能力:
- 反对跟踪和检测软件执行过程中的门路、变量和各种中间状态;
- 反对监测和剖析零碎运行过程中的硬件状态并和软件状态同步剖析;
- 反对长达一个月的长时间不间断测试,实时动静更新的覆盖率剖析;
- 性能测试性能能够细化任意代码模块,并准确到 ns;
- 不依赖于被测系统的 CPU 和 OS 类型;
- 反对串口、以太网口、异步总线、GPIO, SPI, SD 卡和 CAN 总线等丰盛的接口类型。
官网地址:https://trinitytec.com.cn/pro…
七、VectorCAST
VectorCAST 是实用于嵌入式软件利用的高可靠性和高安全性软件的自动化动静测试工具链,实用于单元测试、集成测试、覆盖率剖析、回归测试、动态剖析、零碎测试和品质剖析等软件测试所波及的各个环节。反对 C /C++ 和 Ada 语言,内建多种智能的自动化测试用例生成算法,合乎多种行业认证的规范,如 DO-178B/C, ISO 26262, ASPICE, IEC 61508, En 50128, IEC 62304, IEC 60880 等。
官网地址:https://www.vector.com/us/en-us/
起源:软件品质报道
优质内容共享给思否平台的技术伙伴,如原作者有其余思考请分割小编删除,致谢。
玩乐高,学麻利,规模化麻利联合作战沙盘之「乌托邦打算」,2022 年 3 月 5 - 6 日登陆深圳,将“多团队麻利协同”基因内化在研发流程中,为规模化晋升研发效力保驾护航!!🏰⛴公众号回复“乌托邦”可加入