林楊 單延武 安創(chuàng)鋒 詹燕民 鄧欣 楊波 趙越 高小永
1. 中國海油(中國)有限公司秦皇島32-6/渤中作業(yè)公司;2. 中海油能源發(fā)展股份有限公司采油服務(wù)分公司;3. 中國石油大學(北京)信息科學與工程學院
數(shù)字油田是油田企業(yè)生產(chǎn)、科研、管理和決策的綜合基礎(chǔ)信息平臺,對油田的信息化建設(shè)起著統(tǒng)領(lǐng)和導向的作用,能大幅降低石油生產(chǎn)成本和提高油田平均采油率。智能油田是在數(shù)字油田基礎(chǔ)上提出并發(fā)展出的高級階段概念,其信息化建設(shè)將為油田基層建設(shè)帶來革命性的變化。智能油田是將油田資產(chǎn)、資源、互動與信息技術(shù)深度融合,建立全面感知、預(yù)警預(yù)測、集成協(xié)同、整體優(yōu)化的油田,推動高效運營、綠色安全、精細管理,實現(xiàn)資產(chǎn)價值最大化。智能油田信息化建設(shè)以提高油田各環(huán)節(jié)工作效率為目標,以運用信息化、智能化技術(shù)為導向,以實現(xiàn)優(yōu)化決策和動態(tài)診斷為手段,大大降低石油開采中的不確定因素和風險。智能油田信息化建設(shè)可以提高油田管理水平和技術(shù)水平,借助信息化技術(shù)可快速提高企業(yè)管理水平和技術(shù)水平。目前,國內(nèi)各大油田借助統(tǒng)一化數(shù)據(jù)平臺完成了大量信息的匯總,有助于智能決策。信息化建設(shè)是石油企業(yè)未來的發(fā)展趨勢,有著廣闊的應(yīng)用前景。
在智能油田技術(shù)的發(fā)展中,保障油田生產(chǎn)系統(tǒng)軟件開發(fā)工作的安全性和可靠性至關(guān)重要。為保障系統(tǒng)軟件開發(fā)的可靠性,驗證與確認技術(shù)(V&V)從系統(tǒng)的觀念出發(fā),運用科學分析方法識別、評價、控制危險,使系統(tǒng)達到最佳安全[1]。V&V的概念最早出現(xiàn)在軟件開發(fā)設(shè)計中[2],之后在PLC的核電廠RIC系統(tǒng)驅(qū)動機構(gòu)控制電路中[3]也有所涉及。軟件V&V活動通過辨識異常,對軟件開發(fā)中出現(xiàn)的偏離進行控制[4]。V&V在實際的軟件開發(fā)中,有著廣泛的應(yīng)用。董雅欣等[5]提出一套應(yīng)用軟件的V&V工作流程,并在具體核安全級數(shù)字化儀控系統(tǒng)改造項目中加以應(yīng)用檢驗。張敏等[6]針對核電廠安全相關(guān)級系統(tǒng)的軟件,結(jié)合IEEE Std 1012標準,建立了一種適用于軟件開發(fā)各個階段的關(guān)鍵性分析的具體執(zhí)行方法,最大限度地對核電廠安全相關(guān)級軟件關(guān)鍵性分析工作進行了標準化。郭佳[7]針對人機界面的軟件V&V和人因V&V活動在人機界面的整個生命周期中耦合交互的特點提出了雙 V&V 框架。張磊等[8]針對核電站安全級DCS 應(yīng)用軟件提出了一套V&V體系。葉王平等[9]從核電站安全級數(shù)字化儀控系統(tǒng)的功能出發(fā),針對已有堆型和新研制堆型兩種不同對象的特點,分析相關(guān)的方法和工具,總結(jié)了軟件V&V活動的關(guān)鍵因素。張建波等[10]從驗證評價準則的制定、驗證計劃、驗證分類、驗證方法的選擇和實施步驟、評價方法以及驗證結(jié)果的處理多個方面進行了詳細闡述,形成了功能可用性驗證與確認、任務(wù)支持驗證與確認和人因工程設(shè)計驗證與確認3個類型驗證的不同方法體系。安全級軟件的V&V就是依靠一系列的方法技術(shù)(審查、分析和測試技術(shù))[11],來評價一個完整的軟件系統(tǒng)以及開發(fā)過程中的中間產(chǎn)品是否滿足預(yù)期的功能要求與質(zhì)量要求。驗證過程是處理理論模型和計算模型之間的關(guān)系[12],確認過程是處理計算模型與實驗測量數(shù)據(jù)(真實世界物理系統(tǒng))之間的關(guān)系。盡管V&V技術(shù)已非常成熟,卻未被引入智能油田信息化建設(shè)中。為從根本上解決智能油田信息化建設(shè)中系統(tǒng)軟件的質(zhì)量問題,本文首次將V&V技術(shù)引入到智能油田信息化建設(shè)中以確保軟件開發(fā)的安全性、可靠性、可用性以及經(jīng)濟性。目的從需求階段進行糾錯,使得軟件維護成本不斷降低,為智能油田軟件系統(tǒng)的穩(wěn)定運行提供保障。無論從理論還是實際應(yīng)用等各方面,V&V對智能油田的建設(shè)都有著重要的價值和意義。
筆者從智能油田軟件系統(tǒng)開發(fā)的角度出發(fā),對V&V模型、工具和方法在智能油田信息化建設(shè)中的應(yīng)用進行介紹,并用實例測試了V&V的有效性,為智能油田信息化建設(shè)貢獻了新思路。
在IEEE 1012-2016中對軟件V&V的流程和方法有了較為詳盡的描述[13]。V&V的工作組織和成員獨立于開發(fā)團隊以保障V&V成果的客觀性和有效性。V&V關(guān)注重點在于用戶?系統(tǒng)?軟(硬)件間的關(guān)系。它將油田企業(yè)需求和行業(yè)標準需求合并為系統(tǒng)需求,更進一步將系統(tǒng)需求分解為軟件和硬件需求。V&V模型揭示了V&V活動與開發(fā)活動的關(guān)系,二者通常是同步進行的(V&V活動如圖1橙色框所示,開發(fā)活動如圖1藍色框所示)。協(xié)調(diào)組織好二者之間的關(guān)系,可提高過程的嚴密性和工作效率。
圖1 V&V模型Fig. 1 V&V model
本文根據(jù)智能油田信息化建設(shè)的開展情況,制定了圖2的V&V工作流程給予項目指導,并在實際V&V工作中不斷驗證、固化該流程,為日后智能油田信息化建設(shè)的V&V工作開展奠定了基石。
圖2 V&V工作流程圖Fig. 2 V&V workflow diagram
V&V的具體實施階段可劃分為:驗證系統(tǒng)需求、系統(tǒng)設(shè)計、軟件需求分析、軟件設(shè)計、軟件實現(xiàn)、軟件集成[13]。若軟件測試工具選擇不合理,可能導致V&V工具無法發(fā)現(xiàn)已產(chǎn)生的錯誤或缺陷,甚至引入新的錯誤,從而對軟件開發(fā)產(chǎn)生不利影響[14]。在智能油田信息化建設(shè)中,軟件V&V活動要確認最終工作的軟件系統(tǒng)是否符合油田企業(yè)需求、是否達到預(yù)期功能,是否滿足法規(guī)或標準要求。為了使軟件測試工作系統(tǒng)化、工程化,必須合理組織測試流程。在智能油田信息化建設(shè)中使用的軟件測試流程有審查、分析及測試。
審查主要是針對智能油田軟件系統(tǒng)開發(fā)過程的各階段產(chǎn)生的文檔及產(chǎn)品的審查,包括對需求文件(系統(tǒng)需求規(guī)范、軟件需求規(guī)范、硬件需求規(guī)范等) 、設(shè)計文件(系統(tǒng)設(shè)計規(guī)范、軟件設(shè)計規(guī)范、硬件設(shè)計文檔等) 、軟件代碼、測試文件(測試大綱、測試程序、測試報告等) 等進行審查,常用方法是建立審查表。審查過程中,審查表通過逐項列出V&V測試的主要方面,建立一個最基本的審查框架,同時審查智能油田軟件系統(tǒng)開發(fā)各階段的產(chǎn)品和文檔的正確性、一致性、完整性、精確性、易讀性和可測試性。為了提高開發(fā)軟件在多層次測試中的質(zhì)量,審查表應(yīng)覆蓋智能油田軟件系統(tǒng)開發(fā)過程的所有階段。
V&V主要從可追蹤性分析、接口分析、關(guān)鍵性分析、危險分析、信息安全分析及風險分析6個角度,對智能油田軟件系統(tǒng)的需求階段、設(shè)計階段、實現(xiàn)階段及測試階段的文檔執(zhí)行了分析工作,具體如圖3所示。
圖3 分析工作圖Fig. 3 Analysis work chart
測試是V&V中對智能油田軟件產(chǎn)品質(zhì)量保證的重要一環(huán),有效的測試對于開發(fā)可靠、安全和成功的軟件產(chǎn)品至關(guān)重要[15]。在智能油田軟件系統(tǒng)開發(fā)的各個方面,只要是可以執(zhí)行的或者可以編譯的,都可以進行測試。測試技術(shù)歸納如圖4所示。
圖4 軟件測試方法Fig. 4 Software testing methodology
V&V在智能油田軟件系統(tǒng)測試階段每個模塊進行的測試工作都是一樣的,選任意一個模塊作為目標模塊舉例。V&V的測試工作主要為:代碼審查、集成測試(功能測試)、性能測試。
2.3.1 代碼審查
代碼審查是通過閱讀代碼和人工分析對編碼規(guī)則進行檢查和糾錯的過程,代碼審查流程見圖5。
圖5 代碼審查流程圖Fig. 5 Code review flowchart
2.3.2 集成測試(功能測試)
集成測試用于驗證智能油田軟件系統(tǒng)的集成模塊或組件的工作性能,其工作流程見圖6。
圖6 集成測試流程圖Fig. 6 Integration testing flowchart
2.3.3 性能測試
性能測試是在系統(tǒng)基礎(chǔ)功能測試驗證完成、系統(tǒng)趨于穩(wěn)定的情況下進行,其過程如圖7所示。
圖7 性能測試過程Fig. 7 Performance testing process
軟件V&V貫穿于智能油田軟件系統(tǒng)產(chǎn)品開發(fā)的整個生命周期,V&V活動與軟件開發(fā)活動同步開展,以確保軟件產(chǎn)品符合其預(yù)期要求及油田企業(yè)需求。V&V活動主要分為需求V&V、設(shè)計V&V、實現(xiàn)V&V以及測試V&V。在V&V活動的每一階段,均需驗證各階段的產(chǎn)品輸出是否符合需求,從需求階段識別出驗證對象中存在的異常,并對其進行分析和評估,確定異常后果的嚴重程度。在智能油田軟件系統(tǒng)開發(fā)整個生命周期中,V&V各活動階段執(zhí)行的工作和任務(wù)以及需要重點驗證的內(nèi)容如圖8~圖11所示。
圖11 測試階段V&V的工作任務(wù)Fig. 11 Tasks of V&V during the testing phase
需求V&V活動確定了功能性和性能需求,并且涉及軟件需求分析。V&V的目的是,確保需求的正確性、完備性、準確性、可測試性和一致性。在選定適當?shù)能浖暾约墑e后,V&V工作應(yīng)從圖8所示任務(wù)中(可追蹤性分析、接口分析、關(guān)鍵性分析、危險性分析、信息安全分析及風險分析)執(zhí)行針對需求V&V的最低限度V&V任務(wù)。
圖8 需求階段V&V的工作任務(wù)Fig. 8 Tasks of V&V in the requirements phase
在設(shè)計V&V活動中,軟件需求被轉(zhuǎn)化為每個軟件部分的體系結(jié)構(gòu)設(shè)計和軟件詳細設(shè)計。V&V的目標是表明設(shè)計是軟件需求的正確、準確和完備的轉(zhuǎn)化,沒有引入非預(yù)期的特征。在選定適當?shù)能浖暾约墑e后,V&V工作應(yīng)從圖9所示任務(wù)中(可追蹤性分析、接口分析、關(guān)鍵性分析、危險性分析、信息安全分析及風險分析)執(zhí)行針對設(shè)計V&V的最低限度V&V任務(wù)。
圖9 設(shè)計階段V&V的工作任務(wù)Fig. 9 Tasks of V&V in the design phase
實現(xiàn)V&V活動主要是實現(xiàn)審查、實現(xiàn)分析、測試設(shè)計及執(zhí)行部件測試、實現(xiàn)V&V總結(jié)。V&V的目標是驗證和確認這些實現(xiàn)是正確、準確和完備的。在選定適當?shù)能浖暾约墑e后,V&V工作應(yīng)從圖10所示任務(wù)中(可追蹤性分析、接口分析、關(guān)鍵性分析、危險性分析、信息安全分析及風險分析)執(zhí)行針對實現(xiàn)V&V的最低限度V&V任務(wù)。
圖10 實現(xiàn)階段V&V的工作任務(wù)Fig. 10 Tasks for V&V in the realization phase
測試V&V活動覆蓋軟件測試、軟件集成、軟件合格性測試、系統(tǒng)集成和系統(tǒng)合格性測試。V&V的目標是確保通過執(zhí)行集成測試、系統(tǒng)測試和驗收測試使軟件需求和分配給軟件的系統(tǒng)需求得到滿足。在選定適當?shù)能浖暾约墑e后,V&V工作應(yīng)從圖11所示任務(wù)中(可追蹤性分析、危險性分析、信息安全分析及風險分析)執(zhí)行針對測試V&V的最低限度V&V任務(wù)。
智能油田信息化建設(shè)中,V&V通過評估各活動階段的異常影響以及發(fā)布異常問題的解決時機,及時發(fā)現(xiàn)智能油田軟件開發(fā)過程中的問題。V&V對提高驗證軟件的正確性、完整性、準確性、一致性和可測試性具有深遠意義。
為驗證V&V在實際智能油田信息化建設(shè)項目中的有效性,采用已有的V&V模型做案例分析。
本文選取了某智能油田信息化建設(shè)項目所覆蓋的業(yè)務(wù)部門和職能部門及油水井等所開展的智能化應(yīng)用工作,對設(shè)計階段接口分析進行了測試,詳細描述了該項目設(shè)計V&V的風險分析、關(guān)鍵性分析、接口分析、可追蹤性分析、危險分析、信息安全分析,將V&V的結(jié)果與意見匯總?cè)绫?所示。
表1 V&V分析統(tǒng)計表Table 1 Statistical table for V&V analysis
本文選取的智能油田系統(tǒng)共分為11個模塊,測試過程中,首先設(shè)定具體的環(huán)境條件,來模擬智能油田的運行場景,并對系統(tǒng)核心業(yè)務(wù)進行了性能測試,獲取了系統(tǒng)在現(xiàn)有環(huán)境中不同壓力下的性能數(shù)據(jù),以此來識別系統(tǒng)性能的薄弱環(huán)節(jié),為下一步性能優(yōu)化提供參考。本次測試環(huán)境與測試工具見表2、3。
表2 測試環(huán)境Table 2 Testing environment
根據(jù)每個模塊或功能的要求,測試人員錄制測試腳本,同一腳本,每次設(shè)置不同的數(shù)值,模擬用戶操作進行自動化測試,根據(jù)系統(tǒng)相應(yīng)情況,調(diào)整腳本參數(shù),逐步增加,測試系統(tǒng)的響應(yīng)情況,每個腳本都會反復(fù)執(zhí)行很多次,以驗證系統(tǒng)性能能否達到要求。 本次的測試結(jié)果如表4所示,表中百分比表示的是所達標準次數(shù)占總測試次數(shù)的百分比。
表4 測試結(jié)果Table 4 Testing results %
經(jīng)測試發(fā)現(xiàn),系統(tǒng)單用戶響應(yīng)時間基本都在3 s以內(nèi),簡單事物的處理時間較快。并發(fā)數(shù)與指標要求尚存在差距,為后續(xù)優(yōu)化確定了重點方向。在測試過程中,通過V&V技術(shù)定位到不滿足需求的環(huán)節(jié),在需求階段實現(xiàn)糾錯,減少了軟件的盲目糾錯測試,保障了軟件產(chǎn)品的質(zhì)量,對智能油田信息化建設(shè)意義重大。
表3 測試工具Table 3 Testing tools
(1)首次將軟件的驗證與確認(V&V)技術(shù)引入到智能油田信息化建設(shè)中,是一次全新的嘗試。V&V技術(shù)作為軟件質(zhì)量驗證的有效手段之一,在智能油田信息化建設(shè)中擔任了“第三只眼”的角色。V&V審查是對項目各階段的正式交付成果進行驗證和確認,為下一階段工作開展提供基準和依據(jù),為智能油田專項建設(shè)項目組嚴格把關(guān)。V&V貫穿于智能油田信息化建設(shè)項目全生命周期,包括:概念階段、需求階段、設(shè)計階段、實現(xiàn)階段、測試階段、安裝與檢測階段以及管理階段,為保障軟件系統(tǒng)開發(fā)質(zhì)量打下了堅實的基礎(chǔ)。V&V技術(shù)經(jīng)過多年的發(fā)展,已趨于成熟,并成功應(yīng)用在核安全等領(lǐng)域。本文在前人所提技術(shù)的基礎(chǔ)上,創(chuàng)新性應(yīng)用在智能油田信息化建設(shè)中。在實際智能油田信息化建設(shè)中,引入V&V技術(shù)的軟件系統(tǒng)開發(fā)與傳統(tǒng)的軟件系統(tǒng)開發(fā)成本相比,降低幅度約為10%。同時,根據(jù)智能油田信息化建設(shè)的實際開展情況,制定V&V工作流程,并在實際驗證與確認工作中不斷驗證、固化流程。
(2)在智能油田軟件開發(fā)過程中,采用的是敏捷方式進行迭代,該方法相較于常規(guī)的軟件開發(fā)項目,迭代頻次更高、項目開展階段涉及變更更多,給V&V工作帶來了嚴峻的挑戰(zhàn)。如何針對項目開發(fā)的高頻迭代特點開展V&V工作,是接下來的研究重點。