常用嵌入式系统软件仿真自动化黑盒测试平台
一、 ETest
简介
通用嵌入式系统测试平台(Embedded System Interface Test Studio,简称:ETest)是针对嵌入式系统进行实时、闭环、非侵入式测试的自动化测试平台,适用于嵌入式系统在设计、仿真、开发、调试、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。
主要特点
- 是一套完整的针对嵌入式系统的自动化动态确认测试平台,可以实现硬件在环、非侵入式的系统级测试,完成基于实装难以完成的测试任务;
- 集成测试资源管理、测试环境描述、协议脚本开发、测试用例设计、测试执行监控、测试任务管理等功能为一体;
- 具有通用化的通信协议定义与描述语言处理环境,可以定义和描述各类结构的总线协议;
- 具有高度开放的协议模板管理接口,通过不断在测试中积累各领域的应用层协议,实现针对不同领域嵌入式系统自动化测试解决方案的快速构建;
- 提供丰富的测试监控仪表和高度灵活的协议字段绑定方法,支持收发数据字段的双向绑定,并具有表达式绑定能力;
- 集可视化窗体灵活配置的人工测试与脚本化语言高级开发的自动化测试于一体,满足初、中、高不同级别的测试需求;
- 提供测试用例脚本编辑与开发环境,通过简单的通道与协议字段赋值,便可完成测试数据的收发与测试逻辑的判断;
- 在底层实现了接口与通道管理、协议组包与解包、协议的校验、测试参数的组合等功能,测试人员只需将关注点放在测试逻辑的设计与实现上;
- 具有插件化的功能扩充能力,无论是通信协议描述还是测试用例描述,平台都提供了对插件的开发支持;
- 具有分布式的软件体系架构和计算能力,可实现从单机到多机不同规模
的测试环境构建;
- 可以完成单配置项单接口、单配置项多接口以及多配置项的系统测试任务;
- 支持多种类型测试:功能测试、接口测试、边界测试、强度测试、安全
性测试、恢复性测试、性能测试、敏感性测试、余量测试、容量测试、压力测试、
随机测试、异常测试等。
主要功能
- 支持的 I/O 接口类型包括:RS232、RS422、RS485、MIL-STD-1553B、CAN、 TCP、UDP、AD、DA、DI、DO、ARINC429、FlexRay、SPI、I2C,并可灵活补充扩展;
- 支持对待测系统及其外围环境、接口情况等进行可视化仿真建模设计;
- 提供通讯协议描述语言(DPD 语言)及其编译编辑环境;
- 支持自定义可视化数据监控界面以及实时数据监控;
- 具有测试用例脚本编辑、开发与执行能力;
- 实时记录测试数据并加时间戳自动保存;
- 提供测试数据生成、接口调试等相关工具;
- 支持测试数据管理及统计分析; ² 高精度的数据采集及数据转换;
- 可通过表格、仪表、枚举、曲线图以及状态灯等手段实时监测关键变量;
- 可按二进制、十进制、十六进制监测输入与输出的原始报文并查询过滤;
- 支持测试记录及结果的查看、测试报告自动生成;
- 测试脚本语言支持时序测试和多线程任务测试;
- 系统扩展能力强,可灵活组建大、中、小不同规模的测试环境;
- 可根据测试需求集成函数发生器与高性能示波器等测试设备。
价格
共享版免费,商用版本价格不详。
二、 QTP
简介
QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输
出数据等。
主要特点
- QTP 是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET 的,Java 的,SAP 的,Terminal Emulator 的等等,分别用于各自类型的产品测试。默认提供 Web,ActiveX 和 VB。[2]
- QTP 支持的脚本语言是 VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比 SilkTest 采用 C#,Java,4Test 语言)。VBScript 毕竟是一种松散的、非严格的、普及面很广的语言。
- QTP 支持录制和回放的功能。录制产生的脚本,可以拿来作为自己编写脚本的 template。录制时,还支持一种 lower level 功能,这个对于 QTP 不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。另外,QTP 的编辑器支持两种视图:Keyword 模式和 Expert 模式。Keyword 模式想法是好的,提供一个 描述近似于原始测试用例的、跟代码无关的视图(我基本很少用,除了查看、管理当前 test 中各个 action 的完整流程),而 Expert 就是代码视图,一般编写脚本都在这
个区域。
- 一个有用的工具:Object Spy,可以用来查看 Run-time object 和 Test object 属性和方法。
- QTP 通过三类属性来识别对象:a)Mandatory; b)Assistive; c)Ordinal identifiers。大部分情况下,通过对象的一些特定属性值就可以识别对象(类型 a)。这些属性可以通过 Tools->Object Identification 定义。
- Object Repository(OR)是 QTP 存储对象的地方。测试脚本运行后,QTP 根据测试脚本代码,从这个对象库中查找相应对象。每个 Action 可以对应有一个或者多个 OR,也可以设置某个 OR 为 sharable 的,这样可以供其他 Action 使用。注意,使用 QTP 录制功能时,默认将被测对象放在 local OR 中,可以通过 Resources->Object Respository,选择 Local 查看。
- 说到 QTP 的要点,不得不说 Action。Action 是 QTP 组织测试用例的具体形式,拥有自己的 DataTable 和 Object Repository,支持 Input 和 output 参数。Action 可以设置为 share 类型的,这样可以被其他 test 中的 Action 调用(注意:QTP 是不支持在一个 test 中调用另外一个 test 的,只有通过 sharable action 来调
用)。
- 如 3)所述,一个 test 中,多个 action 的流程组织,只有通过 Keyword 视图
查看和删除,在 Expert 视图中没有办法看到。
- 调用 Action 可以通过菜单 Insert->Call to *** 来实现。QTP 提供三种类型的调
用方式:a)call to new Action,在当前 test 中创建一个新的 Action;b)call to Copy of Action;c)call to existing action,调用一个 re-usable action,如果这
个 re-usable action 来自另外一个 test,将以只读的方式插入到当前 test 中。
- QTP 提供 excel 形式的数据表格 DataTable,可以用来存放测试数据或参数。 DataTable 有两种类型:global 和 local。QTP 为 DataTable 提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。
- 环境变量(Environment Variables)。在一个 test 中,环境变量可以被当前 test 中所有 action 共享。环境变量也有两种类型:build in 和 user defined。用户
自定义的环境变量可以指向一个 XML 文件,这样可以实现在众多 test 之间共享变量。
- QTP 可以引用外部的 VBS 代码库,通过 Settings-》Resource 加入,也可以 ExecuteFile 命令在代码中直接执行。这种 VBS 库可以为所有 action 和 test 共享。
- QTP 默认为每个 test 提供一个测试结果,包括 Passed,Failed,Done,Warning 和 information 几种状态类型,可以进行对结果 Filter。但是,只能为每个 test
产生一个 testing result,不能为多个 testing 产生一个总的 testing result.