APP下载

一种配电主站系统集成测试架构及方法

2020-10-27陈明恩于丽丹

东北电力技术 2020年8期
关键词:主站测试用例用例

陈明恩,战 峰,于丽丹,郭 飞

(国电南京自动化股份有限公司,江苏 南京 211100)

配电主站系统用于配电系统运行的监视和控制,作为配电调度自动化系统核心,是整个配电系统生产指挥协调中心。其软件模块主要包括SCADA子系统、应用计算子系统、系统维护子系统、Web发布子系统、调度员培训子系统、系统网络管理子系统,同时为其他高级应用如能量管理系统EMS、ERP等提供数据交换。

主站系统结构采用分布式、分层设计原则,包括系统软件和应用软件。系统软件包括操作系统,数据库软件、开发工具软件,统一平台模块,集成测试工具软件等;应用软件包括数据采集与监控、电网安全分析、电网经济分析及优化和系统互联模块等。

根据主站产品软件开发过程中的需求分析、系统设计和具体编程的不同阶段,对SCADA主站系统测试内容应包括单元测试、集成测试、系统测试和验收测试。测试经过单元质量度量和评测、软件运行单元级集成测试和软件系统级集成测试3个阶段[1-2]。

单元测试的目的是检验软件模块的设计开发情况,主要由编程人员和测试人员通过开发测试环境进行测试。可由专业测试工具parasoft公司c++Test等专业软件来完成;单元测试不在本文描述范围。

集成测试的目的是检验各子部件软件模块的集成情况,重点测试子部件的接口功能,对使用子部件的测试环境进行测试。

系统测试和验收测试则主要测试系统目标和支持验收过程,使用系统及实际运行测试环境。主站系统的集成测试主要考察系统的整体性能指标[3-4]。包括主站系统的性能指标测试、雪崩测试、稳定性测试、可靠性测试、安全性测试和可维护性测试[5-7]。

单元测试软件工具已经专业化、通用化,但集成测试并无通用统一的测试方法。集成测试对于各类软件产品,需要定制化实现集成测试流程。目前软件集成测试技术研究热点较多集中在软件集成测试序列选择和优化,面向行为编程中的集成测试策略、集成测试自动化等专题。在软件集成测试平台方面,主要侧重于构建专用系统的测试平台;对于建设通用集成测试平台面临测试对象外部接口动态匹配问题,关注相对较少[8-11]。

1 集成测试方案设计与功能

本文主要关注自动化集成测试的技术方案。主站系统软件模块单元数量众多,较为庞大和复杂,代码量从数十万行到数百万行,目前还主要依赖开发人员的单元测试,测试人员白盒和黑盒等传统测试技术方法。现有集成或系统测试手段方法单一[12-13],自动化测试程度低下,手工工作量大,重复性劳动多,日复一日。强烈需要自动化测试工具,从研发、测试、现场开局与版本验证模拟与维护阶段全部参与,以减少测试工作量。

本文设计易于扩展、简洁高效、尽量测试充分而又尽可能通用平台的方案,以主站系统为基础,经过多种测试工具软件与一系列测试方法组合,形成自动化集成测试设计架构,成为主站系统软件开发和维护的重要组成部分。可以快速验证各模块功能,加快开发进度,及时排除错误[14]。

主站系统一般包括商业数据库配置、实时数据库(RealtimeDatabase/RDB)、历史数据展示、历史数据转储、告警显示、SCADA规则、画面组态工具、画面实时显示、前置规约、数据总线等核心功能模块,以及其他报表查询与展示、Web或者移动终端查询与展示、五防功能、负荷预测、曲线查询等应用功能。

图1描述了主站系统基础软件功能单元和一些核心功能模块;集成测试模块在该系统中的框架位置和数据交换接口。集成测试与主站系统的数据交互,主要通过原有的实时库数据交互和总线数据交互方式。这2种形式为主站系统原有很多功能软件模块数据交互所采用。集成测试借此采用接口函数,无需另外设计数据交互途径,这样就快速实现配电调度主站集成测试架构原理。

