劉迪
北京市醫療器械檢驗所 (北京 101111)
醫療影像傳輸系統(picture archiving and communications systems,PACS)是指以醫學數字成像通信標準(digital imaging and communication in medicine, DICOM)[1]的國際標準設計,以高性能服務器、網絡及存儲設備構成硬件支持平臺,以大型關系型數據庫作為數據和圖像的存儲管理工具,以醫療影像的采集、傳輸、存儲和診斷為核心,集影像采集傳輸與存儲管理、影像診斷查詢與報告管理、綜合信息管理等應用于一體的綜合應用系統。為輔助和集成各類影像類醫療器械,PACS在各醫院通常都有應用,是一種常見的醫療器械軟件。
按照國內注冊法規要求,PACS在注冊申報時應依據GB/T 25000.51-2016[2]進行上市前檢驗。上市前檢驗測試技術的選擇和測試用例的設計都會直接影響檢驗工作的效率和檢驗結果。因此,本研究根據GB/T 25000.51-2016中需要測試的質量特性,結合日常工作中接觸的PACS產品的特點提出相應的軟件測試方案。
軟件檢測技術指軟件開發和調試時經常使用的一些測試技術,通常分為兩大類:功能測試和性能測試。其中功能測試是在測試過程中,把程序比作一個看不清、打不開的黑匣子,在完全不考慮程序的內部情況的前提下,測試人員只對程序的外部進行功能性測試。在進行功能性測試時,只是通過輸入數據、操作數據、輸出結果來檢驗軟件系統是否能夠按照需求文檔中用戶所要求的功能正常使用[3]。而性能測試是針對軟件運行狀態和資源使用情況的測試,其關鍵度量從維度上主要分為業務指標和系統資源指標[4]。常見的性能測試方法有負載測試、壓力測試、強度測試、容量測試等[5]。雖然這些軟件檢測技術在開發、調試中有大量應用,但軟件檢驗和開發、測試并不完全相同,是一種確定了指標的驗證性測試,因此,本研究嘗試將這些軟件檢測技術應用到PACS檢驗中,完成PACS質量特性的檢驗工作。
如上文所述,PACS在注冊申報時應依據GB/T 25000.51-2016進行上市前檢驗。GB/T 25000.51-2016除了對軟件用戶文檔集進行了規范外,還對軟件的質量特性進行了要求,其中最終用戶可調用的功能、功能性限制、未授權訪問的預防措施、最大并發用戶數和效率都是上市前檢驗的重點。我們在PACS檢驗中,針對最終用戶可調用的功能、功能性限制、未授權訪問的預防措施需要應用功能測試,而最大并發用戶數、效率的測試則需要應用性能測試。本研究將按照應用的軟件檢測技術的不同,針對這5種質量特性分別敘述相應的軟件測試方案。
2.1.1 最終用戶可調用的功能
軟件可執行的臨床功能是上市前檢驗中非常重要的部分,關系到軟件是否能夠完成預期的臨床用途。對于這些功能應盡量由軟件開發者提供需求文檔,測試者按照需求文檔,根據等價類劃分測試法、邊界值測試法、錯誤推測測試法和因果圖測試法等功能測試方法設計測試用例并組織測試人員執行測試[6]。因PACS功能種類較多,每種PACS功能應用的技術和工作流差異也較大,因此,本研究無法針對具體功能逐條進行分析,僅提供常使用的功能測試方法作為參考。
2.1.2 功能性限制
功能性限制是為了保證用戶在使用軟件時不會因誤操作產生數據或時間的損失,對于PACS,功能性限制通常集中在以下幾個方面:(1)當PACS使用登錄作為預防未授權訪問的措施時,應考慮用戶名和密碼的長度與字符限制;(2)如PACS具有檢索功能,應考慮檢索時輸入信息的長度及字符類型,對于日期應考慮按實際情況進行限制,如年齡界限、某些日期的前后關系等;(3)如果軟件具有基于某種條件的功能,即在某種條件下才能執行的功能,應有相應的限制,如某些癥狀只會產生于對應性別的患者等。
對于功能性限制的檢測通常使用功能檢測中的邊界值測試法,邊界值法關注的是輸入空間邊界,用以標識測試用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等處取值進行檢測,邊界值法可以有效檢測功能性限制,尤其是輸入信息的限制。
2.1.3 未授權訪問的預防措施
隨著信息安全變得日益重要,PACS加密特性的要求也越來越高。PACS通常采用登錄系統并使用授權文件或加密狗作為加密措施。檢驗時對于登錄系統應使用功能測試軟件進行測試,使用不同組合的賬戶名和密碼(如正確的、錯誤的、缺省的、空白的及各類權限的用戶),同時在測試時應關注登錄系統的功能性限制。
2.2.1 最大并發用戶數
按標準要求,軟件在達到最大并發用戶數條件下,應能保證軟件的性能。我們在測試最大并發用戶數時,首先要獲取軟件的最大并發用戶數。并發用戶數指在同一時刻與服務器進行了交互的在線用戶數量,與在線用戶不同的是,并發用戶與服務器進行了交互,交互既可以是單向的傳輸數據也可以是雙向的傳輸數據。最大并發用戶數應在軟件開發和測試時使用壓力測試來得出,也可以由軟件開發者通過以下公式計算:

