數(shù)控系統(tǒng)軟件的測試與故障診斷
摘 要 介紹了如何有效和快速地對設(shè)備中軟件故障進(jìn)行診斷。從嵌入式軟件的特點(diǎn)入手,利用系統(tǒng)軟件測試平臺來進(jìn)行軟件測試與故障診斷,并以實例加以進(jìn)一步說明,最后得出這種方法具有一般性的結(jié)論。
自從上個世紀(jì)80年代數(shù)控裝置廣泛采用32位CPU組成多微處理器系統(tǒng)以來,計算機(jī)軟件在數(shù)控設(shè)備中的地位逐漸變得重要起來。90年代以后,隨著計算機(jī)技術(shù)的飛速發(fā)展,利用PC機(jī)豐富的軟件及硬件資源開發(fā)出來的開放式體系結(jié)構(gòu)的數(shù)控系統(tǒng)中的軟件,對于智能化和網(wǎng)絡(luò)化的支持更加強(qiáng)大,軟件的規(guī)模和功能進(jìn)一步的增強(qiáng)了。數(shù)控設(shè)備已經(jīng)成為一種硬件與軟件高度集成化的綜合性系統(tǒng)。
一、數(shù)控系統(tǒng)中軟件的特點(diǎn)
數(shù)控系統(tǒng)中的軟件大多數(shù)都是嵌入式軟件,與硬件有著緊密關(guān)系并且運(yùn)行在特定的硬件環(huán)境中。其最大的特點(diǎn)就是與硬件環(huán)境有著密不可分的關(guān)系,整個數(shù)控系統(tǒng)的性能、智能化水平的高低以及可靠性的優(yōu)劣等都是由硬件環(huán)境和軟件共同決定的。但當(dāng)前技術(shù)條件下,軟件的可靠性比硬件的可靠性要低一個數(shù)量級。據(jù)資料統(tǒng)計,嵌入式系統(tǒng)的運(yùn)行失效中有75%是由其中的軟件失效所引起的。事實上軟件失效所導(dǎo)致的系統(tǒng)故障已經(jīng)成為數(shù)控設(shè)備故障診斷中一個不容忽視的問題了。
二、數(shù)控系統(tǒng)中軟件的測試與診斷方法
與硬件相比軟件失效主要有以下兩個特點(diǎn):(1)軟件失效不會隨時間而發(fā)生變化。硬件的有很大一部分是由于設(shè)備的磨損和材料的老化所致,而在軟件中則不存在這樣的問題。一旦軟件運(yùn)行正確,它是不會隨著時間的推移而退化的。(2)軟件的失效多數(shù)是由程序代碼中的固有錯誤所導(dǎo)致,而對于嵌入式軟件來說,軟硬件之間的接口錯誤也是導(dǎo)致失效的一個重要因素。
因為失效機(jī)理的不同,軟件的診斷方法與硬件通常所使用的故障診斷方法也不盡相同。從保證設(shè)備可靠性的角度來看,硬件設(shè)備在出廠之前要做一系列的可靠性試驗,目的就是要把設(shè)計和加工過程中產(chǎn)生的問題提前暴露出來,而到了用戶使用階段,工作的重點(diǎn)就是對設(shè)備的運(yùn)行狀態(tài)進(jìn)行監(jiān)測,對出現(xiàn)的故障進(jìn)行診斷和維修。而軟件則在于出廠前和使用初期對其進(jìn)行的測試,尤其是對軟件與硬件集成之后所進(jìn)行的系統(tǒng)測試。即系統(tǒng)測試是發(fā)現(xiàn)嵌入式系統(tǒng)中軟件問題的最行之有效的方法之一。
在軟件測試的理論中,系統(tǒng)測試屬于一種動態(tài)黑盒測試,即測試人員不必深入軟件代碼的細(xì)節(jié),只需通過控制軟件的輸入條件驅(qū)動被測軟件的真正運(yùn)行。簡單的說,動態(tài)黑盒測試就是要盡量模擬出被測系統(tǒng)的真實使用情況,并通過對被測系統(tǒng)的實際操作來達(dá)到發(fā)現(xiàn)故障的目的。根據(jù)系統(tǒng)測試原理,實驗室自主設(shè)計開發(fā)出一種具有一定通用性的嵌入式軟件系統(tǒng)測試環(huán)境,并在此基礎(chǔ)上總結(jié)出一套有效的系統(tǒng)測試方法。下面結(jié)合一個具體測試實例對系統(tǒng)測試環(huán)境以及測試方法進(jìn)行介紹。
三、數(shù)控系統(tǒng)中的軟件系統(tǒng)測試
1.系統(tǒng)測試環(huán)境
對一個數(shù)控設(shè)備中的嵌入式軟件進(jìn)行系統(tǒng)測試的第一步就是要搭建系統(tǒng)測試的環(huán)境。系統(tǒng)測試環(huán)境的作用就是能夠讓軟件在真實的硬件環(huán)境下運(yùn)行,而且還能夠讓測試人員把測試用例施加到被測軟件中,并且可以收集到測試的結(jié)果數(shù)據(jù)。系統(tǒng)測試環(huán)境是一個由硬件和軟件共同組成的測試平臺。
圖1所示為某型號發(fā)動機(jī)的數(shù)控系統(tǒng)軟件測試時所設(shè)計開發(fā)的系統(tǒng)測試環(huán)境。
圖1 軟件系統(tǒng)測試環(huán)境簡圖
整個測試環(huán)境由三大部分組成:測試用例及測試腳本生成環(huán)境、系統(tǒng)檢測軟件以及系統(tǒng)檢測箱。其中的測試用例及測試腳本生成環(huán)境和系統(tǒng)檢測軟件屬于測試平臺的軟件部分,而系統(tǒng)檢測箱以及與之相連的I/O設(shè)備都屬于硬件部分。
測試用例及測試腳本生成環(huán)境是一個圖形化的編輯環(huán)境,測試人員可以在這個環(huán)境中把設(shè)計好的測試用例通過畫圖或是寫文本的方式轉(zhuǎn)換成測試腳本,它是測試用例的可執(zhí)行形式。測試腳本中包含了一系列對被測系統(tǒng)的操作動作,它的實質(zhì)作用就是通過控制測試流程來實現(xiàn)測試者的測試意圖。
系統(tǒng)檢測軟件由腳本解釋器、模型、測試結(jié)果收集和顯示模塊四個部分組成。腳本解釋器是用來把測試腳本解釋成為可執(zhí)行的代碼形式,在測試過程中用于控制測試流程。模型則根據(jù)測試腳本的要求計算產(chǎn)生測試數(shù)據(jù),并發(fā)送到被測系統(tǒng)之中。測試結(jié)果收集是用來收集被測系統(tǒng)運(yùn)行過程中的狀態(tài)信息和輸出數(shù)據(jù)。顯示模塊用來根據(jù)測試人員的要求在測試過程中把被測系統(tǒng)的狀態(tài)信息和輸出數(shù)據(jù)顯示出來,以便測試者可以觀察和控制測試的進(jìn)行。
地面檢測裝置(系統(tǒng)檢測箱)是在設(shè)備正常運(yùn)行之前檢測數(shù)控系統(tǒng)的完好性和對裝置中閃存的讀寫操作,以及設(shè)備運(yùn)行以后進(jìn)行數(shù)據(jù)下載和數(shù)據(jù)分析的工具。地面檢測裝置的功能包括對電子控制器及發(fā)動機(jī)模型的仿真、電子控制器的檢測、繼電器箱的檢測、傳感器的檢測和電液伺服閥線圈的檢測等。在測試環(huán)境中,地面檢測裝置從系統(tǒng)檢測軟件中獲得模型根據(jù)測試腳本所產(chǎn)生的測試數(shù)據(jù),在裝置內(nèi)部把這些測試數(shù)據(jù)全都轉(zhuǎn)換為可以輸入到被測系統(tǒng)中的數(shù)據(jù)形式,并通過I/0接口送到被測系統(tǒng)之中,驅(qū)動被測系統(tǒng)的運(yùn)行并完成測試。
這套系統(tǒng)測試環(huán)境具有以下幾個主要特點(diǎn):
(1)有一定的通用性。這套環(huán)境不僅可以對發(fā)動機(jī)數(shù)控軟件進(jìn)行測試,而且可以對相似的一類嵌入式軟件進(jìn)行測試。
(2)操作簡便。測試環(huán)境只需要測試者把測試用例編寫成測試腳本的形式,即可在測試環(huán)境中實現(xiàn)自動化的測試,無須對被測系統(tǒng)進(jìn)行直接的操作。
(3)測試效率較高。由于有了系統(tǒng)檢測軟件和系統(tǒng)檢測箱的支持,這種自動化測試的執(zhí)行效率比手工測試有較大的提高。
(4)支持重復(fù)性的測試。由于測試用例是以測試腳本的形式存在,所以同一個測試可以毫無差別地?zé)o限次執(zhí)行。重復(fù)性測試在故障修改之后的回歸測試中有很大的應(yīng)用。
2.系統(tǒng)測試過程
在建立好測試環(huán)境之后,就可以利用它進(jìn)行系統(tǒng)測試了,具體過程有以下步驟。
(1)設(shè)計測試用例。系統(tǒng)測試用例由兩部分組成:測試輸入序列和測試的預(yù)期結(jié)果。測試輸入序列描述了一次測試中對被測設(shè)備的具體操作流程,包括如何啟動設(shè)備、何時進(jìn)行加速操作、何時進(jìn)行停車操作以及何時關(guān)閉設(shè)備等。測試預(yù)期結(jié)果描述了被測試的設(shè)備在上述的操作下應(yīng)該產(chǎn)生什么樣的動作或處于什么樣的狀態(tài)。
測試用例的質(zhì)量是能否發(fā)現(xiàn)設(shè)備軟件故障的關(guān)鍵所在。在設(shè)計測試用例時,可以根據(jù)測試的側(cè)重點(diǎn)不同,從正常功能、邊界情況和非正常操作等幾個方面進(jìn)行考慮。正常功能測試就是根據(jù)被測試的發(fā)動機(jī)的正常使用情況,模擬出一些具有代表性的操作。邊界情況的測試是指對輸入被測系統(tǒng)的模擬量的邊界值進(jìn)行測試,經(jīng)驗表明當(dāng)輸入量在邊界上或是邊界的臨近點(diǎn)取值時是最容易產(chǎn)生錯誤的,例如發(fā)動機(jī)在正常轉(zhuǎn)速范圍的邊界點(diǎn)附近運(yùn)行時往往容易發(fā)生故障。非正常操作主要是考察數(shù)控系統(tǒng)軟件在處理一些異常情況時的能力,例如在使用者出現(xiàn)錯誤操作或是在使用中突然發(fā)生硬件故障的時候,數(shù)控系統(tǒng)軟件是否具有一定的保護(hù)功能,而不至于出現(xiàn)重大的事故,這項測試主要是考察數(shù)控系統(tǒng)的可靠性和健壯性。
(2)運(yùn)行測試。設(shè)計好的測試用例在測試環(huán)境提供的圖形化編輯環(huán)境中,通過畫圖或是文本方式可以轉(zhuǎn)換成測試環(huán)境能夠識別的測試腳本形式。每一個測試用例轉(zhuǎn)換成為一個測試腳本,測試腳本可以直接加載到測試環(huán)境中進(jìn)行一次測試。在測試運(yùn)行過程中,測試用例在操作序中得到依次執(zhí)行,被測試的系統(tǒng)也因此得到運(yùn)行。運(yùn)行過程中還可以通過測試環(huán)境提供的顯示模塊觀察到設(shè)備運(yùn)行的狀態(tài)。
(3)分析測試結(jié)果并得出測試結(jié)論。一次測試結(jié)束之后,測試環(huán)境會自動地收集被測試系統(tǒng)的各項運(yùn)行數(shù)據(jù)。把這些數(shù)據(jù)與測試用例中預(yù)期結(jié)果進(jìn)行比較,由此判斷被測試設(shè)備運(yùn)行是否正常,是否發(fā)生了故障。
從正常功能、邊界情況和非正常操作三個方面考慮生成了100個測試用例,并在搭建的測試環(huán)境中得到成功的運(yùn)行,最后通過對測試結(jié)果數(shù)據(jù)的分析,發(fā)現(xiàn)了幾個關(guān)鍵性的問題,例如當(dāng)飛機(jī)的飛行高度超過一定值后,軟件所進(jìn)行的插值計算就會出現(xiàn)錯誤。另外還有因為軟件的設(shè)計邏輯有問題而導(dǎo)致發(fā)動機(jī)在不該停車的時候停車了等。經(jīng)過分析確定這些故障都是由于數(shù)控系統(tǒng)軟件的缺陷所導(dǎo)致的。軟件設(shè)計人員對這些問題進(jìn)行了正確的修改之后,系統(tǒng)的可靠性和健壯性都得到了很大的提高。
四、結(jié)束語
利用上述系統(tǒng)測試環(huán)境以及測試方法,已經(jīng)成功地進(jìn)行了多個嵌入式軟件的測試,發(fā)現(xiàn)了許多軟件中潛在的重要缺陷,在為提高設(shè)備的質(zhì)量和可靠性方面發(fā)揮了重要作用。
本文相關(guān)信息
- [新聞資訊] 數(shù)控銑床與銑削加工
- [新聞資訊] 數(shù)控系統(tǒng)行業(yè)召開應(yīng)對世界性金融危機(jī)研討會
- [新聞資訊] 數(shù)控應(yīng)用型人才被列為首位緊缺人才
- [新聞資訊] 數(shù)控銑削加工進(jìn)刀方式的探討
- [新聞資訊] 數(shù)控系統(tǒng)“十一五”發(fā)展要領(lǐng)
- [新聞資訊] 數(shù)控系統(tǒng)“十一五”發(fā)展原則
- [新聞資訊] 數(shù)控系統(tǒng)的配置和功能選擇
- [新聞資訊] 數(shù)控系統(tǒng)發(fā)展趨勢及機(jī)床數(shù)控化改造
- [新聞資訊] 數(shù)控系統(tǒng)發(fā)展需“堅持四項基本原則”
- [新聞資訊] 數(shù)控系統(tǒng)故障的現(xiàn)場珍斷