隨著軟硬件協(xié)同應(yīng)用復(fù)雜性日益增加,其中軟件必須通過全面的測(cè)試才可以保證質(zhì)量和可靠性。但由于研發(fā)時(shí)間的限制,軟件測(cè)試需要選擇合適的方法,同時(shí)選擇合適的測(cè)試工具,以便達(dá)到足夠的測(cè)試效率。在一個(gè)基于FPGA的軟硬件協(xié)同應(yīng)用中,本文從占用資源、運(yùn)行速度等方面比較了Rational Visual Test和QuickTest Professional兩大自動(dòng)化測(cè)試工具,得出前者有較好的速度和可用性。
前言
軟件測(cè)試是程序的一種執(zhí)行過程,目的是盡可能發(fā)現(xiàn)并改正被測(cè)試軟件中的錯(cuò)誤,提高軟件的可靠性,它是軟件生命周期中一項(xiàng)非常重要的非常復(fù)雜的工作。在目前的情況下對(duì)軟件可靠性保證具有極其重要意義的,仍然是軟件測(cè)試。但如何進(jìn)行測(cè)試,如何提高測(cè)試的質(zhì)量和效率,從而確保軟件產(chǎn)品的質(zhì)量和可靠性,仍是令人深感困惑的問題。本文簡(jiǎn)要介紹軟件測(cè)試的基本過程,以及一些常用的技術(shù)手段、測(cè)試策略和準(zhǔn)則,并介紹一個(gè)在工作中用到的Rational(現(xiàn)已被IBM收購(gòu))自動(dòng)化軟件測(cè)試工具Visual Test。
運(yùn)用這種自動(dòng)化測(cè)試工具可以省去很多手工運(yùn)行的麻煩,而且準(zhǔn)確獲得測(cè)試數(shù)據(jù)和結(jié)果。通過本文介紹,以期使愈來愈多的人在認(rèn)識(shí)到軟件測(cè)試重要性的同時(shí),能夠更進(jìn)一步了解應(yīng)如何正確地選擇和有效地運(yùn)用各種各樣的測(cè)試方法、技術(shù)以及自動(dòng)化測(cè)試工具提高軟件的質(zhì)量和可靠性。
軟件測(cè)試的基本過程 軟件測(cè)試是一個(gè)極為復(fù)雜的過程。一個(gè)規(guī)范化的軟件測(cè)試過程通常須包括以下基本的測(cè)試活動(dòng) :①擬定軟件測(cè)試計(jì)劃 ;②編制軟件測(cè)試大綱 ;③設(shè)計(jì)和生成測(cè)試用例 ;④實(shí)施測(cè)試 ;⑤生成軟件問題報(bào)告。
實(shí)際上,軟件測(cè)試過程與整個(gè)軟件開發(fā)過程基本上是平行進(jìn)行的。測(cè)試計(jì)劃早在需求分析階段即應(yīng)開始制定,其他相關(guān)工作,包括測(cè)試大綱的制定、測(cè)試數(shù)據(jù)的生成、測(cè)試工具的選擇和開發(fā)等也應(yīng)在測(cè)試階段之前進(jìn)行。充分的準(zhǔn)備工作可以有效地克服測(cè)試的盲目性,縮短測(cè)試周期,提高測(cè)試效率,并且起到測(cè)試文檔與開發(fā)文檔互查的作用。此外,軟件測(cè)試在每個(gè)測(cè)試周期中,測(cè)試工程師將依據(jù)預(yù)先編制好的測(cè)試大綱和準(zhǔn)備好的測(cè)試用例,對(duì)被測(cè)軟件進(jìn)行完整的測(cè)試。測(cè)試與糾錯(cuò)通常是反復(fù)交替進(jìn)行的。
軟件測(cè)試工具
軟件測(cè)試的目的是用盡可能少的時(shí)間和人力發(fā)現(xiàn)并改正軟件中潛在的各種故障及缺陷,并能以更快的速度和更低的成本開發(fā)出高質(zhì)量的應(yīng)用程序,這就使測(cè)試人員的工作比以往任何時(shí)候都更加困難。在很多項(xiàng)目中,測(cè)試人員的所有任務(wù)大多是由手動(dòng)處理的,而實(shí)際上有很大一部分重復(fù)性強(qiáng)的測(cè)試工作是可以獨(dú)立開來,自動(dòng)實(shí)現(xiàn)的。在大型項(xiàng)目中測(cè)試團(tuán)隊(duì)和其他團(tuán)隊(duì)之間沒有足夠的合作,無法促進(jìn)彼此的交流。實(shí)施測(cè)試自動(dòng)化可以提高測(cè)試工作效率,使用工具的目的只是為了減少部分手工測(cè)試,將更多人力資源投入到更有價(jià)值的工作中。
一些受軟件開發(fā)人員歡迎的軟件測(cè)試工具為軟件測(cè)試提供了強(qiáng)有力的支持。本文將介紹美國(guó) Rational 公司(現(xiàn)已被IBM收購(gòu))的著名套裝軟件Rational Visual Test。它的一個(gè)重要特點(diǎn)是可以自動(dòng)驅(qū)動(dòng)被測(cè)程序的運(yùn)行。并且可以自動(dòng)記錄和重放程序執(zhí)行過程,從而實(shí)現(xiàn)了對(duì)測(cè)試進(jìn)行“復(fù)查”的自動(dòng)化。由于測(cè)試是一個(gè)需要反復(fù)進(jìn)行的過程,常常要數(shù)十次甚至數(shù)百次地重復(fù)。因此,這一特性大大地提高了軟件“再測(cè)試”(Re-Test)和“回歸測(cè)試 ”(Regression)的自動(dòng)化程度,把測(cè)試人員從繁雜的、重復(fù)性的手工測(cè)試中解脫出來,從而顯著地提高軟件測(cè)試效率。除了這個(gè)最基本的自動(dòng)錄放功能外,它還提供了一系列的輔助支持功能,比如被錄制的程序執(zhí)行過程可以被自動(dòng)轉(zhuǎn)換成具有良好可讀性的高級(jí)語言程序,從而使這個(gè)測(cè)試驅(qū)動(dòng)程序可以由測(cè)試人員根據(jù)測(cè)試需要進(jìn)行必要的修改,甚至完全用手工方式編制。自動(dòng)記錄和分析比較測(cè)試的執(zhí)行結(jié)果。
測(cè)試實(shí)例介紹
接下來以實(shí)際工作中的一個(gè)測(cè)試項(xiàng)目為例,結(jié)合Visual Test這個(gè)自動(dòng)測(cè)試工具對(duì)所要測(cè)試的內(nèi)容進(jìn)行介紹。為了方便介紹,下文都以VT作為Visual Test的簡(jiǎn)稱,QT作為工具QuickTest Professional的簡(jiǎn)稱。
Visual Test的軟件界面,與Visual Stadio相似,所以很容易上手,左面是建立的項(xiàng)目名,右面是代碼,最下面是信息輸出窗口。
接下來介紹所要測(cè)試的軟件ispLEVER,它是Lattice公司的CPLD/FPGA集成設(shè)計(jì)工具?,F(xiàn)在所要測(cè)試的就是在ispLEVER環(huán)境下運(yùn)行一批FPGA器件的設(shè)計(jì)例子,產(chǎn)生最后的下載文件(.bit或者.jed),并提取一些例如最大頻率,所用資源等參數(shù),將這些參數(shù)與之前版本運(yùn)行后的結(jié)果相比較,這樣就能分析出當(dāng)前所測(cè)試軟件版本的優(yōu)劣之處。
運(yùn)行Rational Visual test測(cè)試主要分為兩步,先運(yùn)行所有的設(shè)計(jì)的case,然后提取參數(shù)。
運(yùn)行所有case 首先讀取runlist文件,runlist是一個(gè)包括了所有運(yùn)行例子的文件名的文件,每一行對(duì)應(yīng)一個(gè)例子的文件名,程序逐行讀入,參考圖1示的代碼。
接下來整個(gè)代碼運(yùn)行的流程可以表示為:最小化VT窗口-》在桌面上找到ispLEVER的圖標(biāo)并運(yùn)行-》進(jìn)入工作目錄-》處理一些彈出的窗口信息-》打開需要運(yùn)行的例子-》清除項(xiàng)目以前運(yùn)行的信息 -》保存項(xiàng)目-》運(yùn)行布線-》保存當(dāng)前的項(xiàng)目-》把運(yùn)行完的例子復(fù)制到統(tǒng)一的備份目錄中-》關(guān)閉當(dāng)前運(yùn)行的項(xiàng)目 -》運(yùn)行下一個(gè)例子 ……,直至運(yùn)行完所有的測(cè)試?yán)??! ∫陨纤械牟藛魏痛翱诓僮鞫际怯蒝T執(zhí)行代碼完成操作。接著測(cè)試工具將會(huì)按照代碼包含的子程序運(yùn)行。
圖2所示的打開項(xiàng)目程序所進(jìn)行的操作依次為,選中ispLEVER為當(dāng)前窗口,定義窗口的尺寸,打開File下拉菜單的第二行命令,也就是open project命令,接著用play命令輸入工作目錄和項(xiàng)目名,接著點(diǎn)擊open來打開項(xiàng)目。
此外VT中還有例如點(diǎn)擊窗口中的關(guān)鍵字操作,在當(dāng)前窗口中尋找關(guān)鍵字,坐標(biāo)定位等指令,靈活運(yùn)用這些命令極大的豐富了VT自動(dòng)化測(cè)試的內(nèi)容。
運(yùn)行完所有的例子后,所要進(jìn)行的就是提取所需的各種參數(shù),也就是重要的測(cè)試數(shù)據(jù)。
運(yùn)行完的例子都會(huì)備份在一個(gè)統(tǒng)一的目錄中,現(xiàn)在VT所要做的就是在這些對(duì)應(yīng)的目錄中找到.log和.twr文件,這兩個(gè)文件是最后運(yùn)行完case的輸出信息文件,里面包含了測(cè)試所要提取的一些參數(shù)信息。
圖3是在.log文件中的一段信息,紅圈指示的內(nèi)容是需要提取的信息之一,log文件是運(yùn)行完后軟件所生成的日志,里面包括了布線完后的一些資源信息,在這里VT所要做的提取的是PIOs信息,也就是輸入輸出端口數(shù)量的信息,可以用下面的代碼實(shí)現(xiàn)。
圖4實(shí)現(xiàn)的是把log文件中逐行輸入到tempstring中,在這些輸入的信息中找到所需信息并處理,則需要在VT中用以下代碼實(shí)現(xiàn)。
圖5實(shí)現(xiàn)的是在字符串tempstring中尋找關(guān)鍵字“Number of external PIOs:”,也就是I/O口端口數(shù)量信息的那行。如果找到的話,用LTRIM$實(shí)現(xiàn)從這行第29個(gè)字符開始的內(nèi)容放入tempstring2中。由于所要的有用信息只包括”out of”之前的數(shù)字,所以還需要用LEFT$來提取左面的信息,也就是158,這就是使用的I/O端口數(shù)量的信息,最后再用TRIM$ 去掉空格即可得到。
類似的可以在特定的時(shí)序文件中得到最大頻率,所用綜合工具,器件封裝,所用到的資源等等信息,把這些參數(shù)信息提取出來與之前版本的ispLEVE軟件所運(yùn)行得出的結(jié)果相比較,得出測(cè)試的結(jié)果。
從上可看出,對(duì)于測(cè)試所要運(yùn)行的例子比較多,如果采用手工的話,工作量相當(dāng)大,而且極不精確,容易出錯(cuò)。現(xiàn)在采用自動(dòng)化測(cè)試工具將簡(jiǎn)化測(cè)試的繁瑣程度,所有操作由自動(dòng)化測(cè)試工具完成,而且代碼可以移植,只要稍微改動(dòng)幾個(gè)參數(shù),代碼適用于每個(gè)版本的測(cè)試,給測(cè)試工作帶來極大方便與準(zhǔn)確性。
自動(dòng)化測(cè)試工具的比較
目前同類的主流自動(dòng)化測(cè)試軟件還有Mucury公司的QuickTest Professional。
它也是一款測(cè)試自動(dòng)化軟件,與Visual Test有類似之處,都是用于創(chuàng)建功能和回歸測(cè)試,能自動(dòng)捕獲、驗(yàn)證和重放用戶的交互行為。QuickTest Professional的特點(diǎn)是易于操作,可以通過軟件中所集成的錄制能力來捕獲測(cè)試步驟,產(chǎn)品用簡(jiǎn)單的英語以文檔形式記錄每個(gè)步驟,并通過活動(dòng)屏幕將文檔與一個(gè)集成截屏相結(jié)合。傳統(tǒng)的腳本記錄工具所生產(chǎn)的腳本不易修改,不同的是,在QuickTest中的關(guān)鍵詞驅(qū)動(dòng)方式能便捷地插入、修改數(shù)據(jù)驅(qū)動(dòng)和移除測(cè)試步驟,靈活性較強(qiáng)。
下面的數(shù)據(jù)表格是在PC上運(yùn)行VT和QT這兩個(gè)工具,分別關(guān)于內(nèi)存占用以及打開ispLEVER工具的時(shí)間,兩者對(duì)比之下的結(jié)果。其中Open project ,F(xiàn)it Design是指打開設(shè)計(jì)和最后生成下載文件,Simulation是仿真,Design Planner、EPIC、IPexpress、ispVM、Power Calculator等都是ispLEVER開發(fā)環(huán)境下的工具,主要用于底層的交互式編輯,調(diào)用ip以及下載程序,分析功率等功能(表1,表2)。
根據(jù)上面兩個(gè)對(duì)比結(jié)果,從內(nèi)存占用情況來看VT占用的資源要遠(yuǎn)小于QT;從打開工具所用時(shí)間來看,VT打開絕大多數(shù)ispLEVER的工具的時(shí)間也要小于QT。雖然QT具有較強(qiáng)的錄制修改腳本的特點(diǎn),但從實(shí)際應(yīng)用來看,運(yùn)行的速度和占用資源對(duì)于軟件測(cè)試更為重要,所以自動(dòng)測(cè)試工具VT要優(yōu)于QT。
結(jié)論
隨著軟硬件協(xié)同應(yīng)用復(fù)雜性日益增加,軟件測(cè)試工作越來越受到重視。隨著軟件技術(shù)的發(fā)展,程序的規(guī)模逐漸增大,復(fù)雜度也逐漸增加,使用軟件測(cè)試工具可以增強(qiáng)軟件測(cè)試的自動(dòng)化程度。在兩個(gè)主流軟件的比較中,Visual Test相對(duì)較高的效率和速度在軟硬件設(shè)計(jì)的實(shí)際應(yīng)用中得到驗(yàn)證,有助于軟件開發(fā)和測(cè)試人員進(jìn)一步提高測(cè)試效率和軟件的質(zhì)量。這可以反映出在軟硬件設(shè)計(jì)的過程中,工具的選擇必須用實(shí)際應(yīng)用來作選擇,來保障整體的開發(fā)效率的提高。
責(zé)任編輯:gt
評(píng)論
查看更多