牛劍峰, 白永勝, 郭丁和
(1.北京天地瑪珂電液控制系統有限公司, 北京 100013; 2.陽煤集團華越機械有限公司,
山西 陽泉 045000; 3.西安交通大學 數學與統計學院, 陜西 西安 710049)
?
液壓支架電液控制系統軟件缺陷管理
牛劍峰1, 白永勝2, 郭丁和3
(1.北京天地瑪珂電液控制系統有限公司, 北京 100013; 2.陽煤集團華越機械有限公司,
山西 陽泉 045000; 3.西安交通大學 數學與統計學院, 陜西 西安 710049)
針對液壓支架電液控制系統軟件缺陷問題,從軟件測試方法入手,分析了液壓支架電液控制系統軟件結構特點,構建了軟件缺陷管理框架,確定了軟件測試方案,對軟件缺陷進行了分類,設計了軟件缺陷數據庫的數據結構及軟件缺陷管理流程,進而對軟件缺陷進行分析。實踐表明,通過液壓支架電液控制系統軟件缺陷管理,提高了軟件質量和開發效率。
液壓支架; 電液控制系統; 軟件缺陷管理
(1.Beijing Tiandi-Marco Electronic-Hydraulic Control System Co., Ltd., Beijing 100013, China;2.Yangquan China and Vietnam Machinery Co., Ltd., Yangquan 045000, China;3.School of Mathematics and Statistics, Xi'an Jiaotong University, Xi'an 710049, China)
當前中小型企業里的嵌入式軟件產品開發過程中,在缺陷信息的管理和控制方面大多處于混亂狀態[1],缺乏對版本缺陷的有效跟蹤與控制。據統計,大約80%可避免的重復勞動源自于20%的缺陷,90%的軟件停工期最多來自于10%的缺陷,有針對性的評審能比無導向性的評審多發現35%的缺陷。軟件開發存在效率低、質量差、成本高等問題,產品應用存在可靠性與安全性問題。
軟件缺陷[2-5]是指軟件產品對預期屬性的偏離,是軟件產品中不滿足指定要求的成分,是軟件的固有屬性。從產品內部看,缺陷是軟件產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。
液壓支架電液控制系統軟件是對可靠性、安全性要求很高的軟件。隨著液壓支架電液控制系統的不斷推廣應用,系統應用范圍不斷擴展,涉及到各種不同的架型,功能不斷擴展,系統軟件的復雜程度不斷提升。由于軟件開發人員的編程技術和對項目需求的理解不到位,經常出現軟件不能滿足用戶需求的情況,甚至發生設備與人身傷害事故,軟件質量面臨著嚴重的挑戰。
軟件缺陷是軟件生命周期[6-7]中重要的過程產物,軟件缺陷包括軟件編程過程中產生的錯誤、對項目需求理解錯誤及對需求滿足度不足等。軟件缺陷反映了軟件開發過程的薄弱環節,是軟件開發組織提高其開發水平和過程能力的重要依據。通過缺陷分析,能夠提高對開發能力和過程管理能力的正確認識,有利于開展過程改進工作。
在軟件開發過程中,將軟件缺陷數據進行分類整理并保存到缺陷數據庫中,通過分析軟件開發過程中的薄弱環節,對軟件設計、編程、測試過程的有效性、缺陷分布特征、缺陷修復效率等進行評價與改進,進而提出有效的缺陷預防改進措施,有助于提高軟件產品整體質量和軟件開發效率,降低軟件開發成本。
在軟件缺陷生命管理中,可提取軟件生命周期中各個階段(需求、編程、測試、修改、發布、使用問題反饋)的工作內容、時間節點和完成人等信息,并保存到軟件生命周期管理數據庫(如圖1所示)。通過計算軟件測試被打回和再次提交的時間可以了解軟件修復時間,通過軟件測試打回次數可以了解項目軟件開發的小版本數和軟件修復率,通過現場用戶提交軟件問題報告時間和軟件再次發布的時間可以計算出軟件修復時間。將軟件生命周期中有關軟件缺陷的數據信息加以整理、分析、統計,可以形成軟件缺陷密度、軟件修復率、軟件修復時間、軟件發布前的缺陷消除率,形成軟件缺陷分布圖指標,可以對整個軟件開發質量進行綜合評價。

