NI自動(dòng)化測試技術(shù)展望2:系統(tǒng)軟件棧
軟件是自動(dòng)化測試系統(tǒng)的重要組成部分,軟件第一次被用于控制獨(dú)立的儀器到現(xiàn)在已有40多年。從那時(shí)起,軟件在自動(dòng)化測試中的作用日益凸顯。事實(shí)上, 當(dāng)前大多數(shù)測試系統(tǒng)中,軟件開發(fā)費(fèi)用通常是硬件成本費(fèi)用的2到10倍以上。從許多測試工程企業(yè)的工程人員的組成比例即可看出這種情況,即雇傭的軟件工程師比硬件工程師多。為了應(yīng)對(duì)軟件開發(fā)成本的上升及產(chǎn)品開發(fā)周期的縮短,當(dāng)前業(yè)界領(lǐng)先的公司都在強(qiáng)調(diào)設(shè)計(jì)一個(gè)強(qiáng)大的系統(tǒng)軟件棧,以確保他們?cè)谲浖矫娴耐度肽?夠被延續(xù)下去,提高軟件資源的重用率。事實(shí)上, 2010年NI進(jìn)行的測試經(jīng)理人調(diào)查報(bào)告顯示,測試經(jīng)理們對(duì)系統(tǒng)軟件方面投入更多的關(guān)注,其重要性在 2011年提高測試開發(fā)效率的策略中排名第二。
本文引用地址:http://m.butianyuan.cn/article/134410.htm從系統(tǒng)軟件的角度來看,大多數(shù)公司正在遠(yuǎn)離一體式的軟件棧,這種棧通常包含固定不變的代碼和直接調(diào)用儀器驅(qū)動(dòng)函數(shù)。相反,他們正在探索一種模塊化的軟件棧,這種棧的成員既獨(dú)立又緊密關(guān)聯(lián),包括測試管理軟件、應(yīng)用軟件及驅(qū)動(dòng)軟件等。這種類型的系統(tǒng)軟件棧可幫助工程師針對(duì)每個(gè)領(lǐng)域的應(yīng)用選擇最佳的工具, 而且可在標(biāo)準(zhǔn)化的商用現(xiàn)成工具(Commercial Off The Shelf -COTS)和非現(xiàn)成的工具之間作出選擇??梢钥吹揭粋€(gè)重要的趨勢,就是將模塊化的理念應(yīng)用到軟件棧的每一層之中,這包括越來越來多地使用過程模型 (Process Model)、代碼模塊庫以及硬件抽象層等。
測試管理軟件用于定義測試系統(tǒng)關(guān)鍵的自動(dòng)控制策略及序列流程。其中過程模型是測試管理軟件層中的關(guān)鍵技術(shù),因?yàn)檫^程模型能夠?qū)⒎菧y試任務(wù)與測試任務(wù)分離,從而讓工程師們能夠輕松地在不同測試序列之間以及測試站之間對(duì)非測試任務(wù)進(jìn)行標(biāo)準(zhǔn)化管理。非測試任務(wù)包括與企業(yè)的連接任務(wù)中的絕大部分,用于數(shù)據(jù)輸 入、質(zhì)量數(shù)據(jù)庫的數(shù)據(jù)記錄、與車間溝通以及生成可編輯的測試報(bào)告。有了這個(gè)模塊化框架,企業(yè)可以擁有幾個(gè)過程模型,這些過程模型能夠應(yīng)用在許多不同產(chǎn)品線及所部署的成百上千的測試設(shè)備上。過程模型還可以在不影響測試任務(wù)的情況下簡化對(duì)測試站的非測試功能修改,從而減少了對(duì)已部署的測試站進(jìn)行更新所需的時(shí) 間。例如,工程師們根據(jù)市場需求可以在順序執(zhí)行、批處理和并行執(zhí)行等測試過程模型中進(jìn)行切換,從而快速改變測試站的執(zhí)行流程。
應(yīng)用軟件層同樣重要,因?yàn)樗苯佑绊懥藴y試系統(tǒng)中測試相關(guān)的任務(wù)。很多企業(yè)已經(jīng)開始開發(fā)模塊化的測試代碼,也就是所謂的代碼模塊。這些模塊由測試管理軟件進(jìn)行調(diào)用,進(jìn)行實(shí)際的測量和分析,來確定特定測試步驟的通過/失敗狀態(tài)。許多代碼模塊對(duì)不同類型的待測設(shè)備(Devices Under Test- DUT)執(zhí)行類似的I/O功能,因此在這方面,實(shí)現(xiàn)資源的重用以及使用基于團(tuán)隊(duì)的開發(fā)方法分配開發(fā)任務(wù)非常重要。近來,業(yè)界已經(jīng)有越來越多的企業(yè)采用重用測試代碼庫和更多的源代碼控制(Source Code Control-SCC)工具。現(xiàn)在,許多應(yīng)用軟件供應(yīng)商在軟件中集成SCC工具和一些高級(jí)功能(如三方對(duì)比與合并,three-way diff/merging),以適應(yīng)這種測試軟件開發(fā)趨勢。一些企業(yè)甚至設(shè)立專門的監(jiān)督機(jī)制以確保一定程度的資源重用和團(tuán)隊(duì)開發(fā),以防止重復(fù)開發(fā)和過分依賴單一開發(fā)者完成所有的代碼開發(fā)。
此外,企業(yè)在應(yīng)用軟件層中對(duì)需求管理軟件工具的集成日益增多。這有助于確保根據(jù)設(shè)計(jì)需求進(jìn)行一對(duì)一的測試項(xiàng)目覆蓋,這對(duì)有嚴(yán)格質(zhì)量標(biāo)準(zhǔn)的行業(yè)來說至關(guān)重要。新的需求管理軟件在應(yīng)用軟件與需求管理環(huán)境(例如Telelogic DOORS)之間提供了一個(gè)連接,這極大地減少了在測試系統(tǒng)開發(fā)中跟蹤需求覆蓋所花的時(shí)間。
系統(tǒng)軟件棧的最后一個(gè)部分是硬件抽象層(Hardware Abstraction Layer -HAL),它的需求和使用越來越多。HAL位于系統(tǒng)軟件棧的驅(qū)動(dòng)軟件層,它將應(yīng)用軟件從儀器硬件中分離,最大限度減小移植和升級(jí)測試系統(tǒng)花費(fèi)的時(shí)間和成 本。一般有兩種HAL設(shè)計(jì)方法:以儀器為中心或以特定應(yīng)用為中心。對(duì)于以儀器為中心的API,定義了一個(gè)內(nèi)部通用的以儀器為中心的API“標(biāo)準(zhǔn)”,可用于 多種類型的待測設(shè)備。
“我們創(chuàng)建了一個(gè)自動(dòng)化的設(shè)計(jì)驗(yàn)證測試框架,其中包括一個(gè)硬件抽象層。這個(gè)框架使我們能夠靈活地配置測試硬件,而無需更改測試軟件的代碼。” - Mohammad Ahmad, Manager, System Test and Verification, Thales Communications
可互換虛擬儀器(Interchangeable Virtual Instruments -IVI),是一個(gè)行業(yè)標(biāo)準(zhǔn)的HAL。從儀器為中心的抽象的觀點(diǎn)來看,頂層的測試應(yīng)用程序去調(diào)用一個(gè)以儀器為中心的API函數(shù),這使所有儀器看起來很相似(舉個(gè)例子,IviScope Configure AcquisitionType)。在以特定應(yīng)用為中心的方法中,測試應(yīng)用程序調(diào)用一個(gè)針對(duì)特定應(yīng)用的API,該API與需要執(zhí)行的測試的類型一致(例 如,LED測試)。HAL是開發(fā)和維護(hù)耦合度較低的測試系統(tǒng)時(shí)行之有效的方法,它能更好地解決產(chǎn)品和測試儀器生命周期不匹配的問題,避免測試儀器與測試代碼耦合度過高。測試代碼與測試儀器的松散耦合,改善了測試系統(tǒng)的整體設(shè)計(jì),使其在生命周期之內(nèi)更易于維護(hù)和擴(kuò)展。
將軟件系統(tǒng)棧的模塊性融合到到每個(gè)軟件層之中,增強(qiáng)了靈活性,并提供了開發(fā)復(fù)雜生命周期管理策略的框架。這些策略有助于減少軟件開發(fā)時(shí)間及老化問題,對(duì)許多方面有所幫助,如產(chǎn)品功能拓展、系統(tǒng)升級(jí)、儀器技術(shù)增添計(jì)劃等。
評(píng)論