韓 華
醫(yī)療器械軟件的質(zhì)量管理實(shí)踐研究
韓 華①
目的:探究并實(shí)踐醫(yī)療器械軟件質(zhì)量管理的方法,保障軟件質(zhì)量。方法:從目標(biāo)管理(采取定性和定量的質(zhì)量度量來確保軟件質(zhì)量達(dá)到預(yù)期目標(biāo))和過程管理(包括Scrum模式的開發(fā)管理、流程化的變更管理以及基于Git的版本控制)兩個(gè)維度構(gòu)建醫(yī)用X射線影像設(shè)備研制的軟件質(zhì)量管理體系,并在產(chǎn)品流程中實(shí)施質(zhì)量控制。結(jié)果:實(shí)踐醫(yī)療器械軟件質(zhì)量管理方法,軟件質(zhì)量和客戶滿意度都得到顯著提升。結(jié)論:通過兩個(gè)維度的控制和管理,達(dá)到確保和提升軟件質(zhì)量的目的。
醫(yī)療器械軟件;質(zhì)量管理;Scrum模式;Git版本控制;影像醫(yī)學(xué)設(shè)備
軟件質(zhì)量控制與應(yīng)用是現(xiàn)代醫(yī)療器械的顯著特征,因此,在評(píng)估醫(yī)療器械安全性和有效性時(shí),醫(yī)療器械的軟件成為不可忽視的部分,更是醫(yī)療器械生產(chǎn)企業(yè)質(zhì)量管理的重要環(huán)節(jié)。當(dāng)前,醫(yī)療器械軟件問題所帶來的安全隱患和事故屢見不鮮,美國(guó)食品藥品監(jiān)督管理局(Food and Drug Administration,F(xiàn)DA)醫(yī)療器械召回?cái)?shù)量從1983-2011年的4個(gè)時(shí)期內(nèi),軟件相關(guān)召回?cái)?shù)量由165次增至1122次,醫(yī)療器械召回所占比重由6%增至19%[1]。2001-2012年FDA發(fā)布的最嚴(yán)重的272例醫(yī)療器械產(chǎn)品一級(jí)召回事件中,有9例由軟件問題所造成[2]。
在醫(yī)療器械軟件生命周期內(nèi),實(shí)施健全有效的質(zhì)量管理是保證產(chǎn)品質(zhì)量的重要手段和途徑,也是取得醫(yī)療器械(或軟件)上市許可的必備條件。本研究結(jié)合萬(wàn)東實(shí)際情況,對(duì)醫(yī)療器械軟件質(zhì)量管理做一些實(shí)用性的探索和研究。
萬(wàn)東醫(yī)學(xué)影像設(shè)備正廣泛運(yùn)用于國(guó)內(nèi)外的醫(yī)療單位和研究機(jī)構(gòu)中,并于2008年實(shí)現(xiàn)了軟件產(chǎn)品的完全自主研發(fā)。軟件產(chǎn)品質(zhì)量管理從兩個(gè)維度即目標(biāo)管理和過程管理來分析。目標(biāo)管理就是想辦法讓軟件達(dá)到預(yù)期的質(zhì)量目標(biāo)(定性的和定量的);過程管理就是對(duì)軟件生命周期內(nèi)的過程進(jìn)行控制管理,從而達(dá)到確保提升軟件質(zhì)量的目的。
在軟件質(zhì)量的早期規(guī)劃中提前預(yù)設(shè)好目標(biāo),在后期的開發(fā)和維護(hù)過程中,以這些目標(biāo)為準(zhǔn)繩,調(diào)整軟件的大框架設(shè)計(jì)和代碼細(xì)節(jié)實(shí)現(xiàn)。目標(biāo)分為定性和定量。
1.1 定性的質(zhì)量度量
軟件質(zhì)量的特性包括功能正確、運(yùn)行可靠、使用方便、效率較高、容易移植以及可維護(hù)性等[3]。在設(shè)定質(zhì)量目標(biāo)時(shí)要把這些融入要求中去。萬(wàn)東已經(jīng)注冊(cè)的醫(yī)用X射線影像設(shè)備的軟件-影銳2.0的定性質(zhì)量度量標(biāo)準(zhǔn)。每個(gè)質(zhì)量要求都有權(quán)重,以此確定每一項(xiàng)的優(yōu)先級(jí)。在質(zhì)量驗(yàn)證過程中,測(cè)試人員要驗(yàn)證產(chǎn)品是否達(dá)到定性的要求(見表1)。
表1 影銳2.0的定性質(zhì)量度量
此項(xiàng)舉措針對(duì)的受眾是領(lǐng)導(dǎo)、產(chǎn)品經(jīng)理和(或)負(fù)責(zé)人、架構(gòu)師以及使用者,不過多涉及細(xì)節(jié),是從全局和大方向上把握產(chǎn)品質(zhì)量走向。
1.2 定量的質(zhì)量度量
此類度量是先預(yù)設(shè)好大量的測(cè)試細(xì)節(jié)項(xiàng)。測(cè)試人員通過測(cè)試來驗(yàn)證有多少項(xiàng)達(dá)到了預(yù)期效果(見表2)。
A=達(dá)到預(yù)期效果的測(cè)試項(xiàng)總數(shù)÷預(yù)先設(shè)置的測(cè)試項(xiàng)總數(shù)(0<A<1)。A值越大越好。每次做評(píng)估,都要參考A值來判斷可靠性和有效性。
表2 影銳2.0的測(cè)試用例
測(cè)試用例中的每個(gè)測(cè)試項(xiàng)都有很多細(xì)節(jié),預(yù)置條件和優(yōu)先級(jí)(P1-P5)。優(yōu)先級(jí)可作為最后評(píng)估時(shí)的加權(quán)值。對(duì)測(cè)試過程中的缺陷(bug)的跟蹤管理,萬(wàn)東采用了Bugzilla軟件,每個(gè)bug都有許多屬性,如產(chǎn)品、版本、硬件設(shè)備、測(cè)試人、代碼修改責(zé)任人、重要性和備注等。“重要性”屬性的可選值為:Blocker、Critical、Major、Normal、Minior、Trivial、Enhancement Blocker級(jí)別的bug最嚴(yán)重,此類bug優(yōu)先級(jí)也最高,一旦發(fā)現(xiàn)需最先解決然后最先復(fù)測(cè)。其他級(jí)別的嚴(yán)重性逐級(jí)減弱。
執(zhí)行測(cè)試時(shí)采用的測(cè)試步驟為:①自檢,程序員執(zhí)行;②他檢,模擬環(huán)境下或者與硬件連接后,測(cè)試工程師執(zhí)行;③聯(lián)調(diào),與硬件設(shè)備連接后的測(cè)試,測(cè)試工程師執(zhí)行。
采取的測(cè)試方法為(但不限于):①用戶界面測(cè)試;②冒煙測(cè)試;③隨機(jī)測(cè)試;④國(guó)際化測(cè)試(英語(yǔ)、泰語(yǔ)等);⑤安裝測(cè)試;⑥白盒測(cè)試(自檢過程中);⑦黑盒測(cè)試(他檢、聯(lián)調(diào)過程中);⑧回歸測(cè)試;⑨集成測(cè)試(在模擬環(huán)境下,與硬件設(shè)備連接后的測(cè)試,一般是采集模塊需要);⑩系統(tǒng)測(cè)試(在模擬環(huán)境下,與硬件設(shè)備連接后的測(cè)試,所有模塊適用);模擬測(cè)試(在模擬環(huán)境下執(zhí)行測(cè)試)。
特別說明模擬測(cè)試:眾所周知,醫(yī)用X射線機(jī)對(duì)人體有輻射傷害,而且射線機(jī)的研發(fā)和軟件的研發(fā)可能同時(shí)進(jìn)行,在無硬件設(shè)備的情況下,純粹的軟件質(zhì)量如何測(cè)試,此時(shí),就需要用到模擬器和(或)軟件。模擬器和(或)軟件使得測(cè)試工程師不需要硬件設(shè)備就可以做測(cè)試,不用到模擬環(huán)境調(diào)試房去做測(cè)試,即方便又更安全。一般而言,醫(yī)用設(shè)備廠商都需要實(shí)施模擬測(cè)試。模擬測(cè)試類型包括:模擬采集、模擬打印及模擬發(fā)送。
(1)模擬采集。是通過預(yù)設(shè)一些與硬件通信的接口,使得無硬件連接時(shí),軟件也可以得到圖像,以便后續(xù)測(cè)試的開展。軟件開發(fā)人員在軟件的采集模塊上做了一個(gè)修改版,模擬采集時(shí)加載修改版來實(shí)現(xiàn)模擬采集。不過,對(duì)于一些特殊的參數(shù),如機(jī)頭的旋轉(zhuǎn)角度,還是需要通過一些硬件模擬器來獲取。此外,用模擬人來代替真人做采集測(cè)試,這也是一種模擬。
(2)模擬打印。是因?yàn)榇蛴〉某杀竞芨?,一般醫(yī)院都是用膠片打印,廠商測(cè)試用膠片不現(xiàn)實(shí),所以要采用模擬軟件來做虛擬打印。醫(yī)療系統(tǒng)的軟件目前都要求符合醫(yī)學(xué)數(shù)字成像和通信(digital imaging and communication of medicine,DICOM)標(biāo)準(zhǔn),DICOM Validation Tool工具(簡(jiǎn)稱DVTK)具有驗(yàn)證打印和發(fā)送是否符合DICOM標(biāo)準(zhǔn)的功能,故萬(wàn)東采用此軟件來進(jìn)行模擬打印和模擬發(fā)送。
(3)模擬發(fā)送。是將DVTK當(dāng)成一個(gè)服務(wù)器,在軟件里設(shè)置好發(fā)送服務(wù)器的各項(xiàng)參數(shù),然后通過驗(yàn)證后即可以發(fā)送圖像給DVTK。DVTK收到結(jié)果圖像后,可以用IrfanView或ImageJ或者自主研發(fā)的圖像Viewer等工具來檢測(cè)圖像。實(shí)際當(dāng)中,醫(yī)院一般都有影像歸檔和傳輸系統(tǒng)軟件(picture archiving and communication systems,PACS),自主研發(fā)的軟件與PACS系統(tǒng)的連接機(jī)理與DVTK連接相同,DVTK執(zhí)行模擬打印或發(fā)送時(shí)的情景如圖1所示。
圖1 DICOM Validation Tool執(zhí)行模擬打印和發(fā)送界面圖
目標(biāo)管理涉及的人員涵蓋了整個(gè)項(xiàng)目團(tuán)隊(duì),從產(chǎn)品經(jīng)理、程序員及測(cè)試工程師到安裝工程師,后期還將有維修工程師。測(cè)試是其中重要的一環(huán),但目標(biāo)管理是一個(gè)多角色的團(tuán)隊(duì)工作,僅靠測(cè)試驗(yàn)證不行,需要利用整個(gè)團(tuán)隊(duì)的力量。
追求高質(zhì)量的軟件質(zhì)量是一場(chǎng)持久戰(zhàn),往往持續(xù)數(shù)年的時(shí)間,過程的管理非常重要。軟件開發(fā)過程中的風(fēng)險(xiǎn)控制,除了從源頭抓起-編制并執(zhí)行公司的編程規(guī)范(比如減少耦合、盡量采用接口及規(guī)范化命名等),還應(yīng)該在過程管理上下功夫。過程管理可以從以下方面來分析。
2.1 Scrum模式的開發(fā)過程管理
軟件開發(fā)采用的是敏捷開發(fā)Scrum模式,而Scrum是一個(gè)迭代型增量開發(fā)模式[4]開發(fā)團(tuán)隊(duì)執(zhí)行每日站會(huì),更新看板(如圖2所示),三周一個(gè)沖刺(Sprint),軟件質(zhì)量問題每日都會(huì)及時(shí)的溝通討論。
圖2 軟件開發(fā)團(tuán)隊(duì)某日看板示圖
對(duì)于Sprint,軟件組還采用“禪道”軟件[5]進(jìn)行管理,包括任務(wù)計(jì)劃、資源(人員時(shí)間)分配和實(shí)施等,其中也包括測(cè)試任務(wù)。
2.2 流程化的變更管理
變更管理是軟件質(zhì)量管理的重要環(huán)節(jié)。變更的發(fā)起人需要提交變更文檔,然后獲得領(lǐng)導(dǎo)/產(chǎn)品經(jīng)理批準(zhǔn)后,程序員才動(dòng)手實(shí)施變更。有些涉及面較大的變更,需要召集若干有關(guān)人員來討論,并進(jìn)行評(píng)估投票后再確定是否實(shí)施。所有變更文檔和代碼都需要存放好,做到一目了然。采用Git版本控制軟件做文件庫(kù),軟件發(fā)布補(bǔ)丁時(shí),詳盡的變更文檔和Git里程序員添加的備注,都是編寫產(chǎn)品readme的重要依據(jù)。
本研究軟件開發(fā)團(tuán)隊(duì)以外的其他團(tuán)隊(duì),采用了另一個(gè)專業(yè)產(chǎn)品數(shù)據(jù)管理(product data managemen,PDM)軟件做變更管理。軟件團(tuán)隊(duì)之所以特立獨(dú)行,是為了更好地適應(yīng)敏捷快速開發(fā)的需求,在流程上做了簡(jiǎn)化,結(jié)合Git軟件,即靈活又嚴(yán)謹(jǐn)規(guī)范。
2.3 基于Git的版本控制
版本控制是軟件配置管理的核心,也是軟件質(zhì)量管理的一個(gè)重要環(huán)節(jié)[6]。版本控制之所以重要,是因?yàn)檐浖_發(fā)是一個(gè)長(zhǎng)時(shí)間的工作,文檔數(shù)據(jù)會(huì)頻繁更新,而且多人參與還時(shí)常換人,為了降低諸如此類的風(fēng)險(xiǎn),必須構(gòu)建一個(gè)完善的版本控制機(jī)制。
實(shí)現(xiàn)版本控制,要配置專門的版本管理人員,除此之外也要有一個(gè)好用的工具。市面上的版本控制軟件很多,本研究曾經(jīng)用過微軟的Visual Sourcesafe(簡(jiǎn)稱VSS)做版本管理,但是發(fā)現(xiàn)Git軟件比VSS更合適。研發(fā)的軟件是給多個(gè)機(jī)型(數(shù)字X射線機(jī)DR、胃腸X射線機(jī)RF和乳腺機(jī)MG等)使用的綜合平臺(tái),每種機(jī)型的功能不同,卻使用同一套代碼,而且多人開發(fā)時(shí)常更新,VSS根本不能很好滿足需求。Git是一款免費(fèi)的、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目,其具有簽入簽出、分布存儲(chǔ)、回滾、標(biāo)簽和標(biāo)記、分支(Branch)和合并等功能[7-8]。其中的分支與合并功能非常適用萬(wàn)東的情況。
工程師在主分支上做開發(fā)(簽入簽出),在某個(gè)時(shí)刻,要給指定版本打補(bǔ)丁,此時(shí)可以從主分支上找到指定版本,生成一個(gè)新分支,取名為,分支1(如圖3所示)。在分支1上,工程師開始修改代碼,同一時(shí)期,主分支上的開發(fā)工作也在同步進(jìn)行(主分支代碼與分支1上的不同),等分支1上的修改完成并發(fā)布后,把分支1合并到主分支上,并做好版本標(biāo)記(第一個(gè)黃色圓圈,標(biāo)記為V1.05.X,X為數(shù)字1、2、3…)。類似,另一個(gè)分支-分支2上的修改完成后,也合并到主分支上,并做好版本標(biāo)記(第三個(gè)黃色圓圈,標(biāo)記為V2.05.Y,Y為數(shù)字1、2、3…)。還有一個(gè)版本標(biāo)記(第二個(gè)黃色圓圈,標(biāo)記為,如V2.06),表示此時(shí)發(fā)布了一個(gè)新的DR版本。后期要得到指定版本或補(bǔ)丁時(shí),去Git上尋找指定的標(biāo)記,如前面的V1.05.X和V2.05.Y,然后獲取相應(yīng)的代碼與數(shù)據(jù)[9]。VSS無多分支和自動(dòng)合并功能,日志記錄也不如Git強(qiáng)大,故而被Git所替代。
Git版本控制系統(tǒng)不但功能強(qiáng)大,如果再配合安裝一個(gè)TortoiseGit工具,對(duì)Git的操作還將會(huì)更加簡(jiǎn)易和直觀。此外,本研究在軟件的執(zhí)行文件的屬性中,寫入了文件版本信息和Git庫(kù)里的SHA-1值(哈希值,代碼的唯一標(biāo)識(shí)值,共40位[9]取前7位即可),如圖4所示,以便工程師能更快速精準(zhǔn)地找到歷史上的指定版本。關(guān)于此功能的實(shí)施細(xì)節(jié),可以查閱參考文獻(xiàn)[10]。
圖3 Git分支邏輯示意圖
“工欲善其事,必先利其器”,在將各種軟件質(zhì)量管理理論應(yīng)用于企業(yè)實(shí)際時(shí),除了制定流程規(guī)范,還要懂得有效利用各種資源。軟件研發(fā)團(tuán)隊(duì)結(jié)合自己的實(shí)際情況,充分利用Scrum管理模式和禪道、Git這類工具,構(gòu)建一套零成本的整合解決方案,以便實(shí)現(xiàn)高自動(dòng)化高可靠性的過程管理,并依據(jù)國(guó)家標(biāo)準(zhǔn)來規(guī)劃軟件質(zhì)量目標(biāo),最終實(shí)現(xiàn)目標(biāo)和過程的雙維度管理。實(shí)踐證明這些措施使得公司的軟件質(zhì)量和客戶滿意度都得到了顯著提升。
圖4 執(zhí)行文件屬性中的SHA-1值界面圖
[1]彭亮,于一.醫(yī)療器械的軟件相關(guān)召回分析[J].中國(guó)醫(yī)學(xué)裝備,2016,13(7):97-99.
[2]文強(qiáng),夏世韜,鐘玲,等.272例FDA醫(yī)療器械產(chǎn)品一級(jí)召回事件分析和探討[J].中國(guó)藥物警戒,2014,11(4):235-240.
[3]中華人民共和國(guó)國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫總局.GB/ T16260.1-2006/ISO/IEC9126-1:2001軟件工程產(chǎn)品質(zhì)量第1部分:質(zhì)量模型[S].中國(guó)國(guó)家標(biāo)準(zhǔn)化管理委員會(huì),2006-03-14.
[4]Pham A,Pham PV.Scrum in Action:Agile Software Project Management and Development[M]. 2011.
[5]禪道.開源版使用幫助[OL].(2016-01-18)[2017-03-20]http://www.zentao.net/book/ zentaopmshelp/38.html.
[6]劉燕秋,勉玉靜,趙文耘.軟件配置管理中版本管理技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2003(21):68-71.
[7]Chacon S,Straub B.Pro Git[M].Apress,2009.
[8]蔣鑫.Git權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2011.
[9]Lynn B.Git Magic[M].2010.
[10]韓華.借助Git實(shí)施醫(yī)療設(shè)備軟件版本控制[J].中國(guó)醫(yī)療器械信息,2016,22(7):116-118.
Research on quality management practices of software about medical apparatus and instruments/HAN Hua//China Medical Equipment,2017,14(7):130-133.
Objective: To explore and practice the method of quality management of software about medical apparatus and instruments so as to ensure the quality of software. Methods: The quality management system of software developed from medical X-ray imaging equipment was constructed through two aspects included target management (quality measurement of qualitative and quantitative were adopted to ensure the quality of software could achieve predictive target) and process management(included the development management of Scrum mode, change management of process and version control based on Git technique. Results: After this method of quality management of software about medical apparatus and instruments was implemented, the software quality and satisfaction of customer were obviously enhanced. Conclusion: Through the control and management of two aspects, the target for ensuring and enhancing quality of software was achieved.
Software of medical device; Quality management; Scrum mode; Git version control; Medical imaging device
Beijing Wandong Medical Science and Technique Company Limited, Beijing 100015, China.
韓華,女,(1977- ),碩士,工程師。北京萬(wàn)東醫(yī)療科技股份有限公司,從事軟件開發(fā)、測(cè)試、技術(shù)咨詢及管理等工作。
2017-05-03
10.3969/J.ISSN.1672-8270.2017.07.034
1672-8270(2017)07-0130-04
R-058
A
①北京萬(wàn)東醫(yī)療科技股份有限公司 北京 100015