<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 數控設備軟件測試的解決方案

數控設備軟件測試的解決方案

作者:北京航空航天大學(xué)工程系統工程系 王軼辰 時(shí)間:2008-03-11 來(lái)源:電子產(chǎn)品世界 收藏

  自從上個(gè)世紀80年代裝置廣泛采用32位CPU組成多微處理器系統以來(lái),計算機軟件在中的地位逐漸變得重要起來(lái)。90年代以后,隨著(zhù)計算機技術(shù)的飛速發(fā)展,利用PC機豐富的軟件及硬件資源開(kāi)發(fā)出來(lái)的開(kāi)放式體系結構的系統中的軟件對于智能化和網(wǎng)絡(luò )化的支持更加強大,軟件的規模和功能進(jìn)一步的增強了。當代的數控已經(jīng)成為一種硬件與軟件高度集成化的綜合性系統。

本文引用地址:http://dyxdggzs.com/article/79890.htm

數控中軟件的特點(diǎn)

  數控設備中的軟件大多數都是嵌入式軟件,即那些與硬件有著(zhù)緊密關(guān)系并且運行在特定的硬件環(huán)境中的軟件。嵌入式軟件最大的特點(diǎn)就是與硬件環(huán)境有著(zhù)密不可分的關(guān)系,整個(gè)數控系統的性能、智能化水平的高低以及可靠性的優(yōu)劣等都是由硬件環(huán)境和軟件共同決定的。但是眾所周知,當前技術(shù)條件下軟件的可靠性比硬件的可靠性要低一個(gè)數量級,據資料統計,嵌入式系統的運行失效中有75%是由其中的軟件失效所引起的。事實(shí)上軟件失效所導致的系統故障已經(jīng)成為數控設備故障診斷中一個(gè)不容忽視的問(wèn)題了。

數控系統中軟件的測試與診斷方法

  與硬件故障相比軟件失效主要有以下兩個(gè)特點(diǎn):(1)軟件失效不會(huì )隨時(shí)間而發(fā)生變化。硬件的故障中有很大一部分是由于設備的磨損和材料的老化所致,而在軟件中則不存在這樣的問(wèn)題,一旦軟件運行正確,它是不會(huì )隨著(zhù)時(shí)間的推移而退化的。(2)軟件的失效多數是由程序代碼中的固有錯誤所導致,而對于嵌入式軟件來(lái)說(shuō),軟硬件之間的接口錯誤也是導致失效的一個(gè)重要因素。

  因為失效機理的不同,軟件的診斷方法與硬件通常所使用的故障診斷方法也不盡相同。從保證設備可靠性的角度來(lái)看,硬件設備在出廠(chǎng)之前要做一系列的可靠性試驗,目的就是要把設計和加工過(guò)程中產(chǎn)生的問(wèn)題提前暴露出來(lái),而到了用戶(hù)使用階段,工作的重點(diǎn)就是對設備的運行狀態(tài)進(jìn)行監測,對出現的故障進(jìn)行診斷和維修。而軟件的工作重點(diǎn)則在于軟件出廠(chǎng)前和使用初期對軟件進(jìn)行的測試,尤其是對軟件與硬件集成之后所進(jìn)行的系統測試??梢赃@樣說(shuō),系統測試是發(fā)現嵌入式系統中軟件問(wèn)題的最行之有效的方法之一。

  在的理論中,系統測試屬于一種動(dòng)態(tài)黑盒測試,即測試人員不必深入軟件代碼的細節,只需通過(guò)控制軟件的輸入條件驅動(dòng)被測軟件的真正運行。簡(jiǎn)單的說(shuō),動(dòng)態(tài)黑盒測試就是要盡量模擬出被測系統的真實(shí)使用情況,并通過(guò)對被測系統的實(shí)際操作來(lái)達到發(fā)現故障的目的。根據系統測試原理,我實(shí)驗室自主設計開(kāi)發(fā)出一種具有一定通用性的嵌入式軟件系統測試環(huán)境,并在此基礎上總結出一套有效的系統測試方法。本文下面結合一個(gè)具體測試實(shí)例對系統測試環(huán)境以及測試方法進(jìn)行介紹。