第一种实时库插件交互方式。以插件DLL接口函数交互,主站系统中实时库 (RDB) 模块提供统一访问接口,所述接口函数采用共享内存来信息交换,采用插件DLL代码形式,为实时显示scheonline,智能信息查询wisdomhiq,告警alarm等众多与实时库交互模块所采用。

日粮蛋白质水平对蛋鸡育成期料重比有极显著影响(P<0.01)。P4组(CP 15.7%)的料重比最低(4.483),且极显著低于其他各组(P<0.01),P1(CP 14.2%)组、P2(CP 14.7%)组和 P3(CP 15.2%)组之间无显著差异(P>0.05)。整个试验周期中各组之间的死淘率和胫长并无显著差异(P>0.05)。

第二种总线数据交互方式。总线插件DLL接口函数交互,主站系统软件中,通常都设计有总线软件单元,实现各模块的TCP/IP数据通信,总线数据报文与格式,系统软件按照行为模式约定而成。

图2描述主站集成测试功能模块和方法流程。包括测试用例生成器、测试用例生成文档、测试用例解释器、测试行为发生器、终端数据模拟发生器和测试日志分析器。自动化测试过程包括测试用例的测试条件、测试工具、测试场景、测试步骤和测试结果。

测试用例生成器用于在界面软件中选择,添加测试条目,自动生成符合一定格式测试用例文档。

测试用例文档为测试用例条目集合。由用例生成器自动生成,特殊情况下手动编辑。

测试用例解释器读入测试用例文档,分析测试用例文档,记录用例文档测试的全部测试条目集合,将测试用例文档存入到内存中,把测试用例文档内容拆分为测试用例条目,逐条读入,检查测试参数是否合法有效,参数是否完备(每一个测试用例条目不相同,参数也各不相同,检查参数是否合法有效,参数是否完备)。

测试行为发生器读入测试用例解释器逐条读入的测试用例条目,逐条顺序按一定时间间隔执行;如果测试行为发生器存在相对应测试用例条目的测试行为相匹配,则测试用例合法(测试行为指测试执行过程函数,过程函数在测试过程中修改实时库相应数据或者发送数据);如果没有与测试用例条目相匹配的测试行为,丢弃该条测试用例条目。测试行为发生器根据主站调度系统可整理及归纳测试行为,不断添加与丰富。

测试行为发生器根据测试用例文档预先设定参数,测试用例文档中某一测试条目可以执行一次,也可以执行数次,测试用例文档的每一条测试用例条目全部执行完,本轮测试完毕。

测试行为发生器数据交互包括两种方式,第一种实时库统一访问接口函数。测试行为发生器集成该实时库统一访问接口函数,调用该DLL接口来访问实时库属性数据(实时库属性数据指实时库object对象的属性数据,不同测试用例,实时库object对象的attribute属性不同,例如数值、主备切换、工作结果状态、动作行为、同步状态),通过触发RDB实时库中相应object对象的attribute属性改变,改变数字量、模拟量,主备机切换的状态量变化,实现主站系统的各软件模块变位或者变化以及告警事项产生,实现事件变化或者告警,同时,主站系统的变位或者变化存入历史数据库,形成历史曲线或者报表系统,进而触发主站系统功能的变化与验证。

终端数据模拟发生器包括终端数据配置文件、通信规约、设备通信链路管理和统计分析模块;配置文件是虚拟设备配置表,包括TCP的Server或Client方式选择、IP地址、IP端口、遥信数量、遥测数量和电度数量信息;通信规约包括电力协议IEC103,IEC104、Modbus和IEC61850规约,终端数据模拟发生器采用的通信规约与主站配电系统的通信规约一致。

测试日志包括正常、告警和错误信息,完善的日志文件,是测试与排除问题的基础。与此同时,这些日志文件,是各软件模块在编程时必须设计嵌入。这要求主站调度系统各程序在开发之初,就要设计日志文件。

测试日志分析器是分析用例文档执行的过程记录。综合使用xml配置文件、脚本文件或者批处理文件,抓取日志Log文件,例如逐一查找关键字,这些关键字,可以是normal,warning,error,根据预先设定的关键字,把相关日志文件重定位到某一文件中,这样,大量的日志信息运用多种技术去粗取精,归纳总结得到需要的信息,生成测试结果报表,然后,在日志分析器中,根据预先设置的邮箱,自动发送邮件接收者,供分析排查问题使用。

