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