林 郁 曹 琦 郭天文 陳曉杜
(龍巖煙草工業有限責任公司 福建 龍巖 364000)
FMEA在A企業軟件質量改進中的應用
林 郁 曹 琦 郭天文 陳曉杜
(龍巖煙草工業有限責任公司 福建 龍巖 364000)
在傳統的軟件測試中,重點在于測試軟件的業務功能是否實現,系統的性能是否符合要求,而常忽略了軟件系統失效情況下導致的產品質量風險。為杜絕此類風險,需充分挖掘軟件的各類隱含需求,從而加強對軟件缺陷的管理。本文通過對一個偶發的軟件失效導致的質量問題事故進行思考,提出將潛在失效模式FMEA應用于軟件開發測試,預防軟件失效風險,確保產品質量的方法。實際應用案例表明使用FMEA后,A企業因軟件質量失效模式引起的產品質量隱患改進效果顯著。
FMEA;軟件質量;隱含需求
2017年4月某企業生產過程中A牌號中間物料被誤做B牌號中間物料進行包裝生產,引發質量事故。該事故發生的原因是該企業自動化物流系統中間物料箱的RFID芯片上一批次的信息未清除,而新批次的信息未正確寫入,導致箱內實際物料與系統的物料信息不匹配,從而引發用料錯誤的質量事故。此次事故中,物流系統軟件在過去數年中運行正常,系統的穩定性、效率等性能符合要求。但一次偶發的事故卻暴露了設計時邏輯中存在的漏洞,RFID信息采用覆蓋寫入的形式,而非使用后擦除,使用時寫入的方式。雖是單一事件,但也凸顯出過去設計中重點關注業務功能實現和系統性能的要求,而忽略了系統軟件失效模式下對產品所造成的質量風險。因此如果在軟件的設計中融入失效模式及其影響分析,實現基于產品質量的軟件風險把控,是提高軟件質量一個值得思考的問題。
ISO9126的信息技術標準中對軟件質量的定義是:與軟件產品滿足明確或隱含需求的能力有關的特征和特性的總和[1,2]。這些特征包括可靠性、可用性、易用性、效率、維護性和可移植性[3]。該定義對軟件質量不僅提出滿足明確需求,即各項業務需求,也強調了有隱含需求,即各項業務需求以外確保軟件和產品質量的需求。這些隱含的需求可能是一些連業務需求方也無法明確提出的需求,但這些隱含的需求可能使軟件在特定條件下出現失效問題,導致一些不可預測的質量風險。
為了發掘隱含需求,降低軟件失效的風險,軟件領域從上世紀80年代開始,一直努力探索軟件過程控制和質量管理問題。先后建立了CMM[4]、CMMI[5]和 ISO9000[6]等質量管理標準,同時國內外學者也建立了故障樹分析[7]、PDCA[8]軟件質量改進等方法。在眾多方法中,潛在的失效模式及后果分析 (Failure Mode and Effects Analysis,簡稱
FMEA)為近年來提出的一種確定潛在失效模式及其原因的分析方法,常用于產品設計或生產工藝真正實現之前發現產品的弱點[9~10],同樣適合于發現軟件中存在的缺陷[11]。
FMEA是一種分析系統中每一產品所有可能產生的故障模式及其對系統造成的所有可能影響,并按每一個故障模式的嚴重程度,檢測難易程度以及發生頻度予以分類的一種歸納分析方法[12]。FMEA的核心在于“事前的預防措施”,它通過使用系統分析、頭腦風暴等方法對產品的設計、開發、生產等過程進行失效模式及影響分析,幫助設計人員發現軟件產品中潛在的質量問題 (或稱為失效模式),分析、評價這些潛在的質量問題發生的可能性及其帶來的影響和嚴重程度,以便及時采取有效的預防措施,從而降低產品投入市場后的失效風險。
FMEA質量管理模型如有如下特點[11]:
1.提出了質量目標,以確保質量為軟件產品質量的改進目標。
2.結合了過程改進和風險管理的思想,FMEA可以評估過程的失效,及時采取措施防止它的發生;并通過持續的改進,提升產品質量。
3.可以融合各種常見質量管理工具,如控制圖、柱狀圖、帕累托圖等技術。
4.重視有經驗的人員參與,如通過頭腦風暴法,讓大家的經驗得到共享,提升FMEA質量管理效果。
鑒于FMEA在軟件質量改進中“防范于未然”的良好特性,A企業以FMEA為指導思想,在每次信息系統的開發測試或者后期使用過程中的隱患排查中,采用FMEA方法進行軟件風險的識別、評估和優化,確保軟件的隱形需求得到充分的滿足。實施流程如下圖1所示。