2 集成测试过程

根据主站产品软件开发过程中的需求分析、系统设计和具体编程的不同阶段,对SCADA主站系统测试内容经历单元测试、集成测试、系统测试和验收测试过程。从集成测试的角度对SCADA 主站系统测试进行比较完整的系统性研究,从性能指标测试、雪崩测试、稳定性测试、可靠性测试、安全性测试和可维护性测试等几个方面具体探讨SCADA主站系统的集成测试。文献[1]对这些测试内容做了详细具体研究,为主站系统集成测试提供较好借鉴意义。但对于SCADA主站集成测试用到的具体软件工具、方法和过程,可借鉴文献较少。

结合图2所示,本文对生成测试工具与方法过程,做了详细的设计与描述。测试过程包括以下步骤。

a.建立测试用例生成器的用例配置文档。用例配置文档采用xml格式,用例配置文档将测试功能分为测试功能大类和测试功能小类,所有的测试功能大类和测试功能小类采用英文字符串与数值匹配宏定义,测试用例条目项应该尽可能完备;测试用例涉及实时数据改变、告警事项、通信链路、主备倒换、数据同步、实时画面、历史数据入库、前置通信协议、风暴数据测试、保护设备装置管理、Web页面同步变化等多个大类和子集,测试用例在不同阶段在此架构下可删减和扩充。

b.启动测试用例生成器,读入xml格式的用例配置文档,将所有能够支持自动化测试的测试项显示出来,选择本次需要测试的用例后,生成测试用例文档。

c.建立测试用例文档。用例文档是测试用例生成器配置文档的子集,产生若干个测试用例文档。测试用例生成器每一次操作是指启动后,在界面中勾选本次需求的多条测试条目,保存后就会产生包括这些选择的多个测试项的测试用例文档。

d.启动测试用例解释器和测试行为发生器。测试用例解释器解释用例,分析用例参数,启动与主站系统数据交互,逐一执行用例。主站配电系统各模块产生相应测试日志文档。测试用例解释器根据测试功能大类和测试功能小类的用例进行编号,提取并分解相应参数,以功能编号分支条件来匹配测试行为发生器相应的执行函数。

e.测试用例执行后,自动启动测试日志分析器,产生测试结果,供系统分析与验证等。

f.终端装置模拟发生器,模拟终端装置行为,产生装置数据。终端装置模拟发生器根据用户配置提供多达数千台虚拟终端设备或数十万点甚至百万点遥信或遥测数据点,验证各模块功能正确性。同时支持风暴突发对复杂组网环境的性能模拟测试。主站系统承受风暴数据冲击,来验证主站系统的界面变化刷新情况、CPU性能情况、对电脑服务器配置要求、系统多机切换、历史曲线和报表验证等。这样,主站配电系统正确性和可靠性都得到尽可能的测试。

3 结束语

本文详细设计了一种配电调度主站自动化集成测试架构,在配电调度主站系统开发初期,验证各模块的功能,加快开发进度,及时排除错误。在开发后期验证系统容量测试、压力测试、性能测试、CPU负荷是否满足设计要求。

在系统版本维护阶段,快速搭建自动化测试平台,验证每日构造版本有效性,减少重复测试人工劳动,减少人力成本具有重要的意义。在现场开局或故障复现,可迅速搭建出一个复杂现场组网环境,进行现场工作开展与实施,测试或模拟故障复现,对现场故障迅速做出有效响应,也能扩大测试范围,最大限度减少故障泄漏,节省维护成本,高效可控。

猜你喜欢

主站测试用例用例
基于LDA模型的测试用例复用方法*
资费拨测系统的研究与应用
县级配电自动化主站系统的设计
软件测试中的测试用例及复用研究
PLC控制技术在皮带上料中的应用
用例规约在课程成绩管理系统需求分析中的应用研究
使用用例建模进行软件需求分析研究
测试工时受限的测试策略研究