控制器自动测试系统V1.O设计手册一.项目背景目前国内控制器的软件测试基本还处在人工测试阶段,软件测试过程中的各种数据往往靠测试人员手动记录,测试过程中出现的各种非正常状态不能被可靠地记录下来以分析控制器软件的缺陷。
这种人工软件测试的方式限制了控制器软件测试的效率以及测试的效果。
目前国内外公认的、行之有效的、具有广泛应用前景的方案就是在软件仿真测试平台上对软件进行自动测试。
控制器自动测试系统是面向控制器软件测试的计算机系统,测试人员可以根据被测软件的需求,通过对系统的各种资源进行配置,组织被测软件的输入,来驱动被测软件运行,同时接收被测软件的输出结果,从而对控制器软件进行自动的、实时的、非侵入性的闭环测试。
能够大大提高控制器软件的测试质量和测试效率。
二.本软件开发的意义目前控制器用得越来越广泛,从玩具车、收音机、空调、冰箱、洗衣机、录像机等家用产品到电子压力计,数控机床,商检自动测试仪等工业产品,到处都有微控制器的身影。
为了在市场竞争中取得优势,各种厂商不断推出越来越多的产品系列,而且功能也越来越复杂、越来越完善,这样一来,使得各种控制器的硬件、软件也越来越复杂。
缺乏可靠性的控制器软件将给产品带来难以预料的后果,家用产品可能只是影响产品的质量,工业产品可能会导致难以估计的经济损失甚至是安全事故。
可见,控制器软件的可靠性是非常重要的。
以往软件测试过程中的各种参数(如电机的转角、各种时间参数等)必须靠测试人员手动记录,测试过程中出现的各种非正常状态也不能被可靠地记录下来以分析控制器软件的缺陷。
而且,这种人工软件测试的测试效果与测试人员的工作经验和素质有很大关系,当测试人员调离该工作岗位后,后续人员很难在短时间内接手前期测试工作,需要有较长的培训期和学习期,而且也无法完全掌握原测试人员在长期工作过程中积累的经验,使知识积累出现断层。
这种人工软件测试的方式限制了控制器软件测试的效率以及测试的效果。
建立一套软件测试平台对控制器进行自动测试,可以通过自动测试系统一次完成控制器所需要测试的全部内容,取消了原有的人工测试,可以保证不会丢项和错项,并且能够减少人工缩短工时,大幅度降低生产成本。
三.技术方案概述本项目选择建立一套软件仿真测试平台来测试控制器软件。
主要验证软件功能是否符合功能规格书的要求,进行弱电部分电路的输入、输出实现以及连续记录。
控制器软件计算机自动测试平台由三个部分组成:运行平台,信号仿真平台和主控计算机平台,其构成关系如图1所示。
图1 软件测试平台构成示意图其中,主控计算机平台主要进行测试用例的生成、测试运行调度管理、数据分配工作及测试后的评估工作并给出测试报告。
运行平台就是系统的硬件及被测软件。
信号仿真平台模拟系统外部运行环境, 它向系统提供激励信号, 同时接收反馈信号。
测试系统选用工控机作为主控计算机,可以保证测试系统的可靠性要求。
选用多功能数据采集卡来实现信号仿真平台,控制器所需要的输入信号由测试系统软件产生并通过输出板卡(模拟/数字量)提供。
控制器的输出信号通过采集卡(模拟/数字量)进入测试系统,被测试系统的软件接收并处理。
为了提高系统通用性、降低测试费用和维护费用采样虚拟仪器技术开发本测试系统。
四.软件介绍虚拟仪器技术是测量技术与计算机技术结合的产物,将虚拟仪器技术应用到软件测试中将能够利用其灵活的特点解决不少软件测试的难题,有着重要的意义。
本软件采用宿主机/目标机(Host/Target)的开发模式。
宿主机是执行编译、链接、定址过程的计算机;目标机是执行运行软件的硬件平台。
首先必须把应用程序转换成可以在目标机上运行的二进制代码,这一过程包含三个步骤:编译、链接、定址,编辑过程,由交叉编译其实现。
所谓交叉编译器就是运行在一个计算机平台上并为另一个平台产生代码的编译器。
编译过程产生的所有目标文件被链接在一起生成一个目标文件,成为链接。
定址过程会把物理存储器地址指定给目标文件的每个相对偏移处,该过程生成的文件就是可以在平台上直行的二进制文件。
图2宿主机/目标机(Host/Target)的开发模式调试采用交叉调试器,通常由运行在宿主机的目标代理和运行在目标环境的调试代理两部分组成,它们之间由TCP/IP、串口或其他方式相互通信(如图2)。
交叉调试有任务级、源码级和汇编级的调试,调试时需将宿主机上的应用程序和操作系统内核下载到目标机的RAM 中或直接烧录到目标机的ROM中。
调试代理是调试器对目标机上运行的应用程序进行控制的代理(Debugger Agent),事先被固化在目标机的Flash、ROM中,在目标机上电后自动启动,等待宿主机中的调试器发来命令,配合调试器完成应用程序的下载、运行和基本的调试功能,并且将调试信息返回给宿主机。
测试方法归类:经过多年的积累,控制器测试的方法和技术非常多,可以从不同的角度加以分类:从是否需要执行被测的角度,可分为静态测试和动态测试;从测试是否需要针对软件的内部逻辑结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;而按照测试所处的阶段不同,测试可以被分为测试单元、集成测试、系统测试、验收测试、回归测试和安装测试;按照测试对象不同,测试可以被分为控制流测试、数据流测试等。
这些软件测试的方法和技术都可以应用于软件测试,但同时由于软件自身的一些特性又需要我们研究针对每种特性的软件测试方法。
本软件具有以下的特点:1)开发与维护的费用低,系统组建时间短。
当需要增加新的测量功能,只需要增加软件模块或通用的硬件模块,缩短了系统的更新时间,而且有利于系统的扩展。
应用软件不像传统仪器的硬件那样存在元器件老化的问题,大大节省了维护的费用,延长设备的使用寿命。
2) 测量更准确。
软件在不同的PC 机上具有相同的运行效果,在软件运行上这方面不存在个体的差异。
3) 测量更方便。
软件只对信号进行一次采样,多个软件模块对同一组数据进行不同的处理就能实现多个参数的同时测量。
4) 具有强大的数据处理功能。
五.设计目标软件设计目标是可以通过控制器自动测试系统一次完成控制器所需要测试的全部内容,取消原有的人工测试,可以保证不会丢项和错项,并且能够减少人工缩短工时,大幅度降低生产成本。
因为市场竞争激烈,经常要添减产品的功能,采用的控制器的类型常常发生变化,因此软件的兼容性要好。
考虑到现在控制器种类繁多,开发的方法的差异性也很大,因此测试系统以功能测试为主。
因为目前国内厂商对软件测试的重视度普遍不高,参与测试工作的人员的素质参差不齐,所以测试系统要求易上手,使用和维护的成本和难易度都要求尽量低。
对软件进行的测试按获取测试信息的方法分为纯硬件、纯软件、软硬件结合三种。
纯硬件测试方式,例如使用仿真器、逻辑分析仪、开发系统或人工测试等,测试成本低,但是测试效率低,测试难以实现自动化。
纯软件测试,成本高,支持的控制器型号有限。
一旦当前版本的测试工具不支持用户所使用的控制器,普通的公司也难以自行扩展这些纯软件测试工具以满足要求。
纯软件测试对测试者的素质要求也比较高。
软硬件结合的测试方式,综合以上两种测试方法的优点。
目前分布式仿真测试环境(DSTE)以其功能强大,通用性好而逐渐成为仿真测试领域研究的热点。
它一般由一个控制节点和多个仿真/激励节点共同组成,各个节点相互配合,共同完成以下几项工作:a、生成测试用例;b、模拟软件工作的部分真实环境(交联系统、接口、传感器等),并且这种模拟可以灵活配置;c、通过模拟的环境对被测软件施加相应的激励,驱动被测软件运行;d、通过模拟环境接收被测软件的运行结果;e、比较判断测试结果。
六.软件结构原理根据我国的现状,选用Windows 作为本软件的操作系统平台便于测试者学习和使用。
因为Windows 并不是一个实时操作系统,因此不可能对测试数据进行实时采样分析,分析过程只能放到测试结束后。
对于低频系统,系统可以设计测试脚本,然后测试时根据被测控制器的输出信号实时生成测试用例;同时记录测试结果,以供测试结束后分析。
对于高频系统,系统将不可能实时生成测试用例,只能将预先设计的波形灌入被测控制器的输入端。
家电控制器的控制信号属于低频信号,因此注意满足要求,测试过程如图3。
图3测试模块与测试过程控制器自动测试系统由三个部分组成:运行平台,信号仿真平台和主控计算机平台。
其中主控计算机平台主要进行测试用例的生成、测试运行调度管理、数据分配工作及测试后的评估工作。
运行平台就是系统的硬件及被测软件。
信号仿真平台模拟系统外部运行环境,它向系统提供激励信号,同时接收反馈信号,本系统使用多功能PCI数据采集卡实现。
主控平台通过对运行结果的分析给出测试报告。
测试系统的结构如图4所示。
图4测试系统的结构图七.软件设计本软件包括的功能模块有:用户管理、自动测试、数据库管理回放、数据分析与打印。
本测试系统的基本任务是完成控制器的测试。
分成多个模块来进行设计。
测试程序启动后可以进行测试也可以将测试结果进行回放,在进行软件测试时,可以使用已经建立好的测试用例(基本测试用例或组合测试用例,保存在数据库中),也可以直接进行手动测试J测试结果存储到数据库中同时可以进行测试结果的显示,并进行一些简单判断和基本参数的计算。
进行测试任务时,首先需要有测试用例,由于控制器的型号关系到历史数据库的处理及vo口的分配问题,当确定控制器的型号及I/O 定义后,程序将给出相应的控制面板和程序界而。
用户可以从数据库中调用已有的测试用例,或创建新的测试用例,或在测试过程中调整激励信号。
测试用例进行合法性判定后登记入数据库中,并进行初始化工作(包括数据库,及板卡)。
测试用例确定后程序进入测试。
控制器的信号采样分为高速采样(长时间),和低速采样(中间或有瞬间的高速采样)两种。
为了保证采样数据的完枯,高速采样时系统将把全部资源提供给采样和数据保存上,在这个过程的同时将不提供采样数据显示。
而低速采样则可以边采样边查看采样波形,并可在测试进程中改变控制器的输入,可保证测试的实时性。
程序将模拟一个控制面板(面板的规格由设定的控制器信号而定),负责实时改变控制器的输入。
我们将I/O口的数据分为模拟量,开关量和数字量(串行编码或脉冲序列)。
对控制器的输入信号,各个通道的模拟量同步提供激励信号,各个通道的开关量也将同步的转换电平。
而采样信号则按各自通道信号的特点以一定的频率采样,一般情况下将同步采样。
为了节约空间,对不同的信号采用不同的数据库的组织。
如模拟信号由于各通道的采样频率一定,记录起止时间后,只用再记录各个采样点的值;而对于开关量只记录开始的电平值和电平变化的时间。
图5 符号说明图6 程序流程八.数据的管理数据库是计算机数据处理不可或缺的组成部分,在组织大最数据时,使用数据库技术对数据进行管理会非常高效。