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