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