談永奇,王換換,陽 媛,張 鑫
(1.中國人民解放軍第71集團軍醫院,江蘇 徐州 221004;2.徐州醫科大學 醫學信息與工程學院,江蘇 徐州 221000;3.東南大學 儀器科學與工程學院,南京 210018;4.中國人民解放軍陸軍第72集團軍醫院,浙江 湖州 313000)
信息技術的快速發展使得軟硬件系統的應用規模得到了大幅擴增,面對各類功能復雜、規模龐大的軟件系統,急需一種可靠且有效的軟硬件測試方法。軟件測試是軟件生命周期中一項關鍵且繁瑣的工作,對于保證軟件的可靠性有著極為重要的意義。在當前單純形式化方法和程序正確性證明技術尚不能作為實用性手段的情況下,軟件測試技術在未來相當一段時間內仍將是軟件可靠性保證的最有效方法之一[1-4]。軟件測試貫穿整個軟件開發周期,在開發成本中占據很大比重[5]。因此,如何在提升軟件性能的同時降低測試成本是軟件測試面臨的主要問題[6]。
當前已出現大量通用性的軟件測試平臺[7-11],這些平臺在金融、教育、生物、計算機工程等領域的應用中取得了一定效果,但由于醫院信息管理系統存在特殊性,具有子系統多、處理的數據復雜等特點,通用性軟件測試平臺在醫療領域的應用中難以實現較優的效果,主要存在以下幾點問題:首先,通用性的軟件測試平臺缺乏軟硬件協同測試功能。現有的測試平臺大多偏向于單方面軟件測試或硬件測試,無法實現軟硬件測試聯調。其次,大多數的軟件測試平臺依賴于人工操作,部分測試平臺仍然完全需要依靠個別專家的個人經驗進行評測,測試結果缺乏客觀性并且測試效率低。最后,現有的測試平臺無法滿足醫療行業的特殊需求,無法有效幫助醫療行業實現信息化建設。
考慮到目前醫療行業的特殊性,綜合了當前軟件測試平臺的優點,該文設計了一種基于智能化集成設備的醫院大數據信息化云測試系統,旨在解決軟件投入前的在線測試問題,改善當前測試軟件普遍存在的高功耗、高成本問題,構建兼容性強、運行成本低、測試功能完善的云端軟件測試平臺。該系統利用多目標優化技術和機器學習方法,通過虛擬仿真平臺以云測試的形式對軟件運行效率、可行性、安全性等指標進行評測,并且能夠根據結果提出修正意見,最終從多方面給出測試結果以供醫院選擇競標軟件。
該文所開發的醫院大數據信息化云測試系統主要涉及到網絡通信服務器和云測試系統兩方面的設計,針對這兩部分,該文分別采用Java語言及Python語言進行編寫開發。Java語言具有面向對象、類庫豐富、安全性高且編譯系統使用范圍更廣等特點,使用Java語言編寫的服務器可以實現穩定地傳送遠程通信文件以及用戶擁有多通信通道服務目標,因此,為了本系統能夠實現這兩個目標,選擇Java語言研發網絡通信服務器。Python語言是一種功能強大而完善的通用型語言,具有可移植性、可擴展性、可開發性等特點,具備可定義的第三方代碼庫,能夠處理文檔生成、單元測試、線程、數據庫、CGI、密碼系統、Tk和其他與系統設計有關的操作,非常適合智能化軟件測試系統的開發。因此,該文選擇Python語言參與云測試系統的設計過程。
醫院云測試系統的開發主要基于已開發的MNSS(medical network system simulator)平臺,該平臺是集教學、科研、工程為一體的科研創新實踐平臺,整合了eve-ng、GNS3 GUI、Dynamips、Dynagen、QEMU、GNU Health、OpenLIS、OpenSourcePACS等眾多優秀開源的底層軟件,實現了構建、設計和測試醫院網絡與系統的虛擬仿真環境,能夠對各類網絡與系統進行虛擬仿真。MNSS平臺可以提供簡單便捷的方法來設計和模擬任意規模的醫院網絡架構,能夠橋接到真實網絡,可以作為醫院測試與部署新系統、完成網絡改造、快速排查網絡故障的有效工具。
為了滿足醫院信息系統的軟硬件測試需求,系統設計需實現以下幾點目標:
1)精準性:當前多數軟件測試平臺依賴專家個人經驗,測試結果極有可能存在主觀誤差。因此,在設計軟硬件測試系統時,應考慮測試結果的客觀準確性,使得結果具有更高的可信度和可利用性。
2)實用性:為滿足用戶進行軟硬件聯合測試的需求,測試平臺需要提供關于聯合測試流程的介紹和指導。因此,在設計過程中應選擇更具普適性的設計模式,在實現過程中應注意代碼文件的命名規范、代碼排版以及代碼層次,提高平臺的實用性及可擴展性。
3)魯棒性:當需要測試的軟硬件數量達到一定級別時,系統需要維持正常、有效、穩定的運行狀態,并具備異常捕獲及處理機制。因此,在系統設計過程中,應增強系統的應急處理能力并提高系統的工作負載閾值,使系統能夠在不同情況下保持穩定的運行狀態。
為在充分利用現有資源的同時減少軟件測試工作人員的任務量,參考實際測試步驟,系統設計需實現以下功能:
1)能夠自動顯示內置的功能模塊,即用戶無需定義新的測試頁面。
2)能夠滿足不同用戶測試需求,實現面向用戶的個性化設置管理和調用功能。
3)自動生成測試報告。
該文提出的基于智能化集成設備的云測試系統架設在已開發的MNSS平臺中(能夠構建服務器集群,提供計算資源、存儲資源、網絡資源),該云測試系統為滿足不同使用者需求,內置兩種功能模塊。一方面,本系統可以通過梳理相關軟硬件系統信息并優化虛擬仿真模塊,構建場景庫標準組件,搭建適應性模塊。醫院方可以按照導入流程和角色操作示意圖將所在醫院相關軟件和硬件設備導入到平臺中進行測試。云端根據測試流程對軟硬件進行評估,同時給出測試報告。醫院方可以在移動終端中查看測試結果,為下一步決策做準備。另一方面,本系統可以測試出不同醫院信息系統之間的兼容性。可信任第三方可以利用MNSS平臺,首先選擇一些典型醫院,對醫院環境建立模型,分別構建通用型場景庫、網絡設備場景庫、醫院系統場景庫和橋接場景庫,并將已構建的場景庫保存為模板。然后將所有需要測試的場景庫輸入至MNSS虛擬仿真平臺中,并且保存得到的測試結果,再通過機器學習方法評估測試結果的準確性。最后,可信任第三方只有得到具備了高度準確性的測試結果時,才能夠實際部署并上線醫院信息化軟件測試平臺。云測試系統的具體架構如圖1所示。

