摘 要:隨著工業(yè)自動化越來越快的發(fā)展,各式各樣的新成果也漸漸滲透到人類生活的方方面面。自動測試系統(tǒng)軟件服務(wù)于計(jì)算機(jī),工業(yè)自動化程度越來越高,計(jì)算機(jī)技術(shù)發(fā)展迅猛,工業(yè)控制計(jì)算機(jī),另外輔以A/D,D/A等板卡做外圍輔助接口,基于這些的自動測試系統(tǒng)應(yīng)用極為廣泛。其特點(diǎn)就是將原本結(jié)合松散、常不兼容或者是分立的儀器設(shè)備轉(zhuǎn)化為一個高度集成的性能較高的自動化與測量系統(tǒng),自動測試軟件顯然是這一設(shè)備的核心內(nèi)容,因而,研究自動測試系統(tǒng)軟件框架設(shè)計(jì)這一課題尤為必要。
關(guān)鍵詞:自動測試系統(tǒng);軟件框架;設(shè)計(jì)
中圖分類號:TP311.52
自動測試系統(tǒng)的規(guī)模逐年增大,其復(fù)雜性也是與日俱增,然而,由于傳統(tǒng)軟件的開發(fā)方法在復(fù)用上出現(xiàn)了滯留現(xiàn)象,即在代碼復(fù)用階段出現(xiàn)了卡殼,復(fù)用的范圍受到局限,只能用于獨(dú)立的類或者函數(shù),這樣一來,就使得復(fù)用粒度十分有限,設(shè)計(jì)自動測試系統(tǒng)軟件框架符合時代發(fā)展的需要。一旦開發(fā)設(shè)計(jì)出來面向?qū)ο蟮能浖蚣埽湍芙鉀Q大粒度的軟件復(fù)用問題,同時還能在很大程度上縮短自動測試系統(tǒng)設(shè)備的研制時間。設(shè)計(jì)出一套成功的自動測試系統(tǒng)軟件框架,就能夠最大限度的提高工作效率,提高系統(tǒng)設(shè)備穩(wěn)定運(yùn)行的科學(xué)可靠性。
1 面向?qū)ο蟮能浖蚣?/p>
自動測試系統(tǒng)的規(guī)模越來越大,面向?qū)ο蟮能浖蚣茚槍τ诮鉀Q大粒度的軟件復(fù)用,這一框架直指目的結(jié)局了這一棘手問題,因而自然而然產(chǎn)生出設(shè)計(jì)自動測試系統(tǒng)軟件的框架。面向?qū)ο蟮能浖蚣艹霈F(xiàn)在上一世紀(jì)八十年代,最早取得成功并且投入廣泛使用的軟件框架是small talk環(huán)境的MVC用戶界面框架,總的來說,框架技術(shù)為計(jì)算機(jī)領(lǐng)域應(yīng)用開發(fā)提供出了大粒度軟件復(fù)用,對軟件的開發(fā)效率有著極大的提高。
通俗來講,軟件框架就是指為了解決某類問題而進(jìn)行的設(shè)計(jì)和實(shí)現(xiàn)方案,解決的問題通常指系統(tǒng)及其子系統(tǒng)領(lǐng)域,設(shè)計(jì)和實(shí)現(xiàn)方案是基于一組抽象類的集合或者是實(shí)例對象,之后進(jìn)行交互協(xié)調(diào)的、可重用的開發(fā)設(shè)計(jì)。就其本質(zhì)而言,軟件框架是某一個問題進(jìn)行設(shè)計(jì)的軟件系統(tǒng)骨架,它的對象模型和所運(yùn)用的代碼是可重用的。框架不僅僅提供了代碼的復(fù)用,還同時將軟件生產(chǎn)力意義的設(shè)計(jì)復(fù)用變?yōu)楝F(xiàn)實(shí),基于框架本身的領(lǐng)域性,它還可以分為系統(tǒng)底層結(jié)構(gòu)框架、企業(yè)應(yīng)用框架以及中間件集成框架三大類別。
2 自動測試系統(tǒng)軟件框架的設(shè)計(jì)
2.1 測試軟件主體框架設(shè)計(jì)
自動測試系統(tǒng)軟件的主體框架設(shè)計(jì)時主要采用Microsoft MFC的文檔-視圖結(jié)構(gòu),選用這樣的應(yīng)用程序框架更具靈活性。具體分析為:MFC是建立在Windows API之上的一類C++類庫,如此設(shè)計(jì),就會使的程序設(shè)計(jì)的過程極具效率性,與面向?qū)ο蟮奶匦愿呛希褂谜咧恍柽M(jìn)行簡單的操作,即僅需對原本的主體框架進(jìn)行擴(kuò)展操作,就可以隨心所欲,建立成自己想要得到的應(yīng)用程序。主體框架設(shè)計(jì)的核心在于能夠有效率的識別出可重用的設(shè)計(jì),或者也可以稱為“熱點(diǎn)”、“擴(kuò)展點(diǎn)”,靈活的做出相應(yīng)的設(shè)計(jì),因而,不難分析出自動測試軟件主體框架設(shè)計(jì)的核心目的就是熱點(diǎn)識別。
自動測試軟件主體框架設(shè)計(jì)時,根據(jù)對于測試領(lǐng)域的分析不難分析出,測試的主框架主要的組成部分包括對參數(shù)的設(shè)置、測試過程的控制、對策是界面進(jìn)行維護(hù)以及對測試數(shù)據(jù)進(jìn)行統(tǒng)籌管理幾個部分,這幾個部分作為主體框架圖的擴(kuò)展點(diǎn),大體來講就是作為測試系統(tǒng)里較為通用較為普遍的幾個領(lǐng)域??蚣艿脑O(shè)計(jì)針對的領(lǐng)域一般都是特定的,因而在進(jìn)行主體框架設(shè)計(jì)時,最基本最首要的環(huán)節(jié)就是對于領(lǐng)域選取,并針對領(lǐng)域內(nèi)部所要解決的問題有大體的規(guī)劃,這樣設(shè)計(jì)起來才會得心應(yīng)手,更易實(shí)現(xiàn)框架的價值。
2.2 硬件接口設(shè)計(jì)
自動測試系統(tǒng)軟件框架的硬件接口這一模塊的工作流程是指,自動測試軟件對測試的系統(tǒng)硬件進(jìn)行封裝,然后測試系統(tǒng)通過對這層封裝的測試來進(jìn)行對于測試系統(tǒng)的硬件部分的透明化操作。硬件接口這一模塊的模型如圖所示,
通過設(shè)計(jì)CDevice類對硬件的設(shè)備進(jìn)行封裝操作,很容易看出,CDevice作為所有硬件接口的基類,其他的具體的硬件設(shè)備形式都是通過這一基類派生而來,繼而所有的硬件設(shè)備都會被分別進(jìn)行編譯,使其成為一個個獨(dú)立的DLL組件。
雖然,不同的硬件成分發(fā)揮著不同的功用,而且不同的硬件也有著不同的操作方法,然而,所有硬件步入正常運(yùn)行的流程是一樣的,都要經(jīng)過初始化以及自檢兩個步驟,顯然,這兩個環(huán)節(jié)屬于通用行為,同理可知其卸載的流程也是一致的。為了使得系統(tǒng)能夠擴(kuò)展靈活,盡量最大程度上避免不同的硬件接口間出現(xiàn)耦合現(xiàn)象,如上文所示,使硬件接口編譯為一個個獨(dú)立的DLL組件,這些組件必須包含的特性是通用性,還要有特殊的操作接口,如此就能夠?qū)τ布M(jìn)行所有操作。
2.3 硬件管理設(shè)計(jì)
自動測試系統(tǒng)軟件框架的硬件部分除了接口的設(shè)計(jì),還包含對于硬件管理模塊進(jìn)行設(shè)計(jì)的操作,譬如說對于各種板卡,測試儀器等。不同的測試系統(tǒng)它內(nèi)部的硬件構(gòu)架也是有著天壤之別的,并且除此之外,每一個獨(dú)立的測試系統(tǒng)通常會配備著多種多樣的硬件板卡,借此便能夠?qū)崿F(xiàn)各個硬件不同的功能,在硬件接口設(shè)計(jì)階段,首先必須應(yīng)當(dāng)進(jìn)行完成正確科學(xué)的初始化以及自檢流程,而且需要導(dǎo)入對于其進(jìn)行操作的接口函數(shù)。如此看來,對自動測試系統(tǒng)軟件框架時編制專門的硬件管理模塊非常有必要。
在這一模塊的設(shè)計(jì)中,無須對硬件管理進(jìn)行擴(kuò)展,只需進(jìn)行簡單的操作就可以實(shí)現(xiàn)硬件管理的設(shè)計(jì),即底層的硬件提供封裝,繼而便可以進(jìn)行載入,載入系統(tǒng)之后,硬件管理模塊實(shí)質(zhì)上就是提供了一個隔層,隔離了底層到高層的路徑,使得底層的變動不會對高層造成實(shí)質(zhì)性的影響。因此,對于硬件管理的設(shè)計(jì)而言,這一環(huán)節(jié)的主要工作就是將所有的硬件接口DLL組件載入系統(tǒng),然后做調(diào)用操作,調(diào)用提供的所有通用接口,如此一來,就使得硬件裝置得到了合理的初始化,設(shè)計(jì)出相應(yīng)的類CDevOpt,繼而進(jìn)行相應(yīng)操作。
2.4 數(shù)據(jù)管理設(shè)計(jì)
對數(shù)據(jù)管理進(jìn)行設(shè)計(jì)的目的就是為了使得整個的應(yīng)用軟件數(shù)據(jù)能夠進(jìn)行統(tǒng)一化的統(tǒng)籌管理,以此作為數(shù)據(jù)管理中心。通常來說,數(shù)據(jù)管理包含的內(nèi)容有數(shù)據(jù)存儲以及數(shù)據(jù)共享等多個方面,數(shù)據(jù)存儲又可以分為對數(shù)據(jù)的存儲以及對文件的存儲,不同的數(shù)據(jù)處理系統(tǒng)對數(shù)據(jù)的處理方式也是截然不同的,因此,可以將文件與數(shù)據(jù)存儲作為設(shè)計(jì)的框架軟件的一個擴(kuò)展點(diǎn)。CPjtDoc作為文檔-視圖結(jié)構(gòu)的中文檔的擴(kuò)展品,或者可以推理CPjtDoc從CDocument派生而得到。
數(shù)據(jù)管理的設(shè)計(jì)模塊中,可將數(shù)據(jù)文件或者是數(shù)據(jù)庫置于IS站點(diǎn)下,這是一個虛擬目錄,通過在站點(diǎn)中建立ASP.net應(yīng)用程序來實(shí)現(xiàn)得出,繼而就可以實(shí)現(xiàn)數(shù)據(jù)的訪問操作。換句話說,這一管理的優(yōu)點(diǎn)是應(yīng)用者可以自身隨時訪問瀏覽器數(shù)據(jù),而并不需要客戶端的應(yīng)用軟件。因而,不難看出,進(jìn)行自動測試系統(tǒng)軟件框架設(shè)計(jì)時,進(jìn)行數(shù)據(jù)管理模塊的設(shè)計(jì)尤為重要。
3 自動測試系統(tǒng)軟件框架的特點(diǎn)
自動測試系統(tǒng)軟件框架的特點(diǎn)在其各個方面的設(shè)計(jì)中均有體現(xiàn),費(fèi)盡周折設(shè)計(jì)這樣一個自動測試系統(tǒng)軟件框架,一定是因?yàn)槠渚邆渲鴱?qiáng)大的功能和特點(diǎn),值得人類科學(xué)對其做出研究和分析。
自動測試系統(tǒng)軟件框架的特點(diǎn)之一是動態(tài)性,這是互動的一組類,它封裝了對于解決其特定領(lǐng)域的問題的控制流,所以說這一軟件框架具有動態(tài)的效果,不單作為一個靜態(tài)類庫,只是這種動態(tài)是虛擬虛化的,只是一種效果,只有框架被實(shí)例化之后才會得以表現(xiàn);特點(diǎn)之二是易擴(kuò)展性,測試系統(tǒng)軟件框架不是一個客戶端應(yīng)用軟件,它是一個非常大的功能模板,不是應(yīng)用,只是存在潛在的應(yīng)用功能,或者可以說,軟件框架是一個應(yīng)用“半成品”,它可以通過其專有屬性-提供熱點(diǎn)來實(shí)現(xiàn)擴(kuò)展應(yīng)用程序;特點(diǎn)之三反轉(zhuǎn)的控制特性,測試系統(tǒng)軟件框架與平常的類庫本質(zhì)的區(qū)別是自動測試軟件系統(tǒng)中在內(nèi)嵌著控制流,所以,基于軟件框架的軟件開發(fā)過程中必須有一個需要遵守的原則是:不能用應(yīng)用代碼對軟件框架進(jìn)行調(diào)用,而是應(yīng)當(dāng)用框架對應(yīng)用代碼做調(diào)用操作,如此一來,就使得控制發(fā)生了反轉(zhuǎn);特點(diǎn)之四是可復(fù)用性,這一特點(diǎn)見文思意,即自動測試系統(tǒng)軟件框架所提供出的解決問題或者是就如何解決問題做出的建議想法方法等是可復(fù)用的,而自動測試系統(tǒng)軟件框架作為核心部件,它進(jìn)行設(shè)計(jì)的初衷就是可復(fù)用性,因而這一軟件框架的優(yōu)勢是顯然的。
4 自動測試系統(tǒng)軟件框架的實(shí)例化過程
綜上講述了自動測試系統(tǒng)軟件框架設(shè)計(jì)的方方面面、自動測試系統(tǒng)軟件框架的原理模型以及其本身所具備的特點(diǎn),當(dāng)下,針對發(fā)展越來越迅速的工業(yè)自動化程度,若想要建立一個自動測試系統(tǒng),就必須對這一系統(tǒng)這一框架進(jìn)行實(shí)例化,總結(jié)而言,實(shí)例化的過程基本是這樣的:
首先,先要了解測試系統(tǒng)的基本硬件架構(gòu),基于測試系統(tǒng)軟件之上,對硬件系統(tǒng)的接口進(jìn)行封裝操作,這一部分尤為重要,這些都是由硬件接口模塊擴(kuò)展得出的;然后,設(shè)計(jì)一個載入的順序表,上一步驟,硬件接口的初始化已經(jīng)做完,這個環(huán)節(jié)的順序,即指硬件接口的初始化順序與測試系統(tǒng)的架構(gòu)有著密切聯(lián)系,因而,順序表的設(shè)計(jì)應(yīng)當(dāng)以系統(tǒng)構(gòu)架為根據(jù),之后將其在載入順序表的記錄中顯示出來;繼而,進(jìn)行擴(kuò)展參數(shù)的配置操作,根據(jù)測試任務(wù)本身的特性,設(shè)計(jì)出合理科學(xué)的詳細(xì)參數(shù);再然后,對測試過程中的控制模塊以及測試界面模塊進(jìn)行擴(kuò)展操作;最后一步,對數(shù)據(jù)管理模塊進(jìn)行擴(kuò)展,針對這一模塊,擴(kuò)展系統(tǒng)所使用的數(shù)據(jù)容量,對各式各樣所需要的數(shù)據(jù)管理接口進(jìn)行重新寫入,使其作為系統(tǒng)數(shù)據(jù)管理和進(jìn)行交互的中心。當(dāng)然,除此之外,設(shè)計(jì)一個完整的測試系統(tǒng),還需要對一些特殊功能進(jìn)行設(shè)計(jì),譬如啟動界面顯示方式等內(nèi)容。
5 結(jié)束語
總而言之,自動測試系統(tǒng)軟件框架的設(shè)計(jì)主要分為主體框架、接口、硬件管理以及數(shù)據(jù)管理和實(shí)時性幾個方面的設(shè)計(jì)。通過全面分析自動測試系統(tǒng)的通用性,能夠進(jìn)行初步的確立,以縮短設(shè)計(jì)時間,最大程度上提高系統(tǒng)運(yùn)行的穩(wěn)定可靠性能。并且,某型空空導(dǎo)彈飛行在控制組件性能方面進(jìn)行綜合測試時,就是基于自動測試系統(tǒng)軟件的共性進(jìn)行設(shè)計(jì)的自動測試系統(tǒng)軟件框架,其表現(xiàn)出了極大的優(yōu)勢,譬如實(shí)現(xiàn)大粒度的軟件復(fù)用,以及簡化軟件的開發(fā)流程等。
參考文獻(xiàn):
[1]Mohamed E Eayad, 譯者:姜曉紅,李巖.特定領(lǐng)域應(yīng)用框架:行業(yè)的框架體驗(yàn)[M].北京:電子工業(yè)出版社,2004:55-56.
[2]田立民.青鳥自動測試工具JBTEST的開發(fā)研制[M].北京:電子工業(yè)出版社,2008:90-100.
[3]張毅剛,姜守達(dá).自動測試系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2011:34-35.
作者簡介:陳一寧(1992-),女,遼寧遼陽人,本科在讀,主要研究方向:軟件工程。
作者單位:大連理工大學(xué)城市學(xué)院,遼寧大連 116600