基于云计算的电力软件测试技术研究
Research on Power Software Testing Technology Based on Cloud Computing
1.华北电力大学 控制与计算机工程学院,河北 保定 071003
2.中国电力科学研究院 信息通信研究所,北京 100192
文章编号: 2095-641X(2018)03-0064-05 中图分类号: TP311.52
摘要
随着“大、云、物、移”等信息通信新技术的快速发展,对各类信息系统的测试、测试组织方式、测试平台的架构、测试方式都提出了更高的新要求。为了进一步提高电力软件测试的安全性及高效性,文章通过总结电力软件云测试平台特点,结合电力信息化实际,将电力软件云测试方法与传统的软件测试方式进行对比,讨论了电力软件测试策略,叙述了基于云计算的电力软件测试平台架构以及架构中各软件模块的功能,最后总结出一套适用于软件云测试的架构和方法,可对全方位提升云测试技术研发能力提供一定帮助。
关键词 : 电力信息化; 云计算; 软件测试;
DOI:10.16543/j.2095-641x.electric.power.ict.2018.03.010
ABSTRACT
With the rapid development of the power information technologies such as big data, clouding, internet of things and etc, the new higher requirements are put forward for the system testing, test organization, test platform, test methods. In order to further improve the testing safety and efficiency of power software, this paper summarizes the characteristics of power software cloud testing platform, combined with the actual of power information, and compares the power software cloud test with the traditional method, discusses the power software testing strategy, and describes the power software test platform based on cloud computing. This paper also discusses the software modules in the architecture function, and finally summarizes a set of software architecture and method that beseems the software cloud testing, which can provide some help to fully improve the research and development capability of cloud testing technology.
KEY WORDS : power information; cloud computing; software testing;
著录格式:刘淑平, 江依诺, 杨俊伟.基于云计算的电力软件测试技术研究[J]. 电力信息与通信技术, 2018, 16(3): 64-68.
0 引言
近几年随着电力行业的发展,互联网与电网深度结合的智能电网也随之快速发展,电力企业在软件测试方面投入的资金和精力越来越多。与此同时,云计算相关技术的日益成熟为电力软件测试提供了一个新机遇。传统的软件测试需要在测试端部署许多硬件资源,搭建复杂的独立的网络系统,并且每台测试机需要配备一套软件,造成硬件及软件成本费用高昂,测试过程繁复。而在云测试中,可以直接将主机、服务器等硬件资源和网络环境布置在云端,极大地降低了企业在搭建测试环境方面的投资成本,因此云测试以其超高的软件测试质量以及测试工作效率越来越受到人们的关注[1]。
1 云计算概念
云计算作为一种新型的分布式计算模式,通常被认为是包含有大量软硬件资源的一种特殊的资源池。云计算利用虚拟化技术,对资源池中众多硬件软件产品进行统一的管理,以动态及灵活的方式对外提供服务[2]。云计算可以形成一种以用户为中心的“按需使用、按量付费”的模式,在使用过程中,用户不必关心云计算内部运作的细节,只需支付少量的费用便可以获得高质量的服务。
2 电力软件云测试平台特点
2.1 电力软件云测试平台的优势
由于云环境中的资源是充满变化且动态的,可以根据用户的需要将一部分资源提供给用户,因此资源池中的资源会不断地被分配和回收[3]。而在电力软件测试中,测试环境需要不断的重建和废弃,所以电力软件的测试任务非常适合在云平台中运行。电力软件云测试平台有以下优势。
1)硬件软件资源成本低廉。电力软件测试中,一般需要在测试端搭建许多诸如主机、服务器、网络环境、基础软件、测试软件等资源,而云测试则把这些都布置在了云端,企业可以直接选取自己需要的资源,从而节省了很多硬件软件成本。
2)降低了硬件的维护成本。电力软件的测试环境(包括硬件软件环境及网络环境等)非常复杂,需要专业人员进行日常维护。在云测试中,硬件和网络环境的维护工作都可以交给云服务商来完成,因此极大地减少了企业的人工成本和资源成本。
3)按需调节计算能力与存储空间。和传统的软件测试不同,云测试具有很大的灵活性。云计算是将硬件的计算资源与存储资源通过虚拟化技术加入到云平台资源池中,这个资源池中所有东西对用户来说都是不可见的,这些虚拟的计算资源与存储资源可以根据具体项目的需求提供给用户,用户可以按需定制需要的计算资源和存储空间。
4)数据安全性高。电力软件中很多数据架构都要求极高的保密性,传统软件测试中,数据存储在本地硬盘中,需要经常对数据进行备份,即使这样也很难保证数据的安全性,一旦发生故障,就很有可能导致数据丢失。而在云测试中,数据存储在云端,云平台也会自动对数据进行备份,减少了由于硬件故障造成数据丢失的可能性,从而大大提高了数据安全性。
5)数据共享更加容易。目前,市场上有很多诸如FTP Server的服务器,就是用来实现数据共享的。在传统软件测试中,要想实现数据共享,都要通过搭建文件共享服务器来实现,且还要考虑网络是否支持文件共享的问题。而在云平台中数据的共享功能则直接由云服务商提供,用户可以很方便地将数据分享给他人,且不会降低数据的安全性[4]。
6)访问方式灵活。在传统的电力软件测试中,企业为了保证内部数据信息的安全性,经常会要求隔离内外网,测试人员的工作地点以及工作网络受到了限制。云测试平台会把测试数据环境全部部署在云端,测试人员可以不受时间地点及环境的限制,只要通过云登录到测试环境中即可随时随地进行测试工作,灵活机动,大大提高了测试人员的工作效率。
7)按需服务。传统的软件测试在搭建好测试环境后,如果遇到业务变更的情况,而搭建好的硬件资源不轻易改变,这时就会增加测试时间。如果要降低用户的测试时间,就需要更换硬件配置,重新配置测试环境,包括安装系统和软件、修改配置文件等,加大了测试成本的投入。而云平台具有“按需服务”的特点,用户利用云平台可以很容易地根据需求获得资源,并随时更改资源[5]。
2.2 电力软件云测试概念服务与架构
电力软件云测试是一种基于云计算的针对于电力软件的测试服务,相对于传统测试有很多的优势。“云”可以认为是云资源池,需要构建有足够规模的集群,否则可能会发生不能满足申请用户需求的情况[6]。电力软件云测试应该提供以下几种服务。
1)可提供伸缩的测试环境服务。在云测试系统中,用户可通过请求,申请不同的环境资源和测试云服务,提供商应该提供给用户完整的、可用的环境。
2)可提供满足多用户并发测试服务。云测试平台应该包含不同的编译构建工具和测试覆盖分析工具,用户可以在云测试平台中进行各种不同的测试工作,包括功能测试、性能测试、安全性测试和稳定性测试等。
3)可提供数据驱动测试管理服务。云测试平台应支持项目管理、测试管理以及缺陷管理,其中测试管理不仅仅包括测试用例和测试结果,还应该包括测试脚本和测试数据。测试用例可以根据测试主题分组管理。此外,测试用例应该支持云端上传、下载、分享和迁移。
4)可提供自动化测试和控制服务。云测试平台可以根据项目需求,对测试任务进行合理调度,并且按需提供自动化测试执行和对执行用例的控制。
5)可提供完备的测试集成解决方案。云测试平台可以根据所测试产品的不同,给出不同的解决方案、测试模型以及测试中需要使用的测试方法和算法,完成测试任务和达成测试目标,且在正式运行前,提供测试方法和算法的适配、选择以及组合。通过这些让用户对将要执行的测试解决方案有更加直观的认识。
6)可提供进行大规模的模拟测试的环境。云测试平台应给用户提供模拟的仿真环境,在仿真环境中,用户可以模拟运行测试用例,以观察测试用例的执行效果。典型仿真不仅包括测试用例,还包括流量和负载、图形界面、使用场景等测试。
7)可提供测试的跟踪监控服务。云测试平台应该给用户提供灵活的查询机制,用户能够随时查询到各条测试用例的执行情况,以及测试主机的运行和负载情况。
8)可提供费用结算服务。云测试平台作为计费的云服务,应向用户提供账目明细及合同副本等,就像水电气一样,用户可以随时查询费用的使用情况[7]。
3 电力软件测试策略分析
3.1 单元测试
单元测试,是按照模块对软件中最小的单元进行正确性检验测试的工作,它的目的是发现软件各模块可能存在的问题。在电力软件中,由于单元测试针对的模块并不是可以独立运行的,因此需要考虑到其与其他模块的联系,采用一些辅助模块来模拟与被测模块相关联的一些模块。这些模块分为
2种:驱动模块和桩模块。驱动模块相当于被测模块的主程序,它可以接收测试数据,并把这些测试数据传送给被测模块,最后再输出实测结果;桩模块是用来供被测模块调用,可以用它来代替被测单元所调用的模块的功能,使被测单元能顺利运行下去,同时还要在适当时候提供适当数据并进行一定的处理,以便检验被测模块与其下级模块的接口[8]。
单元测试需要解决以下问题。
1)模块接口:保证被测模块的信息正确地流入流出。
2)边界条件:软件中通常会为限制数据加工而设置一些边界,在这些边界处的测试工作是十分重要的。
3)覆盖条件:查看模块的运行逻辑是否能覆盖各种组合条件。
4)局部数据结构:检查在模块中内部数据在工作过程中是否始终保持完整性,并且要保证内部数据不发生错误。
5)出错处理:判断模块工作过程中对其所发生错误的处理是否正确。
3.2 集成测试
在单元测试中将全部模块的测试工作完成之后,电力软件需要将全部模块结合起来进行集成测试,以测试其整体功能的完整性。当进行集成测试时,有2种可以采纳的策略:非增量式测试和增量式测试。非增量式测试就是在测试开始时一次性将所有模块结合到一起进行整体的集成测试;增量式测试是不在测试开始时就一次性将所有模块结合完毕,而是在测试过程中采用不同的增量式方法逐步进行集成测试[9]。
3.3 渗透测试
3.3.1 渗透测试方法
渗透测试[10]就是一种通过实际的攻击进行安全测试与评估的测试方法,是通过模拟恶意攻击者的技术与方法,挫败目标系统安全控制措施,并发现影响业务执行结果的安全隐患的一种安全测试方法。对于电力信息系统这样比较敏感的领域来说,渗透测试发挥着至关重要的作用。
3.3.2 渗透测试工具
渗透测试工具是目前应用最为广泛的动态测试工具之一,其原理是对于C/S架构的应用系统,利用网页爬虫算法遍历网站的URL资源,对数据进行有针对性的变异并做一些重复测试,根据其返回的结果进一步判断安全问题。渗透测试分为以下3部分:①外部测试:DMZ扫描、踩点、社会工程等;②内部测试:远程、主动扫描、主动漏洞扫描、访问敏感信息、口令等;③质量确认以及报告生成:分析报告[11]。
3.3.3 渗透测试工具整体框架
渗透测试工具使用MVC架构(见
4 基于云计算的电力软件测试平台功能
基于云计算的电力软件测试平台包括测试资源管理、测试任务管理和测试报告管理3部分。
4.1 测试资源管理
测试资源管理主要是对测试设备以及测试流程进行管理。其中测试设备包括被测软件的硬件软件资源及测试环境的搭建,测试环境的搭建需要配置设备的参数和接口。
4.2 测试任务管理
测试任务管理包括提交测试任务管理、任务队列管理和历史任务管理3部分。任务状态有5种:就绪、执行、阻塞、运行成功、运行失败。测试任务提交之后,如果满足执行条件,那么进入就绪状态,等待前一个任务运行结束后即可进入执行状态,测试任务执行结果有成功、失败2种。任务结束后可以在历史任务管理中查看其具体运行过程,以及运行成功或失败的原因。
4.3 测试报告管理
测试报告管理的目的是为了方便地进行测试过程管理控制,查看测试过程执行情况,跟踪测试结果,最后产生测试报告。测试报告中应该包含缺陷管理,对测试结果的汇总和分析以及各个测试阶段软件产品的质量分析。通过测试报告,可以掌握测试的进展并控制整个测试过程的进行。测试任务完成后,工程师根据测试用例记录与测试结果进行分析,确定版本BUG,并写入最终测试报告。
5 电网测试云的应用
电网测试云是将服务器、主机、存储空间、网络环境等基础设施进行虚拟化,形成一个资源池,以此为公司各单位各部门提供一个共享可用的测试平台。测试人员可通过浏览器方便容易地进行自动化配置,选择不同的测试类型,构建不同的测试模板,配置不同的测试环境,根据需要选择资源。同时,还能对测试资源进行动态监控管理,对被测系统进行自动备份和恢复,当测试发生中断时,能够自动回滚,保证了测试的进度和质量[14]。测试云不只是针对软件平台和服务,还可以接入硬件物理产品,为其搭建虚拟配套测试环境。电网测试云可以作为一个开放的技术平台,围绕公司实际需求,持续整合并扩充测试资源,集成在线测试服务,逐步对研发、测试、运行各环节提供自助式测试服务,在测试业务和流程上持续创新[15-16]。
6 结语
电力软件的可靠性会直接影响电力系统的安全运行,本文对基于云计算的电力软件测试策略进行了研究,介绍了云测试与传统测试的不同,本文中所提出的电力软件测试方法对在实际中的电力软件测试具有很大的指导作用。电力软件云测试方法是将云计算与电力行业传统测试业务相结合,不仅可以提高业务支撑能力,拓展测试服务模式及类型,还能够解决传统软件测试中存在的测试成本高、环境部署复杂等问题,实现测试环境的按需获取、灵活部署,提高测试效率,提供集先进性、实用性、安全性为一体的高质量的电力软件云检测服务
能力。
(编辑:张钦芝)
参考文献
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]