圖1 系統架構
基于智能化集成設備的云測試系統利用Linux操作系統進行系統研發,采用LabVIEW開發環境控制數據和通信,并且利用I/O設備給用戶提供內存、文件和進程管理以及接口調用等服務。該系統的使用對象除了醫院方之外,還包括可信任第三方,在設計智能化集成終端時,為滿足不同使用對象的需求,而提供個性化智能終端。智能化集成終端內置了多源信息資源數據分析、用戶評估和獨立運營模塊,采用了嵌入式系統對測試數據進行采集、挖掘和特征提取。嵌入式系統數據采集選擇IEEE 829標準下的Bus采集機制,數據挖掘過程在采集結束之后根據采集結果進行分析。另外,嵌入式系統在開發設計時,保留了程序加載、數據存儲、交叉編譯和網絡通信模塊,這些模塊能夠提高測試速度,節省測試成本,實現高運行效率以及高質量測試目標。系統的總體設計思想如圖2所示。

圖2 集成化終端
此外,MNSS集群安裝有原始的MNSS系統;云端機的硬件采用樹莓派的3B+,同時安裝開源瘦客戶機軟件Thinstaiton作為云端機,本地操作臺或者遠端計算機都可以通過云端機訪問到MNSS集群中的各個子系統;本地操作臺通過KVM在MNSS集群和云端機中間進行切換。MNSS集群的每臺設備選型如表1所示。

