控制器自动测试系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制器自动测试系统V1.O
设计手册
一.项目背景
目前国内控制器的软件测试基本还处在人工测试阶段,软件测试过程中的各种数据往往靠测试人员手动记录,测试过程中出现的各种非正常状态不能被可靠地记录下来以分析控制器软件的缺陷。这种人工软件测试的方式限制了控制器软件测试的效率以及测试的效果。
目前国内外公认的、行之有效的、具有广泛应用前景的方案就是在软件仿真测试平台上对软件进行自动测试。
控制器自动测试系统是面向控制器软件测试的计算机系统,测试人员可以根据被测软件的需求,通过对系统的各种资源进行配置,组织被测软件的输入,来驱动被测软件运行,同时接收被测软件的输出结果,从而对控制器软件进行自动的、实时的、非侵入性的闭环测试。能够大大提高控制器软件的测试质量和测试效率。
二.本软件开发的意义
目前控制器用得越来越广泛,从玩具车、收音机、空调、冰箱、洗衣机、录像机等家用产品到电子压力计,数控机床,商检自动测试仪等工业产品,到处都有微控制器的身影。为了在市场竞争中取得优势,各种厂商不断推出越来越多的产品系列,而且功能也越来越复杂、越来越完善,这样一来,使得各种控制器的硬件、软件也越来越复杂。缺乏可靠性的控制器软件将给产品带来难以预料的后果,家用产品可能只是影响产品的质量,工业产品可能会导致难以估计的经济损失甚至是安全事故。可见,控制器软件的可靠性是非常重要的。以往软件测试过程中的各种参数(如电机的转角、各种时间参数等)必须靠
测试人员手动记录,测试过程中出现的各种非正常状态也不能被可靠地记录下来以分析控制器软件的缺陷。而且,这种人工软件测试的测试效果与测试人员的工作经验和素质有很大关系,当测试人员调离该工作岗位后,后续人员很难在短时间内接手前期测试工作,需要有较长的培训期和学习期,而且也无法完全掌握原测试人员在长期工作过程中积累的经验,使知识积累出现断层。这种人工软件测试的方式限制了控制器软件测试的效率以及测试的效果。建立一套软件测试平台对控制器进行自动测试,可以通过自动测试系统一次完成控制器所需要测试的全部内容,取消了原有的人工测试,可以保证不会丢项和错项,并且能够减少人工缩短工时,大幅度降低生产成本。
三.技术方案概述
本项目选择建立一套软件仿真测试平台来测试控制器软件。主要验证软件功能是否符合功能规格书的要求,进行弱电部分电路的输入、输出实现以及连续记录。
控制器软件计算机自动测试平台由三个部分组成:运行平台,信号仿真平台和主控计算机平台,其构成关系如图1所示。
图1 软件测试平台构成示意图
其中,主控计算机平台主要进行测试用例的生成、测试运行调度管理、数据分配工作及测试后的评估工作并给出测试报告。运行平台就是系统的硬件及被测软件。信号仿真平台模拟系统外部运行环境, 它向系
统提供激励信号, 同时接收反馈信号。测试系统选用工控机作为主控计算机,可以保证测试系统的可靠性要求。选用多功能数据采集卡来实现信号仿真平台,控制器所需要的输入信号由测试系统软件产生并通过输出板卡(模拟/数字量)提供。控制器的输出信号通过采集卡(模拟/数字量)进入测试系统,被测试系统的软件接收并处理。为了提高系统通用性、降低测试费用和维护费用采样虚拟仪器技术开发本测试系统。
四.软件介绍
虚拟仪器技术是测量技术与计算机技术结合的产物,将虚拟仪器技术应用到软件测试中将能够利用其灵活的特点解决不少软件测试的难题,有着重要的意义。
本软件采用宿主机/目标机(Host/Target)的开发模式。宿主机是执行编译、链接、定址过程的计算机;目标机是执行运行软件的硬件平台。首先必须把应用程序转换成可以在目标机上运行的二进制代码,这一过程包含三个步骤:编译、链接、定址,编辑过程,由交叉编译其实现。所谓交叉编译器就是运行在一个计算机平台上并为另一个平台产生代码的编译器。编译过程产生的所有目标文件被链接在一起生成一个目标文件,成为链接。定址过程会把物理存储器地址指定给目标文件的每个相对偏移处,该过程生成的文件就是可以在平台上直行的二进制文件。
图2宿主机/目标机(Host/Target)的开发模式
调试采用交叉调试器,通常由运行在宿主机的目标代理和运行在目标环境的调试代理两部分组成,它们之间由TCP/IP、串口或其他方式相互通信(如图2)。交叉调试有任务级、源码级和汇编级的调试,调试时需将宿主机上的应用程序和操作系统内核下载到目标机的RAM 中或直接烧录到目标机的ROM中。调试代理是调试器对目标机上运行的应用程序进行控制的代理(Debugger Agent),事先被固化在目标机的Flash、ROM中,在目标机上电后自动启动,等待宿主机中的调试器发来命令,配合调试器完成应用程序的下载、运行和基本的调试功能,并且将调试信息返回给宿主机。
测试方法归类:
经过多年的积累,控制器测试的方法和技术非常多,可以从不同的角
度加以分类:从是否需要执行被测的角度,可分为静态测试和动态测试;从测试是否需要针对软件的内部逻辑结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;而按照测试所处的阶段不同,测试可以被分为测试单元、集成测试、系统测试、验收测试、回归测试和安装测试;按照测试对象不同,测试可以被分为控制流测试、数据流测试等。这些软件测试的方法和技术都可以应用于软件测试,但同时由于软件自身的一些特性又需要我们研究针对每种特性的软件
测试方法。
本软件具有以下的特点:
1)开发与维护的费用低,系统组建时间短。当需要增加新的测量功能,只需要增加软件模块或通用的硬件模块,缩短了系统的更新时间,而且有利于系统的扩展。应用软件不像传统仪器的硬件那样存在元器件老化的问题,大大节省了维护的费用,延长设备的使用寿命。
2) 测量更准确。软件在不同的PC 机上具有相同的运行效果,在软件运行上这方面不存在个体的差异。
3) 测量更方便。软件只对信号进行一次采样,多个软件模块对同一组数据进行不同的处理就能实现多个参数的同时测量。
4) 具有强大的数据处理功能。
五.设计目标
软件设计目标是可以通过控制器自动测试系统一次完成控制器
所需要测试的全部内容,取消原有的人工测试,可以保证不会丢项和错项,并且能够减少人工缩短工时,大幅度降低生产成本。因为市场