圖1 軟件缺陷生命管理周期流程
2.1 液壓支架電液控制系統軟件結構
液壓支架電液控制系統軟件采用模塊化設計,由3層結構構成,如圖2所示。底層是建立在物理層電路板驅動層級的庫函數和數學模型庫,其功能是實現電路的基本功能轉換,提供基本數學模型處理功能;中間層為功能模塊層,通過調用底層庫函數實現單一的軟件功能;頂層為應用層,通過調用不同組合的功能模塊,實現應用軟件的各項功能。

圖2 液壓支架電液控制系統軟件結構
2.2 軟件缺陷管理框架
液壓支架電液控制系統軟件缺陷管理框架建立在系統軟件結構上。將每一個軟件缺陷定位在一個確定的功能模塊上,通過軟件的3層結構對軟件缺陷進行分析,確定每個功能的缺陷密度,再通過功能、功能模塊和庫函數的引用關系,深度挖掘潛在的軟件錯誤,將軟件的3層結構以數據庫形式存儲,建立功能、功能模塊、庫函數3個層次的關系數據庫,如圖3所示。

圖3 軟件功能、功能模塊、庫函數之間的關系
2.3 軟件測試方案
為了提高軟件測試及軟件缺陷探測效率,最大限度地發現可能存在的軟件缺陷,結合液壓支架電液控制系統軟件的結構特點,采用白盒法與黑盒法相結合的方式進行軟件測試。黑盒法注重功能性檢測,依據用戶需求,按照系統功能逐項進行測試;白盒法依據軟件內部結構進行測試。
在進行軟件缺陷修復測試時,按照白盒法依據軟件回歸測試方法,對修復軟件缺陷相關的功能模塊進行測試。圖3表明了某項軟件功能的相關功能模塊,在修改該項功能時,有可能引起其他相關聯動功能失效,在進行軟件修復測試時,只針對這些模塊進行即可,這樣大大減少了軟件缺陷修復測試的時間,提高了軟件測試的效率。
2.4 軟件缺陷分類
基于軟件缺陷的嚴重程度[8-9],將軟件缺陷分為3類:A級,致命的缺陷:這類缺陷存在重大的安全隱患,可能會導致誤動作,系統主要功能和性能達不到要求,使系統程序丟失、系統崩潰、死機;B級,嚴重錯誤的缺陷:這類缺陷是指次要的功能性錯誤和性能達不到要求,而這些功能是系統需求中所要求的,必須改正才能實現系統完整的功能;C級,較小的缺陷:這類缺陷不影響操作者執行液壓支架動作控制,一般是操作顯示上存在的功能瑕疵或缺陷。存在A級、B級錯誤的軟件不得發布,存在不超過3項C級錯誤的軟件可以發布。
2.5 軟件缺陷控制流程設計
建立缺陷數據庫,定義已發現的缺陷分布在6個階段并予以不同的標志,分別為打開、缺陷確認、請求更正、更正計劃、已更正、關閉。在測試過程中,發現存在不滿足需求的功能項,并予以標志(打開);對發現的缺陷,通過組織討論或專家審查進行確認(缺陷確認);確定是真正需要修改的缺陷,按流程將軟件缺陷修改單提交給軟件開發人員進行修改(請求更正);軟件開發人員接收到軟件缺陷修改任務后,制定軟件修改計劃(更正計劃);軟件開發人員完成修改后再次提交軟件(已更正),對修改的軟件再次進行回歸測試;測試通過后予以標志(關閉)。這樣就完成了一個完整的軟件缺陷修改流程[10-13]。軟件缺陷控制流程狀態如圖4所示。

