劉迪
北京市醫(yī)療器械檢驗(yàn)所 (北京 101111)
醫(yī)療影像傳輸系統(tǒng)(picture archiving and communications systems,PACS)是指以醫(yī)學(xué)數(shù)字成像通信標(biāo)準(zhǔn)(digital imaging and communication in medicine, DICOM)[1]的國際標(biāo)準(zhǔn)設(shè)計(jì),以高性能服務(wù)器、網(wǎng)絡(luò)及存儲(chǔ)設(shè)備構(gòu)成硬件支持平臺(tái),以大型關(guān)系型數(shù)據(jù)庫作為數(shù)據(jù)和圖像的存儲(chǔ)管理工具,以醫(yī)療影像的采集、傳輸、存儲(chǔ)和診斷為核心,集影像采集傳輸與存儲(chǔ)管理、影像診斷查詢與報(bào)告管理、綜合信息管理等應(yīng)用于一體的綜合應(yīng)用系統(tǒng)。為輔助和集成各類影像類醫(yī)療器械,PACS在各醫(yī)院通常都有應(yīng)用,是一種常見的醫(yī)療器械軟件。
按照國內(nèi)注冊(cè)法規(guī)要求,PACS在注冊(cè)申報(bào)時(shí)應(yīng)依據(jù)GB/T 25000.51-2016[2]進(jìn)行上市前檢驗(yàn)。上市前檢驗(yàn)測(cè)試技術(shù)的選擇和測(cè)試用例的設(shè)計(jì)都會(huì)直接影響檢驗(yàn)工作的效率和檢驗(yàn)結(jié)果。因此,本研究根據(jù)GB/T 25000.51-2016中需要測(cè)試的質(zhì)量特性,結(jié)合日常工作中接觸的PACS產(chǎn)品的特點(diǎn)提出相應(yīng)的軟件測(cè)試方案。
軟件檢測(cè)技術(shù)指軟件開發(fā)和調(diào)試時(shí)經(jīng)常使用的一些測(cè)試技術(shù),通常分為兩大類:功能測(cè)試和性能測(cè)試。其中功能測(cè)試是在測(cè)試過程中,把程序比作一個(gè)看不清、打不開的黑匣子,在完全不考慮程序的內(nèi)部情況的前提下,測(cè)試人員只對(duì)程序的外部進(jìn)行功能性測(cè)試。在進(jìn)行功能性測(cè)試時(shí),只是通過輸入數(shù)據(jù)、操作數(shù)據(jù)、輸出結(jié)果來檢驗(yàn)軟件系統(tǒng)是否能夠按照需求文檔中用戶所要求的功能正常使用[3]。而性能測(cè)試是針對(duì)軟件運(yùn)行狀態(tài)和資源使用情況的測(cè)試,其關(guān)鍵度量從維度上主要分為業(yè)務(wù)指標(biāo)和系統(tǒng)資源指標(biāo)[4]。常見的性能測(cè)試方法有負(fù)載測(cè)試、壓力測(cè)試、強(qiáng)度測(cè)試、容量測(cè)試等[5]。雖然這些軟件檢測(cè)技術(shù)在開發(fā)、調(diào)試中有大量應(yīng)用,但軟件檢驗(yàn)和開發(fā)、測(cè)試并不完全相同,是一種確定了指標(biāo)的驗(yàn)證性測(cè)試,因此,本研究嘗試將這些軟件檢測(cè)技術(shù)應(yīng)用到PACS檢驗(yàn)中,完成PACS質(zhì)量特性的檢驗(yàn)工作。
如上文所述,PACS在注冊(cè)申報(bào)時(shí)應(yīng)依據(jù)GB/T 25000.51-2016進(jìn)行上市前檢驗(yàn)。GB/T 25000.51-2016除了對(duì)軟件用戶文檔集進(jìn)行了規(guī)范外,還對(duì)軟件的質(zhì)量特性進(jìn)行了要求,其中最終用戶可調(diào)用的功能、功能性限制、未授權(quán)訪問的預(yù)防措施、最大并發(fā)用戶數(shù)和效率都是上市前檢驗(yàn)的重點(diǎn)。我們?cè)赑ACS檢驗(yàn)中,針對(duì)最終用戶可調(diào)用的功能、功能性限制、未授權(quán)訪問的預(yù)防措施需要應(yīng)用功能測(cè)試,而最大并發(fā)用戶數(shù)、效率的測(cè)試則需要應(yīng)用性能測(cè)試。本研究將按照應(yīng)用的軟件檢測(cè)技術(shù)的不同,針對(duì)這5種質(zhì)量特性分別敘述相應(yīng)的軟件測(cè)試方案。
2.1.1 最終用戶可調(diào)用的功能
軟件可執(zhí)行的臨床功能是上市前檢驗(yàn)中非常重要的部分,關(guān)系到軟件是否能夠完成預(yù)期的臨床用途。對(duì)于這些功能應(yīng)盡量由軟件開發(fā)者提供需求文檔,測(cè)試者按照需求文檔,根據(jù)等價(jià)類劃分測(cè)試法、邊界值測(cè)試法、錯(cuò)誤推測(cè)測(cè)試法和因果圖測(cè)試法等功能測(cè)試方法設(shè)計(jì)測(cè)試用例并組織測(cè)試人員執(zhí)行測(cè)試[6]。因PACS功能種類較多,每種PACS功能應(yīng)用的技術(shù)和工作流差異也較大,因此,本研究無法針對(duì)具體功能逐條進(jìn)行分析,僅提供常使用的功能測(cè)試方法作為參考。
2.1.2 功能性限制
功能性限制是為了保證用戶在使用軟件時(shí)不會(huì)因誤操作產(chǎn)生數(shù)據(jù)或時(shí)間的損失,對(duì)于PACS,功能性限制通常集中在以下幾個(gè)方面:(1)當(dāng)PACS使用登錄作為預(yù)防未授權(quán)訪問的措施時(shí),應(yīng)考慮用戶名和密碼的長度與字符限制;(2)如PACS具有檢索功能,應(yīng)考慮檢索時(shí)輸入信息的長度及字符類型,對(duì)于日期應(yīng)考慮按實(shí)際情況進(jìn)行限制,如年齡界限、某些日期的前后關(guān)系等;(3)如果軟件具有基于某種條件的功能,即在某種條件下才能執(zhí)行的功能,應(yīng)有相應(yīng)的限制,如某些癥狀只會(huì)產(chǎn)生于對(duì)應(yīng)性別的患者等。
對(duì)于功能性限制的檢測(cè)通常使用功能檢測(cè)中的邊界值測(cè)試法,邊界值法關(guān)注的是輸入空間邊界,用以標(biāo)識(shí)測(cè)試用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等處取值進(jìn)行檢測(cè),邊界值法可以有效檢測(cè)功能性限制,尤其是輸入信息的限制。
2.1.3 未授權(quán)訪問的預(yù)防措施
隨著信息安全變得日益重要,PACS加密特性的要求也越來越高。PACS通常采用登錄系統(tǒng)并使用授權(quán)文件或加密狗作為加密措施。檢驗(yàn)時(shí)對(duì)于登錄系統(tǒng)應(yīng)使用功能測(cè)試軟件進(jìn)行測(cè)試,使用不同組合的賬戶名和密碼(如正確的、錯(cuò)誤的、缺省的、空白的及各類權(quán)限的用戶),同時(shí)在測(cè)試時(shí)應(yīng)關(guān)注登錄系統(tǒng)的功能性限制。
2.2.1 最大并發(fā)用戶數(shù)
按標(biāo)準(zhǔn)要求,軟件在達(dá)到最大并發(fā)用戶數(shù)條件下,應(yīng)能保證軟件的性能。我們?cè)跍y(cè)試最大并發(fā)用戶數(shù)時(shí),首先要獲取軟件的最大并發(fā)用戶數(shù)。并發(fā)用戶數(shù)指在同一時(shí)刻與服務(wù)器進(jìn)行了交互的在線用戶數(shù)量,與在線用戶不同的是,并發(fā)用戶與服務(wù)器進(jìn)行了交互,交互既可以是單向的傳輸數(shù)據(jù)也可以是雙向的傳輸數(shù)據(jù)。最大并發(fā)用戶數(shù)應(yīng)在軟件開發(fā)和測(cè)試時(shí)使用壓力測(cè)試來得出,也可以由軟件開發(fā)者通過以下公式計(jì)算:
公式(1)中,C是平均的并發(fā)用戶數(shù);n是事件發(fā)生的數(shù)量;L是事件平均長度;T指考察的時(shí)間段長度。
公式(2)則給出了最大并發(fā)用戶數(shù)的計(jì)算方法,其中,C’指并發(fā)用戶數(shù)的峰值,C就是公式(1)中得到的平均的并發(fā)用戶數(shù)。該公式的得出是假設(shè)事件的產(chǎn)生符合泊松分布而估算得到的。
如軟件開發(fā)者無法提供最大并發(fā)用戶數(shù),我們可以用如下方法簡單測(cè)試軟件的最大并發(fā)用戶數(shù)(僅針對(duì)某個(gè)具體功能)。具體操作為每隔10 s加入數(shù)個(gè)vuser,同時(shí)觀察平均事件響應(yīng)時(shí)間和vuser數(shù)的關(guān)系,當(dāng)vuser數(shù)增加到一定數(shù)值時(shí)平均事件響應(yīng)時(shí)間將迅速增大,可認(rèn)為此vuser數(shù)為最大并發(fā)用戶數(shù),見圖1。也可根據(jù)臨床應(yīng)用的響應(yīng)時(shí)間要求,在小于此vuser數(shù)的范圍內(nèi)選取最大并發(fā)用戶數(shù)。
圖1 平均事件響應(yīng)時(shí)間變化
獲取最大并發(fā)用戶數(shù)后,我們要選取一些軟件臨床功能,然后模擬多個(gè)用戶進(jìn)行這些功能的操作。對(duì)于PACS可以選取軟件臨床應(yīng)用中數(shù)據(jù)交互比較頻繁的功能,如登錄、檢索圖像、調(diào)取圖像等,測(cè)試環(huán)境應(yīng)按照產(chǎn)品定義的最低配置進(jìn)行。對(duì)于仿真工具我們通常使用的是性能測(cè)試工具LoadRunner 11.0。LoadRunner是軟件性能測(cè)試領(lǐng)域中常使用的一款軟件,可以模擬多個(gè)用戶來對(duì)軟件進(jìn)行壓力測(cè)試[7-8]。我們首先設(shè)置vuser數(shù)為軟件開發(fā)者聲稱的最大并發(fā)用戶數(shù),然后設(shè)置事件為選取的PACS的臨床功能,測(cè)試時(shí)間應(yīng)按照軟件臨床應(yīng)用情況設(shè)置,如軟件開發(fā)者對(duì)臨床應(yīng)用時(shí)間無特殊要求則建議至少保證所有vuser工作后持續(xù)10 min。測(cè)試結(jié)果應(yīng)記錄平均事件響應(yīng)時(shí)間,平均事件響應(yīng)時(shí)間應(yīng)不超過20 s(用戶不會(huì)感到延遲),對(duì)于一些響應(yīng)時(shí)間較長的特殊的功能可適當(dāng)放寬要求。檢測(cè)結(jié)果可記錄最大并發(fā)用戶數(shù)和平均事件響應(yīng)時(shí)間,同時(shí)記錄系統(tǒng)資源指標(biāo),如服務(wù)器和客戶端的CPU、內(nèi)存等系統(tǒng)資源的使用情況。
2.2.2 效率
對(duì)于PACS效率檢測(cè)首先要選取測(cè)試效率使用的功能,首先應(yīng)考慮軟件具有的時(shí)間特性方面的功能,如傳輸圖像,調(diào)取圖像和一些重要的圖像處理功能(如三維重建、某些計(jì)算分析等)所需的時(shí)間;其次應(yīng)由軟件開發(fā)者明確調(diào)用或處理的數(shù)據(jù)量,數(shù)據(jù)量應(yīng)盡量參考臨床應(yīng)用中使用的數(shù)據(jù)量(如對(duì)于通常調(diào)用單張圖像的產(chǎn)品可只記錄調(diào)用一張圖像的時(shí)間),而對(duì)于一次調(diào)用一個(gè)或多個(gè)序列圖像的產(chǎn)品,則應(yīng)按臨床應(yīng)用情況使用更多測(cè)試數(shù)據(jù);最后應(yīng)由軟件開發(fā)者規(guī)定軟件的效率,即完成效率測(cè)試用功能所需要的時(shí)間。
我們對(duì)效率的檢測(cè)同樣使用了性能測(cè)試工具LoadRunner,錄制企業(yè)定義的效率測(cè)試用功能為事件,vuser設(shè)置為最大并發(fā)用戶數(shù),測(cè)試環(huán)境按最低要求配置,測(cè)試時(shí)間應(yīng)參考軟件具體使用情況持續(xù)一段時(shí)間但不宜過長(測(cè)試時(shí)間過長會(huì)等同于疲勞強(qiáng)度測(cè)試導(dǎo)致無法正確檢測(cè)軟件的效率)。最終結(jié)果應(yīng)記錄平均事件響應(yīng)時(shí)間,即標(biāo)準(zhǔn)要求的軟件效率,此平均事件響應(yīng)時(shí)間不應(yīng)超過軟件開發(fā)者規(guī)定的時(shí)間。
PACS作為一種常見的醫(yī)療器械軟件,其安全性和有效性直接關(guān)系到醫(yī)院的正常運(yùn)行和患者的健康。本研究根據(jù)工作實(shí)踐中對(duì)PACS上市前檢驗(yàn)的理解和體會(huì),通過對(duì)GB/T 25000.51-2016要求的軟件產(chǎn)品質(zhì)量特性,包括最終用戶可調(diào)用的功能、功能性限制、未授權(quán)訪問的預(yù)防措施、最大并發(fā)用戶數(shù)和效率的分析,針對(duì)PACS的特點(diǎn)分別提出了相應(yīng)的軟件檢測(cè)技術(shù)解決方案,設(shè)計(jì)了相應(yīng)的測(cè)試用例;為保證PACS產(chǎn)品的質(zhì)量特性及其臨床應(yīng)用的安全性和有效性,提供了基于功能測(cè)試和性能測(cè)試的具有可行性及適應(yīng)性的軟件測(cè)試方案。這些測(cè)試方案可以供PACS開發(fā)者在軟件開發(fā)時(shí)對(duì)自己的產(chǎn)品進(jìn)行測(cè)試,也可以為PACS上市前檢驗(yàn)和文檔編寫提供部分技術(shù)支持。