电力系统实时数据库的自动化测试研究与应用
2016-05-30张滔
张滔
摘 要:随着科学技术与经济的同步发展,软件产业也取得了质的飞跃,但与此同时,对于软件生产的质量也提出了更高的要求。尤其是近年来,各种软件产品逐渐朝着规模化、系统化、专业化方向发展,而且更新速度也上升到了新的层面。因此,传统的测试方法被自动化测试软件所取代。鉴于此,为了更加深入地了解自动化测试,本文以电力系统为例,对其实时数据库自动测试进行研究。
关键词:电力系统;实时数据库;自动化测试
随着计算机技术的进步,软件在数据库技术中的应用极为广泛。在20世纪中期,数据库技术就已经得到了飞速发展,近年来,数据库技术逐渐成为当前计算机系统中非常重要的组成部分。电力系统是实时数据库应用的重要领域,电力系统中的实时数据库主要对电力企业的经营与生产环节中的数据进行分析、处理,因此,数据库性能、数据库功能、数据库接口等测试对保障电力系统的高效运作有至关重要的作用。也就是说,对电力系统数据库各个内容进行自动化测试,对确保电力企业经营以及生产活动的顺利展开有比较现实的意义。
1 电力系统实时数据库
如图1所示,实施数据库主要由客户端、授权服务以及数据处理服务组成。
电力系统实时数据库是数据库系统中的一个分支,主要由实时处理技术以及数据库技術组合而成。该数据库是以测点为单位实现数据处理、管理以及存储,每一个测点代表的物理意不同。
在电力系统实时数据库中,RTDB授权服务的主要作用是约束数据处理服务的有效期以及测点数,在进行数据处理服务之前先应启动授权服务。RTDB数据处理服务作为实时数据库进行数据处理与存储的功能实体,主要功能是对数据与测点进行删除、更新、增加以及查询。客户端可以通过调用RTDB数据对测点与数据进行操作。
2 STAF软件自动化测试框架技术
2.1 STAF软件自动化测试框架介绍
该软件为开源、跨平台以及支持多种语言的自动化测试框架,STAF软件提供了自动化测试需要的基础服务,同时,该软件和编程语言以及不同的操作系统平台实现了兼容,因此为电力系统实时数据库的自动化测试提供了方案。换而言之,STAF软件作为自动化测试框架有以下优势:对软硬件环境要求较低,能够跨平台使用;和编程语言有较好的兼容性,包括Java、C/C++、Perl等;能够根据请求创建新的服务,并且迅速加入到STAF体系中。此外,用该软件可以使测试任务更容易维护,而操作人员通过文件配置就能实现任务管理。
2.2 工作原理
该软件主要提供外部与内部两种服务,其中,内部服务主要被集成进守护进程STAFProc中,而外部服务则没有被集成进STAFProc服务中。
在测试软件中,STAF通过请求命令的发送来调用服务,其中每个服务都有自身请求命令的格式。而这些格式主要有3种参数,也就是系统、服务以及参数。将系统参数发送到目标STAF系统中,STAFProc对其进行分析,然后判断出请求命令需要调用的具体服务。
STAF服务将请求处理完毕后,返回两种信息——特定请求信息与返回码。特定于请求的信息主要包括服务返回的具体数据,返回码为此次服务处理的结果。
3 XML技术与Python语言
3.1 XML技术应用
可扩展标记语言主要是用来标记电子文件以及使其拥有结构性的语言,因此可扩展标记语言不仅可以定义数据类型,还可以标记数据。XML的侧重点是关注数据的传输以及存储,所以XML逐渐成为跨平台的数据交换格式。
在电力系统实时数据库测试的软件中,需要采用大量配置信息,而如何使这些配置信息得到高效的组织是软件应用的重点内容。所以在电力系统实时数据库自动化测试中,XML允许自定义标签的优势能够高效地实现配置信息的管理与组织。
3.2 Python语言应用
在计算机编程语言中,Python为一种面向对象的、开源的直译式语言,继承了计算机编程语言的通用性以及强大性。在电力系统实时数据库自动化测试中,主要采用的编程语言为Python语言。总的来说,是因为该语言在测试应用中,有以下几个优点。
(1)面向对象。该语言有较强的面向对象特性,消除了抽象类、保护类等多种面向对象的重要元素,因此,更易理解面向对象的概念。
(2)可扩展性。主要是指Python语言支持模块之间的相互交互使编写扩展更加简便。
(3)一用性。电力系统实时数据库自动测试采用该语言,可以减少代码量,提高模块功能。
(4)健壮性。该语言当处理代码运行错误时,可以提供一种安全退出机制,当代码错误或崩溃时,程序就会转出语法错误与程序崩塌的原因。而Python语言会及时采取应对措施来处理异常情况,提高代码的开发效率。
4 软件回归测试与用例选择算法
本文对电力系统实时数据库实施自动化测试,不仅是建立在电力系统需求分析的基础上,而且对测试平台进行了主要模块设计。鉴于此,本文借助关联规则挖掘的回归测试用例选择算法,通过将其应用在自动化测试软件中,高效完成回归测试任务。
关联规则模型是由 R.Agrawal所提出,随即又诞生了Apriori 以及SETM等算法。而其中,Apriori为关联规则模型中最典型的算法。在运用这一算法中,采用Apriori算法挖掘测试对象事务数据库中所有的频繁项集。然后在得到这些频繁项集之后,通过条件概率计算来获取关联规则的置信度,而最后通过已知的最小置信度之间的比较来判断关联规则的强弱。
也就是说,假设T为一个项集,D是事务数据库,为所有项的集合,那么用TID表示每个事务具备唯一的事务标识。如果A与B为两个项集,而其中,若,那么则称T支持A。而他们之间的关联规则蕴涵式为,该函数式的含义为项集 B 的出现依赖于项集 A。
因此,数据库D含有的的事务越多,那么support()就越大。
可见,Apriori 的主要性质是频繁项集的非空子集必须都是频繁的。所以,根据定义,当,也就是项集 A无法满足最小支持度s的约束,则项集 A不是频繁的。如果将项集B添到 A,那么项集就不会比项集 A出现得更加频繁。
综上,在软件代码实现中,Apriori 算法主要由表1中所示的几个函数组成,而实现电力系统实时数据库自动化测试软件中关联规则挖掘算法函数也如下表总结:
5 结束语
软件自动化测试的过程是建立在需求分析以及测试技术的应用之上的,鉴于此,本文主要介绍了软件自动化测试平台的几种重要技术,主要包含实时数据库技术、Python 语言和 XML 技术、STAF测试框架技术,并且在关联规则挖掘理论上讨论了回归测试用例的选择算法,并且对算法具体过程进行了分析。总体而言,本文对于电力系统实时数据库的自动化测试研究以及应用有非常现实的意义。当然,本文也存在许多不足之处,电力系统实时数据库的自动测试为一个相对复杂且系统化的过程,本文只是对其系统测试中应用的技术进行了分析,因此,进一步对电力系统实时数据库自动化测试的实现进行研究是本文需要完善的地方。
参考文献
[1]郭新雷.电力系统实时数据库的自动化测试研究与实现[D].南京邮电大学,2013,8(12):23-24.
[2]葛亮.智能变电站在线监测系统测试平台的设计与实现[D].华北电力大学,2014.
[3]张崭.基于组态软件的电力系统实时数据库设计与实现[D].中国科学院大学(工程管理与信息技术学院),2014.
[4]武君胜,吴德州.面向电力系统的分布式实时数据库关键技术及应用[J].中国科技论文在线,2008,2(11):102-107.
[5]赵磊.监控组态软件中实时数据库接口的设计与实现[D].电子科技大学,2007,9(20):41.
[6]杨友俊.城市轨道交通电力监控系统实时数据库的研究[D].西南交通大学,2007,3(21):13.