公式(1)中,C是平均的并發用戶數;n是事件發生的數量;L是事件平均長度;T指考察的時間段長度。
公式(2)則給出了最大并發用戶數的計算方法,其中,C’指并發用戶數的峰值,C就是公式(1)中得到的平均的并發用戶數。該公式的得出是假設事件的產生符合泊松分布而估算得到的。
如軟件開發者無法提供最大并發用戶數,我們可以用如下方法簡單測試軟件的最大并發用戶數(僅針對某個具體功能)。具體操作為每隔10 s加入數個vuser,同時觀察平均事件響應時間和vuser數的關系,當vuser數增加到一定數值時平均事件響應時間將迅速增大,可認為此vuser數為最大并發用戶數,見圖1。也可根據臨床應用的響應時間要求,在小于此vuser數的范圍內選取最大并發用戶數。

圖1 平均事件響應時間變化
獲取最大并發用戶數后,我們要選取一些軟件臨床功能,然后模擬多個用戶進行這些功能的操作。對于PACS可以選取軟件臨床應用中數據交互比較頻繁的功能,如登錄、檢索圖像、調取圖像等,測試環境應按照產品定義的最低配置進行。對于仿真工具我們通常使用的是性能測試工具LoadRunner 11.0。LoadRunner是軟件性能測試領域中常使用的一款軟件,可以模擬多個用戶來對軟件進行壓力測試[7-8]。我們首先設置vuser數為軟件開發者聲稱的最大并發用戶數,然后設置事件為選取的PACS的臨床功能,測試時間應按照軟件臨床應用情況設置,如軟件開發者對臨床應用時間無特殊要求則建議至少保證所有vuser工作后持續10 min。測試結果應記錄平均事件響應時間,平均事件響應時間應不超過20 s(用戶不會感到延遲),對于一些響應時間較長的特殊的功能可適當放寬要求。檢測結果可記錄最大并發用戶數和平均事件響應時間,同時記錄系統資源指標,如服務器和客戶端的CPU、內存等系統資源的使用情況。
2.2.2 效率
對于PACS效率檢測首先要選取測試效率使用的功能,首先應考慮軟件具有的時間特性方面的功能,如傳輸圖像,調取圖像和一些重要的圖像處理功能(如三維重建、某些計算分析等)所需的時間;其次應由軟件開發者明確調用或處理的數據量,數據量應盡量參考臨床應用中使用的數據量(如對于通常調用單張圖像的產品可只記錄調用一張圖像的時間),而對于一次調用一個或多個序列圖像的產品,則應按臨床應用情況使用更多測試數據;最后應由軟件開發者規定軟件的效率,即完成效率測試用功能所需要的時間。
我們對效率的檢測同樣使用了性能測試工具LoadRunner,錄制企業定義的效率測試用功能為事件,vuser設置為最大并發用戶數,測試環境按最低要求配置,測試時間應參考軟件具體使用情況持續一段時間但不宜過長(測試時間過長會等同于疲勞強度測試導致無法正確檢測軟件的效率)。最終結果應記錄平均事件響應時間,即標準要求的軟件效率,此平均事件響應時間不應超過軟件開發者規定的時間。
PACS作為一種常見的醫療器械軟件,其安全性和有效性直接關系到醫院的正常運行和患者的健康。本研究根據工作實踐中對PACS上市前檢驗的理解和體會,通過對GB/T 25000.51-2016要求的軟件產品質量特性,包括最終用戶可調用的功能、功能性限制、未授權訪問的預防措施、最大并發用戶數和效率的分析,針對PACS的特點分別提出了相應的軟件檢測技術解決方案,設計了相應的測試用例;為保證PACS產品的質量特性及其臨床應用的安全性和有效性,提供了基于功能測試和性能測試的具有可行性及適應性的軟件測試方案。這些測試方案可以供PACS開發者在軟件開發時對自己的產品進行測試,也可以為PACS上市前檢驗和文檔編寫提供部分技術支持。