★北京广利核系统工程有限公司高庆怡,黄太新,张海滨
关键词:自动化测试;算法编译器;核电DCS;国产;IEC61131-3
核电DCS算法编译器的核心任务是担负着核电DCS控制算法的编译工作,其编译正确性对核电站仪控系统的安全稳定运行具有重要的意义。当前基于IEC61131-3标准的国产核电DCS算法编译器研发正处于快速迭代期,频繁的版本更新与全维度测试需求导致大量重复性操作的产生,严重制约测试效率,造成人力资源与时间成本的双重负担[1]。
目前,针对国产核电DCS算法编译器的测试验证方式主要依赖人工手动开展,包括逐一组态测试工程、点击相关功能按键、观察执行过程、详细记录测试结果以及主观判断被测程序是否存在缺陷等步骤[7]。受主观因素影响,测试人员在面对测试用例数量巨大、测试路径复杂和组合测试等情况时,存在忽略掉细微的错误的可能性,难以保证软件质量达到最理想状态[7]。同时国产核电DCS算法编译器基于IEC61131-3标准实现,需有一定标准知识储备,对测试人员技术要求高,新成员难以快速投入测试,导致整体资源利用率不高。
为解决上述问题,本文提出了基于IEC61131-3标准的国产核电DCS算法编译器自动化测试方法。该方法突破了传统人工分段式执行模式,创新性构建了模块化自动测试框架,实现了全链路自动执行,有效提高了测试效率,极大地减少了人工操作节点。同时,其模块化设计降低了自动测试框架脚本维护人员的专业技能要求。
1 国产核电DCS算法编译器自动化测试方法
基于QT研制的IEC61131-3标准算法编译器专用自动执行工具(以下简称:定制工具),可依据固定模式的驱动脚本完成测试工程的自动编译、部署、执行、结果比对及测试结果可视化呈现。鉴于该工具在重复性测试任务中的显著优势及其与国产核电DCS算法编译器的深度适配特性,本方法引入其作为自动测试执行的重要组成部分。
同时,现有研究表明Python在自动化测试领域展现出强大生命力,其应用覆盖测试框架开发、工具库构建及电气电子控制系统等专业测试场景[3]。本研究利用Python语言在自动化测试中的强大优势,创新性构建了模块化自动测试框架,重点突破了驱动脚本自动生成与定制工具自动执行环节,最大限度降低了人工干预。
1.1 基本原理
本方法通过使用Python编写的驱动脚本自动生成模块,读取测试工程路径和驱动模板文件,进行数据提取、解析、分类筛选,自动生成与测试工程匹配的定制工具驱动脚本;通过使用Python语言编写的定制工具自动驱动模块,启动定制工具并自动读取驱动脚本、配置参数和运行,开展测试执行,收集测试数据并输出测试结果和相关需追踪的数据。具体流程如图1所示,以下做详细阐述。
图1国产核电DCS算法编译器自动化测试流程示意图
1.2 模块化设计
1.2.1 驱动脚本自动生成模块设计
本模块采用三步式数据流处理方式,包含测试工程信息采集、数据解析和定制工具驱动脚本生成。具体流程如图2所示。
(1)工程信息与特征采集。“遍历路径函数”采用递归式文件遍历算法对输入的测试工程保存路径进行全量扫描,获取有效工程实例的绝对路径集合。同步加载输入的驱动模板文件,通过“信息分解函数”提取出驱动模板信息。这些信息通过内存型数据结构(列表/字典)建立临时数据池,存储预处理后的路径集合与模板参数集合,自动传递至后续结构化数据解析与预处理流程。
(2)结构化数据解析与预处理。“解析与预处理函数”依据存储于内存的绝对路径识别测试工程数据存储文件并进行解析,读取测试工程的配置文件(如JSON/XML格式的界面元素映射表)及结构化数据文件(如OpenXML语言导出的数据元素树)。采用ConfigParser处理工程配置数据,提取工程名称、依赖项等关键参数;采用XML.etree处理OpenXML语言导出的数据元素树,提取验证数据等。将数据清洗后的测试工程信息与提取的驱动模板参数整合,获得结构化的驱动脚本数据集,存储到内存或日志中自动传递至定制工具驱动脚本生成环节。
(3)定制工具驱动脚本生成。将解析所得的驱动脚本数据集传入“驱动脚本生成函数”,利用Python语言的文件I/O操作、正则表达式匹配机制等,依据模板自动生成定制工具驱动脚本并保存到本地路径,所得驱动脚本与测试工程为1对1的映射关系。
本模块的特点在于降低了对测试人员的技术要求,尤其适用于高频迭代的敏捷开发场景。整体采用三步式数据流转,各函数实现功能单一且接口形式明确。对于测试人员(用户)而言,仅需指定工程根目录和模板文件两参数,微调几行简单代码,即可实现零人工干预的定制工具驱动脚本生成。
图2 测试脚本自动化生成设计流程示意图
1.2.2 定制工具自动驱动模块设计
本模块构建三层数据流转,包含进程控制、数据配置运行、异常监视,具体流程如图3所示。
(1)进程控制。以定制工具安装路径为初始化参数,通过“自启动函数”进程控制模块实现进程的程序化控制,用于启动工具。
(2)数据配置与运行。利用“工具配置与运行函数”,通过向定制工具动态注入预先定义测试环境参数、脚本路径等运行配置信息,实现全链路自动化运行,彻底替代人工交互模式。
(3)实时监控。定制工具开始运行后,会依据驱动脚本依次针对测试工程进行自动编译、下装以及结果验证的操作,并将测试结果进行可视化展示。在定制工具执行过程中,利用“异常保护函数”实时捕获标准输出流与错误日志,处理工具异常。
本模块的特点在于创新地构建了Python驱动“配置—执行—监控—恢复”的闭环管理,在驱动脚本编制完成后,自动驱动定制工具启动、参数注入、运行、实时监控异常并处理,实现24小时自动化执行能力,提高了资源利用率,能有效避免人工操作带来的误差。
图3执行流程自动化驱动设计流程示意图
2 实验分析
本文结合某核电站项目国产DCS算法组态编译器测试,进行传统测试方法和本文自动化方法对照实验。
使用传统方法开展测试,共耗时60人日完成,覆盖120个测试工程,平均测试执行效率为2个天,整体资源利用率50%左右。引入本方法后,测试耗时约为30人日,整体测试时间缩短约50%,覆盖120个测试工程,平均执行效率为4个天,其中驱动脚本编写和调试耗时5人日,定制工具测试执行耗时10人日。且后期因工程数据变动导致的修改时间预计相比传统方法将减少75%,显著提升了测试团队的响应效率与脚本质量稳定性,可见本方法是可行的。
从实验效果来看,本文方法与传统测试方法在需求覆盖程度和缺陷检出能力上持相当水平且满足核电DCS应用要求。但本文方法耗时更少,资源利用率、结果稳定可靠程度和维护简便性上更高,如表1所示。我们分析本文方法与传统测试方法在需求覆盖程度和缺陷检出能力上持相当水平的原因发现,本文方法集中于测试执行层面的效率提高,在实验过程中作为输入的测试用例工程尚处于人工手动创建状态,导致本文方法在上述两项指标的评价中与传统方法差别不大,这也表明本方法还存在一定可优化空间。
表1 数据对比
3 结论
本文聚焦于国产核电DCS算法编译器自动化测试方法的研究,其核心创新在于将原有分段式人工测试执行流程整合为一键式计算机自动实现,通过减少人工操作节点显著提升测试效率,降低了人为干预引发的操作风险。已有应用效果表明了本方法的可行性,本方法能够极大地提高执行效率和资源利用率,模块化框架设计逻辑清晰,对人员技术要求不高,后期维护方便。
同时,本方法实验过程中也识别到可优化空间。测试工程作为本方法输入源头,是由人工设计,如果人工设计使得长时间执行揭错测试程序[2],即使执行效率再高同样也会导致编译器的测试效果不好。许多学者对基于IEC61131-3的测试用例自动化生成进行了深入研究,并取得了大量的研究成果[4-6]。故在下一阶段中,研究人员将进一步尝试将自动化手段和测试用例设计相结合,进一步扩大国产核电DCS算法编译器的测试覆盖率和深度,进一步提高自动化测试实现程度和自适应能力。
作者简介:
高庆怡(2000-),女,北京人,助理工程师,学士,现就职于北京广利核系统工程有限公司,主要从事核电仪控系统软件测试的相关工作。
参考文献:
[1]郑清清.核电DCS组态软件自动化测试方法研究[J].自动化博览,2021,38(03):56-60.
[2]吴江昶.基于编译器自身覆盖的编译器测试技术研究[D].武汉:华中科技大学,2021.
[3]聂菊荣.基于Python的自动化测试软件设计与实现[J].信息记录材料,2025,26(02):90-92+116.
[4]陈英豪.面向IEC61131-3ST语言测试用例自动化生成方法的研究与实现[D].上海:华东师范大学,2024.
[5]郝丽.面向IEC61131-3ST语言的自动化测试研究与实现[D].上海:华东师范大学,2019.
[6]杨静.编译器的语法分析测试用例生成方法研究[D].武汉:华中科技大学,2013.
[7]谷伟豪,于韶飞,周广昌,等.人工自动技术在软件测试领域的应用[J].信息技术与标准化,2024,(11):92-96.
摘自《自动化博览》2025年12月刊







案例频道