節點操作人操作狀態處理事務接收時間操作時間消耗時間缺陷記錄缺陷標記標記狀態1-申請人(開發人員)××××已提交測試申請××××××××0minFFFFFFFF無缺陷2-部門經理(開發)審批××××已提交測試申請××××××××3h56minFFFFFFFF無缺陷3-部門經理(測試)審批××××已提交測試與缺陷記錄××××××××4d42min××××1已打開4-副總工審批××××已提交缺陷確認××××××××4d42min××××2已確認5-部門經理(開發)審批××××已提交請求更正與更正計劃××××××××4d42min××××3/4修改確認6-申請人(開發人員)××××已提交更正計劃××××××××4d42min××××5已修改7-部門經理(測試)審批××××已提交測試××××××××4d42min××××0已關閉8-副總工審批××××已提交發布××××××××4d42min××××0已關閉
圖4 軟件缺陷控制流程狀態
2.6 軟件缺陷數據庫設計
軟件缺陷數據庫結構[14-18]如圖5所示,其中PK為主鍵,FK為外鍵,主要包括缺陷管理人員配置,開發、測試、審核人員信息。缺陷檢測活動是指在功能測試、性能測試、可靠性測試等活動中發現軟件缺陷。缺陷活動觸發是指發現軟件缺陷時的環境條件和相關活動及其軟件錯誤征兆。缺陷源、缺陷年齡分別指是否是新代碼引入的缺陷及缺陷留存的時間。缺陷目標是指修復的是需求、設計、編碼、集成等哪個階段的實體。缺陷影響域是指軟件缺陷對軟件質量屬性的影響情況,如功能性、可靠性、效率特性、易用性、可維護性、可移植性等。缺陷等級分為A級、B級、C級。缺陷數據庫還包含進行軟件缺陷發現、確認、修復等相關活動的人員與時間記錄。為了方便系統維護,缺陷等級、缺陷影響域、缺陷目標、缺陷類型、缺陷年齡、缺陷源、缺陷檢測活動等可使用數據字典的形式存儲。

圖5 軟件缺陷數據庫結構
2.7 軟件缺陷分析
在軟件缺陷管理流程中,當發現被測試的軟件存在不能正常完成的功能缺陷時,可通過軟件3層結構的關系數據庫,檢索到功能模塊、庫函數,形成軟件缺陷關系數據庫。通過分析單個項目多項軟件缺陷和多個項目軟件缺陷,可以形成功能模塊和庫函數軟件缺陷分布,并針對出現缺陷的頻度進行缺陷密度計算,優先解決軟件缺陷密度高的軟件錯誤。通過分析不同階段的缺陷分布情況,可以挖掘在測試方面的環境條件是否得當,改善測試條件,挖掘潛在的軟件缺陷。通過分析軟件缺陷嚴重等級的分布情況,可以了解軟件全局性的安全等級。可通過缺陷趨勢圖進行軟件缺陷趨勢分析,判定軟件質量的發展趨勢。通過分析軟件缺陷,繪制軟件影響域分布圖,確定軟件在功能性、可靠性、易用性、可維性等方面的適用性能,判定用戶對軟件的滿意度等級。通過計算測試打回和軟件修改提交時間,可得出軟件平均修復時間,從而計算出軟件修復成本。
通過軟件缺陷管理,將軟件開發、測試過程中軟件缺陷信息完整收集到缺陷數據庫,對缺陷數據庫中的數據進行大數據分析,可對液壓支架電液控制
系統軟件開發質量、效率、成本進行提升與評價。
通過分析軟件缺陷等級對應的缺陷數量,可確定軟件缺陷分布密度,也可以按照軟件缺陷發生的頻次確定軟件功能、功能模塊的缺陷密度。通過對軟件缺陷類別進行加權平均,還可以對區域性項目按照GIS方式進行軟件缺陷安全度評價,按照地圖位置標記項目熱點,點擊項目熱點可以查看項目的版本號、缺陷類型、數量、功能模塊分布和具體內容;可以采用不同顏色來表示區域項目軟件的安全等級。
通過描繪軟件缺陷數量的變化過程,可得出軟件缺陷的發展趨勢[19],如圖6所示。可看出隨著液壓支架電液控制系統的不斷推廣應用,軟件功能由簡單到復雜的發展過程中,軟件缺陷由少到多;隨著軟件成熟度的不斷提高與軟件缺陷管理與控制,軟件缺陷又呈現出逐步下降的趨勢。