發(fā)動(dòng)機數控系統的系統測試

系統測試環(huán)境

  對一個(gè)數控設備中的嵌入式軟件進(jìn)行系統測試的第一步就是要搭建系統測試的環(huán)境。系統測試環(huán)境的作用就是能夠讓軟件在真實(shí)的硬件環(huán)境下運行,而且還能夠讓測試人員把測試用例施加到被測軟件中,并且可以收集到測試的結果數據。系統測試環(huán)境是一個(gè)由硬件和軟件共同組成的測試平臺。

 
圖 1 軟件系統測試環(huán)境簡(jiǎn)圖
 
  圖1所示即為我們在為某型號發(fā)動(dòng)機的數控系統軟件進(jìn)行測試時(shí)設計開(kāi)發(fā)的系統測試環(huán)境。

  整個(gè)測試環(huán)境由三大部分組成:測試用例及測試腳本生成環(huán)境、系統檢測軟件以及系統檢測箱。其中的測試用例及測試腳本生成環(huán)境和系統檢測軟件屬于測試平臺的軟件部分,而系統檢測箱以及與之相連的I/O設備都屬于硬件部分。測試用例及測試腳本生成環(huán)境是一個(gè)圖形化的編輯環(huán)境,測試人員可以在這個(gè)環(huán)境中把設計好的測試用例通過(guò)畫(huà)圖或是寫(xiě)文本的方式轉換成測試腳本,它是測試用例的可執行形式。測試腳本中包含了一系列對被測系統的操作動(dòng)作,它的實(shí)質(zhì)作用就是通過(guò)控制測試流程來(lái)實(shí)現測試者的測試意圖。

  系檢測軟件由腳本解釋器、模型、測試結果收集和顯示模塊四個(gè)部分組成。腳本解釋器是用來(lái)把測試腳本解釋成為可執行的代碼形式,在測試過(guò)程中用于控制測試流程。模型則根據測試腳本的要求計算產(chǎn)生測試數據,并發(fā)送到被測系統之中。測試結果收集是用來(lái)收集被測系統運行過(guò)程中的狀態(tài)信息和輸出數據。顯示模塊用來(lái)根據測試人員的要求在測試過(guò)程中把被測系統的狀態(tài)信息和輸出數據顯示出來(lái),以便測試者可以觀(guān)察和控制測試的進(jìn)行。

  地面檢測裝置是在設備正常運行之前檢測數控系統的完好性和對裝置中閃存的讀寫(xiě)操作,以及設備運行以后進(jìn)行數據下載和數據分析的工具。地面檢測裝置的功能包括對電子控制器及發(fā)動(dòng)機模型的仿真、電子控制器的檢測、繼電器箱的檢測、傳感器的檢測和電液伺服閥線(xiàn)圈的檢測等。在測試環(huán)境中,地面檢測裝置從系統檢測軟件中獲得模型根據測試腳本所產(chǎn)生的測試數據,在裝置內部把這些測試數據全都轉換為可以輸入到被測系統中的數據形式,并通過(guò)I/O接口送到被測系統之中,驅動(dòng)被測系統的運行并完成測試。從上面的介紹可以看出,這套系統測試環(huán)境具有以下幾個(gè)主要特點(diǎn):

  具有一定的通用性。這套環(huán)境不僅可以對發(fā)動(dòng)機數控軟件進(jìn)行測試,而且可以對相似的一類(lèi)嵌入式軟件進(jìn)行測試。

  操作簡(jiǎn)便。測試環(huán)境只需要測試者把測試用例編寫(xiě)成測試腳本的形式,即可在測試環(huán)境中實(shí)現自動(dòng)化的測試,無(wú)須對被測系統進(jìn)行直接的操作。

  測試效率較高。由于有系統檢測軟件和系統檢測箱的支持,這種自動(dòng)化測試的執行效率比手工測試有了較大的提高。

  支持重復性的測試。由于測試用例是以測試腳本的形式存在,所以同一個(gè)測試可以毫無(wú)差別的無(wú)限次執行。重復性測試在故障修改之后的回歸測試中有很大的應用。

