摘要
靜態(tài)和動(dòng)態(tài)分析是滿足軟件測(cè)試合規(guī)性的關(guān)鍵,但這些過(guò)程并不容易實(shí)施。這篇文章提供了有關(guān)如何自動(dòng)化該過(guò)程的專家指南。
網(wǎng)絡(luò)安全是 FDA 的重點(diǎn)關(guān)注對(duì)象,對(duì)靜態(tài)和動(dòng)態(tài)代碼分析有具體要求。因此,工程師將這些實(shí)踐自動(dòng)化并將其集成到現(xiàn)有的開發(fā)工作流程中非常重要。
對(duì)于開發(fā)和交付醫(yī)療設(shè)備安全和安全關(guān)鍵軟件的公司來(lái)說(shuō),實(shí)施靜態(tài)和動(dòng)態(tài)代碼分析實(shí)踐,并將其部署在從相對(duì)簡(jiǎn)單的血糖儀到更復(fù)雜的系統(tǒng)(如輸液泵、患者監(jiān)護(hù)儀和肺通氣裝置)的項(xiàng)目中,是該過(guò)程不可或缺的一部分。這篇文章涵蓋了醫(yī)療設(shè)備軟件中的靜態(tài)與動(dòng)態(tài)代碼分析,并分享了實(shí)用技巧和最佳實(shí)踐。
1. 醫(yī)療器械軟件風(fēng)險(xiǎn)分析介紹
醫(yī)療器械是現(xiàn)代醫(yī)療體系的重要組成部分。世界衛(wèi)生組織(WHO)估計(jì),全球約有200萬(wàn)臺(tái)醫(yī)療設(shè)備。隨著人工智能(AI)、機(jī)器學(xué)習(xí)(ML)和物聯(lián)網(wǎng)(IoT)的發(fā)展,現(xiàn)代醫(yī)療設(shè)備的連接性比以往任何時(shí)候都更加緊密,這種情況增加了其復(fù)雜性和用例水平。
隨著軟件技術(shù)在醫(yī)療設(shè)備實(shí)踐中的使用的越來(lái)越多,醫(yī)療設(shè)備也越來(lái)越依賴軟件來(lái)執(zhí)行一些關(guān)鍵功能。例如,醫(yī)療設(shè)備可以做一些事情,例如分析醫(yī)學(xué)圖像并提供診斷支持,部署具有與臺(tái)式或移動(dòng)設(shè)備通信的傳感器的智能植入物,以及執(zhí)行機(jī)器人手術(shù)程序等。雖然醫(yī)療設(shè)備軟件在醫(yī)學(xué)領(lǐng)域取得了進(jìn)步,但它給我們留下了一些必須謹(jǐn)慎管理的風(fēng)險(xiǎn)。
醫(yī)療設(shè)備軟件風(fēng)險(xiǎn)可能來(lái)自各種來(lái)源,包括編碼錯(cuò)誤、硬件故障、用戶錯(cuò)誤等。這些風(fēng)險(xiǎn)可能會(huì)對(duì)患者、醫(yī)療保健專業(yè)人員或任何接觸該設(shè)備的人造成傷害。
除了上述風(fēng)險(xiǎn)外,這些設(shè)備在收集、存儲(chǔ)、處理和傳輸醫(yī)療數(shù)據(jù)時(shí)還存在網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。因此,像美國(guó)食品藥品監(jiān)督管理局(FDA)這樣的監(jiān)管機(jī)構(gòu)負(fù)責(zé)監(jiān)管醫(yī)療設(shè)備軟件的制造和部署。然而,要了解您的醫(yī)療設(shè)備軟件是否符合這些監(jiān)管標(biāo)準(zhǔn),在使用之前進(jìn)行徹底的醫(yī)療設(shè)備風(fēng)險(xiǎn)分析至關(guān)重要。
1.1 什么是醫(yī)療器械軟件風(fēng)險(xiǎn)分析
在討論醫(yī)療設(shè)備軟件風(fēng)險(xiǎn)分析之前,讓我們先來(lái)看看風(fēng)險(xiǎn)。在最基本的定義中,風(fēng)險(xiǎn)是損失或傷害的可能性。醫(yī)療器械軟件風(fēng)險(xiǎn)分析是測(cè)試醫(yī)療器械軟件以識(shí)別、評(píng)估和減輕相關(guān)風(fēng)險(xiǎn)的過(guò)程。它還包括使用一些風(fēng)險(xiǎn)管理基準(zhǔn)測(cè)試軟件的預(yù)期用途、功能以及對(duì)患者或操作員的潛在危害。
對(duì)于醫(yī)療器械制造商來(lái)說(shuō),風(fēng)險(xiǎn)分析是醫(yī)療器械軟件開發(fā)過(guò)程的重要組成部分。這是幫助醫(yī)療器械制造商達(dá)到監(jiān)管標(biāo)準(zhǔn)的基本要求。
醫(yī)療設(shè)備軟件風(fēng)險(xiǎn)分析的主要目標(biāo)是確保軟件安全有效,不僅用于醫(yī)療用途,還確保這些設(shè)備不易受到網(wǎng)絡(luò)攻擊并導(dǎo)致重大數(shù)據(jù)泄露。
1.2 為什么醫(yī)療器械軟件風(fēng)險(xiǎn)分析很重要
想象一下,在不檢查制動(dòng)系統(tǒng)、安全氣囊、車燈、懸架和轉(zhuǎn)向系統(tǒng)等關(guān)鍵部件的情況下,將汽車行駛在路上。忽視這些檢查可能會(huì)增加發(fā)生車禍的可能性。在不進(jìn)行風(fēng)險(xiǎn)分析的情況下部署醫(yī)療設(shè)備軟件也是如此。
醫(yī)療設(shè)備軟件風(fēng)險(xiǎn)分析對(duì)于確保患者安全、減少醫(yī)療危害和患者病歷安全漏洞的潛在發(fā)生至關(guān)重要。
此外,美國(guó)食品藥品監(jiān)督管理局等監(jiān)管機(jī)構(gòu)要求醫(yī)療器械制造商在其醫(yī)療器械軟件被批準(zhǔn)用于消費(fèi)者之前,對(duì)其進(jìn)行風(fēng)險(xiǎn)分析。不遵守監(jiān)管要求可能導(dǎo)致設(shè)備審批延遲或?qū)е抡倩亍?/p>
換言之,風(fēng)險(xiǎn)分析還可以幫助制造商確定提高設(shè)備安全性和可用性的機(jī)會(huì),從而提高銷售額和市場(chǎng)份額。
2. 醫(yī)療器械軟件風(fēng)險(xiǎn)分析的監(jiān)管框架
醫(yī)療器械軟件開發(fā)受到各種監(jiān)管機(jī)構(gòu)的監(jiān)管,如美國(guó)食品藥品監(jiān)督管理局(FDA)和歐洲醫(yī)療器械監(jiān)管局(MDR)。
作為一個(gè)監(jiān)管機(jī)構(gòu),美國(guó)食品藥品監(jiān)督管理局確保人類和獸醫(yī)藥物、生物制品、醫(yī)療器械、食品供應(yīng)、化妝品和其他產(chǎn)品的安全、高效和保障。美國(guó)食品藥品監(jiān)督管理局的使命是通過(guò)監(jiān)管和監(jiān)督這些產(chǎn)品的開發(fā)、制造、營(yíng)銷和分銷來(lái)保護(hù)和促進(jìn)公眾健康。
同樣,ISO 13485是全球公認(rèn)的標(biāo)準(zhǔn),概述了醫(yī)療器械行業(yè)的質(zhì)量要求。本標(biāo)準(zhǔn)為制造商實(shí)施商業(yè)和技術(shù)實(shí)踐提供了實(shí)用指南,以確保所有醫(yī)療設(shè)備符合法規(guī)要求和客戶需求。
通過(guò)采用ISO 13485中概述的最佳實(shí)踐和流程,制造商可以簡(jiǎn)化運(yùn)營(yíng)、降低成本、管理風(fēng)險(xiǎn)、提高生產(chǎn)力,并不斷改進(jìn)其產(chǎn)品和服務(wù)。
還有IEC 62304,這是一套國(guó)際標(biāo)準(zhǔn),為醫(yī)療器械軟件的開發(fā)、維護(hù)和風(fēng)險(xiǎn)管理提供了指南。該框架概述了必須滿足的要求,以確保醫(yī)療設(shè)備中使用的軟件是安全、可靠的,并符合可接受的標(biāo)準(zhǔn)。IEC 62304規(guī)定了軟件開發(fā)過(guò)程、文件要求驗(yàn)證和確認(rèn)程序。
這些監(jiān)管框架旨在作為對(duì)醫(yī)療器械進(jìn)行風(fēng)險(xiǎn)分析的標(biāo)準(zhǔn)。因此,遵守這些規(guī)定對(duì)于獲得醫(yī)療器械軟件開發(fā)的監(jiān)管批準(zhǔn)以及證明制造商的承諾力和交付高質(zhì)量產(chǎn)品的能力至關(guān)重要。
為了使醫(yī)療設(shè)備軟件制造商遵守這些規(guī)定,通常需要軟件測(cè)試過(guò)程來(lái)檢查編程錯(cuò)誤、違反編碼標(biāo)準(zhǔn)、違反語(yǔ)法、不安全配置等。這就是靜態(tài)分析和單元測(cè)試的用武之地。
3. 靜態(tài)分析
測(cè)試金字塔
靜態(tài)分析是一種自動(dòng)檢查是否符合眾所周知的編碼準(zhǔn)則(MISRA、CERT、AUTOSAR、JSF)并檢測(cè)潛在錯(cuò)誤(如空指針解引用、除零和緩沖區(qū)溢出)的實(shí)踐?,F(xiàn)代靜態(tài)分析工具還通過(guò)將手動(dòng)工作量減少至少30%來(lái)補(bǔ)充傳統(tǒng)的代碼審查實(shí)踐。
在大多數(shù)情況下,針對(duì)當(dāng)前代碼的靜態(tài)分析工具的第一次運(yùn)行將顯示數(shù)千個(gè)違規(guī)。一些醫(yī)療器械開發(fā)團(tuán)隊(duì)在第一次運(yùn)行時(shí)甚至遇到了20000多個(gè)違規(guī)。這可能是令人難以置信的結(jié)果。可能需要花費(fèi)需要數(shù)年時(shí)間才能修復(fù)所有問(wèn)題。以下是一些解決這些問(wèn)題的專家提示:
技巧1:編譯器是減少違規(guī)的”好幫手”
有紀(jì)律的開發(fā)團(tuán)隊(duì)通常使用–Wall和–Werror(在GCC中)或/Wall和/WX(在Visual Studio中)進(jìn)行編譯,或在其他編譯器中使用類似選項(xiàng)進(jìn)行編譯。修復(fù)編譯器警告是為靜態(tài)分析執(zhí)行做準(zhǔn)備的一種簡(jiǎn)單并且極具價(jià)值的方法。以“paranoid”模式查看編譯器的輸出可以減少靜態(tài)分析違規(guī)的總體數(shù)量。
雖然修復(fù)了所有編譯器警告是一件好事,但在許多項(xiàng)目中,僅使用編譯器是不夠的,而且出于合規(guī)性原因,僅僅使用編譯器檢查是絕對(duì)不夠的。
在最大化利用編譯器的檢查能力后,再使用靜態(tài)分析工具,這些工具可以更深入地挖掘代碼,并為您提供更多提示。
技巧2:在開發(fā)過(guò)程早期采用靜態(tài)分析
如果你目前正在開發(fā)醫(yī)療設(shè)備軟件,那么你應(yīng)該準(zhǔn)備好解決自動(dòng)靜態(tài)代碼分析實(shí)踐的問(wèn)題。靜態(tài)分析幾乎可以保證在內(nèi)部/外部審計(jì)階段,甚至上市前提交時(shí)成為保證軟件質(zhì)量的關(guān)鍵證據(jù)。
關(guān)鍵是以這樣一種方式部署工具,既要保證在提高質(zhì)量的同時(shí),開發(fā)速度也不會(huì)降低。這是一種平衡行為,需要實(shí)踐和專業(yè)知識(shí)。您可能會(huì)發(fā)現(xiàn),在報(bào)告中找到錯(cuò)誤的根本原因的同時(shí),發(fā)現(xiàn)其中許多錯(cuò)誤其實(shí)很容易修復(fù)。
靜態(tài)分析報(bào)告中的試?yán)?/strong>
以下是靜態(tài)分析報(bào)告中的幾個(gè)例子,這些例子很容易用簡(jiǎn)單的腳本或經(jīng)過(guò)簡(jiǎn)單學(xué)習(xí)的工程師來(lái)修復(fù)。
1. 在析構(gòu)函數(shù)中調(diào)用clear函數(shù)
析構(gòu)函數(shù)“~CTitle”不應(yīng)調(diào)用不在try上下文中的函數(shù)“clear_”中
析構(gòu)函數(shù)“~THelper”不應(yīng)調(diào)用不在try上下文中的函數(shù)“removeModule”中
2. 檢查是否為 NULL
“pMP” 可能為NULL
“((NPage*)this)->pSysCfg_” 可能為NULL
3.可能在錯(cuò)誤的代碼部分進(jìn)行聲明
數(shù)據(jù)成員“D_FILE_1”聲明為“public”
4.非常量參數(shù)
字符串“MCollection”被傳遞給函數(shù)“FixedBlockHeap”作為指向非常量對(duì)象的指針
用戶可以將許多現(xiàn)有代碼的違規(guī)結(jié)果放在一起,并在非開發(fā)時(shí)間段進(jìn)行處理。然而,在開發(fā)代碼時(shí),不要引入新的違規(guī)行為(也稱為技術(shù)債務(wù)),這一點(diǎn)很重要。例如,Parasoft C/C++test 具有允許工程師過(guò)濾噪音違規(guī)并專注于修復(fù)最近最關(guān)鍵的靜態(tài)分析違規(guī)的功能。
這一篇文章我們簡(jiǎn)單介紹了醫(yī)療設(shè)備軟件關(guān)于風(fēng)險(xiǎn)方面的相關(guān)背景,以及兩個(gè)技巧,下文我們繼續(xù)深入了解剩下的3個(gè)技巧,以及如何管理風(fēng)險(xiǎn)。
審核編輯:湯梓紅
-
醫(yī)療器械
+關(guān)注
關(guān)注
19文章
805瀏覽量
51380 -
醫(yī)療設(shè)備
+關(guān)注
關(guān)注
12文章
944瀏覽量
66810 -
動(dòng)態(tài)分析
+關(guān)注
關(guān)注
1文章
19瀏覽量
7263 -
靜態(tài)分析
+關(guān)注
關(guān)注
1文章
39瀏覽量
3872
原文標(biāo)題:醫(yī)療設(shè)備軟件靜態(tài)和動(dòng)態(tài)分析的 5 個(gè)技巧(上)
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論