圖6 軟件缺陷變化趨勢
通過對液壓支架電液控制系統軟件進行缺陷管理,實現了軟件缺陷的跟蹤管理及軟件問題的快速定位,提高了軟件缺陷排除的及時性,減少了軟件的小版本數量,大大降低了A級軟件缺陷數量,提高了軟件的安全性能;通過GIS軟件管理平臺對整個液壓支架電液控制系統軟件缺陷進行跟蹤管理,實現了對軟件質量的綜合管理,降低了液壓支架電液控制系統軟件的安全風險;通過分析軟件缺陷在功能模塊、庫函數上的分布密度,可以全面掌握軟件成熟度,提高了軟件開發質量及軟件測試效率。
[1] 閆振興.基于軟件缺陷分類標準與分析技術的軟件缺陷管理系統應用與研究[D].上海:華東師范大學,2010:1-3.
[2] 田清.軟件敏捷開發過程Scrum中的缺陷管理方法研究及應用[D].重慶:重慶大學,2010:2-3.
[3] 王德勝,宮云戰.論軟件缺陷[J].計算機應用研究,2008,25(12):3531-3533.
[4] 張雅芬.基于缺陷度量的軟件測試量化管理研究與實現[D].南昌:南昌大學,2012:13-14.
[5] 顏真.基于模糊支持向量回歸的軟件缺陷預測[D].北京:北京理工大學,2010:2-6.
[6] 賈靜琳.軟件缺陷管理系統[D].天津:天津大學,2013:14-16.
[7] 陳艷.軟件缺陷管理技術研究與實現[D].成都:電子科技大學,2014:24-30.
[8] 程全良.軟件過程缺陷度量的研究與應用[D].北京:北京郵電大學, 2010:32-35.
[9] 陳媛.基于數據挖掘的軟件缺陷預測技術研究[D].北京:中國科學院研究生院,2012:17-20.
[10] 李冰.基于功能點的缺陷度量在嵌入式軟件開發過程中的應用[D].長沙:湖南大學,2011:34-35.
[11] 田志壘,王潔.軟件缺陷管理技術在測控系統軟件中的應用實踐[J].遙測遙控,2006,27(6):6-11.
[12] 林璐.對軟件測試中的缺陷管理的研究和實踐[D].上海:復旦大學,2011:26-38.
[13] 夏慧,卞衛敏,孔震.基于PI3000平臺的軟件缺陷管理系統的應用實踐[J].計算機與現代化,2010 (5):40-43.
[14] 劉冰川.軟件缺陷分析與管理系統的設計與實現[D].哈爾濱:哈爾濱工業大學,2013:30-36.
[15] 張巍.軟件缺陷庫管理系統[D].長春:吉林大學, 2015:15-36.
[16] 魏國興.基于CMM的軟件過程管理系統的設計與實現[D].北京:北京郵電大學, 2010:36-64.
[17] 司倩然,閆國英.航天測控軟件缺陷管理與分析系統設計[J].飛行器測控學報,2010,29(6):26-29.
[18] 王昕.基于工作流的軟件缺陷管理系統的設計與實現[D].上海:上海交通大學,2011:26-29.
[19] 蘭山,戴凌宸.基于軟件缺陷分類與量化分析的缺陷管理研究[J].技術與市場,2011,18(8):13-16.
Software defect management of electro hydraulic control system of hydraulic support
NIU Jianfeng1, BAI Yongsheng2, GUO Dinghe3
For software defect problem of electro hydraulic control system of hydraulic support, software structural features of the electro-hydraulic control system were analyzed from software testing method, software defect management framework was built, software testing schema was determined, and database structure of software defects database and software defect management flow were designed, so as to analyze software. The application shows that software quality and development efficiency of the electro-hydraulic control system are improved through software defect management.
hydraulic support; electro hydraulic control system; software defect management
1671-251X(2016)11-0067-05
10.13272/j.issn.1671-251x.2016.11.016
牛劍峰,白永勝,郭丁和.液壓支架電液控制系統軟件缺陷管理[J].工礦自動化,2016,42(11):67-71.
2016-06-23;
2016-09-23;責任編輯:李明。
山西省煤基重點科技攻關項目(MJ2014-08)。
牛劍峰(1961-),男,山西太原人,高級工程師,現主要從事煤礦綜采工作面自動化系統的研究工作,E-mail:njf@tdmarco.com。
TD355.4
A
時間:2016-10-28 16:31
http://www.cnki.net/kcms/detail/32.1627.TP.20161028.1631.016.html