武汉华中数控股份有限公司 孙 楠 邹 捷
数控软件自动化测试系统的研发
武汉华中数控股份有限公司 孙 楠 邹 捷
本文分析了数控软件传统手工测试的优缺点,介绍数控软件自动化测试系统的研发与设计,并简明扼要讲解数控软件自动化测试系统工作过程及原理。数控软件自动化测试系统现已应用在数控软件的单元测试、研发中测试、发布性测试中,并且数控软件测试系统也应用在可靠性实验中,未来将在智能工厂中广泛应用。数控软件自动化测试系统缩短测试周期,提高解决问题效率,增强用户对数控软件信任度。
传感器能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置。在机床试验中利用传感器这种检测装置,能感受到被测量的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
随着科学技术的发展,“工业4.0”时代来临,数控系统现已实现三化:信息化、智能化、网络化,由此可见数控软件在数控系统中扮演越来越重要的角色。数控软件的可靠性、稳定性、易用性直接决定了生产加工零件正确性及安全性,一旦数控软件的可靠、稳定性出现问题可能会导致严重的生产安全事故。因此数控软件版本发布前,必须进行充分、有效的可靠及稳定性测试。
现阶段国内数控软件基本由人工手动完成可靠及稳定性测试,需要测试人员长时间守候在测试设备或平台前执行各项操作。这给测试工作带来几处难点:测试工作量大,测试周期长,测试人员对于软件功能理解及故障问题描述出现不一致现象,并且当数控软件版本更新,人员会进行大量重复测试工作。对数控软件测试来说,即便投入大量人力物力,很多时候覆盖面依旧不够。
现有的成熟自动化测试软件大多为Windows环境下的软件,而且不能对数控软件进行测试,对于嵌入式自动化测试软件国内市场依旧空白,尤其缺乏针对数控装置上的数控软件自动化测试,这给数控软件测试工作带来很大困难。
数控软件自动化测试系统,应用于数控技术领域,依据“自主创新设计、智能转化、节约资源、可持续发展”理念进行设计与研发。数控软件自动化测试系统研发创新“一个核心”及“六化”。一个核心:指的是“自动化智能测试大数据平台”,自动化测试案例集中上传至“云”数据平台,“云”数据平台对案例进行归类划分,再下传至自动化测试系统,自动化测试系统对案例进行不间断测试,当案例出现问题时再传输到“云”数据平台中,同时相关测试人员可通过电脑或移动端APP程序观测到自动化测试结果,测试及开发人员准确快速分析问题出现原因并且及时修改数控系统软件。六化:“测试自动化、过程可视化、信息集成化、更新自主化、数据网络化、分析智能化”。自动化测试系统利用智能传感器技术、移动互联网、云计算技术,并建立基于移动终端对数控软件进行智能网络化监控。测试内容数据上传与下载都无需人为操作,同时自动化测试系统可自主智能完成对案例的测试,如图1所示。
图1 自动化测试系统应用领域及科研图
自动化测试系统可完成几个方面测试:测试用例库、界面模块、G代码功能模块、多个配置文件和多个配置模块。其中测试用例库、界面测试模块、G代码功能测试模块和被测试对象数控系统软件均存放在“云”数据平台,多台数控装置中的每台数控装置上均存放一个测试配置文件和一个测试配置模块。自动化测试系统工作过程如下:
(1) 在“云”数据平台端建立文件传输协议(FTP),并设置数控装置访问的用户名和密码,用于“云”数据平台与多台数控装置之间的文件的传输;
(2) 根据测试要求,制作界面测试用例或者G代码功能测试用例,并存放到测试用例库中;
(3)编写测试配置文件,设定此次测试类型,测试用例名;
(4)当自动化测式系统装置开机后,执行测试配置模块,从“云”数据平台中下载数控系统软件并加载到数控装置上,读取测试配置文件,从“云”数据平台下载界面测试模块或G代码功能测试模块,并执行;
(5)所有测试用例测试完成后,生成此次测试的结果;
(6)测试结果通过网络通信传输到“云”数据平台,测试人员可通过移动端APP程序或互联网主页查看自动化测试结果。分析测试数据,并且标注问题出现原因(见图2);
(7)测试人员分析及标注数据后,文体通过“云”数据平台传输至软件部门。软件开发人员对数控软件进行修改后,数控软件重新上传至“云”数据平台;
(8) 自动化测试系统重新对数控软件模块进行分析测试。
图2 移动端APP程序界面
自动化测试系统对数控软件中的界面模块、G代码功能模块、多个配置文件和多个配置模块等测试工作原理如下。
1、测试配置模块执行下述操作
(1)建立所在数控装置与“云”数据平台之间的网络连接。
(2)从“云”数据平台下载数控系统软件并加载到所在数控装置上。
(3)读取测试配置文件,当其中测试类型为界面测试时,执行界面测试模块步骤,当其中测试类型为G代码功能测试时,执行G代码功能测试模块步骤。
(4)从“云”数据平台下载界面测试模块并运行,生成测试结果文件。
(5)从“云”数据平台下载G代码测试模块并运行,生成测试结果文件(见图3)。
(6)从“云”数据平台下载功能模块并运行,生成测试结果文件。
图3 从“云”数据平台下载相应测试模块代码图
2、数控软件中G代码功能测试模块具体执行下述操作(见图4)
(1)从测试配置文件中获取测试用例名,根据测试用例名及其顺序,从测试用例库依次顺序执行G代码功能测试用例。
(2)将G代码功能测试脚本加载到自动化测试系统中,将自动化测试系统的加工模式切换为“自动”或“单段”模式,并向自动化测试系统发送运行指令,由自动化测试系统运行G代码功能测试脚本。
(3)接收自动化测试系统的处理结果,对照G代码数据校验文件,逐行比较X、Y、Z轴当前的机床实际坐标值与对应的理论坐标值是否相同,如果均相同,则测试成功,否则测试失败,并将测试结果写入测试结果文件。
(4)所有G代码功能测试用例测试完成后,统计本次测试的G代码功能测试用例个数、成功的G代码功能测试用例个数、失败的G代码功能测试用例个数、失败的G代码功能测试用例名称以及成功率,并写入测试结果文件。
(5)从“云”数据平台下载G代码功能测试模块并运行,生成测试结果文件。
图4 从数控软件中G代码功能模块组自动化测试工作原理图
3、数控软件中界面测试模块执行下述操作(见图5)
(1)从测试配置文件中获取测试用例名,根据测试用例名及其顺序,从测试用例库依次顺序读取界面测试用例。
(2)解析界面测试用例中的界面测试脚本,每解析一行,获取按键标识符和延迟时间,并将它们送至自动化测试系统,自动化测试系统根据不同按键标识符进行不同处理,每个按键标识符操作后停顿所设定的延迟时间,然后进入下一个键盘按键标识符的处理。
(3)接收自动化测试系统的处理结果,对照界面数据校验文件,逐行比较检查项对应参数的实际值和理论值是否相同,如果均相同,则测试成功,否则测试失败,并将测试结果写入测试结果文件。
(4)所有界面测试用例处理完成后,统计本次测试的界面测试用例个数、成功的界面测试用例个数、失败的界面测试用例个数、失败的界面测试用例名称以及成功率,全部写入测试结果文件。
图5 数控软件中界面功能模块自动化测试工作原理
数控软件自动化测试系统目前已经应用在数控软件的单元测试、研发中测试、发布性测试中,同时数控软件测试系统在长时间连续运行的可靠性实验环境中也得以应用,未来将应用到智能制造工厂中。
数控软件的单元测试、研发中测试、发布性测试中应用数控软件测试系统主要检测数控软件打包BTF文件后功能模块、G代码模块、配置文件的适配性,确保功能模块、G代码模块、配置文件的正确性,同时检测每个案例是否能正常通过测试。
数控系统可靠性实验中应用自动化测试系统,主要是测试人员通过移动端APP或网络主页监测多台数控软件测试系统的测试结果和同步更新多台数控软件测试系统的文件及测试案例;还可检测到多套数控系统长时间连续运行时多个配置文件和多个配置模块自动更新正确性与准确性。“云数据平台”与多台数控软件自动化测试系统文件实时传输,可确保测试结果及可靠性测试平台的驱动器、电机、数控系统硬件工作中出现的故障或问题第一时间被记录和传输给测试技术人员,测试技术人员可更加快速的分析出问题出现原因,便于开发人员解决问题。
自动化测试系统未来将在智能制造示范工厂中应用,主要检测G代码模块在实际生产加工中运行正确性,及功能模块被连续使用时稳定性。同时可监测到每台数控机床运行状态。保证智能工厂零件加工的安全性与可靠性(见图6~图8)。
图6 智能制造示范工厂
图7 自动化测试系统
图8 数控系统可靠性测试平台
数控软件测试系统,首先,填补数控软件自动化测试的空白,主要解决人工手动测试不全面、测试工作量大、测试结果不准确等问题;其次,使数控软件的回归测试更加方便,缩短回归测试周期,该系统可对数控软件各个功能、参数、编程代码模块进行回归测试,提高数控软件测试覆盖率;最后,每次测试的结果和执行内容的一致性是可以得到保障,从而可对测试内容和结果进行归纳总结,达到测试的可重复性,对测试人员后续的测试分析提供帮助,缩短解决问题的周期,提高了测试工作效率,充分利用资源,保证了软件质量,增强客户对数控软件的信任度。
但自动化测试系统并不能完全取代传统的手工测试,因为有很多测试的结果需要人脑进行分析与判断,自动化测试系统并无想象力,所以受软件开发者约束。然而自动化测试系统与人工手动测试可以相互弥补彼此的不足,两者有效的结合是保证测试质量的关键。□
本数控软件自动化测试系统设计已经申请了实用新型专利。专利号:201210524866.3
[1]郑慧,范忠诚,等.零基础学Visual C ++[M].北京:机械工业出版社,2008.
[2]William A. Shay 著,高穿善,等,译.数据通信与网络教程[M]. 北京:机械工业出版社,2005
[3]黄延,林跃. 软PLC技术研究及实现[J].计算机工程,2004,30(1):15-17
[4]陈维钧.运动控制系统[M].北京:清华大学出版社,2006