林楊 單延武 安創鋒 詹燕民 鄧欣 楊波 趙越 高小永
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的有效性,為智能油田信息化建設貢獻了新思路。
在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
V&V的具體實施階段可劃分為:驗證系統需求、系統設計、軟件需求分析、軟件設計、軟件實現、軟件集成[13]。若軟件測試工具選擇不合理,可能導致V&V工具無法發現已產生的錯誤或缺陷,甚至引入新的錯誤,從而對軟件開發產生不利影響[14]。在智能油田信息化建設中,軟件V&V活動要確認最終工作的軟件系統是否符合油田企業需求、是否達到預期功能,是否滿足法規或標準要求。為了使軟件測試工作系統化、工程化,必須合理組織測試流程。在智能油田信息化建設中使用的軟件測試流程有審查、分析及測試。
審查主要是針對智能油田軟件系統開發過程的各階段產生的文檔及產品的審查,包括對需求文件(系統需求規范、軟件需求規范、硬件需求規范等) 、設計文件(系統設計規范、軟件設計規范、硬件設計文檔等) 、軟件代碼、測試文件(測試大綱、測試程序、測試報告等) 等進行審查,常用方法是建立審查表。審查過程中,審查表通過逐項列出V&V測試的主要方面,建立一個最基本的審查框架,同時審查智能油田軟件系統開發各階段的產品和文檔的正確性、一致性、完整性、精確性、易讀性和可測試性。為了提高開發軟件在多層次測試中的質量,審查表應覆蓋智能油田軟件系統開發過程的所有階段。
V&V主要從可追蹤性分析、接口分析、關鍵性分析、危險分析、信息安全分析及風險分析6個角度,對智能油田軟件系統的需求階段、設計階段、實現階段及測試階段的文檔執行了分析工作,具體如圖3所示。

圖3 分析工作圖Fig. 3 Analysis work chart
測試是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
軟件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對提高驗證軟件的正確性、完整性、準確性、一致性和可測試性具有深遠意義。
為驗證V&V在實際智能油田信息化建設項目中的有效性,采用已有的V&V模型做案例分析。
本文選取了某智能油田信息化建設項目所覆蓋的業務部門和職能部門及油水井等所開展的智能化應用工作,對設計階段接口分析進行了測試,詳細描述了該項目設計V&V的風險分析、關鍵性分析、接口分析、可追蹤性分析、危險分析、信息安全分析,將V&V的結果與意見匯總如表1所示。

表1 V&V分析統計表Table 1 Statistical table for V&V analysis
本文選取的智能油田系統共分為11個模塊,測試過程中,首先設定具體的環境條件,來模擬智能油田的運行場景,并對系統核心業務進行了性能測試,獲取了系統在現有環境中不同壓力下的性能數據,以此來識別系統性能的薄弱環節,為下一步性能優化提供參考。本次測試環境與測試工具見表2、3。

表2 測試環境Table 2 Testing environment
根據每個模塊或功能的要求,測試人員錄制測試腳本,同一腳本,每次設置不同的數值,模擬用戶操作進行自動化測試,根據系統相應情況,調整腳本參數,逐步增加,測試系統的響應情況,每個腳本都會反復執行很多次,以驗證系統性能能否達到要求。 本次的測試結果如表4所示,表中百分比表示的是所達標準次數占總測試次數的百分比。

表4 測試結果Table 4 Testing results %
經測試發現,系統單用戶響應時間基本都在3 s以內,簡單事物的處理時間較快。并發數與指標要求尚存在差距,為后續優化確定了重點方向。在測試過程中,通過V&V技術定位到不滿足需求的環節,在需求階段實現糾錯,減少了軟件的盲目糾錯測試,保障了軟件產品的質量,對智能油田信息化建設意義重大。

表3 測試工具Table 3 Testing tools
(1)首次將軟件的驗證與確認(V&V)技術引入到智能油田信息化建設中,是一次全新的嘗試。V&V技術作為軟件質量驗證的有效手段之一,在智能油田信息化建設中擔任了“第三只眼”的角色。V&V審查是對項目各階段的正式交付成果進行驗證和確認,為下一階段工作開展提供基準和依據,為智能油田專項建設項目組嚴格把關。V&V貫穿于智能油田信息化建設項目全生命周期,包括:概念階段、需求階段、設計階段、實現階段、測試階段、安裝與檢測階段以及管理階段,為保障軟件系統開發質量打下了堅實的基礎。V&V技術經過多年的發展,已趨于成熟,并成功應用在核安全等領域。本文在前人所提技術的基礎上,創新性應用在智能油田信息化建設中。在實際智能油田信息化建設中,引入V&V技術的軟件系統開發與傳統的軟件系統開發成本相比,降低幅度約為10%。同時,根據智能油田信息化建設的實際開展情況,制定V&V工作流程,并在實際驗證與確認工作中不斷驗證、固化流程。
(2)在智能油田軟件開發過程中,采用的是敏捷方式進行迭代,該方法相較于常規的軟件開發項目,迭代頻次更高、項目開展階段涉及變更更多,給V&V工作帶來了嚴峻的挑戰。如何針對項目開發的高頻迭代特點開展V&V工作,是接下來的研究重點。