1.1 概述
测试系统是工程研制中重要的组成部分。测试是指通过各种方法、手段,对所研制的产品执行测量、采集、判断,以确认是否满足预期的各项要求,最终得到定性、定量的结论。
这里的测试系统是指在工程研制领域中,将能够执行测试的若干部分组合成一个有机整体,用于执行测试功能、辅助测试工作的系统,这些组成部分包括仪器、仪表、采集测量板卡、总线通信卡、计算机硬件、计算机软件、线缆等。
1.1.1 测试
在测试工作中涉及被测对象、测试方法、测试用例等内容;测试系统依赖于具体的被测试对象,能够实现具体的测试方法,能够执行测试用例;测试系统与测试工作息息相关。
1.被测对象
被测对象是需要被测试的实际产品,如一台设备、一套子系统、整体卫星、卫星上的单机。被测对象是多种多样的,如车辆、船舶、飞机、卫星上的各种设备、部件、子系统。本书中的被测对象主要指工程研制领域中有外部总线接口(简称对外接口)的各类设备、子系统、系统、元器件等,这类被测对象往往具有复杂的功能,需要构建测试系统来执行测试。
2.测试方法
各种不同的产品的测试方法也不同,对于纯软件产品而言,常用的方法是通过软件图形界面、鼠标点击、录入数据、观察界面的结果来执行测试。对于一些硬件设备,没有可供人操作的键盘、鼠标、屏幕显示,只有输入/输出总线。这类硬件产品的测试必须使用总线通信卡、测试软件、基于外部总线接口执行测试,需要构建软/硬件的测试系统来执行测试。
3.测试分类
在工程研制中根据研制阶段、测试的目的,将测试分为很多分类,常见的有功能测试、部件测试、单元测试、集成测试、系统测试、接口测试、性能测试等。很多被测对象的外部总线接口既能用于验证功能,也能验证性能等,例如常见的外部总线接口通信功能。
通过外部总线接口执行通信,是可以用在各种测试中的一种测试方法、测试手段。
4.测试用例
在各类产品的研制过程中,需要根据设计要求、功能指标、性能指标等设计覆盖性全的测试用例,通过测试用例验证出结论。测试用例应有明确的执行步骤、明确的输入、明确的输出、明确的判定,明确的输入对应明确的输出。设计测试用例要考虑如何执行,既可以手动用仪表测试、纸笔记录,也可以使用软/硬件的测试系统。
1.1.2 构建方法、步骤
在工程研制中确定要使用测试系统后,就需要构建测试系统。此时,先整理出测试需求、软/硬件指标;然后构建、研制测试系统;最后调试、对接、使用起来。具体步骤如下。
1.整理出测试需求
在构建测试系统的初期,收集、分析、整理出被测对象的测试需求。可以根据设计文件、指标要求、外部接口要求、性能要求等,分析哪些需要测试、如何测试,得出测试项、整理出对测试系统的要求,即测试需求。
根据工程管理的具体情况,还需要再确认测试需求,召集相关人员对测试需求做评审,得到确认后的测试需求,作为整个测试系统构建的基础。
2.测试需求的组成
根据不同的工程管理要求,测试需求会有细微差别。总的内容包括测试系统的功能组成、硬件组成、总线接口组成、性能指标、环境要求等,特别的还会有重量、体积、便携等要求。
在测试系统中有一些容易被忽略的属性要求,需要将其明确到测试需求中,测试系统的复杂度往往取决于这些属性要求(如下)。
(1)扩展性要求:在工程研制的过程中,有时会出现变更情况,导致也要修改测试系统,此时就要求测试系统具有适应性、扩展性,少量修改即可满足被测对象的变更,不能因少量的变更导致测试系统推翻重来。
(2)性能指标要求:测试系统的研制和所有的工程研制一样,要明确详细的指标,常见的有实时响应时间、通信速率;软件的性能指标有界面响应时间、界面刷新频率、数据存储容量、连续稳定运行时间等。
3.软/硬件选择
根据测试需求文件、资金情况,选择商用总线通信卡、信号采集卡、计算机等成熟的硬件模块。若没有成熟商用硬件支持,则需要自行研制硬件模块。
可以选择合适的编程语言开发测试软件,也可以根据被测对象的领域,找一些成熟的框架软件产品、做少量开发实现,如本书第3部分介绍的总线仿真测试平台。
4.实现测试系统
根据软/硬件选择,实现功能、构建测试系统,满足测试需求。
1.1.3 测试的原理
在很多情况下,测试工作更多的是测量。一些资料对测试的定义:测试是对被测对象在试验全过程中进行各种参数的动态测量,所以测试中应用了很多测量技术。对于具有外总线的各种设备,在设备内部做了很多测量,通过总线通信数据包回馈这些测量值,这些也是对被测试设备的动态测量。测试系统包括测量和测试两个部分。
1.测量
测试系统要解决的一个大问题:获取被测对象输出的各种信息,其中包括模拟量、数字量、各种信号、总线通信信息等,此时更加偏向于测量,测试和测量也是分不开的。
根据被测对象的外部总线接口,实现总线通信协议、能够和设备进行总线通信;这需要设备具有总线通信功能,有些设备没有对外总线接口,但是会有其他输入/输出,如模拟量、开关量、射频信号等这种可以交互的信号,然后通过计算机的数据采集卡、仪器仪表等,将这些信号采集到计算机中,之后由软件负责处理。能够测试的前置条件是有对外的输入/输出接口。
2.测试
测试系统需要生成激励信号,将激励信号发送给设备,并接收设备反馈的状态信息。
(1)生成激励信号、发送给设备,根据测试需求,生成指定的激励信号,如总线发送的指令包、输出模拟量、开关量控制信号、上电/断电信号,之后,测试系统将这些激励信号发送给被测对象。例如,有些设备有电压采集功能,可以用电池作为信号源,让设备来采集这个电池的电压,读取设备外部总线接口上反馈的采集值,验证设备采集是否正确。
(2)接收设备反馈的状态信息,具有总线的设备都会定义很多状态包,这些状态包中有各种有用的参数值,通过这些有意义的值,可以验证设备的工作状态。没有总线的设备,可以采集设备上的其他输出值,如温度、电压、电流等,也能达到测试的目的。
测试原理是:给设备发送激励信号,采集设备的反馈值,判断是否符合要求。
1.1.4 应用价值
在工程研制中应用了测试系统后,会有以下应用价值。
1.提高测试有效性
测试工作非常重要。产品设计是否符合要求、指标是否满足等,都必须通过测试才能确认。然而,测试工作也受各种因素(包括测试方法的可靠性、测试工具的可靠性、测试环境的复杂度、手工测试的失误率等)的影响。应用测试系统可以规避这些问题,提高测试有效性。
2.提高测试自动化水平
基于测试系统的自动化测试功能,可以降低测试工作的劳动强度、提高测试效率、提高测试可靠性、加快测试问题复现与定位。自动化测试功能可生成激励信号、发送激励信号、判断反馈值、处理异常、生成测试报告等,能够自动执行,最大限度地减少人为因素导致的各种问题,提高测试准确性、可靠性,同时减轻测试人员的工作强度。
3.提高扩展性、降低成本
一套测试系统可经扩展应用于多个产品型号测试,不用为每个产品型号重复构建测试系统。通过测试系统的扩展功能,可以将测试系统应用到多个产品型号,从而降低成本。
4.奠定数字化、信息化的基础
应用测试系统后,各类测试数据、测试日志、执行过程、测试用例都会存储在计算机软件系统中,并能通过软件查询、分析、导出。通过测试系统可以安排测试计划,管理测试工作,查看测试工作进展、执行情况,管理测试过程、测试资源;通过软件系统对人员、账号、权限进行管理。这些功能实现了测试工作的数字化管理,应用了测试系统就完成了初步的测试信息化工作,拥有了数字化、信息化的相关价值。