陳 瀟,劉慶海,陳 旺,姚 亮
(南京國電南自電網自動化有限公司,江蘇 南京 211100)
近年來,智能站繼電保護二次設備的自動測試技術不斷發展,建立了標準通信協議下,由通信后臺、待測設備、測試儀組成的自動測試系統ATS[1]。隨著測試的積累,測試模板越來越多,測試模板可能會出現丟失、冗余、無效、信息不全、版本不清、難以查找等問題,由于效率低下、責權不明、安全性差,人工管理將無法適應未來越來越龐大的自動測試體系。
給ATS自動測試平臺增加測試模板管理模塊,如圖1所示。與ATS測試平臺自帶的安全校驗方式結合,用戶通過加密狗的方式確定身份信息,進入管理模塊。為了保持存儲在服務器上測試模板的原文件存儲方式和服務器地址不變,另建立管理數據庫,維護測試模板的多維度管理信息。根據分層管理的思想,不直接對物理層的測試模板進行操作,而是通過應用層的ADO接口程序鏈接管理數據庫,獲取測試模板的屬性信息及存儲信息并執行模板操作;模板擴展應用程序對ADO返回的信息數據進行分析處理,生成多個應用列表,在模板管理模塊用戶界面中展示。用戶通過管理模塊,新增或者刪除模板;啟動模板開發模塊讀取和修改模板;啟動自動測試模塊讀取和調用模板,以上操作對服務器上的模板文件和管理數據庫中模板管理信息進行同步操作[2]。
該管理模塊實現的的技術難點在于建立一個有效安全的數據管理模型,并解決與數據庫的鏈接問題,下文將針對這兩個問題提出解決方法。

圖1 測試模板管理模塊
服務器上功能最小化的單元測試模板關于故障模擬、測試方法、保護動作邏輯、自動判斷方法等測試過程僅是針對待測設備自身的描述內容,事實上測試模板隱含的更多信息,如適用地區、適用電壓等級、適用保護類型、不同時間版本等,這些無法通過模板本身表達出來,因此需要建立一張張表格去維護附加信息。同一個模板可能適用于附加信息中一個或多個,因此不同信息表格之間產生了相關性,建立數據庫管理這些數據,可以使測試模板集有效約簡,避免數據冗余,版本混亂。數據庫設計包括概念設計、邏輯設計和物理設計。概念設計之前需要進行需求分析。
以智能站二次設備的繼電保護測試測試模板為對象,分析其內部和附加屬性,如圖2所示。

圖2 測試模板管理屬性
圖2給出了一個測試模板的屬性索引,例如測試人員調取了測試模板OC0001,測試人員需要搜索的模板關鍵屬性國網九統一/35 kV/變壓器保護PST645UA-G/高側過流保護/Ι段/過流定值均能從管理信息中對應;進入系統的指定用戶對模板具有什么操作權限、測試模板經過操作后形成的日志信息,可以從管理屬性中獲取。
概念E-R模型設計可以將測試模板的管理屬性信息轉換為數據庫的關系模型。E-R圖表達具備各種屬性的不同實體間的聯系:實體用矩形、聯系用菱形、聯系用橢圓表示。對于測試模板管理庫,測試模板和操作測試模板的用戶是最顯而易見的兩個實體。圖2可以看出測試模板的屬性數據集非常龐大,像圖2中項目信息、產品信息、設備模型、更新信息下仍然有更細粒度的屬性信息,這樣的屬性稱之為多值屬性。多值屬性也可以作為模型的實體。圖3給出測試模板管理的E-R圖(圖中給出了核心主體和聯系集的屬性,多值屬性升級的主體的屬性因為較簡單,省略未畫出)。其中,用戶對模板的操作過程會被記錄下來保存成操作日志,由于必須是用戶與測試模板實體之間聯系后才會產生操作日志,因此E-R模型中將“用戶操作測試模板”作為一個聚合實體,操作日志也作為一個實體而不是操作的屬性。
將E-R模型轉化為關系模型——關鍵主體映射成一張張關系表、屬性映射為關系屬性,并通過表第一范式要求實體屬性已為需求的最小單元;第二范式要求一張表一個實體;第三范式要求M:N關系的關系表只引用實體主鍵。圖4給出了關系模型映射表格的列表。

圖3 E-R模型

圖4 關系模型映射表格的列表
其中,用戶操作測試模板形成的聚合主體的主鍵選用用戶主體的主鍵“訪問編號”,放在表c的屬性中,確定操作日志主體與聚合主體之間的1:N關系。E-R模型中存在兩個M:N關系,列出對應主體間的關系表。建模完成后設計物理結構,選擇SQL Server 2016數據庫進行數據管理。
關于數據庫的訪問ADO(ActiveX Data Objects)是微軟公司面向對象的基于COM的數據訪問技術,封裝了數據庫底層數據訪問OLE DB的程序接口,與用戶交互更加簡單,功能更加強大,數據處理更加高效,是數據庫訪問的主流技術。ADO提供的核心對象有Connection、Command和Recordset。
在VC++的編程環境中,要使用ADO的對象,就先要注冊創建ADO的動態鏈接庫DLL,并使用#import預編譯指示符引用。有此前提,連接到SQL Server數據庫的基本步驟如下:
(1)初始化COM庫;
(2)使用Connection對象連接數據庫;
(3)使用Connection對象、Command對象執行SQL命令,使用Recordset對象對返回的記錄集進行查詢等處理;
(4)結束連接,關閉Connection對象和Recordset對象。
數據庫的存儲過程,指的是編譯后的特定功能的SQL語句執行的集合。使用存儲過程,可以標準化操作流程、提高執行速度減輕網絡流量。存儲過程分為三類:系統存儲過程、自定義存儲過程和擴展存儲過程。其中自定義存儲過程是用戶數據庫中的SQL語句集合。測試模板管理數據庫中的操作多樣,通過創建自定義存儲過程即可滿足要求。
通過ADO數據訪問技術的研究,解決了ATS模板管理模塊與數據庫通信連接的問題,同時又保留了數據庫操作的執行方法,將來能更好地對數據庫管理進行拓展[3-4]。
基于ATS自動測試平臺,該測試模板的管理方法驗證應該包含功能測試、關聯測試、影響測試以及安全測試。前兩者驗證對測試模板管理基本功能及日志記錄,影響測試驗證管理數據與模板文件之間的協作正確,安全測試包括確認不同身份成員對應的不同操作權限以及執行身份以外的操作項目是否成功。對ATS測試模板管理模塊實現了自動測試模板的科學管理,促進ATS自動測試技術的應用更趨成熟,促使智能站二次設備的自動測試過程更加系統化和標準化,具有極大的推廣價值。但是同時在應用測試過程中影響測試和安全測試所暴露的問題需要將來對該模塊進一步優化和改善。