軟件測(cè)試是軟件生存期中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。軟件測(cè)試自動(dòng)化,是一項(xiàng)讓計(jì)算機(jī)代替測(cè)試人員進(jìn)行軟件測(cè)試的技術(shù)。測(cè)試自動(dòng)化通常借助測(cè)試工具來執(zhí)行,測(cè)試工具可以進(jìn)行部分的測(cè)試設(shè)計(jì)、實(shí)現(xiàn)、執(zhí)行和比較的工作[1]。通過運(yùn)用測(cè)試工具,可以達(dá)到提高測(cè)試效率的目的。本文首先介紹了自動(dòng)化測(cè)試的概念及怎樣實(shí)現(xiàn)自動(dòng)化測(cè)試,接著介紹主流自動(dòng)化測(cè)試軟件及其自動(dòng)化測(cè)試框架的構(gòu)造,最后介紹用自動(dòng)化測(cè)試腳本語言Tcl(Tool Command Language)實(shí)現(xiàn)一硬件系統(tǒng)中主備板間自動(dòng)切換的測(cè)試用例。
軟件測(cè)試跨越整個(gè)軟件開發(fā)流程,軟件測(cè)試就是在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序,評(píng)估運(yùn)行結(jié)果,預(yù)先條件應(yīng)包括正常條件和異常條件。測(cè)試應(yīng)當(dāng)有意制造錯(cuò)誤從而確定是否漏過預(yù)期應(yīng)當(dāng)發(fā)生的事件,或者發(fā)生了預(yù)期不該發(fā)生的事件,測(cè)試的目的是檢查錯(cuò)誤。經(jīng)驗(yàn)表明,測(cè)試人員多數(shù)的時(shí)間花在對(duì)系統(tǒng)邏輯流程和控制流程的理解(白盒測(cè)試),測(cè)試覆蓋路徑的確認(rèn),同一測(cè)試用例對(duì)不同程序修改版本的測(cè)試結(jié)果驗(yàn)證和手工填寫測(cè)試報(bào)告上等場(chǎng)合,這些領(lǐng)域適當(dāng)采用測(cè)試工具可以提高測(cè)試效率和測(cè)試正確性[2]。為此我們引用自動(dòng)化測(cè)試。
測(cè)試自動(dòng)化可理解為測(cè)試過程自動(dòng)化和測(cè)試結(jié)果分析自動(dòng)化。測(cè)試過程的自動(dòng)化指的是不用手工逐個(gè)的對(duì)用例進(jìn)行測(cè)試。測(cè)試結(jié)果分析自動(dòng)化指的是不用人工一點(diǎn)點(diǎn)去分析測(cè)試過程中的中間結(jié)果或數(shù)據(jù)流。適合于軟件測(cè)試自動(dòng)化的場(chǎng)合:
(1)回歸測(cè)試,重復(fù)單一的數(shù)據(jù)錄入或是擊鍵等測(cè)試操作造成了不必要的時(shí)間浪費(fèi)和人力浪費(fèi);
(2)此外測(cè)試人員對(duì)程序的理解和對(duì)設(shè)計(jì)文檔的驗(yàn)證通常也要借助于測(cè)試自動(dòng)化工具;
(4)自動(dòng)化工具能夠確定測(cè)試用例的覆蓋路徑,確定測(cè)試用例集對(duì)程序邏輯流程和控制流程的覆蓋。
常規(guī)情況下,軟件的自動(dòng)化測(cè)試能夠發(fā)現(xiàn)10%-15%的軟件錯(cuò)誤。手工測(cè)試能夠發(fā)現(xiàn)80%左右軟件錯(cuò)誤,由于自動(dòng)化測(cè)試和手工測(cè)試存在重合的錯(cuò)誤發(fā)現(xiàn),因此尚需有5%-10%的錯(cuò)誤需要通過兩者結(jié)合和采取其它途徑進(jìn)行發(fā)現(xiàn)。
單元測(cè)試自動(dòng)化是最輕量級(jí)的測(cè)試,它的測(cè)試目標(biāo)是特定模塊的函數(shù)或者代碼塊。通常單元測(cè)試是由開發(fā)工程師自己來做的,因?yàn)檫M(jìn)行這種測(cè)試涉及到程序內(nèi)部設(shè)計(jì)和代碼實(shí)現(xiàn)的細(xì)節(jié)。對(duì)于單元測(cè)試,我們希望能像使用編譯程序器編譯一樣,每次修改代碼后,即可運(yùn)行編譯器進(jìn)行編譯,如果沒有錯(cuò)誤,完全可不用去看編譯報(bào)告,當(dāng)有問題時(shí)編譯器才會(huì)發(fā)出警報(bào),并給出一定的線索。我們用編譯器來檢查語法錯(cuò)誤,用單元測(cè)試來檢查語義錯(cuò)誤[3]。單元測(cè)試適合于充分的測(cè)試代碼片斷,它的前提是對(duì)代碼的具體實(shí)現(xiàn)非常了解。
在這測(cè)試環(huán)境中,被測(cè)系統(tǒng)看作一個(gè)整體,它接受到外界的輸入后,會(huì)產(chǎn)生一些相應(yīng)的輸出。而外部環(huán)境是由用戶界面和測(cè)試工具組成。用戶界面就是用戶使用被測(cè)系統(tǒng)的接口。測(cè)試工具這里指的是外部支持系統(tǒng),可能是一個(gè)關(guān)聯(lián)子系統(tǒng),也可能是一些驅(qū)動(dòng)庫,這些系統(tǒng)可能是真實(shí)的系統(tǒng),也可能是專為測(cè)試做的模擬系統(tǒng)。一般情況,相對(duì)測(cè)試系統(tǒng)來說,用戶界面是主動(dòng)的,由它發(fā)起對(duì)某個(gè)功能點(diǎn)的測(cè)試,而測(cè)試工具是被動(dòng)的,它接收到由被測(cè)系統(tǒng)發(fā)出的消息后,發(fā)回相應(yīng)的響應(yīng)。
我們需要編程序來完成用戶界面以及測(cè)試工具的動(dòng)作,我們把上圖的外部環(huán)境分為三種類型來討論:用戶界面,模擬外部子系統(tǒng)和真實(shí)外部子系統(tǒng)。這里只考慮模擬外部系統(tǒng)的測(cè)試工具,對(duì)于真實(shí)的外部子系統(tǒng),它的動(dòng)作是不用測(cè)試者設(shè)定,然而某些情況下我們還是需要觀察它與被測(cè)系統(tǒng)間交互的消息,確認(rèn)其中的某些檢查點(diǎn)??刹捎媚_本語言來實(shí)現(xiàn)測(cè)試自動(dòng)化。腳本語言的特點(diǎn)首先它自動(dòng)逐條執(zhí)行語句,并可以方面的修改源代碼來設(shè)定一系列的動(dòng)作,另外,腳本語言一般都有非常強(qiáng)大的字符串處理能力,這對(duì)于我們實(shí)現(xiàn)測(cè)試自動(dòng)化以及結(jié)果分析都非常有利。
一般來說,用戶界面和模擬外部子系統(tǒng)的測(cè)試工具功能比較簡(jiǎn)單,主要是收發(fā)短消息或涉及鼠標(biāo)鍵盤操作,其中沒有復(fù)雜的邏輯和算法,可被認(rèn)為是一個(gè)一個(gè)的消息觸發(fā)器組成的,而且每個(gè)觸發(fā)器的動(dòng)作都是預(yù)先設(shè)定好,接收到消息A則發(fā)送消息B,因此用腳本語言很容易模擬它們的動(dòng)作。在用腳本語言實(shí)現(xiàn)過程自動(dòng)化的時(shí)候,可以通過在腳本中設(shè)置控制點(diǎn),控制腳本的執(zhí)行。當(dāng)腳本運(yùn)行到控制點(diǎn)時(shí),將等待用戶輸入,然后根據(jù)輸入進(jìn)行進(jìn)一步的動(dòng)作。這樣可逐段執(zhí)行腳本,便于調(diào)試。通過構(gòu)建自動(dòng)化測(cè)試平臺(tái)進(jìn)行過程自動(dòng)化測(cè)試,大大減少了測(cè)試過程中所需做的重復(fù)性工作,降低了人性的弱點(diǎn)對(duì)程序質(zhì)量的威脅。
構(gòu)建好自動(dòng)化測(cè)試平臺(tái)后,我們可對(duì)測(cè)試結(jié)果進(jìn)行自動(dòng)化分析了。對(duì)某一個(gè)功能點(diǎn)的測(cè)試往往包含用戶界面,被測(cè)系統(tǒng)和測(cè)試工具的多次消息交互,通過查看這些消息的內(nèi)容和順序是否與預(yù)期一致來判斷一個(gè)測(cè)試用例是否通過,形成自動(dòng)分析案例。對(duì)于某個(gè)測(cè)試用例,可預(yù)先編制一個(gè)目標(biāo)文件,其中包含所有完成這個(gè)用例所需交互消息,包括用戶界面與被測(cè)系統(tǒng)間的消息,以及被測(cè)系統(tǒng)與測(cè)試工具之間的消息。
在自動(dòng)測(cè)試平臺(tái)中,加入一些控制,在收發(fā)消息的同時(shí)將消息依次存入到一個(gè)文件中,當(dāng)測(cè)試用例完成后,可將兩文件做對(duì)比,如果匹配的話說明測(cè)試成功,如果不匹配,則給出最先不匹配的位置信息。編寫目標(biāo)文件不一定要包含所以消息,有時(shí)候可能只需要比較某個(gè)測(cè)試工具接受的消息就可以判斷是否正常,那么在腳本中只需將該測(cè)試工具所接受的消息存入文件即可。這樣手工編寫目標(biāo)文件容易,比較速度也快。比較文件時(shí)所用的匹配算法也可根據(jù)自己的需要加以調(diào)整,可以是精確匹配,也可以只是檢查目標(biāo)文件中的消息是否在當(dāng)前生成的文件中依次出現(xiàn)。一些腳本語言,例如TCL具有很強(qiáng)的字符處理能力,可方便的實(shí)現(xiàn)某些匹配算法。
通過用腳本來實(shí)現(xiàn)測(cè)試過程與測(cè)試結(jié)果分析,可形成維護(hù)一個(gè)測(cè)試用例庫。每次代碼集成的時(shí)候都可以通過運(yùn)行這些腳本對(duì)程序進(jìn)行回歸過程測(cè)試,整個(gè)測(cè)試過程不需要人工干預(yù)[4]。當(dāng)出現(xiàn)問題時(shí),會(huì)生成相應(yīng)的測(cè)試報(bào)告,給出錯(cuò)誤信息。這個(gè)測(cè)試用例庫在整個(gè)軟件的生命周期中都可重復(fù)利用。
Mercury Interactive 的 LoadRunner 是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。通過以模擬上千萬用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來確認(rèn)和查找問題,LoadRunner 能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試。通過使用LoadRunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的周期。LoadRunner 支持廣范的協(xié)議和技術(shù),為特殊環(huán)境提供特殊的解決方案。
TestDirector是業(yè)界第一個(gè)基于Web的測(cè)試管理系統(tǒng),它可以對(duì)全球范圍內(nèi)的測(cè)試進(jìn)行管理。通過在一個(gè)整體的應(yīng)用系統(tǒng)中集成了測(cè)試管理的各個(gè)部分,包括需求管理,測(cè)試計(jì)劃,測(cè)試執(zhí)行以及錯(cuò)誤跟蹤等功能,TestDirector極大地加速了測(cè)試過程。一套基于Web的測(cè)試管理系統(tǒng)提供了一個(gè)協(xié)同合作的環(huán)境和一個(gè)中央數(shù)據(jù)倉庫TestDirector能消除組織機(jī)構(gòu)間、地域間的障礙。
Win Runner是Mercury Interactive公司推出的一種企業(yè)級(jí)自動(dòng)化測(cè)試工具。通過自動(dòng)錄制、檢測(cè)和回放用戶的應(yīng)用操作,來幫助測(cè)試人員自動(dòng)完成應(yīng)用程序的功能性測(cè)試。可提高測(cè)試人員的工作效率和質(zhì)量,確??缙脚_(tái)的、復(fù)雜的企業(yè)級(jí)應(yīng)用無故障及長期穩(wěn)定運(yùn)行。用WinRunner進(jìn)行自動(dòng)化測(cè)試主要分為5步:
(1)創(chuàng)建GUI Map文件。WinRunner可以通過它來識(shí)別被測(cè)試應(yīng)用程序中的GUI對(duì)象。
(2)創(chuàng)建調(diào)試測(cè)試腳本。通過錄制,編程,或兩者的組合創(chuàng)建并調(diào)試測(cè)試腳本。
(3)運(yùn)行程序。運(yùn)行測(cè)試時(shí),WinRunner會(huì)自動(dòng)操作應(yīng)用程序,就象一個(gè)真實(shí)的用戶根據(jù)業(yè)務(wù)流程執(zhí)行著每一步的操作。
(4)結(jié)果分析。WinRunner通過交互式的報(bào)告工具來提供詳盡的、易讀的報(bào)告。這些測(cè)試結(jié)果還可以通過Mercury Interactive的測(cè)試管理工具TestDirector來查閱。
(5)維護(hù)測(cè)試。WinRunner可以創(chuàng)建在整個(gè)應(yīng)用程序生命周期內(nèi)都可以重復(fù)使用的測(cè)試,從而大大地節(jié)省時(shí)間和資源,充分利用測(cè)試環(huán)境。
根據(jù)類和封裝的思想,將WinRunner中的類提取來進(jìn)行封裝。所有的類全部封裝于函數(shù)(ExecuteCase)中,針對(duì)每一類,均有具體的行為與之對(duì)應(yīng),根據(jù)配置文件中傳入?yún)?shù)的所屬類,ExecuteCase會(huì)將相應(yīng)的接口進(jìn)行處理。如果有新類或特殊類,也可以將ExecuteCase函數(shù)進(jìn)行擴(kuò)充,從而滿足不同的測(cè)試需求。
Tcl(Tool Command Language)是一種可運(yùn)行在 Unix,Windows 和 Macintosh 等各種平臺(tái)上的自動(dòng)化測(cè)試腳本語言。具有良好的擴(kuò)展性,以便用戶為其增添新的功能模塊。Tcl語言將程序設(shè)計(jì)概念高度抽象,真正地把程序設(shè)計(jì)與操作系統(tǒng)底層結(jié)構(gòu)隔開,因此不依賴于任何平臺(tái),具有良好的可移植性[5]。下面簡(jiǎn)單介紹用Tcl實(shí)現(xiàn)一硬件系統(tǒng)中主備板間自動(dòng)切換的測(cè)試事例。
軟件測(cè)試跨越整個(gè)軟件開發(fā)流程, 軟件生存期中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟. 運(yùn)用主流自動(dòng)化測(cè)試工具,構(gòu)建自動(dòng)化測(cè)試平臺(tái)及自動(dòng)化測(cè)試框架,可提高測(cè)試效率和準(zhǔn)確性。自動(dòng)化測(cè)試腳本語言的應(yīng)用更為軟件自動(dòng)化測(cè)試提供了有利的支撐。
[1] 張克東. 軟件工程與軟件測(cè)試自動(dòng)化教程[M]. 電子工業(yè)出版社, 2002.4.
[3] 朱菊, 王志堅(jiān). 基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2006,16(5).
[4] 張毅坤. 面向?qū)ο筌浖y(cè)試的特點(diǎn)及方法[J].西安理工大學(xué)學(xué)報(bào),2002,18(4).
信息爆炸時(shí)代帶來了信息數(shù)量的級(jí)數(shù)級(jí)增長,各行業(yè)也越來越認(rèn)識(shí)到對(duì)大數(shù)據(jù)的掌控和分析能力會(huì)是未來競(jìng)爭(zhēng)力的核心。行業(yè)決策也超越了以前依靠抽樣調(diào)查的階段,轉(zhuǎn)而依靠大數(shù)據(jù)進(jìn)行全面分析支持。
除功能外大數(shù)據(jù)平臺(tái)性能處理能力是評(píng)測(cè)大數(shù)據(jù)平臺(tái)的重要指標(biāo)之一。目前,大數(shù)據(jù)平臺(tái)性能測(cè)試存在的問題主要有:開源版本更換較快,需要頻繁更換版本; 測(cè)試條目較多,場(chǎng)景比較復(fù)雜、繁瑣,手工操作容易出錯(cuò)或不準(zhǔn)確; 整個(gè)測(cè)試過程持續(xù)時(shí)間長。本文基于BigDataBench工具和Apache Hadoop2.5進(jìn)行大數(shù)據(jù)平臺(tái)性能測(cè)試自動(dòng)化研究,嘗試解決上述問題。
經(jīng)典的大數(shù)據(jù)平臺(tái)組件性能測(cè)試項(xiàng)主要包括HDFS的讀寫、Mapreduce的執(zhí)行情況、NoSQL的數(shù)據(jù)庫能力等[2],如表1所示。
以上測(cè)試項(xiàng)覆蓋了I/O測(cè)試、I/O密集型、計(jì)算密集型及混合類型測(cè)試條目,涉及文本、圖和表等輸入數(shù)據(jù)。
在性能測(cè)試中,測(cè)試工具支持必不可少,目前除Apache Hadoop自帶工具外,還有企業(yè)或組織了第三方測(cè)試工具。一般測(cè)試工具包括測(cè)試數(shù)據(jù)生成、負(fù)載運(yùn)行和報(bào)告生成三大功能。
HiBench是Intel的一個(gè)大數(shù)據(jù)性能測(cè)試套件,包括HDFS、Mapreduce、SQL、網(wǎng)頁搜索以及機(jī)器學(xué)習(xí)等性能測(cè)試。支持的測(cè)試條目比較全面。
YCSB在命令行中直接可以設(shè)置線程數(shù)、讀寫比例等,可以提供較為詳細(xì)的測(cè)試結(jié)果。
BigDataBench[3]是由中科院計(jì)算所研發(fā)的一款開源性能測(cè)試套件,是國內(nèi)大數(shù)據(jù)組織大數(shù)據(jù)聯(lián)盟(推薦的大數(shù)據(jù)性能測(cè)試工具。大數(shù)據(jù)聯(lián)盟(DCA,Data Center Alliance)同時(shí)配套的還有大數(shù)據(jù)性能測(cè)試基準(zhǔn)要求及方法[3]。
BigDataBench整合多種測(cè)試工具的優(yōu)點(diǎn),幾乎覆蓋所有組件,可以準(zhǔn)備文本、圖像、數(shù)據(jù)庫等多種數(shù)據(jù),實(shí)現(xiàn)端到端的性能測(cè)試[4]。
由于大數(shù)據(jù)聯(lián)盟的權(quán)威性,幾乎國內(nèi)全部大數(shù)據(jù)廠商都遵循大數(shù)據(jù)聯(lián)盟的測(cè)試工具及測(cè)試要求,并參加了大數(shù)據(jù)聯(lián)盟組織的測(cè)試。本性能測(cè)試自動(dòng)化系統(tǒng)也主要是基于BigDataBench工具。
大數(shù)據(jù)平臺(tái)性能測(cè)試自動(dòng)化系統(tǒng)主要實(shí)現(xiàn)部署自動(dòng)化,測(cè)試數(shù)據(jù)準(zhǔn)備自動(dòng)化,性能負(fù)載運(yùn)行自動(dòng)化以及數(shù)據(jù)展示自動(dòng)化。
整個(gè)自動(dòng)化測(cè)試過程主要包括版本部署、運(yùn)行狀態(tài)檢查、數(shù)據(jù)準(zhǔn)備、測(cè)試腳本運(yùn)行、結(jié)果收集展示及環(huán)境清理幾個(gè)步驟。
在自動(dòng)化測(cè)試中,版本部署部分通過調(diào)用Node.js來模擬瀏覽器的相關(guān)操作。準(zhǔn)備數(shù)據(jù)及運(yùn)行腳本部分,通過調(diào)用預(yù)先編寫的相關(guān)Shell腳本來按測(cè)試方案配置并運(yùn)行BigDataBench的相關(guān)測(cè)試命令,同時(shí)采用Nmon工具來監(jiān)控主機(jī)CPU和內(nèi)存利用率以及I/O性能指標(biāo),通過Grafana展示結(jié)果數(shù)據(jù)[5,6]。具體流程如圖1所示。
最終通過Grafana系統(tǒng)展示測(cè)試結(jié)果,包括主機(jī)性能監(jiān)控指標(biāo),各測(cè)試負(fù)載結(jié)果數(shù)據(jù),各版本橫向測(cè)試結(jié)果對(duì)比,效果如圖2所示。
本文在大數(shù)據(jù)平臺(tái)研發(fā)過程中運(yùn)用本系統(tǒng)來保障性能測(cè)試,取得了較好效果。首先確保了各版本性能測(cè)試環(huán)境、數(shù)據(jù)、方法和測(cè)試標(biāo)準(zhǔn)的一致性,并大幅提高了工作效率,同時(shí)做到7×24小時(shí)不間斷運(yùn)行。在實(shí)際應(yīng)用中發(fā)現(xiàn),原來需要4~5天的人工性能測(cè)試工作可以縮短到2天之內(nèi)由測(cè)試自動(dòng)化系統(tǒng)來完成。
由本性能自動(dòng)化測(cè)試系統(tǒng)保障的大數(shù)據(jù)平臺(tái)在大數(shù)據(jù)聯(lián)盟組織的性能測(cè)試中,取得了排名前列的成績(jī)。其中NoSQL測(cè)試項(xiàng)中的“Write”(讀)操作和“Scan”(掃描)兩項(xiàng)操作測(cè)試指標(biāo)排名第一。
如何加強(qiáng)基本組件的性能測(cè)試,比如生成恰當(dāng)?shù)臏y(cè)試輸入數(shù)據(jù),實(shí)現(xiàn)應(yīng)用端到端的測(cè)試,同時(shí)擴(kuò)充Spark、Kafka、Storm等新增組件的性能測(cè)試套件并整合其它優(yōu)秀性能測(cè)試工具,將是后續(xù)研究的方向。
[1] 朱葉青,牛德姣,蔡濤,等.不同網(wǎng)絡(luò)環(huán)境下大數(shù)據(jù)系統(tǒng)的測(cè)試與分析[J].江蘇大學(xué)學(xué)報(bào):自然科學(xué)版,2016(4):429-437.
[3] 陳凱,魏凱,周曉敏.大數(shù)據(jù)平臺(tái)基準(zhǔn)測(cè)試標(biāo)準(zhǔn)化思考 [J].電信網(wǎng)技術(shù),2013(2):14-17.
【關(guān)鍵詞】自動(dòng)化測(cè)試 增值業(yè)務(wù) 短信貓測(cè)試自動(dòng)化 WAP/Web頁面操作自動(dòng)化
隨著3G網(wǎng)絡(luò)的廣泛應(yīng)用,電信行業(yè)進(jìn)入體驗(yàn)式經(jīng)濟(jì)時(shí)代,越來越多的用戶通過運(yùn)營商、移動(dòng)互聯(lián)網(wǎng)或應(yīng)用商店直接購買、體驗(yàn)、使用各類增值業(yè)務(wù)。高質(zhì)量的業(yè)務(wù)應(yīng)用、良好的服務(wù)質(zhì)量是客戶對(duì)業(yè)務(wù)提出的需求,也是電信行業(yè)各方競(jìng)爭(zhēng)的重要領(lǐng)域。中國移動(dòng)在增值業(yè)務(wù)領(lǐng)域發(fā)展迅速,向用戶提供包含娛樂、信息、數(shù)據(jù)、交易等多種類型的業(yè)務(wù)應(yīng)用,如何確保新業(yè)務(wù)的上線質(zhì)量,特別是面對(duì)數(shù)量巨大的新上線業(yè)務(wù),同時(shí)還要兼顧業(yè)務(wù)上線前測(cè)試時(shí)間短等因素,自動(dòng)化測(cè)試成為最為可行的解決之道。本文將結(jié)合移動(dòng)增值業(yè)務(wù)的特點(diǎn),特別是個(gè)人業(yè)務(wù)的特點(diǎn),闡述自動(dòng)化測(cè)試的設(shè)計(jì)和實(shí)現(xiàn)方法。
針對(duì)個(gè)人業(yè)務(wù)的測(cè)試是模擬真實(shí)用戶從業(yè)務(wù)辦理、業(yè)務(wù)使用、業(yè)務(wù)計(jì)費(fèi)以及與用戶感知相關(guān)的其他方面對(duì)業(yè)務(wù)質(zhì)量進(jìn)行的端到端測(cè)試。用戶使用個(gè)人業(yè)務(wù)的整個(gè)過程,包含業(yè)務(wù)訂購、業(yè)務(wù)使用、業(yè)務(wù)計(jì)費(fèi)和業(yè)務(wù)退訂。例如移動(dòng)推出的“手機(jī)就是郵箱”的139郵箱個(gè)人業(yè)務(wù),用戶可以通過發(fā)送短信到10086辦理,也可以通過WAP和Web上網(wǎng)辦理;辦理成功后,用戶使用139郵箱提供的功能,移動(dòng)會(huì)每月從客戶的賬戶中扣除相應(yīng)的使用費(fèi)用;當(dāng)用戶退訂139郵箱后,該業(yè)務(wù)訂購關(guān)系將自動(dòng)取消。
業(yè)務(wù)訂購:當(dāng)前大部分增值業(yè)務(wù)均提供了短信訂購、WAP掌上營業(yè)廳訂購和Web網(wǎng)上營業(yè)廳訂購三種方式。三種訂購方式的流程概括如圖1所示:
從圖1中可以看出,短信渠道訂購過程中,用戶與業(yè)務(wù)系統(tǒng)之間主要通過短信交互完成,WAP和Web渠道基本的過程差別不大,主要區(qū)別在于用戶操作和訪問的頁面不同。
業(yè)務(wù)計(jì)費(fèi):從計(jì)費(fèi)的及時(shí)和準(zhǔn)確性出發(fā),對(duì)業(yè)務(wù)計(jì)費(fèi)的驗(yàn)證主要以網(wǎng)廳賬詳單展示為主。
個(gè)人業(yè)務(wù)的測(cè)試關(guān)注業(yè)務(wù)上線后的實(shí)際體驗(yàn)質(zhì)量,測(cè)試在業(yè)務(wù)正式面向用戶商用推廣之前,測(cè)試的目的是識(shí)別業(yè)務(wù)潛在的風(fēng)險(xiǎn),發(fā)現(xiàn)業(yè)務(wù)的質(zhì)量,及時(shí)改善,提高新業(yè)務(wù)的上線 自動(dòng)化測(cè)試技術(shù)的引入
個(gè)人業(yè)務(wù)的測(cè)試過程,通過測(cè)試執(zhí)行人員手工操作,完全可以實(shí)現(xiàn)所有測(cè)試點(diǎn)的覆蓋。但面對(duì)數(shù)量巨大的上線業(yè)務(wù)量,所有的工作都通過人工實(shí)現(xiàn),無疑意味著巨大的時(shí)間和人力投入。綜合對(duì)上述流程的分析,大部分業(yè)務(wù)的訂購、退訂以及計(jì)費(fèi)都有著基本類似的操作過程。通過對(duì)這些過程的總結(jié),引入了個(gè)人業(yè)務(wù)的自動(dòng)化測(cè)試工作。
例如:短信的收發(fā)過程自動(dòng)化可以通過一定的技術(shù)手段控制手機(jī)或設(shè)備實(shí)現(xiàn);WAP頁面操作自動(dòng)化可以通過兩種方式實(shí)現(xiàn)——控制手機(jī)或通過PC瀏覽器實(shí)現(xiàn);Web操作自動(dòng)化可以利用已有的成熟工具如RPT等,并配合一定的腳本開發(fā)設(shè)計(jì),實(shí)現(xiàn)流程操作的自動(dòng)化。
本文從業(yè)務(wù)支撐網(wǎng)所考慮到的角度,以業(yè)務(wù)訂購、退訂和計(jì)費(fèi)為內(nèi)容,展開測(cè)試自動(dòng)化實(shí)現(xiàn)方案的介紹。
通過對(duì)個(gè)人業(yè)務(wù)測(cè)試的特點(diǎn)進(jìn)行分析,自動(dòng)化測(cè)試實(shí)現(xiàn)可以分為2大類:短信收發(fā)過程的自動(dòng)化和WAP/Web頁面操作的自動(dòng)化。
短信收發(fā)過程的自動(dòng)化實(shí)現(xiàn)需要考慮兩方面內(nèi)容:一是短信收發(fā)設(shè)備;二是自動(dòng)化的執(zhí)行系統(tǒng)。
短信收發(fā)設(shè)備有獨(dú)立手機(jī)終端和設(shè)備(如短信貓)兩類可以利用。兩種設(shè)備分別具有各自功能上的特點(diǎn):手機(jī)終端功能豐富,完全與真實(shí)客戶的實(shí)際業(yè)務(wù)操作設(shè)備一致,能夠滿足更多特殊的業(yè)務(wù)操作要求;而短信貓等設(shè)備,功能相對(duì)簡(jiǎn)單,但對(duì)于大批量的短信收發(fā)支持較好。如圖2所示的設(shè)計(jì)方案,將涵蓋對(duì)兩種設(shè)備的支持,整個(gè)系統(tǒng)將更好的滿足不同測(cè)試場(chǎng)景的需求:
由于手機(jī)終端和短信貓兩種設(shè)備的差異性,自動(dòng)化測(cè)試系統(tǒng)將通過兩種不同的方式實(shí)現(xiàn)對(duì)設(shè)備的自動(dòng)化控制,從而完成對(duì)個(gè)人業(yè)務(wù)測(cè)試過程的自動(dòng)化操作。
1)控制手機(jī)終端的實(shí)現(xiàn)。目前的智能手機(jī)系統(tǒng)中,基本上被Android和iOS占領(lǐng),而Android系統(tǒng)的免費(fèi)、開放等特性,也為實(shí)現(xiàn)對(duì)手機(jī)的控制提供了可能。本方案選擇Android系統(tǒng)的手機(jī)實(shí)現(xiàn)(如下所提的手機(jī)終端皆指安裝Android操作系統(tǒng))?;赩NC(Virtual Network Computing,虛擬網(wǎng)絡(luò)計(jì)算機(jī))技術(shù)(VNC是由著名的AT&T的歐洲研究實(shí)驗(yàn)室開發(fā)的開源遠(yuǎn)程控制軟件,遠(yuǎn)程控制能力強(qiáng)大、高效實(shí)用,能將完整的窗口界面通過網(wǎng)絡(luò),傳輸?shù)搅硪慌_(tái)計(jì)算機(jī)的屏幕上),通過在手機(jī)終端部署遠(yuǎn)程控制的服務(wù)端程序(VNC Server),在PC機(jī)上部署遠(yuǎn)程控制的客戶端程序(VNC Client),手機(jī)終端和PC機(jī)通過網(wǎng)絡(luò)連接,即可實(shí)現(xiàn)在PC機(jī)上遠(yuǎn)程控制手機(jī)終端的操作。基于該技術(shù),實(shí)現(xiàn)了手機(jī)顯示屏幕的操作可同步展示在PC機(jī)上,操作員可以通過鼠標(biāo)和鍵盤操作,實(shí)現(xiàn)手機(jī)上選擇和文本輸入等功能,甚至可完全在PC機(jī)上實(shí)現(xiàn)所有手機(jī)上的操作,實(shí)現(xiàn)了對(duì)手機(jī)終端的全面控制。
2)自動(dòng)化執(zhí)行的實(shí)現(xiàn)。結(jié)合上述分析,主要在PC側(cè)實(shí)現(xiàn)鼠標(biāo)和鍵盤操作的自動(dòng)化,即可實(shí)現(xiàn)對(duì)手機(jī)操作的自動(dòng)化?;谀壳爸髁鞯募夹g(shù),鼠標(biāo)和鍵盤操作的自動(dòng)化控制已成為十分簡(jiǎn)單的問題,通過簡(jiǎn)單的腳本編輯以及系統(tǒng)API的簡(jiǎn)單調(diào)用即可實(shí)現(xiàn)對(duì)鼠標(biāo)、鍵盤操作的控制。
3)業(yè)務(wù)流程的自動(dòng)化實(shí)現(xiàn)。根據(jù)業(yè)務(wù)訂購、退訂等邏輯過程,組合鼠標(biāo)、鍵盤各種操作,通過PC機(jī)執(zhí)行腳本,完成整個(gè)業(yè)務(wù)流程。例如:控制鍵盤輸入短信指令“KTYW”,控制鼠標(biāo)點(diǎn)擊“發(fā)送”按鈕,以上兩項(xiàng)腳本操作,即完成了業(yè)務(wù)的自動(dòng)化訂購。此外,通過復(fù)雜的腳本設(shè)計(jì),可以實(shí)現(xiàn)對(duì)手機(jī)的各種控制(如發(fā)送彩信、訪問網(wǎng)頁、運(yùn)行手機(jī)上程序等),滿足業(yè)務(wù)測(cè)試的各種需要;而完成了相應(yīng)腳本的編輯后,即可在沒有手工干預(yù)的情況下,通過電腦自動(dòng)執(zhí)行完成業(yè)務(wù)處理過程。
結(jié)合上面設(shè)計(jì)的組網(wǎng)方案,自動(dòng)化腳本的設(shè)計(jì)、執(zhí)行將在自動(dòng)化測(cè)試系統(tǒng)上完成,遠(yuǎn)程控制終端,方便測(cè)試人員進(jìn)行系統(tǒng)登錄、啟動(dòng)測(cè)試及查看測(cè)試結(jié)果等操作。
1)短信貓控制的實(shí)現(xiàn)。短信貓功能重點(diǎn)體現(xiàn)在多卡并行上,能較好地滿足大批量同類型的用戶測(cè)試;但這種設(shè)備的功能支持相對(duì)簡(jiǎn)單,一般僅提供基本的短信、語音通話功能。對(duì)于短信貓的控制,同樣是通過腳本控制實(shí)現(xiàn)。目前主流廠商的短信貓?jiān)O(shè)備,基本都有配套的管理系統(tǒng),在管理系統(tǒng)中配置任務(wù)表即可實(shí)現(xiàn)設(shè)備自動(dòng)收發(fā)短信、語音呼叫等功能。結(jié)合上面的組網(wǎng)方案,短信貓?jiān)O(shè)備的管理系統(tǒng)也將集成到自動(dòng)化測(cè)試系統(tǒng)中。
2)自動(dòng)化執(zhí)行的實(shí)現(xiàn)。通過自動(dòng)化測(cè)試系統(tǒng)控制短信貓后,即可在系統(tǒng)中通過腳本的形式對(duì)短信貓進(jìn)行遠(yuǎn)程操作。短信貓、自動(dòng)化測(cè)試系統(tǒng)的交互過程如圖3所示:
3)業(yè)務(wù)流程的自動(dòng)化實(shí)現(xiàn)。根據(jù)業(yè)務(wù)訂購、退訂等邏輯過程,測(cè)試系統(tǒng)支持測(cè)試用例的導(dǎo)入操作,將短信自動(dòng)化操作的腳本寫好后,導(dǎo)入到測(cè)試系統(tǒng)中,通過對(duì)用例進(jìn)行封裝和調(diào)度的安排后,即可在測(cè)試人員定制的時(shí)間段內(nèi)進(jìn)行業(yè)務(wù)的訂購、退訂等操作。測(cè)試任務(wù)執(zhí)行完后,系統(tǒng)會(huì)將執(zhí)行結(jié)果記錄下來,并支持結(jié)果的導(dǎo)出操作。
WAP頁面瀏覽的自動(dòng)化,除了可以通過上述控制手機(jī)終端的方式實(shí)現(xiàn)外,也可以利用業(yè)界較為成熟的工具(如RPT等),通過錄制和編輯腳本,調(diào)用Web瀏覽器執(zhí)行,實(shí)現(xiàn)對(duì)Web頁面以及WAP頁面操作的自動(dòng)化操作(其中部分瀏覽器可通過安裝插件,實(shí)現(xiàn)WAP頁面的訪問)。系統(tǒng)的架構(gòu)如圖4所示:
基于上面解決方案,用戶所有的網(wǎng)廳操作均可以通過自動(dòng)化的方式實(shí)現(xiàn),通過RPT腳本的錄制或編輯,可以完成用戶在網(wǎng)廳上業(yè)務(wù)訂購、業(yè)務(wù)查詢、賬單查詢等操作。另外,配合方案一(短信收發(fā)過程的自動(dòng)化),可以完成其他一些需要用戶通過手機(jī)配合的業(yè)務(wù)操作過程,例如:需要手機(jī)接收隨機(jī)驗(yàn)證碼、手機(jī)接收網(wǎng)址并訪問等等,使較為復(fù)雜的業(yè)務(wù)操作通過自動(dòng)化實(shí)現(xiàn)成為可能。
綜合以上兩種設(shè)計(jì)方案和自動(dòng)化實(shí)現(xiàn),將各項(xiàng)功能融合后形成個(gè)人業(yè)務(wù)測(cè)試的自動(dòng)化測(cè)試系統(tǒng),用來滿足不同業(yè)務(wù)場(chǎng)景的需要。該自動(dòng)化測(cè)試系統(tǒng)支持的功能具體如表1所示:
自動(dòng)化測(cè)試系統(tǒng) 手機(jī)終端測(cè)試自動(dòng)化 所有通過手機(jī)操作完成的業(yè)務(wù)處理流程,適用的場(chǎng)景更多,能較好滿足特殊的業(yè)務(wù)需求。可與WAP瀏覽自動(dòng)化配合,實(shí)現(xiàn)系統(tǒng)下發(fā)網(wǎng)址短信,自動(dòng)執(zhí)行瀏覽等操作
Web頁面操作自動(dòng)化 網(wǎng)上營業(yè)廳、Web業(yè)務(wù)平臺(tái)操作??膳c手機(jī)終端控制自動(dòng)化配合,實(shí)現(xiàn)手機(jī)接收驗(yàn)證碼,完成網(wǎng)廳操作等業(yè)務(wù)場(chǎng)景
針對(duì)個(gè)人業(yè)務(wù)測(cè)試的特點(diǎn),采用自動(dòng)化測(cè)試系統(tǒng)對(duì)新業(yè)務(wù)進(jìn)行測(cè)試后,將其與手工測(cè)試進(jìn)行比較,自動(dòng)化測(cè)試系統(tǒng)在測(cè)試時(shí)間、測(cè)試人力、回歸測(cè)試方面具有很大的優(yōu)勢(shì)。比較結(jié)果如表2所示:
隨著移動(dòng)通信網(wǎng)絡(luò)的發(fā)展,手機(jī)終端智能化的普及,運(yùn)營商面向終端用戶的業(yè)務(wù)將以更加迅猛的速度增長。在這種市場(chǎng)環(huán)境中,最終決定市場(chǎng)表現(xiàn)的還是用戶對(duì)于業(yè)務(wù)的認(rèn)可程度,即用戶業(yè)務(wù)體驗(yàn)質(zhì)量。通過提升用戶業(yè)務(wù)體驗(yàn)質(zhì)量,從而提高用戶的品牌忠誠度,留住用戶并擴(kuò)大用戶規(guī)模,這才是企業(yè)生存和盈利的關(guān)鍵,而個(gè)人業(yè)務(wù)測(cè)試通過在業(yè)務(wù)上線前對(duì)業(yè)務(wù)的訂購、查詢、計(jì)費(fèi)、退訂等開展測(cè)試,正是保證服務(wù)質(zhì)量的重要手段。通過各種自動(dòng)化手段,基本覆蓋了上述所提的各種場(chǎng)景,有效解決大業(yè)務(wù)量的問題,同時(shí)極大降低了人力等成本投入。
[1] 高弋坤. 我國增值業(yè)務(wù)呈規(guī)模增長 運(yùn)營商齊布局搭建統(tǒng)一平臺(tái)[J]. 通信世界周刊, 2011,26(4): 35-39.
[2] 鄧正宏,高邐,鄭玉山. 面向?qū)ο笞詣?dòng)化測(cè)試框架的研究與設(shè)計(jì)[J]. 微電子與計(jì)算機(jī), 2005(2): 168-171.
一款軟件從開發(fā)到,除了軟件設(shè)計(jì)編程之外,軟件測(cè)試也是不可或缺的一項(xiàng)中心環(huán)節(jié)。軟件測(cè)試在以往都是軟件開發(fā)人員自己檢測(cè),但程序員卻無法將充足的時(shí)間用來測(cè)試,所以后來發(fā)展為軟件開發(fā)與測(cè)試兩者獨(dú)立,測(cè)試部分由測(cè)試部門負(fù)責(zé)。但這個(gè)過程人力物力消耗大,時(shí)間長,所以軟件自動(dòng)化檢測(cè)技術(shù)也就應(yīng)運(yùn)而生。
軟件的自動(dòng)化測(cè)試是一種新的軟件測(cè)試技術(shù),根據(jù)需要,可以將測(cè)試系統(tǒng)的運(yùn)行環(huán)境進(jìn)行調(diào)整,然后按照測(cè)試要求與目的設(shè)置相關(guān)程序功能,然后由系統(tǒng)按照設(shè)置好的程序?qū)π枰M(jìn)行測(cè)試的軟件測(cè)試。其運(yùn)用主要地方為:軟件開發(fā)完成后的測(cè)試以及維護(hù)測(cè)試。
通過軟件自動(dòng)化測(cè)試技術(shù)進(jìn)行新軟件測(cè)試,可以達(dá)到:用最少的經(jīng)費(fèi),取得更完整徹底的測(cè)試結(jié)果,從而根據(jù)測(cè)試結(jié)果進(jìn)行軟件的再修改,以此來提高軟件的質(zhì)量。
其實(shí)這一點(diǎn)是這項(xiàng)檢測(cè)技術(shù)最基本也是最核心的任務(wù)。當(dāng)一個(gè)軟件需要進(jìn)行版本升級(jí)時(shí),為了測(cè)試新版本軟件的性能,那么人工軟件測(cè)試與自動(dòng)化軟件測(cè)試就無可比擬。版本更新周期短,不具有開發(fā)階段周期長這一特質(zhì)。所以,利用軟件自動(dòng)化測(cè)試技術(shù),在省卻大量測(cè)試時(shí)間的同時(shí),還可以加快新版本測(cè)試進(jìn)度,降低版本升級(jí)的費(fèi)用。
軟件自動(dòng)化測(cè)試技術(shù)的另一大特點(diǎn)就是其可持續(xù)測(cè)試性,自動(dòng)化測(cè)試只要機(jī)器運(yùn)行,就可以一直測(cè)試下去,而手工測(cè)試卻無法具備測(cè)試持續(xù)性。這是人力測(cè)試無法解決的劣勢(shì)。
人力有窮時(shí),對(duì)于簡(jiǎn)單軟件系統(tǒng),人工測(cè)試還能勝任,但遇到諸如多元網(wǎng)絡(luò)傳輸系統(tǒng),依靠人力對(duì)系統(tǒng)測(cè)試,是行不通的。但自動(dòng)化軟件測(cè)試技術(shù)卻可以勝任,其可以同時(shí)對(duì)這些網(wǎng)元進(jìn)行仿真模擬測(cè)試。所以,自動(dòng)化測(cè)試具有多任務(wù)性。
通過自動(dòng)化軟件檢測(cè)技術(shù),可以將更多地人力資源解放出來,讓有限的人力資源不再陷入繁瑣的測(cè)試當(dāng)中。利用自動(dòng)化檢測(cè)軟件可以讓工作人員只需要思考測(cè)試的目的,設(shè)計(jì)更好地測(cè)試方案,控制好測(cè)試軟件即可。
利用軟件自動(dòng)化測(cè)試技術(shù),可以將測(cè)試的環(huán)境保持穩(wěn)定一致,可以規(guī)避人力測(cè)試因外界因素影響測(cè)試過程,導(dǎo)致測(cè)試結(jié)果不準(zhǔn)確這一問題。
軟件經(jīng)過自動(dòng)化測(cè)試之后,測(cè)試軟件就會(huì)將測(cè)試信息記錄下來,作為范例,當(dāng)遇到相似測(cè)試項(xiàng)目時(shí),這些信息也可以作參考或直接使用。這也是人力測(cè)試所不具備的。
一款自動(dòng)化測(cè)試軟件,其需要具備這幾樣必須條件:被測(cè)軟件信息輸入部、測(cè)試結(jié)果輸出部分以及多次測(cè)試結(jié)果對(duì)比部分。具備這三大部分,測(cè)試軟件才能實(shí)現(xiàn)自動(dòng)化測(cè)試。
軟件自動(dòng)化測(cè)試,其優(yōu)點(diǎn)甚多,但并非萬能。自動(dòng)化測(cè)試任然存在一些不足之處,這些都是自動(dòng)化測(cè)試技術(shù)所無法具備的:
有許多測(cè)試任務(wù)是自動(dòng)化測(cè)試軟件無法完成的。這時(shí)候就需要用到人力測(cè)試以及測(cè)試工程師了。對(duì)于簡(jiǎn)單的軟件測(cè)試,依靠人力測(cè)試即可解決,而不需要檢測(cè)軟件參與,檢測(cè)軟件每次測(cè)試,都需進(jìn)行系統(tǒng)調(diào)試,對(duì)于簡(jiǎn)單的測(cè)試,其調(diào)試時(shí)間與人力測(cè)試時(shí)間相當(dāng),這類情況檢測(cè)軟件的使用就不合時(shí)宜。還有一些類型也是軟件測(cè)試所無法替代的,例如:被測(cè)軟件運(yùn)行不穩(wěn)定,這時(shí)就需要人力進(jìn)行測(cè)試,這樣方便調(diào)節(jié)。還有有一些需要人機(jī)交互的測(cè)試,測(cè)試軟件是一種設(shè)定好的程序,對(duì)于需要實(shí)時(shí)進(jìn)行人機(jī)交互的測(cè)試來說,其自動(dòng)化測(cè)試無法做到隨機(jī)應(yīng)變。所以,自動(dòng)化軟件測(cè)試是不能完全替代人工測(cè)試的。
自動(dòng)化測(cè)試軟件的一大好處就是可重復(fù)測(cè)試,但當(dāng)使用以往測(cè)試數(shù)據(jù)來測(cè)試同軟件的新版本之時(shí),自動(dòng)化軟件檢測(cè)所發(fā)現(xiàn)的bug往往會(huì)低于人工測(cè)試所發(fā)現(xiàn)的bug。
由于自動(dòng)化軟件測(cè)試程序相對(duì)固定,當(dāng)一些被測(cè)軟件有重大更新時(shí),往往由于測(cè)試程序無法與新版本做到兼容,從而導(dǎo)致測(cè)試軟件崩潰。而自動(dòng)化測(cè)試軟件的再設(shè)計(jì)與維護(hù)成本會(huì)比人工測(cè)試高,且自動(dòng)化測(cè)試比人工測(cè)試影響要高,所以會(huì)對(duì)開發(fā)人員造成影響,綜合以上因素,會(huì)對(duì)一些被測(cè)軟件的重大更新部分造成修改限制。
所以,合理安排軟件自動(dòng)化測(cè)試與人工軟件測(cè)試,將會(huì)更利于開發(fā)人員降低開發(fā)成本,減少測(cè)試時(shí)間,獲取高效益。
目前的軟件自動(dòng)化測(cè)試適用于:?jiǎn)卧?組件測(cè)試、BVT(版本測(cè)試)、集成測(cè)試、系統(tǒng)測(cè)試、回歸測(cè)試以及性能測(cè)試。
軟件自動(dòng)化測(cè)試:該被測(cè)軟件項(xiàng)目無嚴(yán)格時(shí)間限制,有良好測(cè)試計(jì)劃與測(cè)試目的,測(cè)試內(nèi)容涉及多平臺(tái),涉及被測(cè)軟件運(yùn)行所需硬件,被測(cè)軟件可以使用自動(dòng)化軟件進(jìn)行測(cè)試等這些情況下都可以使用軟件自動(dòng)化測(cè)試。
人工軟件測(cè)試:沒有嚴(yán)格測(cè)試時(shí)間限制,沒有明確的測(cè)試目的與計(jì)劃,開發(fā)人員或軟件測(cè)試人員當(dāng)中不會(huì)操作軟件自動(dòng)化測(cè)試的,剛加入開發(fā)的新成員,沒有相關(guān)硬件等等這些情況就不是自動(dòng)化軟件測(cè)試所能達(dá)到的。
在軟件自動(dòng)化測(cè)試進(jìn)程中,還需要一些工具輔助軟件測(cè)試,目前按照使用環(huán)境可以分為:
管理型測(cè)試工具主要是對(duì)軟件測(cè)試的計(jì)劃、用到的測(cè)試用例、測(cè)試所需以及測(cè)試進(jìn)程進(jìn)行綜合管理,同時(shí)還能通過這些管理型工具發(fā)現(xiàn)自動(dòng)化測(cè)試所存在的漏洞,并就這些測(cè)試漏洞進(jìn)行管理跟蹤。而軟件的開發(fā)者和軟件測(cè)試人員能夠通過管理工具對(duì)被測(cè)軟件信息進(jìn)行交流。
所謂沙盒測(cè)試工具,就是在獨(dú)立環(huán)境下,對(duì)被測(cè)軟件內(nèi)部代碼進(jìn)行邏輯流程測(cè)試;而在測(cè)試中可以發(fā)現(xiàn)被測(cè)軟件的漏洞,并且能夠?qū)⑦@些缺陷定位,最高可定位至代碼級(jí)。
靜態(tài)軟件分析工具可以對(duì)被測(cè)軟件代碼直接掃描,在不需編譯的情況下進(jìn)行測(cè)試分析。靜態(tài)軟件測(cè)試分析工具主要使用在:(1)代碼;對(duì)被測(cè)軟件進(jìn)行語法掃描分析,找出代碼編寫錯(cuò)誤的地方。(2)對(duì)被測(cè)軟件靜態(tài)情況下分析其結(jié)構(gòu),靜態(tài)測(cè)試工具會(huì)根據(jù)被測(cè)軟件代碼結(jié)構(gòu)復(fù)雜程度,對(duì)軟件代碼的設(shè)計(jì)與模塊調(diào)用生成記錄圖表。
相對(duì)靜態(tài)軟件分析測(cè)試工具而言,動(dòng)態(tài)分析工具的工作方式是利用釘釘子的方法,在被測(cè)軟件代碼中插入一段檢測(cè)代碼,這段代碼會(huì)在被測(cè)軟件運(yùn)行時(shí),對(duì)軟件數(shù)據(jù)與資源調(diào)用率進(jìn)行統(tǒng)計(jì)分析。
功能測(cè)試分析工具也可以稱之為黑盒工具,其工作流程是通過自動(dòng)記錄被測(cè)軟件數(shù)據(jù)、檢測(cè)以及回溯客戶操作。通過對(duì)被測(cè)軟件測(cè)試前所預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,從而幫助開發(fā)人員與測(cè)試人員對(duì)不同版本的軟件進(jìn)行功能測(cè)試分析,提高工作人員工作效率。黑盒工具其主要目的是:通過測(cè)試分析被測(cè)軟件程序能否達(dá)到預(yù)期設(shè)計(jì)目標(biāo)以及穩(wěn)定運(yùn)行。
性能測(cè)試分析工具的目標(biāo)是:分析測(cè)試被測(cè)應(yīng)用軟件的可擴(kuò)展性能。在測(cè)試過程中,通過性能測(cè)試分析工具可以幫助測(cè)試人員檢測(cè)軟件運(yùn)行性能以及查找運(yùn)行時(shí)所出問題。并且就檢測(cè)出的問題進(jìn)行自動(dòng)性能優(yōu)化,保證應(yīng)用軟件能夠正常進(jìn)行測(cè)試運(yùn)行。
這一類的測(cè)試工具其本身并不具備測(cè)試所需條件,輔助工具存在的目的就是將軟件測(cè)試過程中所搜集的數(shù)據(jù)信息生成記錄,為測(cè)試人員提供參考依據(jù)。
根據(jù)軟件測(cè)試過程所需工具,正確使用這些測(cè)試分析工具可以幫助測(cè)試人員更快,更高效完成軟件測(cè)試任務(wù),縮短軟件周期。
合理的自動(dòng)化測(cè)試設(shè)計(jì),可以提高工作效率,所以,在設(shè)計(jì)自動(dòng)化測(cè)試時(shí),應(yīng)注意規(guī)避以下幾種情況:時(shí)間限制,沒有明確的測(cè)試目標(biāo),測(cè)試經(jīng)驗(yàn)不夠多,測(cè)試人員流動(dòng)性高,對(duì)測(cè)試失去耐心和太偏重技術(shù)等。
過高的設(shè)備維護(hù)成本將會(huì)大大降低自動(dòng)化測(cè)試軟件的實(shí)際應(yīng)用性,所以,在設(shè)計(jì)自動(dòng)化測(cè)試軟件的時(shí)候,軟件的可維護(hù)性是其中一大重點(diǎn)考慮對(duì)象。目前的自動(dòng)測(cè)試軟件領(lǐng)域競(jìng)爭(zhēng)激烈,而要想獲得高的市場(chǎng)占有率,那么具有低維護(hù)成本的測(cè)試軟件將占有極大優(yōu)勢(shì)。維護(hù)包括測(cè)試軟件的日常維護(hù)以及測(cè)試軟件的版本更新,其中版本更新維護(hù)是維護(hù)重點(diǎn)。隨著軟件開發(fā)的深入,軟件自動(dòng)化測(cè)試需要緊跟開發(fā)者的步伐,當(dāng)測(cè)試軟件無法滿足測(cè)試需要時(shí),那么自動(dòng)化軟件將會(huì)逐漸丟棄淘汰。所以,保持更新步伐是需要重點(diǎn)考慮的。
可測(cè)性就是自動(dòng)化測(cè)試對(duì)被測(cè)軟件的測(cè)試是否有效。所以,為了保證軟件的可測(cè)性,設(shè)計(jì)時(shí)應(yīng)當(dāng)使用擁有:CLI、API與GUI接口的測(cè)試軟件。
自動(dòng)化測(cè)試與人工軟件測(cè)試,其區(qū)別只是測(cè)試方式不同而已。從以上文章分析可以知曉自動(dòng)化軟件測(cè)試其優(yōu)點(diǎn)突出,但不足之處也是顯而易見。
自動(dòng)化測(cè)試其根本性目的是將以往人工測(cè)試的過程精簡(jiǎn)化、程序化和標(biāo)準(zhǔn)化。在一定程度上可以代替人工進(jìn)行軟件測(cè)試。自動(dòng)化測(cè)試的優(yōu)點(diǎn)在于:自動(dòng)化軟件測(cè)試可以按照軟件測(cè)試需要進(jìn)行相應(yīng)程序修改,然后利用符合測(cè)試需求的測(cè)試程序進(jìn)行測(cè)試,在這過程中,相對(duì)簡(jiǎn)單的測(cè)試部分可以依靠人工測(cè)試,對(duì)于那些有重復(fù)性,測(cè)試過程嚴(yán)謹(jǐn)?shù)臏y(cè)試部分則可以利用自動(dòng)化測(cè)試,達(dá)到測(cè)試目的。綜上,可以對(duì)軟件自動(dòng)化測(cè)試與人工測(cè)試進(jìn)行一個(gè)對(duì)比,首先是人工測(cè)試:
人工測(cè)試是一開始就使用的測(cè)試方式,人工測(cè)試需要測(cè)試人員有豐富的測(cè)試經(jīng)驗(yàn)。對(duì)于相對(duì)簡(jiǎn)單的測(cè)試目標(biāo)具有速度快,效率高的特點(diǎn)。尤其是在相關(guān)的人機(jī)交互測(cè)試這類靈活度較高,測(cè)試過程不可控的測(cè)試目標(biāo),人工測(cè)試具有快速反應(yīng),測(cè)試靈活等特點(diǎn)。相應(yīng)的,人工測(cè)試也存在很大的弊端,人工測(cè)試人員受精力與時(shí)間限制,對(duì)于那些時(shí)間短、測(cè)試過程程序化與復(fù)雜化的測(cè)試目標(biāo),人工測(cè)試就需要耗費(fèi)大量時(shí)間與人力資源來完成。這也導(dǎo)致了測(cè)試成本提高,效率低下。
軟件自動(dòng)化測(cè)試與人工測(cè)試相比,自動(dòng)化測(cè)試是按照測(cè)試程序?qū)Ρ粶y(cè)目標(biāo)進(jìn)行測(cè)試。所以對(duì)于那些重復(fù)性測(cè)試具有高效,測(cè)試過程嚴(yán)謹(jǐn)?shù)奶攸c(diǎn)。其所具備的強(qiáng)大數(shù)據(jù)處理能力對(duì)于那些測(cè)試過程中需要進(jìn)行大量數(shù)據(jù)處理運(yùn)算的測(cè)試任務(wù)具有高效的完成性。但其缺點(diǎn)也是明顯的,對(duì)于那些需要進(jìn)行實(shí)時(shí)交互的測(cè)試目標(biāo)來說,自動(dòng)化測(cè)試的固定測(cè)試程序是無法勝任的。
綜上分析可以看出,人工測(cè)試與自動(dòng)化測(cè)試之間有著明顯優(yōu)缺點(diǎn),但兩者也具有良好的互補(bǔ)性,所以合理搭配這兩種測(cè)試方式,將會(huì)極大提高測(cè)試任務(wù)的完成效率,有效降低測(cè)試成本與人工測(cè)試資源。
本文從軟件自動(dòng)化測(cè)試的意義到應(yīng)用進(jìn)行了簡(jiǎn)單討論分析,從各方面對(duì)比來看,軟件自動(dòng)化測(cè)試在軟件測(cè)試行業(yè)中占有重要地位,在未來的發(fā)展中,應(yīng)當(dāng)加大對(duì)自動(dòng)化測(cè)試的研究力度。讓自動(dòng)化測(cè)試?yán)^續(xù)發(fā)揮更大的作用。
[2]劉艷霞.軟件自動(dòng)化測(cè)試技術(shù)應(yīng)用研究[J]軟件導(dǎo)刊.2007,5:36-38
[5]季淑引.軟件自動(dòng)化測(cè)試工具的應(yīng)用研究[J]科技向?qū)?2012.20:59
張維利(1978-),男,山東省人。碩士學(xué)歷。主要研究方向?yàn)樾畔⑾到y(tǒng)軟件測(cè)試、軟件可靠性等。
進(jìn)入二十一世紀(jì)之后,硬件元器件得到了飛速發(fā)展,從而也是的嵌入式軟件的功能更加強(qiáng)大和復(fù)雜。隨之而來的也是嵌入式軟件測(cè)試工作的加重,傳統(tǒng)的軟件測(cè)試技術(shù)已經(jīng)難以滿足嵌入式軟件越來越復(fù)雜的需求。而目前,市場(chǎng)上已經(jīng)有較多的傳統(tǒng)軟件自動(dòng)化測(cè)試技術(shù),如何在這些技術(shù)的基礎(chǔ)上進(jìn)行改進(jìn),從而能夠適應(yīng)嵌入式軟件環(huán)境,從而實(shí)現(xiàn)嵌入式軟件的自動(dòng)化測(cè)試,是嵌入式軟件發(fā)展的重要方向。
嵌入式軟件的自動(dòng)化測(cè)試即利用腳本來自動(dòng)化驅(qū)動(dòng)嵌入式軟件的運(yùn)行,并且自動(dòng)收集相關(guān)數(shù)據(jù)進(jìn)行分析,最終生成相應(yīng)的測(cè)試報(bào)告。雖然,嵌入式軟件的自動(dòng)化測(cè)試流程與一般PC機(jī)應(yīng)用軟件的自動(dòng)化測(cè)試流程相同。但是,由于嵌入式軟件軟件對(duì)電子設(shè)備的高度依賴性,以及電子設(shè)備收周圍環(huán)境影響較重,從而導(dǎo)致嵌入式軟件的自動(dòng)化測(cè)試平臺(tái)存在如下的問題。
(1)由于電子元器件受到周圍環(huán)境的影響,無論在宿主機(jī)上所進(jìn)行的動(dòng)態(tài)測(cè)試多充分,也無法保證嵌入式軟件在實(shí)際的硬件環(huán)境中通過。
?。?)上位機(jī)的測(cè)試環(huán)境中,由于上位機(jī)與下位機(jī)的通信量較大,測(cè)試結(jié)果數(shù)據(jù)較多,容易導(dǎo)致通信的堵塞。
米樂M6 M6米樂
通過對(duì)嵌入式自動(dòng)化測(cè)試框架的分析,本文提出一種由腳本驅(qū)動(dòng)器、接口映射表、數(shù)據(jù)驅(qū)動(dòng)器和支持函數(shù)庫所組成的,針對(duì)嵌入式自動(dòng)化軟件測(cè)試的組合型測(cè)試框架。
如圖1所示,高層腳本調(diào)用執(zhí)行下層腳本;底層運(yùn)行腳本通過查詢接口映射表調(diào)用待測(cè)試系統(tǒng)接口進(jìn)行驅(qū)動(dòng)和通信;測(cè)試腳本從數(shù)據(jù)文件調(diào)用數(shù)據(jù)執(zhí)行測(cè)試。
腳本驅(qū)動(dòng)器調(diào)用高層腳本,高層腳本調(diào)用下層腳本。底層腳本包括待測(cè)試系統(tǒng)具體的測(cè)試步驟。
接口映射表借鑒了關(guān)鍵字驅(qū)動(dòng)測(cè)試框架中的組件映射表思想。測(cè)試人員根據(jù)待測(cè)試系統(tǒng)的實(shí)際需求,設(shè)計(jì)接口名稱和參數(shù),從而實(shí)現(xiàn)待測(cè)試系統(tǒng)的抽象化。在運(yùn)行測(cè)試腳本是,首先通過映射表匹配接口名稱和參數(shù),當(dāng)系統(tǒng)接口改變時(shí),只需要改變映射表即可,從而實(shí)現(xiàn)測(cè)試系統(tǒng)與待測(cè)試系統(tǒng)的松耦合。
數(shù)據(jù)啟動(dòng)器是測(cè)試腳本與數(shù)據(jù)文件的連接器,通常采用文本文件、XML文件等來實(shí)現(xiàn)。在測(cè)試過程中,需要數(shù)據(jù)時(shí),有數(shù)據(jù)驅(qū)動(dòng)器讀取數(shù)據(jù)。數(shù)據(jù)驅(qū)動(dòng)器是腳本與測(cè)試數(shù)據(jù)分離,當(dāng)測(cè)試數(shù)據(jù)變更時(shí),只需要修改數(shù)據(jù)驅(qū)動(dòng)器,而不需要對(duì)腳本進(jìn)行改動(dòng)。
嵌入式軟件自動(dòng)化測(cè)試平臺(tái)的卡框架,采用嵌入式軟件通用的Host/Target測(cè)試策略。
如圖2所示,本文所設(shè)計(jì)的嵌入式軟件自動(dòng)化測(cè)試平臺(tái)采用測(cè)試管理工具和測(cè)試雙層結(jié)構(gòu)。
米樂 M6
在進(jìn)行嵌入式軟件自動(dòng)化測(cè)試時(shí),測(cè)試人員的工作包括:編寫配置文件、編寫腳本、生成數(shù)據(jù)文件、測(cè)試報(bào)告分析等工作。嵌入式軟件的自動(dòng)化測(cè)試流程如圖3所示。
當(dāng)建立了管理工具和測(cè)試自檢的通信之后,向測(cè)試發(fā)送測(cè)試請(qǐng)求,并且將腳本和數(shù)據(jù)傳送到測(cè)試上。測(cè)試將測(cè)試腳本存放到特定的區(qū)域執(zhí)行,并且將測(cè)試結(jié)果返回給宿主端。當(dāng)宿主端接收到測(cè)試所發(fā)送腳本執(zhí)行完畢信號(hào)后,發(fā)送新的測(cè)試腳本和數(shù)據(jù)給測(cè)試,直到所有的腳本測(cè)試完成之后,對(duì)測(cè)試所返回的測(cè)試結(jié)果進(jìn)行分析,得出最終的測(cè)試報(bào)告。
為了不占用宿主段過多資源,將一些協(xié)助測(cè)試模塊都放在宿主端中。管理工具的功能結(jié)構(gòu)如圖4所示。
在進(jìn)行嵌入式軟件自動(dòng)化測(cè)試之前,需要設(shè)計(jì)一份配置文件。在配置文件中定義好了腳本位置、宿主機(jī)與測(cè)試之間的通信、腳本執(zhí)行時(shí)間間隔、通信樁點(diǎn)個(gè)數(shù)等內(nèi)容。測(cè)試管理工具先對(duì)腳本配置文件進(jìn)行解析,并且將解析的信息傳送給目標(biāo)機(jī)。
通過插樁對(duì)待測(cè)試軟件的功能進(jìn)行細(xì)分,并且根據(jù)執(zhí)行的情況,來分析待測(cè)試軟件的測(cè)試覆蓋情況。
測(cè)試日志文件中主要包含了待測(cè)試軟件的測(cè)試結(jié)果,以及測(cè)試覆蓋信息。其中測(cè)試報(bào)告中包括了測(cè)試跟蹤信息、測(cè)試用例、測(cè)試用例的期望和實(shí)際結(jié)果、測(cè)試用例的執(zhí)行情況及匯總等。測(cè)試覆蓋信息包括:測(cè)試和未測(cè)試的代碼段、功能的覆蓋標(biāo)記及匯總等信息。
測(cè)試運(yùn)行在目標(biāo)機(jī)上,是整個(gè)嵌入式軟件自動(dòng)化測(cè)試平臺(tái)的核心,測(cè)試的整體結(jié)構(gòu)如圖5所示。
根據(jù)配置管理,對(duì)管理工具發(fā)送的測(cè)試腳本進(jìn)行解析,并且調(diào)用工具庫中的通用函數(shù)來完成測(cè)試。同時(shí),將測(cè)試結(jié)果和樁點(diǎn)覆蓋信息存入到特定區(qū)域。
在數(shù)據(jù)文件主要包含了測(cè)試腳本文件、測(cè)試數(shù)據(jù)文件和測(cè)試結(jié)果文件。當(dāng)測(cè)試需要數(shù)據(jù)是,可以通過數(shù)據(jù)驅(qū)動(dòng)模塊完成數(shù)據(jù)表查找和數(shù)據(jù)批量處理等操作。對(duì)于測(cè)試數(shù)據(jù)量大,測(cè)試步驟類似的測(cè)試過程,可以極大的減少測(cè)試的復(fù)雜度。
主要負(fù)責(zé)與管理工具的數(shù)據(jù)通信模塊進(jìn)行數(shù)據(jù)交互。主要負(fù)責(zé)接收管理工具所發(fā)送的配置信息、腳本信息和數(shù)據(jù)文件信息;同時(shí)將測(cè)試結(jié)果和測(cè)試覆蓋信息返回給管理工具。
軟件測(cè)試是對(duì)軟件質(zhì)量進(jìn)行評(píng)估的重要方法,自動(dòng)化測(cè)試技術(shù)可以降低軟件測(cè)試成本,縮短軟件測(cè)試時(shí)間。特別是對(duì)于測(cè)試環(huán)境更加復(fù)雜的嵌入式軟件而言,自動(dòng)化測(cè)試具有更加重要的意義。
[1]鄧勇,曾建光.嵌入式軟件系統(tǒng)及其自動(dòng)測(cè)試技術(shù)的發(fā)展與現(xiàn)狀[J].科技咨詢導(dǎo)報(bào),2007,21:5-6.
[2]凌永發(fā),張?jiān)粕?,郭秀?軟件測(cè)試自動(dòng)化中的腳本技術(shù)[J].云南民族學(xué)院學(xué)報(bào)(自然科學(xué)版),2002,11(1):544-548.
[3]鄭世偉.嵌入式軟件的測(cè)試方法和工具[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2001,4:26-28..
隨著Web應(yīng)用的日漸龐大和復(fù)雜,Web應(yīng)用的測(cè)試越來越得到人們的重視,同時(shí)對(duì)Web應(yīng)用的測(cè)試的要求也更高。研究表明,一種良好的自動(dòng)化測(cè)試技術(shù)可以實(shí)現(xiàn)許多手工測(cè)試不能完成的工作。同時(shí),自動(dòng)化測(cè)試技術(shù)大大減少了產(chǎn)品的周期和軟件的測(cè)試成本,軟件測(cè)試的效率和速度也有了顯著的提高。所以,軟件開發(fā)組織測(cè)試工作可以采用自動(dòng)化測(cè)試方法,同時(shí)結(jié)合相應(yīng)的測(cè)試框架進(jìn)行,這樣,既提高了效率,又降低了維護(hù)成本。
自動(dòng)化測(cè)試框架是一個(gè)由假設(shè)、概念以及自動(dòng)化提供支持的實(shí)踐的集合?,F(xiàn)在,許多企業(yè)和個(gè)人都認(rèn)識(shí)到Web自動(dòng)化測(cè)試框架的重要作用,并積極投身于其研發(fā)中,并不斷有新的框架出來。本文中描述了幾種常用的自動(dòng)化測(cè)試框架,并在此基礎(chǔ)上,研究了一種實(shí)用性強(qiáng)的開源Web自動(dòng)化測(cè)試框架。
自動(dòng)化測(cè)試之所以得到人們重視,是應(yīng)為其具有其他測(cè)試所無法替代的優(yōu)點(diǎn),概括一下有以下幾點(diǎn):1)效率高,測(cè)試時(shí)間大大減少。2)降低了測(cè)試成本,減少了開銷。3)比手工測(cè)試完成的測(cè)試范圍更廣。4)測(cè)試可靠性、一致性和可重復(fù)性好。5)工作質(zhì)量提高,資源利用好。6)軟件推向市場(chǎng)時(shí)間更短。7)測(cè)試的復(fù)用性高。
盡管自動(dòng)化測(cè)試有諸多優(yōu)點(diǎn),但在測(cè)試中仍然存在一定的局限性,具體表現(xiàn)如下:1)自動(dòng)化測(cè)試并不適用于每種情況。2)測(cè)試的有效性并沒有提高。3)自動(dòng)化測(cè)試工具不具靈活性。4)對(duì)測(cè)試質(zhì)量的依賴非常大。5)有時(shí)對(duì)軟件開發(fā)有一定的制約。6)沒有手工測(cè)試發(fā)現(xiàn)的缺陷多。
通過以上分析可知,讓自動(dòng)化測(cè)試完全取代手工測(cè)試是行不通的,只有將手工測(cè)試與自動(dòng)化測(cè)試很好的結(jié)合在一起,才會(huì)發(fā)揮各自的優(yōu)勢(shì),測(cè)試效果才會(huì)更好。
以下為幾種常用的自動(dòng)化測(cè)試框架,它是研究人員為解決腳本維護(hù)性問題而設(shè)計(jì)的。以這些自動(dòng)化測(cè)試框架為基礎(chǔ),結(jié)合自己的經(jīng)驗(yàn)與需求即可以設(shè)計(jì)出適合自己的自動(dòng)化測(cè)試框架。
該框架用創(chuàng)建的獨(dú)立的小腳本代替被測(cè)試應(yīng)用程序的函數(shù)和模塊,采用分層的方式完成測(cè)試。腳本的實(shí)現(xiàn)層作為底層,測(cè)試用例的組合層作為上層。腳本模塊化框架應(yīng)用了封裝和抽象的原則,提高了測(cè)試套件的可維護(hù)性。為掩蓋應(yīng)用程序的其他部分采取在一個(gè)部件前構(gòu)建一個(gè)抽象層的方式完成。該框架易于掌握和精通。但因其底層腳本的實(shí)現(xiàn)依賴應(yīng)用程序的功能,故缺乏靈活性。
測(cè)試庫構(gòu)架框架與腳本模塊化框架很相似,只是其將應(yīng)用程序分解后創(chuàng)建的不是腳本,而是過程和函數(shù)。被測(cè)對(duì)象的功能或模塊通過創(chuàng)建庫文件來描述,測(cè)試用例腳本直接調(diào)用這些庫文件。這樣,抽象度更高,測(cè)試用例組裝更加靈活。
該框架又叫表驅(qū)動(dòng)測(cè)試框架,是一種比較理想的自動(dòng)化測(cè)試框架。其測(cè)試邏輯的描述采用關(guān)鍵字和數(shù)據(jù)表實(shí)現(xiàn)。這些關(guān)鍵字和數(shù)據(jù)表可以用來“驅(qū)動(dòng)”測(cè)試腳本代碼,并獨(dú)立執(zhí)行測(cè)試工具,是應(yīng)用程序和自動(dòng)化測(cè)試框架彼此獨(dú)立。這種測(cè)試方式與手工測(cè)試很像。
數(shù)據(jù)驅(qū)動(dòng)測(cè)試框架是從特定的文件(如Excel文件、OOBC源文件、CSV文件、ADO對(duì)象文件等)中,把測(cè)試的輸入和輸出數(shù)據(jù)獨(dú)立出來,通過變量傳入測(cè)試腳本中。這些變量就是測(cè)試數(shù)據(jù)用來傳遞和驗(yàn)證應(yīng)用程序的。在整個(gè)過程中,測(cè)試動(dòng)作的控制(如數(shù)據(jù)文件的讀取,測(cè)試信息和記錄測(cè)試狀態(tài)等)寫進(jìn)測(cè)試腳本中;測(cè)試數(shù)據(jù)不寫進(jìn)腳本,而只包含在數(shù)據(jù)文件中。這里,測(cè)試腳本只是一個(gè)傳送數(shù)據(jù)的機(jī)制,或僅是一個(gè)“驅(qū)動(dòng)”。
數(shù)據(jù)驅(qū)動(dòng)測(cè)試框架是測(cè)試不同的輸入、輸出采用相同的測(cè)試過程,并將測(cè)試輸入和預(yù)期輸出以表的形式組織起來,一個(gè)測(cè)試作為表中一行。測(cè)試過程就是從表中逐行讀入,即可實(shí)現(xiàn)執(zhí)行每個(gè)測(cè)試輸入和檢驗(yàn)預(yù)期輸出。將數(shù)據(jù)驅(qū)動(dòng)測(cè)試過程以表組織在一起,執(zhí)行新的測(cè)試就可以反復(fù)使用這個(gè)過程。這種測(cè)試需要執(zhí)行的腳本大大的減少,大量的測(cè)試用例僅需少量的腳本就可實(shí)現(xiàn),對(duì)由許多不同數(shù)據(jù)選項(xiàng)的應(yīng)用非常有效。
米樂M6 M6米樂
本框架以開源框架Selenium為基礎(chǔ),進(jìn)一步設(shè)計(jì)了此框架的“私有語言”,也就是數(shù)據(jù)驅(qū)動(dòng)文件的編寫規(guī)則。數(shù)據(jù)驅(qū)動(dòng)文件的解析程序的實(shí)現(xiàn)就以這些“私有語言”為依據(jù),Web應(yīng)用的測(cè)試執(zhí)行框架也是由這些“私有語言”和Selenium合并組成。依據(jù)這些編寫規(guī)則,測(cè)試人員把數(shù)據(jù)和對(duì)Web應(yīng)用的操作行為寫入數(shù)據(jù)驅(qū)動(dòng)文件中,測(cè)試框架負(fù)責(zé)對(duì)這些數(shù)據(jù)驅(qū)動(dòng)文件進(jìn)行解析,將這些解析后的數(shù)據(jù)傳入并調(diào)用Selenium API的相應(yīng)方法,從而使其自動(dòng)執(zhí)行。
該框架是基于數(shù)據(jù)驅(qū)動(dòng)的測(cè)試框架,并在其基礎(chǔ)上進(jìn)行了一些改進(jìn),開源Web自動(dòng)化測(cè)試框架結(jié)構(gòu)如圖1所示。
此框架中,在Server端安裝被測(cè)試Web應(yīng)用,可以供遠(yuǎn)程訪問,方便測(cè)試。Extended Selenium RC System作為測(cè)試執(zhí)行引擎安裝在Client端,它是本框架的核心,數(shù)據(jù)驅(qū)動(dòng)文件解析系統(tǒng)是采用開源自動(dòng)化測(cè)試工具Selenium開發(fā)的。它的主要功能是通過解析數(shù)據(jù)驅(qū)動(dòng)文件,得到解析后數(shù)據(jù)及Web操作,而后調(diào)用Selenium API的方法,并將數(shù)據(jù)作為參數(shù)傳入,這樣對(duì)遠(yuǎn)程Server的操作即可實(shí)現(xiàn)。當(dāng)Server的響應(yīng)到達(dá)Client,Client進(jìn)行各種元素驗(yàn)證,記錄日志文件及保存測(cè)試結(jié)果等操作。測(cè)試工程存放在Project文件夾中,主要由若干XML數(shù)據(jù)驅(qū)動(dòng)測(cè)試文件組成,在Project_Config.xml測(cè)試工程注冊(cè)文件中對(duì)各種數(shù)據(jù)驅(qū)動(dòng)文件完成統(tǒng)一的注冊(cè),然后又Extended Selenium RC System按注冊(cè)的向后順序?qū)Ω鱔ML文件依次進(jìn)行解析。
相關(guān)操作和數(shù)據(jù)的文本文件構(gòu)成了數(shù)據(jù)驅(qū)動(dòng)文件。由自動(dòng)化測(cè)試工具私有語言手動(dòng)編寫這些文件,接著對(duì)其變量賦值,并作為測(cè)試數(shù)據(jù)輸入。這些變量使解析程序能通過外部的數(shù)據(jù)來驅(qū)動(dòng)應(yīng)用程序。軟件自動(dòng)化測(cè)試的一個(gè)重要環(huán)節(jié)是數(shù)據(jù)驅(qū)動(dòng)文件的開發(fā)和維護(hù)。對(duì)測(cè)試文本做合理地修改和調(diào)整,可以擴(kuò)大測(cè)試覆蓋面,增加測(cè)試腳本靈活性,并且對(duì)被測(cè)試對(duì)象變量的應(yīng)對(duì)能力大大提高。
本框架中,設(shè)計(jì)數(shù)據(jù)驅(qū)動(dòng)文件的“私有語言”是重點(diǎn),其設(shè)計(jì)包括以下幾個(gè)方面。
這一部分包括頁面中數(shù)據(jù)的輸入和對(duì)頁面的各種操作。例如:將數(shù)據(jù)“efg”輸入到頁面標(biāo)簽中,具體設(shè)計(jì)如下:
其中,方法結(jié)點(diǎn)用表示,表示向頁面標(biāo)簽中輸入數(shù)據(jù)。具體想哪個(gè)頁面標(biāo)簽輸入數(shù)據(jù)用表示,其中value屬性可以是name或id等,表示定位關(guān)鍵字。具體輸入哪個(gè)數(shù)據(jù),用第二個(gè) 表示,value屬性中放內(nèi)容值。
這部分是完成對(duì)頁面標(biāo)簽及數(shù)據(jù)驗(yàn)證操作。同操作部分一樣,方法結(jié)點(diǎn)與API的方法名稱一致。例如:驗(yàn)證上例中頁面中是否存在“efg”文本,具體設(shè)計(jì)如下:
其中與Selenium API中的isTextPresent(“”)方法相對(duì)應(yīng),表示要驗(yàn)證的內(nèi)容結(jié)點(diǎn),Value中放具體內(nèi)容,本例中放的是文本“efg”。本例可以實(shí)現(xiàn)對(duì)頁面中是否存在文本“efg”的驗(yàn)證。
若Web應(yīng)用要運(yùn)行在不同操作系統(tǒng)上,就需要設(shè)計(jì)不同版本,雖內(nèi)容差別不大,但若設(shè)計(jì)不同的測(cè)試工程,則工作量會(huì)大大增加。這個(gè)問題的解決,可以采取在同一數(shù)據(jù)驅(qū)動(dòng)文件中寫入不同版本的數(shù)據(jù)驅(qū)動(dòng)文件來解決,并只需用測(cè)試環(huán)境結(jié)點(diǎn)加以標(biāo)準(zhǔn)區(qū)分,就可以在解析文件過程中通過操作系統(tǒng)類型與測(cè)試環(huán)境結(jié)點(diǎn)屬性值得對(duì)比,來判斷是否進(jìn)行解析。
除了以上三個(gè)方面,還應(yīng)對(duì)結(jié)點(diǎn)名稱到API方法名的映射及結(jié)構(gòu)等進(jìn)行合理的設(shè)計(jì),從而使數(shù)據(jù)驅(qū)動(dòng)文件可控性更強(qiáng),更具靈活性及更便于解釋。
首先將編寫完的數(shù)據(jù)驅(qū)動(dòng)文件添加到測(cè)試平臺(tái)。接著解析數(shù)據(jù)驅(qū)動(dòng)文件,實(shí)現(xiàn)測(cè)試腳本到執(zhí)行引擎的映射。然后向Web服務(wù)器發(fā)送HTTP請(qǐng)求來模擬真實(shí)用戶訪問Web的場(chǎng)景,獲得測(cè)試結(jié)果信息。最后,對(duì)得到的數(shù)據(jù)進(jìn)行分析,得出測(cè)試報(bào)告及生成日志。
本文以數(shù)據(jù)驅(qū)動(dòng)方法為基礎(chǔ),提出一種開源Web自動(dòng)化測(cè)試框架,重點(diǎn)研究了數(shù)據(jù)驅(qū)動(dòng)文件的編寫規(guī)則。本測(cè)試框架可以應(yīng)用不同的工程項(xiàng)目中,具有開發(fā)門檻低、獨(dú)立性強(qiáng)、效率高等特點(diǎn)。特別適用于需要反復(fù)測(cè)試的回歸測(cè)試階段,大大提高了企業(yè)的經(jīng)濟(jì)效益。
[1]賴?yán)?,劉?qiáng).Web應(yīng)用程序的一種功能自動(dòng)化測(cè)試模型與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2006,32(17):42-44.
[2]朱少民.軟件測(cè)試方法和技術(shù)[M].北京:清華大學(xué)出版社,2005.
[3]朱菊,王志堅(jiān),楊雪. 基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(5):68-70.
[4]李曉會(huì).Web系統(tǒng)自動(dòng)化功能測(cè)試框架研究與實(shí)踐[D].北京:北京郵電大學(xué),2011.
[5]樊付星,黃大慶,周未.基于Web的自動(dòng)化測(cè)試框架的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,20(20):36-38.
[6]黃僑,葛世倫.開源Web自動(dòng)化測(cè)試框架的改進(jìn)研究[J].科學(xué)技術(shù)與工程,2012,12(15):3630-3635.
[7]馬春燕,朱怡安,陸偉.Web服務(wù)自動(dòng)化測(cè)試技術(shù)[J].計(jì)算機(jī)科學(xué),2012,39(2):162-169.
地添加測(cè)試用例,為測(cè)試用例提供公用函數(shù),執(zhí)行測(cè)試用例,發(fā)送測(cè)試結(jié)果等功能。
檢查點(diǎn)(CheckPoint):將特定屬性的當(dāng)前數(shù)據(jù)與期望數(shù)據(jù)進(jìn)行比較的地方,用于判定被測(cè)試程序的功能是否正確。
成本收益比:并不是所有的測(cè)試都適合自動(dòng)化測(cè)試,衡量一個(gè)用例是否適合自動(dòng)化測(cè)試一個(gè)很重要的參考是國際上流行的自動(dòng)化測(cè)試成本收益比,即是p=k*n/c1+c2。各個(gè)參數(shù)的意義下:
二八定律:1897年意大利經(jīng)濟(jì)學(xué)家帕列托發(fā)現(xiàn)的二八定律在軟件行業(yè)同樣適用,而可以給我們很多啟發(fā),指導(dǎo)我們的軟件開發(fā)和測(cè)試。80%的用戶經(jīng)常使用的是20%的軟件功能。在軟件測(cè)試中,80%的bug是集中在20%的軟件模塊中,對(duì)于自動(dòng)化測(cè)試來說,找出這20%的測(cè)試用例是至關(guān)重要的。
每次腳本都是從一個(gè)統(tǒng)一的文件開始執(zhí)行的,就是如上的Start.py。這樣做的好處是可以把每個(gè)腳本都需要處理的工作放到一個(gè)文件中去執(zhí)行,例如收集一些配置信息,讀取命令行參數(shù)。以這樣統(tǒng)一的處理風(fēng)格為腳本的可讀性提供了保證,也為簡(jiǎn)化了測(cè)試腳本的編寫,不用每次都要處理一些基本的事務(wù)。
通過python的內(nèi)置函數(shù)sys.argv就可以讀取命令行參數(shù),非常方便。讀取到命令行參數(shù)后,在Start.py內(nèi)部可以判斷命令行的格式是否符合我們的格式,如測(cè)試人員不小心把-s 寫成了-z 這樣就要退出測(cè)試執(zhí)行。
如果輸入的格式是正確的,Start.py 負(fù)責(zé)在特定的目錄下尋找特定的Suite文件和Testcase。Suite文件和Testcase的格式會(huì)在下邊的具體實(shí)例中作介紹。
找到特定的Testcase后就可以執(zhí)行測(cè)試用例,根據(jù)檢查點(diǎn)的通過或失敗發(fā)送測(cè)試報(bào)告,該報(bào)告會(huì)以網(wǎng)頁的形式顯示,方便測(cè)試人員和開發(fā)人員的查找調(diào)試。
圖形用戶界面(GUI) 就是使用圖象,輸入的文字,帶圖標(biāo)的計(jì)算機(jī)界面,取而代之了許多鍵盤的功能。GUI可以讓用戶通過圖標(biāo)和鼠標(biāo)與計(jì)算機(jī)進(jìn)行交互,而不是單調(diào)地在命令行中輸入文本進(jìn)行操作。設(shè)計(jì)良好的圖形用戶界面可以使用戶從命令中解放出來。
GUI測(cè)試主要包括兩個(gè)方面:一是純GUI測(cè)試,主要關(guān)注應(yīng)用程序上GUI組件是否符合規(guī)范或是用戶的使用習(xí)慣,二是功能測(cè)試,主要是檢驗(yàn)和驗(yàn)證系統(tǒng)是否實(shí)現(xiàn)了系統(tǒng)的業(yè)務(wù)需求,旨在驗(yàn)證系統(tǒng)的業(yè)務(wù)實(shí)現(xiàn)能力。但事實(shí)上兩者不是完全獨(dú)立的,一方面GUI的測(cè)試必定要觸發(fā)功能,另一方面,功能測(cè)試也一定要通過GUI將事件傳遞給后臺(tái)服務(wù)。
測(cè)試ID 466540 , 有了測(cè)試ID就可以在測(cè)試人員提交bug后,QA或開發(fā)人員通過ID找到這個(gè)測(cè)試用例。還有一個(gè)更大的用處就是,在自動(dòng)個(gè)腳本生成測(cè)試報(bào)告后,可以根據(jù)測(cè)試ID把該測(cè)試用例顯示在測(cè)試報(bào)告中,以供測(cè)試人員和開發(fā)人員調(diào)試。
測(cè)試名稱,根據(jù)測(cè)試名稱應(yīng)該可以很快了解測(cè)試用例的內(nèi)容,所以好的測(cè)試名稱也是非常重要的。
測(cè)試優(yōu)先級(jí)(Priority),測(cè)試優(yōu)先級(jí)也是一個(gè)很重要的參數(shù),因?yàn)榇笮晚?xiàng)目都要有很多測(cè)試用例要執(zhí)行。只有明確測(cè)試優(yōu)先級(jí)才能確保重要的測(cè)試用例得以及時(shí)進(jìn)行,保證軟件質(zhì)量。
測(cè)試用例概述(summary),幫助測(cè)試執(zhí)行人員了解該測(cè)試用例的用測(cè)的功能。
測(cè)試步驟,描述測(cè)試人員或是自動(dòng)化腳本每一步是怎樣操作的,例如本例告訴測(cè)試人員選擇菜單Fie,然后選擇菜單項(xiàng)New。
預(yù)期結(jié)果(Expected Results),說明經(jīng)過以上測(cè)試步驟,期望程序運(yùn)行出現(xiàn)的結(jié)果。
本文在明確軟件測(cè)試?yán)碚摰幕A(chǔ)上,對(duì)自動(dòng)化測(cè)試做了重點(diǎn)闡述,通過實(shí)際項(xiàng)目的自動(dòng)化測(cè)試分析,有些測(cè)試用例特別適合用自動(dòng)化測(cè)試。例如GUI測(cè)試中,用些是要驗(yàn)證界面元素是否顯示正常。如果是腳本就可以準(zhǔn)確無誤地很快驗(yàn)證完畢,而用人工驗(yàn)證不僅容易出錯(cuò)而且費(fèi)時(shí)間。由于時(shí)間和硬件條件有限,本論文規(guī)避了許多問題,所以仍有許多工作需要完成。例如:做好腳本的復(fù)用,使測(cè)試腳本不斷積累。及研究怎樣在測(cè)試工具和自己搭建框架中尋找平衡等。
[1] 張克東.《軟件工程與軟件測(cè)試自動(dòng)化教程》.北京:電子工業(yè)出版社,2002.
[2] 朱菊,王志堅(jiān),楊雪.《基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架》[J]計(jì)算機(jī)技術(shù)測(cè)試與發(fā)展,2006.
[3] 馬瑞芳,王會(huì)燃.《計(jì)算機(jī)軟件測(cè)試方法的研究》.小型微型計(jì)算機(jī)系統(tǒng),2003.
不同的行業(yè)具有不同的工作環(huán)境,有些工作環(huán)境甚至是非常惡劣的。電氣自動(dòng)化控制設(shè)備需要面對(duì)多種多樣的工作環(huán)境,以應(yīng)對(duì)環(huán)境因素對(duì)電氣自動(dòng)化控制設(shè)備的不利影響。這些不利的環(huán)境因素主要包括氣候因素、機(jī)械作用力因素與電磁干擾因素。
1.氣候因素,主要包括濕度、氣壓、溫度、大氣污染、煙霧等,這些不利的環(huán)境因素會(huì)嚴(yán)重電氣自動(dòng)化控制設(shè)備的性能、損壞設(shè)備結(jié)構(gòu)、運(yùn)行運(yùn)動(dòng)靈活性以及溫升過高等,甚至導(dǎo)致設(shè)備完全毀壞,不能正常工作;
2.電磁干擾因素,該因素是非可見因素,但是對(duì)電氣自動(dòng)化控制設(shè)備的不利影響不能小視,一般而言,電氣自動(dòng)化控制設(shè)備的工作充斥著各種電磁波,這些電磁波會(huì)增大設(shè)備的輸出噪聲,導(dǎo)致其工作失穩(wěn),甚至影響設(shè)備安全。除此之外,人員因素的影響也非常重要。由于電氣自動(dòng)化控制設(shè)備比較復(fù)雜,掌握和熟練操作的難度較大,因此,操作人員不熟練和不正確的操作均會(huì)影響甚至損壞設(shè)備;同時(shí),對(duì)設(shè)備進(jìn)行科學(xué)及時(shí)的維護(hù)與保養(yǎng)也非常重要,否則會(huì)降低電氣自動(dòng)化控制設(shè)備的可靠性。
電氣自動(dòng)化控制設(shè)備元器件的生產(chǎn)廠家繁多,并且良莠不齊。通常而言,生產(chǎn)設(shè)備元器件的廠家規(guī)模較小,質(zhì)量管理體系不健全,其元器件質(zhì)量便很難合格;另外,在市場(chǎng)經(jīng)濟(jì)體制下,元器件廠家之間的惡性競(jìng)爭(zhēng)會(huì)讓部門廠家只重視“價(jià)格優(yōu)勢(shì)”,罔顧產(chǎn)品質(zhì)量,導(dǎo)致電氣自動(dòng)化控制設(shè)備的可靠性指標(biāo)偏低,影響設(shè)備的正常安全工作。
在進(jìn)行電氣自動(dòng)化控制設(shè)備可靠性測(cè)試的過程中,要對(duì)測(cè)試方式進(jìn)行有效的選擇,基本上需要從試驗(yàn)的環(huán)境、實(shí)驗(yàn)的場(chǎng)地、試驗(yàn)的程序及組織工作等幾個(gè)方面來進(jìn)行。
要保證測(cè)試的結(jié)果,試驗(yàn)場(chǎng)地的選擇也必須慎重。一般情況下,對(duì)于試驗(yàn)場(chǎng)地的選擇是有據(jù)可依、有規(guī)可循的。依照相關(guān)的經(jīng)驗(yàn)來看,電氣自動(dòng)化控制設(shè)備可靠性測(cè)試試驗(yàn)場(chǎng)地的選擇可遵循以下幾點(diǎn)原則:
第一,如果測(cè)試試驗(yàn)的主要目的是對(duì)設(shè)備可靠性進(jìn)行指標(biāo)性的測(cè)試,那么在進(jìn)行場(chǎng)地選擇的時(shí)候,以嚴(yán)酷為主,盡可能選擇較為惡劣的試驗(yàn)場(chǎng)地,以便于對(duì)設(shè)備可靠性運(yùn)行的極限指標(biāo)進(jìn)行確認(rèn);
第二,如果測(cè)試實(shí)驗(yàn)只是要對(duì)設(shè)備正常運(yùn)行的可靠性進(jìn)行側(cè)測(cè)試,那么相關(guān)人員在進(jìn)行試驗(yàn)場(chǎng)地選擇的時(shí)候,應(yīng)盡量選取那些較為典型的測(cè)試場(chǎng)地即可;
要保證整個(gè)可靠性測(cè)試工作可以按照既定計(jì)劃有效進(jìn)行,使每一個(gè)測(cè)試環(huán)節(jié)都可以按照相應(yīng)的要求標(biāo)準(zhǔn)開展,相關(guān)管理層應(yīng)當(dāng)針對(duì)電氣自動(dòng)化控制設(shè)備的測(cè)試試驗(yàn)選擇,制定出一個(gè)系統(tǒng)性的、統(tǒng)一的程序,使現(xiàn)場(chǎng)測(cè)試人員在進(jìn)行可靠性試驗(yàn)的時(shí)候,每一步操作都嚴(yán)格依照這一系統(tǒng)且統(tǒng)一的程序來進(jìn)行。需要強(qiáng)調(diào)的是,在這個(gè)系統(tǒng)的試驗(yàn)程序當(dāng)中,應(yīng)當(dāng)對(duì)試驗(yàn)的起始時(shí)間、時(shí)間間隔、數(shù)據(jù)采集、保障情況記錄、性能指標(biāo)記錄以及故障排除等具體操作進(jìn)行詳細(xì)且全面的規(guī)范。如此才能夠使得整個(gè)測(cè)試工作更可信、更準(zhǔn)確。
組織工作可以說是保證測(cè)試準(zhǔn)確性的重要環(huán)節(jié),也是試驗(yàn)過程中最關(guān)鍵的部分。所以在進(jìn)行電氣自動(dòng)化控制設(shè)備可靠性測(cè)試的過程中,必須要有一個(gè)較為高效且嚴(yán)密的組織機(jī)構(gòu),通過這一組織機(jī)構(gòu)的組織及管理功能,對(duì)整個(gè)測(cè)試試驗(yàn)進(jìn)行整體的把握、人員的協(xié)調(diào)以及有效的監(jiān)督。
首先,組織工作要對(duì)相對(duì)分散的試驗(yàn)場(chǎng)地進(jìn)行相應(yīng)的管理與組織工作,做好對(duì)實(shí)驗(yàn)數(shù)據(jù)的收集、整理與分析;
其次,組織機(jī)構(gòu)應(yīng)當(dāng)依照試驗(yàn)?zāi)康牡牟町?,?duì)測(cè)試所需的技術(shù)人員進(jìn)行有效的選定,并做好試驗(yàn)工作中的協(xié)調(diào)與管理;
另外,從某一角度上來看,組織機(jī)構(gòu)還應(yīng)當(dāng)發(fā)揮其應(yīng)有的監(jiān)督與控制作用,對(duì)最終的測(cè)試結(jié)果進(jìn)行客觀、科學(xué)的判定,從而使整個(gè)測(cè)試的結(jié)果更加可靠。
該測(cè)試方法主要是在電氣自動(dòng)化控制設(shè)備運(yùn)行的過程中進(jìn)行控制,以檢驗(yàn)其可靠性。進(jìn)行測(cè)試時(shí),需要認(rèn)真、詳細(xì)地記錄各種數(shù)據(jù)、并對(duì)數(shù)據(jù)進(jìn)行數(shù)理統(tǒng)計(jì)和計(jì)算、編制設(shè)備可靠性的具體指標(biāo),比較真實(shí)地評(píng)估設(shè)備運(yùn)行的可靠性。該測(cè)試方法需要是測(cè)試設(shè)備相對(duì)較少,但是能夠比較真實(shí)地反應(yīng)設(shè)備的真實(shí)性能(真實(shí)工作環(huán)境之下的工作性能),而且測(cè)試成本比較低,不會(huì)設(shè)備工作連貫性產(chǎn)生不利的干擾。然而此種測(cè)試方法的缺點(diǎn)也需要我們注意,即易受外界條件干擾、易受受控條件限制、再現(xiàn)條件較差等。
保證試驗(yàn)方法俗稱烤機(jī),是在產(chǎn)品出廠前,在規(guī)定條件下對(duì)產(chǎn)品進(jìn)行無故障的工作試驗(yàn)。保證實(shí)驗(yàn)方法的不同于實(shí)驗(yàn)室測(cè)試方法,因?yàn)殡娍卦O(shè)備通常是由大量的元器件構(gòu)成的,因此它的故障以隨機(jī)性和多樣性的形式表現(xiàn),而不是以幾種故障為主表現(xiàn)出來的,隨著時(shí)間變化是保證試驗(yàn)方法失效率所具有的特性,服從指數(shù)分布??緳C(jī)就是對(duì)產(chǎn)品的早期失效進(jìn)行測(cè)試考核,通過改進(jìn)使產(chǎn)品的失效率在出廠前達(dá)到指標(biāo)。保證試驗(yàn)所需的時(shí)間較長,對(duì)于小數(shù)量、大系統(tǒng)生產(chǎn)的產(chǎn)品而言,它適用于所有產(chǎn)品,但是對(duì)于大量生產(chǎn)的產(chǎn)品而言,只能用于設(shè)備的樣本。
電氣自動(dòng)化控制設(shè)備的可靠性測(cè)試是非常重要的,從目前來看較為常用的方法有試驗(yàn)室測(cè)試、烤機(jī)測(cè)試以及現(xiàn)場(chǎng)測(cè)試幾種。從實(shí)踐來看,烤機(jī)測(cè)試應(yīng)用范圍過小,實(shí)驗(yàn)室測(cè)試是未來發(fā)展的主流,而從目前來看,現(xiàn)場(chǎng)可靠性測(cè)試是最為實(shí)用的一種測(cè)試方法。
無線射頻技術(shù)(Radio Frequency Identification, RFID)由于具有非接觸、遠(yuǎn)距離、批量識(shí)別的優(yōu)點(diǎn),逐漸成為自動(dòng)識(shí)別技術(shù)中最具有應(yīng)用前景的技術(shù)。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,RFID技術(shù)已經(jīng)在供應(yīng)鏈、零售、倉庫管理、生產(chǎn)線管理以及軍隊(duì)中得到了應(yīng)用,目前我國物聯(lián)網(wǎng)技術(shù)正處于由試點(diǎn)應(yīng)用轉(zhuǎn)入大規(guī)模應(yīng)用的階段[1]。由于使用電磁波方式傳輸數(shù)據(jù),RFID數(shù)據(jù)傳輸易受到氣候環(huán)境,金屬屏蔽,周圍材質(zhì)等因素的影響。因此,RFID應(yīng)用系統(tǒng)測(cè)試技術(shù)研究成為了熱點(diǎn)[2],國內(nèi)外研究機(jī)構(gòu)和大公司紛紛建立RFID測(cè)試實(shí)驗(yàn)室,研究測(cè)試技術(shù)和標(biāo)準(zhǔn)。
Zeng等[3]用設(shè)備部署仿真的方法研究如何提高RFID系統(tǒng)中讀寫器設(shè)備的部署問題,Porter等開發(fā)了適應(yīng)八種不同RFID系統(tǒng)的測(cè)試協(xié)議[4]。前面所述的RFID測(cè)試系統(tǒng)和測(cè)試方法都是手動(dòng)的,在對(duì)RFID應(yīng)用測(cè)試時(shí),只能逐一的來執(zhí)行。RFID系統(tǒng)很復(fù)雜,需要開發(fā)一些自動(dòng)化測(cè)試技術(shù),制動(dòng)測(cè)試任務(wù)后,能夠自動(dòng)執(zhí)行測(cè)試操作。在本研究中,基于整體測(cè)試和單元測(cè)試的概念[5],提出了一種自動(dòng)化的RFID應(yīng)用系統(tǒng)測(cè)試的方法。對(duì)于關(guān)鍵的影響因素(見圖1)進(jìn)行分析,設(shè)計(jì)了自動(dòng)測(cè)試平臺(tái)的框架,對(duì)于其中主要的組件進(jìn)行了討論。
在RFID應(yīng)用測(cè)試中,數(shù)據(jù)收集分為三種類型:一是收集RFID電子標(biāo)簽的數(shù)據(jù),二是收集環(huán)境數(shù)據(jù),三是應(yīng)用場(chǎng)景中電子標(biāo)簽與相關(guān)設(shè)備的運(yùn)行狀態(tài)。當(dāng)電子標(biāo)簽進(jìn)入到RFID讀寫器的識(shí)讀范圍內(nèi),電子標(biāo)簽被激活,數(shù)據(jù)通過電磁信號(hào)被傳輸?shù)絉FID讀寫器中。在測(cè)試系統(tǒng)中需要將待測(cè)系統(tǒng)中的電子標(biāo)簽的數(shù)據(jù)進(jìn)行收集,用于數(shù)據(jù)分析。
電子標(biāo)簽內(nèi)的數(shù)據(jù)在傳輸過程中受到氣候,應(yīng)用現(xiàn)場(chǎng)的電磁干擾,材質(zhì)/介質(zhì)等因素的影響,這些影響因素需要被相應(yīng)的傳感器采集,結(jié)合RFID讀寫器讀到的電子標(biāo)簽數(shù)據(jù)一起,形成完整的數(shù)據(jù)分析的基礎(chǔ)數(shù)據(jù)。
在RFID應(yīng)用系統(tǒng)中,RFID設(shè)備和電子標(biāo)簽的運(yùn)動(dòng)狀態(tài)、天線的位姿對(duì)RFID系統(tǒng)的應(yīng)用效果具有明顯的影響。在數(shù)據(jù)收集階段,要將RFID設(shè)備不同場(chǎng)景下,不同時(shí)間的姿態(tài)數(shù)據(jù)進(jìn)行記錄,同時(shí)將運(yùn)動(dòng)的速度,方向數(shù)據(jù)進(jìn)行收集。
如上所示,氣候環(huán)境、電磁環(huán)境以及RFID設(shè)備的參數(shù)都是影響RFID系統(tǒng)應(yīng)用效果的重要因素。如果能夠使用自動(dòng)控制技術(shù)對(duì)RFID讀寫器參數(shù)、天線的位姿、環(huán)境參數(shù)等影響RFID應(yīng)用效果的因素進(jìn)行控制,將提高測(cè)試的精度,實(shí)現(xiàn)自動(dòng)控制。在實(shí)際應(yīng)用場(chǎng)景中,RFID讀寫器的功率、工作狀態(tài)(休眠,工作)等參數(shù)可以由業(yè)務(wù)流程來控制,讀寫器天線的部署參數(shù)(角度、高度)可以由自控轉(zhuǎn)臺(tái)進(jìn)行控制,RFID電子標(biāo)簽的運(yùn)動(dòng)速度和方向可以由速度控制器來進(jìn)行模擬控制。這樣多種控制設(shè)備的組合就形成了RFID應(yīng)用測(cè)試平臺(tái)中的自動(dòng)控制單元,
測(cè)試任務(wù)是對(duì)一個(gè)應(yīng)用場(chǎng)景中多種測(cè)試操作的總稱。復(fù)雜的RFID應(yīng)用可能對(duì)應(yīng)多種典型應(yīng)用場(chǎng)景,在指定測(cè)試任務(wù)時(shí)可以按照業(yè)務(wù)流程或者功能進(jìn)行劃分。根據(jù)模塊化概念,在測(cè)試平臺(tái)中需要對(duì)測(cè)試任務(wù)進(jìn)行集中管理,維護(hù)任務(wù)中的測(cè)試模塊。
測(cè)試結(jié)果需要保存在數(shù)據(jù)庫中,便于對(duì)測(cè)試結(jié)果進(jìn)行分析和總結(jié)。根據(jù)測(cè)試中產(chǎn)生的數(shù)據(jù)類型,測(cè)試平臺(tái)中包括了三個(gè)數(shù)據(jù)庫:一是仿真器產(chǎn)生的模擬數(shù)據(jù),作為測(cè)試的原始數(shù)據(jù)。二是中間數(shù)據(jù)庫,保存了測(cè)試過程中采集的數(shù)據(jù)。三是測(cè)試結(jié)果和報(bào)表數(shù)據(jù)庫,保存了測(cè)試分析的結(jié)果、報(bào)表數(shù)據(jù)等。
在測(cè)試過程中,需要根據(jù)測(cè)試中間結(jié)果來改變控制參數(shù)。為了解決測(cè)試時(shí)間和測(cè)試次數(shù),可以使用進(jìn)化算法來優(yōu)化控制參數(shù),使被測(cè)的RFID應(yīng)用系統(tǒng)發(fā)揮最好的能力。圖2示意了采用遺傳算法來優(yōu)化控制參數(shù)的流程。在測(cè)試平臺(tái)中,使用者也可以采用其他的優(yōu)化算法來實(shí)現(xiàn)對(duì)控制參數(shù)的優(yōu)化。
根據(jù)測(cè)試系統(tǒng)功能分析,設(shè)計(jì)了測(cè)試系統(tǒng)的框架,如圖3所示。包括的功能模塊有:數(shù)據(jù)接口模塊、RFID中間件模塊、數(shù)據(jù)統(tǒng)計(jì)分析模塊、參數(shù)自動(dòng)控制模塊、優(yōu)化模塊、數(shù)據(jù)分析算法模塊、報(bào)表模塊等。
?。?)RFID讀寫器數(shù)據(jù)接口,是測(cè)試系統(tǒng)與RFID讀寫器之間的數(shù)據(jù)接口,傳輸?shù)臄?shù)據(jù)是讀寫器與電子標(biāo)簽之間讀寫的數(shù)據(jù)。
RFID中間件模塊的主要功能是模擬被測(cè)的RFID應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯[7],包括了RFID讀寫器控制器,數(shù)據(jù)收集器和業(yè)務(wù)邏輯建模工具。RFID讀寫器控制器主要控制RFID讀寫設(shè)備的工作、關(guān)閉、睡眠。數(shù)據(jù)收集器是記錄所有RFID讀寫器讀到的電子標(biāo)簽數(shù)據(jù),識(shí)別數(shù)據(jù)的來源,按照時(shí)間線創(chuàng)建事件。測(cè)試過程中采集到的數(shù)據(jù)進(jìn)入到數(shù)據(jù)統(tǒng)計(jì)分析模塊。根據(jù)測(cè)試任務(wù)選擇相應(yīng)的數(shù)據(jù)分析算法來處理這些數(shù)據(jù)。RFID中間件中一般集成了RFID應(yīng)用流程工具,用戶可以配置不同的應(yīng)用流程來進(jìn)行測(cè)試,尋找適合的業(yè)務(wù)流程。
數(shù)據(jù)分析后的結(jié)果可以作為優(yōu)化模塊中適應(yīng)度函數(shù)值來指導(dǎo)參數(shù)優(yōu)化的進(jìn)程。在進(jìn)化算法的優(yōu)化過程中(看圖2的優(yōu)化流程),經(jīng)過交叉和變異新的參數(shù)種群。新的控制參數(shù)作為輸入數(shù)據(jù)控制測(cè)試平臺(tái)中的自動(dòng)化設(shè)備,改變被測(cè)RFID應(yīng)用系統(tǒng)的參數(shù)。待滿足優(yōu)化條件后,退出優(yōu)化過程,測(cè)試系統(tǒng)根據(jù)最終確定的參數(shù),可以給予被測(cè)RFID應(yīng)用系統(tǒng)一些改進(jìn)的建議。
為了驗(yàn)證本文提出的RFID應(yīng)用系統(tǒng)測(cè)試平臺(tái)的功能和性能,本研究中對(duì)生產(chǎn)線RFID數(shù)據(jù)寫入和校驗(yàn)的應(yīng)用場(chǎng)景進(jìn)行了測(cè)試。測(cè)試場(chǎng)景的業(yè)務(wù)流程如圖4所示。兩個(gè)讀寫器天線米。RFID電子標(biāo)簽放置在產(chǎn)品上面。生產(chǎn)線上產(chǎn)品經(jīng)過排列后逐個(gè)通過第一個(gè)RFID天線,此時(shí)寫入數(shù)據(jù)。第二個(gè)RFID天線負(fù)責(zé)讀取產(chǎn)品中RFID電子標(biāo)簽內(nèi)的數(shù)據(jù),校驗(yàn)前面寫入數(shù)據(jù)的準(zhǔn)確性,如果不合格則回流再次重新寫入,合格則進(jìn)入包裝環(huán)節(jié)。
在這測(cè)試場(chǎng)景中RFID讀寫器型號(hào)為CSL-461,頻率范圍845~925MHz,最大讀取速度1 000個(gè)/s。讀寫器的功率為30db。兩個(gè)天線,類型為線 測(cè)試任務(wù)和測(cè)試結(jié)果
選擇兩種電子標(biāo)簽來進(jìn)行測(cè)試,分別是Inlay Api和Inlay Apr。測(cè)試條件為室溫20℃,生產(chǎn)線m/s,天線m。兩種電子標(biāo)簽的指標(biāo)參數(shù)見表1所示:
在生產(chǎn)線運(yùn)動(dòng)狀態(tài)下,測(cè)試了兩種不同種類電子標(biāo)簽的讀寫性能。使用80個(gè)Inlay Api和80個(gè)Inlay Apr的電子標(biāo)簽進(jìn)行測(cè)試,20個(gè)電子標(biāo)簽為一組,共進(jìn)行10次測(cè)試。對(duì)于數(shù)據(jù)寫入操作,共有77個(gè)Inlay Api電子標(biāo)簽成功寫入,73個(gè)Inlay Apr成功寫入,成功率分別是96.25%和91.275%。
生產(chǎn)線的速度對(duì)于電子標(biāo)簽數(shù)據(jù)寫入具有一定的影響,測(cè)試了不同運(yùn)行速度條件下RFID電子標(biāo)簽數(shù)據(jù)的寫入成功率。其他條件不變的情況下,調(diào)整生產(chǎn)線的速度,速度變化范圍從0.5m/s到2.0m/s,速度間隔為0.3m/s,測(cè)試結(jié)果見圖5。當(dāng)運(yùn)行速度超過1.5m/s時(shí),數(shù)據(jù)寫入的成功率下降。
根據(jù)RFID應(yīng)用場(chǎng)景,設(shè)計(jì)了自動(dòng)測(cè)試系統(tǒng),并對(duì)生產(chǎn)線RFID電子標(biāo)簽數(shù)據(jù)寫入校驗(yàn)應(yīng)用場(chǎng)景進(jìn)行了測(cè)試。本研究中提出的RFID應(yīng)用系統(tǒng)測(cè)試平臺(tái)的框架具有如下優(yōu)點(diǎn):
?。?)框架具有較強(qiáng)的靈活性,能夠根據(jù)被測(cè)RFID應(yīng)用系統(tǒng)的業(yè)務(wù)需求進(jìn)行靈活的重構(gòu)。同時(shí)自動(dòng)控制的參數(shù)數(shù)據(jù)接口,RFID讀寫設(shè)備的控制數(shù)據(jù)接口也是靈活的。
?。?)測(cè)試任務(wù)可以自動(dòng)執(zhí)行。RFID電子標(biāo)簽的數(shù)據(jù)讀取,環(huán)境數(shù)據(jù)的收集可以自動(dòng)執(zhí)行和分析。RFID讀寫設(shè)備的參數(shù)調(diào)節(jié)也可以自動(dòng)的執(zhí)行,從而實(shí)現(xiàn)自動(dòng)對(duì)RFID應(yīng)用系統(tǒng)的優(yōu)化。
?。?)具有自動(dòng)控制、自適應(yīng)優(yōu)化功能的RFID測(cè)試系統(tǒng)代表了RFID應(yīng)用測(cè)試的發(fā)展方向,我們?cè)谝院蟮难芯恐袑⒕哂凶灾魏妥赃m應(yīng)能力的生物系統(tǒng)激勵(lì)機(jī)制引入到RFID應(yīng)用測(cè)試研究中,用于改進(jìn)系統(tǒng)的靈活性,功能模塊的自適應(yīng)性以及增強(qiáng)數(shù)據(jù)分析的能力。
軟件測(cè)試確保軟件可靠性安全性的重要途徑。隨著客戶對(duì)軟件可靠性和安全性要求提高,軟件測(cè)試也變得越來越復(fù)雜。
所謂白盒測(cè)試就是在測(cè)試過程中被測(cè)試對(duì)象是可見的,測(cè)試人員通過測(cè)試軟件可對(duì)軟件的功能是否達(dá)要求進(jìn)行測(cè)試。白盒測(cè)試分靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試兩種。
靜態(tài)測(cè)試不需要執(zhí)行程序,進(jìn)行靜態(tài)測(cè)試主要目的就是為了監(jiān)測(cè)軟件的描述和表述之間是否存在沖突。
靜態(tài)測(cè)試中一個(gè)重要步驟就是對(duì)代碼進(jìn)行檢查,對(duì)代碼檢查主要方式有,代碼走查、桌面審查等方式進(jìn)行。
對(duì)軟件進(jìn)行動(dòng)態(tài)測(cè)試時(shí),需要執(zhí)行軟件,常用的動(dòng)態(tài)測(cè)試方法有三種:基本路徑、程序插裝、邏輯覆蓋測(cè)試法。下面就邏輯覆蓋法進(jìn)行重點(diǎn)介紹。邏輯覆蓋測(cè)試是基于程序邏輯為基礎(chǔ)測(cè)試方法,采用邏輯測(cè)試法需要測(cè)試人員對(duì)程序邏輯要清楚了解。邏輯覆蓋包括以下幾種覆蓋,語句覆蓋、條件覆蓋、判定覆蓋、判定/條件覆蓋、條件組合覆蓋以及路徑覆蓋。
語句覆蓋:采用語句覆蓋測(cè)試首先要設(shè)計(jì)足夠多的測(cè)試用例,確保軟件中每條語句都可以執(zhí)行一次。
條件覆蓋:采用條件覆蓋首先要設(shè)計(jì)足夠多的測(cè)試用例確保程序中的每條語句都可以執(zhí)行一遍,在此基礎(chǔ)上確保程序中每條條件語句都可以獲得到可能結(jié)果。
判定語句:采用判定覆蓋首先要設(shè)計(jì)足夠多的測(cè)試用例,語句覆蓋基礎(chǔ)上確保程序中不同判定條件語句最終都可以執(zhí)行一次。
判定/條件覆蓋:判定/條件覆蓋本質(zhì)就是判定覆蓋和條件覆蓋相加得到的結(jié)構(gòu),它也要在語句覆蓋基礎(chǔ)上進(jìn)行。
條件組合覆蓋:設(shè)計(jì)足夠多的測(cè)試用例,確保測(cè)試過程中,各種條件組合和在測(cè)試過程中都可以執(zhí)行一次。
在測(cè)試過程中將程序當(dāng)做一個(gè)不可打開的黑匣子,測(cè)試人員也不用關(guān)心程序內(nèi)部語句,利用接口進(jìn)行測(cè)試。進(jìn)行黑盒測(cè)試時(shí),測(cè)試人員只需將數(shù)據(jù)輸入到程序中,然后通過改變操作來改變程序輸出結(jié)果,對(duì)輸出結(jié)構(gòu)進(jìn)行記錄,將測(cè)試結(jié)果與預(yù)期結(jié)果進(jìn)行對(duì)比,判定軟式是否可以正常使用。
等價(jià)劃分法就是將所有需要輸入數(shù)據(jù)按照一定類別進(jìn)行劃分,在每一類中找出具有代表性測(cè)試用例。代表性數(shù)據(jù)具有等價(jià)特性,它可以代表一類數(shù)據(jù),當(dāng)有此類數(shù)據(jù)類似測(cè)試用例時(shí)可以將其劃分在同一等價(jià)類中,采用等價(jià)類劃分法可以縮小工作人員在測(cè)試過程中測(cè)試用例的需求,最大程度減少測(cè)試人員工作量。
第一步:將測(cè)試用例范圍有效等價(jià)類和無效等價(jià)類,將劃分列成表,以便測(cè)試人員使用。
第二部:為等價(jià)類中的每一個(gè)等價(jià)類制定一個(gè)唯一編號(hào),然后設(shè)計(jì)一個(gè)測(cè)試用例,這個(gè)測(cè)試用例要盡可能多覆蓋所有等價(jià)類,重復(fù)這個(gè)步驟直到所有等價(jià)類都被測(cè)試用例覆蓋為止;當(dāng)所有有效等價(jià)類都被測(cè)試用例覆蓋后。需要測(cè)試人員在針對(duì)無效等價(jià)類進(jìn)行測(cè)試用例設(shè)計(jì),針對(duì)無效等價(jià)類設(shè)計(jì)的測(cè)試用例,要只覆蓋一個(gè)沒有被覆蓋的無效等價(jià)類,重復(fù)這一步驟,直到所有無效等價(jià)類都被覆蓋為止。
實(shí)際測(cè)試經(jīng)驗(yàn)告訴我們,許多軟件出現(xiàn)問題時(shí)都出現(xiàn)在臨界值處,在軟件所有能承受的邊緣地帶而并非內(nèi)部。因此,在軟件測(cè)試過程中測(cè)試人員可以針對(duì)邊界值設(shè)計(jì)測(cè)試用例,這樣做不但可以減少工作量,而且也可以得到更好的測(cè)效果。
在確定邊界值時(shí)首先要確定軟件的邊界情況;然后依照邊界情況,分別選剛剛小于、等于、剛剛大于邊界值數(shù)據(jù)作為測(cè)試用例。對(duì)于一些邊界值復(fù)雜的軟件,要想找出合適的測(cè)試用例則需要根據(jù)實(shí)際情況進(jìn)行更詳細(xì)分析。
錯(cuò)誤推測(cè)法就是一些資深測(cè)試員依靠自己經(jīng)驗(yàn)和直覺對(duì)程序中可能出現(xiàn)的一些問題進(jìn)行設(shè)計(jì)測(cè)試用例。在實(shí)軟件測(cè)試過程中往往都是幾種測(cè)試方法綜合使用。
1) 性能測(cè)試主要是對(duì)軟件使用過程中性能否滿足使用指標(biāo)而進(jìn)行的測(cè)試。對(duì)于軟件性能測(cè)試主要包括以下幾點(diǎn):用戶反映時(shí)間、系統(tǒng)反映時(shí)間、軟件界面反映時(shí)間、處理器利用率以及有沒有內(nèi)存泄露情況發(fā)生等。
2) 兼容性測(cè)試目的在于對(duì)軟件在使用過程中和其他應(yīng)用或者系統(tǒng)之間的兼容性。在進(jìn)行兼容性測(cè)試前首先要分析軟件都可能在哪些系統(tǒng)中使用,會(huì)和哪些軟件進(jìn)行聯(lián)合使用,會(huì)和什么類型數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交換,然后依據(jù)這些可能發(fā)生的情況進(jìn)行兼容性測(cè)試。
3) 配置測(cè)試主要注意以下幾個(gè)方面:一是系統(tǒng)自動(dòng)修改系統(tǒng)配置讓軟件可以正常使用;二是人為對(duì)系統(tǒng)中一些參數(shù)進(jìn)行修改;三是在不同硬件組合下軟件是否可以兼容。
自動(dòng)化測(cè)試與手工測(cè)試相比有著巨大優(yōu)勢(shì),但其中也有著許多不足,首先對(duì)于測(cè)試人員來說,測(cè)試員必行對(duì)自動(dòng)化測(cè)試流程有足夠了解,能夠熟練使用自動(dòng)化測(cè)試工具,善于總結(jié)測(cè)試經(jīng)驗(yàn),不斷對(duì)自動(dòng)化測(cè)試中進(jìn)行完善,只要這樣自動(dòng)化測(cè)試才會(huì)發(fā)展得更好,走得更遠(yuǎn)。
[1] 佟偉光.軟件測(cè)試[J].北京:人民郵電出版社,2011:1-2.
[2] 朱少民.全程軟件測(cè)試[J].北京:電子工業(yè)出版社,2014:17-18.
電話:13644723777
傳 真:+86-173-4169
手 機(jī):13644723777
郵 箱:mile@nmgdp.net
地 址:內(nèi)蒙古包頭市昆區(qū)昆工路光彩商業(yè)街99號(hào)