2.1 通用化
很多通用测试系统针对一个特定的领域,将这个领域内被测对象的测试需求实现为通用化的功能,加入配置文件、运行参数、扩展接口、插件等,针对具体被测对象时,只要做少量的配置修改,就能构建一套针对性的测试系统。通用是针对一个领域的通用,而且针对不同的被测对象,也要做一些修改,包括修改一些配置文件、配置项、控制参数,修改少量代码。
通用测试系统针对一类产品的通用。
2.1.1 面向的组织
通常,两种组织会有自己的通用测试系统。
第一种是对外承接研制测试系统的企业,它会实现一套通用测试系统产品,对外承接研制测试系统,然后用自己的通用化产品来实现一套具体的测试系统,交付给客户。在这种情况下,还是要有具体针对性,针对具体行业、针对具体被测对象,没有能支持所有测试的绝对通用化。
第二种是研制供内部自己使用的测试系统的企业。很多工程研制企业根据自己产品的特点,为自己研制一套通用测试系统,然后用在自己的各类型号产品中,最大限度地复用、快速搭建、降低成本。企业为自己研制测试系统,是最合适、最能满足自己需求的方式,企业最熟悉自己产品的特点及如何对它测试,在需要改进时也可以很方便地进行修改。
通用测试系统的益处如下。
(1)能快速搭建一套满足测试需求的测试系统。
(2)复用已有的测试系统可以大大降低成本。
(3)复用成熟的模块可以大大提升测试系统可靠性。
其缺点也是显而易见的,即实现一套通用测试系统会非常复杂。
2.1.2 实现通用化的方法
实现通用化主要有以下两种方法。
(1)加入配置文件、运行参数,软件系统根据配置文件中的运行参数来执行功能,即配置化。简单的有总线通信地址、波特率等,把这几个定义到配置文件中,软件启动后读取配置文件中的总线地址、波特率等来通信。当总线地址等信息变化时,就可以修改这个配置文件,软件启动后就可以用新的地址来通信。有些复杂的配置文件还可以把整个数据包格式也作为配置文件,根据配置文件解析数据,软件界面也由配置文件生成等。配置化也增加了软件的复杂度,复杂度包括增加了用户的使用复杂度、增加了研制的复杂度、增加了排查错误的复杂度。因此配置化需要进行权衡,根据情况进行权衡,对于通用化是有意义的。如果不需要通用化,则少用配置化,否则会增加成本。
(2)加入扩展机制、开发接口、插件等,用户能够在已有基础上再开发功能,这是一种基于框架软件技术实现的通用化机制。此时的通用测试系统更多是一个软件平台,能够加入各种插件,用插件实现功能,编写少量代码满足需求。基于框架软件技术,在软件的基础架构中,采用B/S(浏览器/服务器)或者C/S(客户端/服务器)都能够实现扩展机制、插件、开发接口。用B/S或C/S实现的复杂度可能会有差别,视具体情况而定。
1.硬件适配
对于与被测试对象交互的硬件模块,可以选择使用各种数据采集卡、总线通信卡、商用硬件,选择各种成熟的硬件模块。在软件中以插件形式,适配各种硬件模块;在通用测试系统中,硬件模块也可以根据需求灵活选择,不能完全固化硬件模块、硬件平台。
2.总线仿真测试平台
本书第3部分“工程实践”中介绍的总线仿真测试平台,就是这样一个相对通用化的测试系统框架,可为工程研制领域中各种具有外总线的产品构建专用测试系统。