表1 MNSS集群單臺設備選型
2.5.1 云端架構設計
該文提出的軟件測試平臺采用前后端分離模式。兩端均采用較新的語言框架進行開發,前端采用angular.js框架進行開發設計,后端使用Spring boot框架進行開發設計。另外,該文在測試框架時,選擇Java語言進行智能化軟硬件檢測,利用Maven部署項目并且利用mybatis持久層構建項目,同時選擇mysql開源軟件對醫療大數據進行管理。
2.5.2 集群管理設計
云測試表示的是以云計算技術為基礎而形成的一種全新的軟件測試方式,已經成為當前主流的測試方法。在設計系統時,需要解決任務調度問題以發揮云測試的最大效用。任務調度是操作系統的重要組成部分,直接影響系統性能,十分關鍵,因此,如何進行任務調度是當前亟待考慮的問題。傳統資源調度方法需要根據不同的資源建立不同的模型來完成計算任務。而該文為了提高資源配置效率,利用遷移學習方法和自適應模糊推理算法來解決動態資源配置問題,經過實驗證明,該文提出的方法取得了良好的效果。
在預測CPU、內存及其他資源時,利用自然語言處理技術,進行指令代碼的特征提取,并使用PCA算法對高維屬性進行降維,假設指令有n個特征向量X1,X2,…,Xn,通過PCA算法能夠得到Y1,Y2,…,Ym(m (1) (2) 遷移學習算法通過將已獲得的特征知識運用到其他資源的模型訓練中,是在有限數據量和通信成本內快速建立同類預測模型的較佳方法,遷移學習的關鍵是確定遷移特征。使用高斯混合模型(GMM)來首先描述不同資源的數據結構(比如CPU和內存),如果源域(CPU)和目標域(內存)的數據結構非常相似,這意味著集群的數量相同,則源域和目標域之間存在很強的對應關系。基于源域數據,用公式(3)構建源域預測模型: (3) 對設計的基于智能化集成設備的醫院大數據信息化云測試系統進行仿真實驗測試,測試過程如圖3所示,具體步驟如下: 圖3 系統測試示意圖 首先,用戶可以將智能終端收集的數據通過開源軟件構成的云端機輸入平臺的網絡IP地址與平臺建立連接,或者通過交換網絡連接至MNSS集群。 然后,由MNSS平臺接收到用戶發出的具體測試需求之后,對任務進行劃分,按照既定標準分配給各個子系統。子系統分別完成軟件或硬件對應相關指標測試之后,將測試結果保存至終端。 最后,對內置了資源優化算法的云測試平臺進行性能測試及結果分析。圖4是經過了231個硬件測試及106個軟件測試的結果示意圖,由于系統使用了集群管理的資源調優化算法,系統能夠彈性增加CPU及內存等計算資源,始終保持良好的計算性能。此外,圖4還顯示了系統實時資源預測結果,并與實際使用的資源相比較,預測結果與實際負載相差較少,基本能夠滿足系統的資源配置需求。 圖4 系統測試結果及界面顯示 該系統支持遠端協作方式與云端機建立連接。與傳統的測試方式比較,從測試連接方式方面而言,該文開發的云測試系統連接方式多樣,且較為靈活。對于相同量的測試任務,本系統不需要花費大量投資應用于測試軟件之中,測試成本明顯減少。另外,測試任務提交之后,不論是通過哪種方式連接系統的用戶(醫院方或可信任第三方)只需要等待一段時間就能得到軟硬件測試結果報告,測試效率明顯提高。分析結果表明該系統穩定良好,能夠滿足醫院軟硬件測試需求。 云測試是建立在云計算基礎之上,并通過搭載測試相關的軟硬件、系統、運行環境等資源,為用戶提供的一種在線測試服務。云測試技術的出現拓寬了現有的測試平臺應用途徑,在當前軟硬件運用規模日益擴大的趨勢下,必然會成為未來主流的軟件測試方式。該文以云端測試技術為依托,設計了一種基于智能化集成設備的醫院大數據信息化云測試系統。該系統能夠有效完善醫學信息相關軟硬件的測試過程,并按照模塊化和分離化的設計思路,采用面向對象的編程技術,具有高度復用性和擴展性,且易于維護、修改和測試。同時,該系統以降低運行成本和實現測試自動化為目標,利用機器學習以及遷移學習方法建立多種資源的預測模型,有效提高了系統資源配置的效率和精度。實驗測試結果表明,本系統不但能夠保證測試結果的穩定性和有效性,大大節省了測試成本,而且與其他針對醫療大數據的同類型架構測試平臺相比具有較強的通用性。在今后的研究過程中,還將對該云測試系統進行更加深入的開發,將會進一步根據實際情況來完善技術功能和服務標準,確保該系統能夠最大限度地發揮效用,讓越來越多的使用者受益。
3 實驗結果與分析


4 結束語