圖1 基于FMEA軟件質量風險控制流程圖Fig.1 flow chart of software quality risk control based on FMEA
實現過程如下:
首先進行風險識別。以軟件使用所保障的生產產品質量為目標,由軟件的需求發起方即應用部門識別確定失效模式,形成失效模式清單,并建立風險維度評價標準及等級判定標準,形成風險等級判定標準和風險維度評價標準;
其次進行風險評估。組織產品質量管理員、工藝員、操作員、系統維護員等各方面的相關人員,展開頭腦風暴,對各種正常、不正常輸入情況下系統可能出現的不同失效模式及其后果進行假設模擬,從而收集足夠的不良率數據,形成不良率統計表和FMEA分析表,并對信息系統在這些不同失效模式下的運行情況進行評估,形成管理評審材料。
最后進行風險優化。信息系統的相關開發維護人員根據風險評估結果風險等級判定和維度評價標準確認出重要風險項目,形成風險優化措施實施計劃,并對系統進行相應的程序優化。
按以上步驟執行一次乃至多次,從而確保盡可能多的發掘軟件質量風險點,降低因軟件失效所引發的質量事故發生的可能。
該方法的重點在于風險評估階段,該階段需要讓足夠多的相關人員,在脫離軟件,更多考慮產品質量的情況下,通過頭腦風暴等各種方法,收集各種正常業務需求和非正常流程下可能發生的不同輸入,從而確保能識別出各類不同失效模式。
以引言中所發生的軟件失效導致的產品質量問題為例,為杜絕此類事件再次發生,A企業對相關軟件采用FMEA方法通過人機料法環等因素進行了一次軟件質量隱患大排查。
A公司對在制品的存放采用的是基于物料批次的平庫箱式自動存儲出入庫的倉庫物流系統。通過RFID系統全程對在制品的牌號、批次和重量等信息進行跟蹤傳遞,并在信息傳遞交互的過程中,對信息進行核準確認。本次隱患排查,以信息傳遞為重點,組織工藝員、操作工、電工、軟件維護員等相關人員,結合軟件在過去運行中出現的問題,采用頭腦風暴,進行風險隱患點查找,發現潛在失效模式,并對各失效模式的嚴重性、發生概率以及難檢度進行打分,得出對應的風險順序數列表,結果如下表1和表2。

表1 物流系統出入庫環節的FMEATab.1 FMEA of inbound and outbound logistics system

表2 潛在失效模式的RPN計算Tab.2 RPN calculation of potential failure modes

表3 潛在失效模式的改進措施Tab.3 improvement measures for potential failure modes
以上對策在2017年5月實施后,物流信息化系統在2017年6到8月三個月中因軟件故障導致生產影響2次,共計2.5小時,而改進前的2017年2到4月共計因軟件故障導致影響8次共計16.34小時。改進效果明顯。此外在改進三個月后,重新對原各潛在失效模式的發生概率和難檢度進行評價,結果如下表4所示。對比結果表明,改進后的各失效模式RPN值均已小于100,顯著優于改進前RPN,潛在失效模式的可能影響被大幅度降低。

表4 改進前后RPN對比Table.4 RPN contrast before and after improvement
本文通過對一個偶發的軟件失效導致的質量問題事故進行思考,發現目前軟件開發過程中重視業務功能需求,而忽視了產品質量保證的隱形需求。為確保軟件的產品質量保障能力,降低失效模式下對產品質量導致的不良影響,提出在將潛在失效模式FMEA應用于軟件開發,預防軟件失效風險。并給出了A企業基于FMEA的軟件質量風險控制方法。最后在該方法的指導下,A企業對引言中發生失效模式的物流軟件進行了一次全面的隱患排查,并對RPN大于100的潛在失效模式進行改進,從而極大程度提高了物流系統軟件的穩定性。
[1] Antonia Stefani,Michalis Xenos.Weight- mode ling of B2C system quality[J].Computer Standards and Interfaces.2011,33(4):411-421.
[2] DIMITRIS STAVRINOUDIS,MICHALIS XENOS,PAVLOS PEPPAS et al.Early Estimation of Users'Perception of Software Quality [J].Software Quality Journal,2005,13(2):155 -175.
[3] P.S.Grover,Rajesh Kumar,Arun Sharma et al.Few Useful Considerations for Maintaining Software Components and Component-Based Systems[J].Software engineering notes:ACM SIGSOFT,2007,32(5):44-0
[4]王寧,邱緒東.一種基于關鍵因素劃分的CMM軟件過程改進模型研究[J].大連理工大學學報,2010,50(3):432-437.
[5] Mora,M.O'Connor,R.V.Raisinghani,M.et al.Design,build and evaluation of an ontology-based kms for supporting cmmi-dev understanding:Benefits and limitations[J].International journal of software engineering and knowledge engineering,2013,23(7):999-1032.
[6]王青.基于ISO9000的軟件質量保證模型 [J].軟件學報,2001,12(12):1837-1842.
[7]胡濤.軟件故障樹分析技術與應用研究[D].北京工業大學,2009.
[8]武占春,王青,李明樹等.一種基于PDCA的軟件過程控制與改進模型[J].軟件學報,2006,17(8):1669-1680.
[9]奚立峰,徐剛.FMEA在過程管理中的應用[J].工業工程與管理,2002,7(1):37-39.
[10]戴云徽,韓之俊,朱海榮等.故障模式及影響分析 (FMEA)研究進展[J].中國質量,2007,(10):23-26.
[11]彭國明.基于FMEA模型的軟件質量管理研究[D].南京郵電大學,2012.
[12]溫秀琴.FMEA在產品可靠性改進中的應用[J].電子科技,2011,24(05):89-90
曹琦