系統測試過(guò)程

  在建立好測試環(huán)境之后,就可以利用它進(jìn)行系統測試了,具體過(guò)程可以分為以下步驟:

  1.設計測試用例。系統測試用例由兩部分組成:測試輸入序列和測試的預期結果。測試輸入序列描述了一次測試中對被測設備的具體操作流程,包括如何啟動(dòng)設備、何時(shí)進(jìn)行加速操作、何時(shí)進(jìn)行停車(chē)操作以及何時(shí)關(guān)閉設備等。測試預期結果描述了被測試的設備在上述的操作下應該產(chǎn)生什么樣的動(dòng)作或出于什么樣的狀態(tài)。

  測試用例的質(zhì)量是是否能發(fā)現設備軟件故障的關(guān)鍵所在。在設計測試用例時(shí),可以根據測試的側重點(diǎn)不同,從正常功能、邊界情況和非正常操作等幾個(gè)方面進(jìn)行考慮。正常功能測試就是根據被測試的發(fā)動(dòng)機的正常使用情況,模擬出一些具有代表性的操作。邊界情況的測試是指對輸入被測系統的模擬量的邊界值進(jìn)行測試,經(jīng)驗表明當輸入量在邊界上或是邊界的臨近點(diǎn)取值時(shí)是最容易產(chǎn)生錯誤的,例如在發(fā)動(dòng)機在正常轉速范圍的邊界點(diǎn)附近運行時(shí)往往容易發(fā)生故障。非正常操作主要是考察數控設備軟件在處理一些異常情況時(shí)的能力,例如在使用者出現錯誤操作或是在使用中突然發(fā)生硬件故障的時(shí)候數控軟件是否具有一定的保護功能,而不至于出現重大的事故,這項測試主要是考察數控系統的可靠性和健壯性。

  2.運行測試。設計好的測試用例在測試環(huán)境提供的圖形化編輯環(huán)境中通過(guò)畫(huà)圖或是文本方式可以轉換成測試環(huán)境能夠識別的測試腳本形式。每一個(gè)測試用例轉換成為一個(gè)測試腳本,測試腳本可以直接加載到測試環(huán)境中進(jìn)行一次測試。在測試運行過(guò)程中測試用例的操作序中的操作得到依次執行,被測試的設備也因此得到運行。運行過(guò)程中還可以通過(guò)測試環(huán)境提供的顯示模塊觀(guān)察到設備運行的狀態(tài)。

  3.分析測試結果并得出測試結論。一次測試結束之后,測試環(huán)境會(huì )自動(dòng)地收集到被測試設備的各項運行數據。把這些數據與測試用例中預期結果進(jìn)行比較,由此判斷被測試設備運行是否正常,是否發(fā)生了故障。

  從正常功能、邊界情況和非正常操作三個(gè)方面考慮我們生成了100個(gè)測試用例,并在搭建的測試環(huán)境中得到成功的運行,最后通過(guò)對測試結果數據的分析,發(fā)現了幾個(gè)關(guān)鍵性的問(wèn)題,例如當飛機的飛行高度超過(guò)一定的值后,軟件所進(jìn)行的插值計算就會(huì )出現錯誤。另外還有因為軟件的設計邏輯有問(wèn)題而導致發(fā)動(dòng)機在不該停車(chē)的時(shí)候停車(chē)了等。 經(jīng)過(guò)分析確定這些故障都是由于數控軟件的缺陷所導致的。軟件設計人員對這些問(wèn)題進(jìn)行了正確的修改之后,系統的可靠性和健壯性都得到了很大的提高。

結語(yǔ)

  利用本文介紹的系統測試環(huán)境以及測試方法我們已經(jīng)成功地進(jìn)行了多個(gè)嵌入式軟件的測試,發(fā)現了許多軟件中潛在的重要缺陷,在為提高設備的質(zhì)量和可靠性方面發(fā)揮了重要作用。



關(guān)鍵詞: 數控 設備 軟件測試

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>