验证与确认技术在智能油田信息化建设中的应用
2022-07-06林杨单延武安创锋詹燕民邓欣杨波赵越高小永
林杨 单延武 安创锋 詹燕民 邓欣 杨波 赵越 高小永
1. 中国海油(中国)有限公司秦皇岛32-6/渤中作业公司;2. 中海油能源发展股份有限公司采油服务分公司;3. 中国石油大学(北京)信息科学与工程学院
数字油田是油田企业生产、科研、管理和决策的综合基础信息平台,对油田的信息化建设起着统领和导向的作用,能大幅降低石油生产成本和提高油田平均采油率。智能油田是在数字油田基础上提出并发展出的高级阶段概念,其信息化建设将为油田基层建设带来革命性的变化。智能油田是将油田资产、资源、互动与信息技术深度融合,建立全面感知、预警预测、集成协同、整体优化的油田,推动高效运营、绿色安全、精细管理,实现资产价值最大化。智能油田信息化建设以提高油田各环节工作效率为目标,以运用信息化、智能化技术为导向,以实现优化决策和动态诊断为手段,大大降低石油开采中的不确定因素和风险。智能油田信息化建设可以提高油田管理水平和技术水平,借助信息化技术可快速提高企业管理水平和技术水平。目前,国内各大油田借助统一化数据平台完成了大量信息的汇总,有助于智能决策。信息化建设是石油企业未来的发展趋势,有着广阔的应用前景。
在智能油田技术的发展中,保障油田生产系统软件开发工作的安全性和可靠性至关重要。为保障系统软件开发的可靠性,验证与确认技术(V&V)从系统的观念出发,运用科学分析方法识别、评价、控制危险,使系统达到最佳安全[1]。V&V的概念最早出现在软件开发设计中[2],之后在PLC的核电厂RIC系统驱动机构控制电路中[3]也有所涉及。软件V&V活动通过辨识异常,对软件开发中出现的偏离进行控制[4]。V&V在实际的软件开发中,有着广泛的应用。董雅欣等[5]提出一套应用软件的V&V工作流程,并在具体核安全级数字化仪控系统改造项目中加以应用检验。张敏等[6]针对核电厂安全相关级系统的软件,结合IEEE Std 1012标准,建立了一种适用于软件开发各个阶段的关键性分析的具体执行方法,最大限度地对核电厂安全相关级软件关键性分析工作进行了标准化。郭佳[7]针对人机界面的软件V&V和人因V&V活动在人机界面的整个生命周期中耦合交互的特点提出了双 V&V 框架。张磊等[8]针对核电站安全级DCS 应用软件提出了一套V&V体系。叶王平等[9]从核电站安全级数字化仪控系统的功能出发,针对已有堆型和新研制堆型两种不同对象的特点,分析相关的方法和工具,总结了软件V&V活动的关键因素。张建波等[10]从验证评价准则的制定、验证计划、验证分类、验证方法的选择和实施步骤、评价方法以及验证结果的处理多个方面进行了详细阐述,形成了功能可用性验证与确认、任务支持验证与确认和人因工程设计验证与确认3个类型验证的不同方法体系。安全级软件的V&V就是依靠一系列的方法技术(审查、分析和测试技术)[11],来评价一个完整的软件系统以及开发过程中的中间产品是否满足预期的功能要求与质量要求。验证过程是处理理论模型和计算模型之间的关系[12],确认过程是处理计算模型与实验测量数据(真实世界物理系统)之间的关系。尽管V&V技术已非常成熟,却未被引入智能油田信息化建设中。为从根本上解决智能油田信息化建设中系统软件的质量问题,本文首次将V&V技术引入到智能油田信息化建设中以确保软件开发的安全性、可靠性、可用性以及经济性。目的从需求阶段进行纠错,使得软件维护成本不断降低,为智能油田软件系统的稳定运行提供保障。无论从理论还是实际应用等各方面,V&V对智能油田的建设都有着重要的价值和意义。
笔者从智能油田软件系统开发的角度出发,对V&V模型、工具和方法在智能油田信息化建设中的应用进行介绍,并用实例测试了V&V的有效性,为智能油田信息化建设贡献了新思路。
1 V&V模型与工作流程
在IEEE 1012-2016中对软件V&V的流程和方法有了较为详尽的描述[13]。V&V的工作组织和成员独立于开发团队以保障V&V成果的客观性和有效性。V&V关注重点在于用户−系统−软(硬)件间的关系。它将油田企业需求和行业标准需求合并为系统需求,更进一步将系统需求分解为软件和硬件需求。V&V模型揭示了V&V活动与开发活动的关系,二者通常是同步进行的(V&V活动如图1橙色框所示,开发活动如图1蓝色框所示)。协调组织好二者之间的关系,可提高过程的严密性和工作效率。
图1 V&V模型Fig. 1 V&V model
本文根据智能油田信息化建设的开展情况,制定了图2的V&V工作流程给予项目指导,并在实际V&V工作中不断验证、固化该流程,为日后智能油田信息化建设的V&V工作开展奠定了基石。
图2 V&V工作流程图Fig. 2 V&V workflow diagram
2 V&V技术和方法
V&V的具体实施阶段可划分为:验证系统需求、系统设计、软件需求分析、软件设计、软件实现、软件集成[13]。若软件测试工具选择不合理,可能导致V&V工具无法发现已产生的错误或缺陷,甚至引入新的错误,从而对软件开发产生不利影响[14]。在智能油田信息化建设中,软件V&V活动要确认最终工作的软件系统是否符合油田企业需求、是否达到预期功能,是否满足法规或标准要求。为了使软件测试工作系统化、工程化,必须合理组织测试流程。在智能油田信息化建设中使用的软件测试流程有审查、分析及测试。
2.1 审查
审查主要是针对智能油田软件系统开发过程的各阶段产生的文档及产品的审查,包括对需求文件(系统需求规范、软件需求规范、硬件需求规范等) 、设计文件(系统设计规范、软件设计规范、硬件设计文档等) 、软件代码、测试文件(测试大纲、测试程序、测试报告等) 等进行审查,常用方法是建立审查表。审查过程中,审查表通过逐项列出V&V测试的主要方面,建立一个最基本的审查框架,同时审查智能油田软件系统开发各阶段的产品和文档的正确性、一致性、完整性、精确性、易读性和可测试性。为了提高开发软件在多层次测试中的质量,审查表应覆盖智能油田软件系统开发过程的所有阶段。
2.2 分析
V&V主要从可追踪性分析、接口分析、关键性分析、危险分析、信息安全分析及风险分析6个角度,对智能油田软件系统的需求阶段、设计阶段、实现阶段及测试阶段的文档执行了分析工作,具体如图3所示。
图3 分析工作图Fig. 3 Analysis work chart
2.3 测试
测试是V&V中对智能油田软件产品质量保证的重要一环,有效的测试对于开发可靠、安全和成功的软件产品至关重要[15]。在智能油田软件系统开发的各个方面,只要是可以执行的或者可以编译的,都可以进行测试。测试技术归纳如图4所示。
图4 软件测试方法Fig. 4 Software testing methodology
V&V在智能油田软件系统测试阶段每个模块进行的测试工作都是一样的,选任意一个模块作为目标模块举例。V&V的测试工作主要为:代码审查、集成测试(功能测试)、性能测试。
2.3.1 代码审查
代码审查是通过阅读代码和人工分析对编码规则进行检查和纠错的过程,代码审查流程见图5。
图5 代码审查流程图Fig. 5 Code review flowchart
2.3.2 集成测试(功能测试)
集成测试用于验证智能油田软件系统的集成模块或组件的工作性能,其工作流程见图6。
图6 集成测试流程图Fig. 6 Integration testing flowchart
2.3.3 性能测试
性能测试是在系统基础功能测试验证完成、系统趋于稳定的情况下进行,其过程如图7所示。
图7 性能测试过程Fig. 7 Performance testing process
3 V&V在智能油田信息化建设各阶段工作和任务
软件V&V贯穿于智能油田软件系统产品开发的整个生命周期,V&V活动与软件开发活动同步开展,以确保软件产品符合其预期要求及油田企业需求。V&V活动主要分为需求V&V、设计V&V、实现V&V以及测试V&V。在V&V活动的每一阶段,均需验证各阶段的产品输出是否符合需求,从需求阶段识别出验证对象中存在的异常,并对其进行分析和评估,确定异常后果的严重程度。在智能油田软件系统开发整个生命周期中,V&V各活动阶段执行的工作和任务以及需要重点验证的内容如图8~图11所示。
图11 测试阶段V&V的工作任务Fig. 11 Tasks of V&V during the testing phase
需求V&V活动确定了功能性和性能需求,并且涉及软件需求分析。V&V的目的是,确保需求的正确性、完备性、准确性、可测试性和一致性。在选定适当的软件完整性级别后,V&V工作应从图8所示任务中(可追踪性分析、接口分析、关键性分析、危险性分析、信息安全分析及风险分析)执行针对需求V&V的最低限度V&V任务。
图8 需求阶段V&V的工作任务Fig. 8 Tasks of V&V in the requirements phase
在设计V&V活动中,软件需求被转化为每个软件部分的体系结构设计和软件详细设计。V&V的目标是表明设计是软件需求的正确、准确和完备的转化,没有引入非预期的特征。在选定适当的软件完整性级别后,V&V工作应从图9所示任务中(可追踪性分析、接口分析、关键性分析、危险性分析、信息安全分析及风险分析)执行针对设计V&V的最低限度V&V任务。
图9 设计阶段V&V的工作任务Fig. 9 Tasks of V&V in the design phase
实现V&V活动主要是实现审查、实现分析、测试设计及执行部件测试、实现V&V总结。V&V的目标是验证和确认这些实现是正确、准确和完备的。在选定适当的软件完整性级别后,V&V工作应从图10所示任务中(可追踪性分析、接口分析、关键性分析、危险性分析、信息安全分析及风险分析)执行针对实现V&V的最低限度V&V任务。
图10 实现阶段V&V的工作任务Fig. 10 Tasks for V&V in the realization phase
测试V&V活动覆盖软件测试、软件集成、软件合格性测试、系统集成和系统合格性测试。V&V的目标是确保通过执行集成测试、系统测试和验收测试使软件需求和分配给软件的系统需求得到满足。在选定适当的软件完整性级别后,V&V工作应从图11所示任务中(可追踪性分析、危险性分析、信息安全分析及风险分析)执行针对测试V&V的最低限度V&V任务。
智能油田信息化建设中,V&V通过评估各活动阶段的异常影响以及发布异常问题的解决时机,及时发现智能油田软件开发过程中的问题。V&V对提高验证软件的正确性、完整性、准确性、一致性和可测试性具有深远意义。
4 V&V在油田生产应用分析
为验证V&V在实际智能油田信息化建设项目中的有效性,采用已有的V&V模型做案例分析。
4.1 分析案例
本文选取了某智能油田信息化建设项目所覆盖的业务部门和职能部门及油水井等所开展的智能化应用工作,对设计阶段接口分析进行了测试,详细描述了该项目设计V&V的风险分析、关键性分析、接口分析、可追踪性分析、危险分析、信息安全分析,将V&V的结果与意见汇总如表1所示。
表1 V&V分析统计表Table 1 Statistical table for V&V analysis
4.2 测试案例
本文选取的智能油田系统共分为11个模块,测试过程中,首先设定具体的环境条件,来模拟智能油田的运行场景,并对系统核心业务进行了性能测试,获取了系统在现有环境中不同压力下的性能数据,以此来识别系统性能的薄弱环节,为下一步性能优化提供参考。本次测试环境与测试工具见表2、3。
表2 测试环境Table 2 Testing environment
根据每个模块或功能的要求,测试人员录制测试脚本,同一脚本,每次设置不同的数值,模拟用户操作进行自动化测试,根据系统相应情况,调整脚本参数,逐步增加,测试系统的响应情况,每个脚本都会反复执行很多次,以验证系统性能能否达到要求。 本次的测试结果如表4所示,表中百分比表示的是所达标准次数占总测试次数的百分比。
表4 测试结果Table 4 Testing results %
经测试发现,系统单用户响应时间基本都在3 s以内,简单事物的处理时间较快。并发数与指标要求尚存在差距,为后续优化确定了重点方向。在测试过程中,通过V&V技术定位到不满足需求的环节,在需求阶段实现纠错,减少了软件的盲目纠错测试,保障了软件产品的质量,对智能油田信息化建设意义重大。
表3 测试工具Table 3 Testing tools
5 结论
(1)首次将软件的验证与确认(V&V)技术引入到智能油田信息化建设中,是一次全新的尝试。V&V技术作为软件质量验证的有效手段之一,在智能油田信息化建设中担任了“第三只眼”的角色。V&V审查是对项目各阶段的正式交付成果进行验证和确认,为下一阶段工作开展提供基准和依据,为智能油田专项建设项目组严格把关。V&V贯穿于智能油田信息化建设项目全生命周期,包括:概念阶段、需求阶段、设计阶段、实现阶段、测试阶段、安装与检测阶段以及管理阶段,为保障软件系统开发质量打下了坚实的基础。V&V技术经过多年的发展,已趋于成熟,并成功应用在核安全等领域。本文在前人所提技术的基础上,创新性应用在智能油田信息化建设中。在实际智能油田信息化建设中,引入V&V技术的软件系统开发与传统的软件系统开发成本相比,降低幅度约为10%。同时,根据智能油田信息化建设的实际开展情况,制定V&V工作流程,并在实际验证与确认工作中不断验证、固化流程。
(2)在智能油田软件开发过程中,采用的是敏捷方式进行迭代,该方法相较于常规的软件开发项目,迭代频次更高、项目开展阶段涉及变更更多,给V&V工作带来了严峻的挑战。如何针对项目开发的高频迭代特点开展V&V工作,是接下来的研究重点。