基于ant腳本的代碼質(zhì)量評(píng)價(jià)的研究與應(yīng)用_第1頁
基于ant腳本的代碼質(zhì)量評(píng)價(jià)的研究與應(yīng)用_第2頁
基于ant腳本的代碼質(zhì)量評(píng)價(jià)的研究與應(yīng)用_第3頁
基于ant腳本的代碼質(zhì)量評(píng)價(jià)的研究與應(yīng)用_第4頁
基于ant腳本的代碼質(zhì)量評(píng)價(jià)的研究與應(yīng)用_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 . . . 碩士學(xué)位論文基于ANT腳本的自動(dòng)化測試集成工具的開發(fā)與應(yīng)用摘要在現(xiàn)代軟件開發(fā)與維護(hù)階段中,靠什么手段來保障軟件的質(zhì)量?毫無疑問,靠的就是軟件測試。隨著軟件工程技術(shù)的日益成熟以與用戶對(duì)軟件產(chǎn)品質(zhì)量的期待也越來越高,軟件測試已經(jīng)滲透到軟件生命周期的每一個(gè)環(huán)節(jié),在軟件開發(fā)、生產(chǎn)與維護(hù)過程中扮演著重要的角色。論文詳細(xì)闡述了自動(dòng)化測試技術(shù)的基本理論和ANT技術(shù),分析了已有自動(dòng)工測試工具不足,運(yùn)用ANT技術(shù)對(duì)現(xiàn)有的自動(dòng)化測試技術(shù)、測試框架以與自動(dòng)化測試工具的集成和擴(kuò)充。通過分析現(xiàn)有自動(dòng)化測試測試工具的優(yōu)缺點(diǎn)和面臨的挑戰(zhàn),結(jié)合自動(dòng)化測試?yán)碚撆c技術(shù),運(yùn)用ANT技術(shù)對(duì)自動(dòng)化工具Findbugs,C

2、heckstyle,PMD,CodeReview,Junit,Jdepend,F(xiàn)unction testing和performance testing進(jìn)行二次開發(fā)的集成和補(bǔ)充,彌補(bǔ)這些工具相互之間不足的地方,來設(shè)計(jì)并實(shí)現(xiàn)了基于ANT的自動(dòng)化測試工具。該自動(dòng)化測試工具采用模塊化設(shè)計(jì),主要應(yīng)用于對(duì)軟件開發(fā)完成后進(jìn)行代碼質(zhì)量測試、單元測試測試、性能測試、功能測試等自動(dòng)化測試,實(shí)現(xiàn)了測試腳本生成自動(dòng)化、測試執(zhí)行與驗(yàn)證自動(dòng)化、測試報(bào)告生成自動(dòng)化。關(guān)鍵詞:自動(dòng)化測試,自動(dòng)化測試框架,代碼質(zhì)量,ANT56 / 63AbstractSoftware testing plays a significant ro

3、le to ensure the reliability and quality ofsoftware in software developing and maintaining process. With the continuous higherrequirement from the development of software industry, software testing has beenparticipating into every phase of software life cycle, become more and more importantin softwa

4、re development and maintenance.The paper expatiates on the basic theory of automation testingtechnology and the introduction of ANT, analyzesthe value of automation testing, researches on the existing automation testingtechnology、testing framework and the integration and implement of automated testi

5、ng tools. Through analyzing thedisadvantages and disadvantages and the challenges of existing automated testing tools. The Ant realizes the automation testing tool whichis integratedand implemented on the automation tools Findbugs, Checkstyle, PMD, Code review, Junit, Jdepend, function testing and p

6、erformance testing to implement the weakness of these tools. The tool is mainly used to do code quality testing automation testing, Junit testing, performance testing and function testing on software under product development. It can realize the automated test scripts generation andimplementation, t

7、he automated test data verification, the automated test reportgeneration. Key Words:Automation testing, Automation testing framework, Code quality, ANT目錄摘要iAbstractii目錄I圖目錄III表目錄IV第1章 緒論11.1 論文研究背景11.1.1 軟件質(zhì)量保證11.1.2 軟件測試11.1.3 自動(dòng)化測試21.2國外研究現(xiàn)狀21.3論文的研究目標(biāo)與容31.4論文章節(jié)安排31.5本章總結(jié)4第2章 軟件自動(dòng)化測試52.1 自動(dòng)化測試的概述5

8、2.2 自動(dòng)化測試過程52.3自動(dòng)化測試生命周期72.4自動(dòng)化測試的價(jià)值92.4.1 手工測試的問題與面臨的挑戰(zhàn)92.4.2 自動(dòng)化測試的優(yōu)點(diǎn)102.4.3 自動(dòng)化測試的問題與缺點(diǎn)112.5 自動(dòng)化測試工具112.5.1 應(yīng)用自動(dòng)化測試工具的目的112.5.2 自動(dòng)化測試工具的介紹112.6 本章小結(jié)13第3章 ANT介紹143.1 ANT概述143.2 ANT的工作原理143.3 ANT的生成文件143.3.1 project元素143.3.2 target元素153.3.4 property元素153.3.5 ANT的生成文件解析153.4 本章小結(jié)17第4章 基于ANT的自動(dòng)化測試工具的

9、設(shè)計(jì)與實(shí)現(xiàn)184.1 工具整體介紹184.1.1 自動(dòng)化測試框架的介紹184.1.2自動(dòng)化測試框架的分類194.1.3工具的總體設(shè)計(jì)194.2 自動(dòng)化測試工具的設(shè)計(jì)214.2.1 自動(dòng)化測試的流程分析214.2.2 功能模塊詳細(xì)設(shè)計(jì)224.2.3工具的結(jié)構(gòu)設(shè)計(jì)244.2.4自動(dòng)測試工具與Ant集成測試的實(shí)現(xiàn)254.3 數(shù)據(jù)庫設(shè)計(jì)314.4 本章小結(jié)39第5章 基于ANT的自動(dòng)化測試工具的實(shí)施405.1 基于ANT測試腳本的生成405.1.1 代碼質(zhì)量模塊的腳本405.1.2 CodeReview模塊整合的腳本415.1.3 Junit模塊的腳本415.1.4 Jdepend模塊的腳本425.1

10、.5 FunctionTesting模塊的腳本435.1.6 PerformanceTest模塊的腳本445.2 基于ANT的測試腳本的執(zhí)行445.2.1 測試腳本的自動(dòng)執(zhí)行445.2.2 測試執(zhí)行中的結(jié)果進(jìn)行驗(yàn)證455.3 測試報(bào)告的生成455.4 本章小結(jié)50第6章 總結(jié)與展望516.1 本文完成的主要研究工作516.2 進(jìn)一步的研究工作516.3 本章小結(jié)52參考文獻(xiàn)53作者簡歷55致56圖目錄圖 2.1 自動(dòng)化測試過程5圖 2.2 評(píng)估流程6圖 2.3 自動(dòng)化測試流程7圖4.1 自動(dòng)化測試工具功能結(jié)構(gòu)圖20圖 4.2 評(píng)價(jià)結(jié)果的匯總圖22圖 4.3 功能模塊結(jié)構(gòu)圖23圖 4.4 自動(dòng)測

11、試工具中主要類的關(guān)系圖25圖 4.5 工程目錄結(jié)構(gòu)圖圖26圖 4.6 單元測試輸出日記圖29圖 4.7 單元測試結(jié)構(gòu)報(bào)告30圖 4.8 Junit詳細(xì)單元測試報(bào)告31圖5.1 測試總結(jié)報(bào)告45圖5.2 Junit的詳細(xì)測試報(bào)告46圖5.3 checkstyle的詳細(xì)測試報(bào)告47圖5.4 Sonar詳細(xì)測試報(bào)告48圖5.5 Jdepend的詳細(xì)測試報(bào)告49圖5.6 PerformanceTesting的詳細(xì)測試報(bào)告49表目錄表3. 1 Project元素的3個(gè)屬性與描述表14表4. 1 代碼質(zhì)量匯總數(shù)據(jù)表(CodeQualitysummary)32表4. 2 代碼質(zhì)量明細(xì)數(shù)據(jù)表(CodeQual

12、ityDetail)33表4. 3 云遵循數(shù)據(jù)數(shù)據(jù)表(CloudCompliance)34表4. 4 代碼質(zhì)量明細(xì)數(shù)據(jù)表(CodeReviewSummary)35表4. 5 單元測試信息數(shù)據(jù)表(JunitSummary)35表4. 6 Code Coverage的明細(xì)表(CodeCoverageSummary)36表4. 7 Jdepend匯總表(JdependSummary)37表4. 8 功能測試匯總表(FunctionSummary)38表4. 9 性能測試匯總表(FunctionSummary)38第1章 緒論1.1 論文研究背景隨著科學(xué)技術(shù)的不斷進(jìn)步和創(chuàng)新,軟件系統(tǒng)變得越來越復(fù)雜,體

13、積也變得越來越大,且開發(fā)周期也越來越短,需求變化也越來越頻繁,這些都是當(dāng)前軟件開發(fā)過程的主要特征。如何按時(shí)、高質(zhì)量地交付軟件,已經(jīng)成為軟件行業(yè)的重要挑戰(zhàn)。為了應(yīng)付這一挑戰(zhàn),這必然引起了對(duì)測試工作的重視,一款好軟件的出世,不但要求有強(qiáng)大的測試團(tuán)隊(duì),該團(tuán)隊(duì)必須具備在業(yè)務(wù)方面、測試技能方面的專業(yè)水平,而且在軟件開發(fā)過程方面經(jīng)常由于測試而作持續(xù)不斷地調(diào)整。幸運(yùn)的是,隨著軟件開發(fā)技術(shù)和工具的提高,軟件工程和軟件過程實(shí)踐的推廣,軟件測試日益得到重視和專業(yè)化。軟件測試工具的研發(fā)也取得了卓有成就,如動(dòng)態(tài)分析工具產(chǎn)品中有代表性的是Compuware公司的DevPartner軟件,Rational公司的Purif

14、y系列等;靜態(tài)分析工具產(chǎn)品中,有代表性的是Checkstyle、PMD等軟件1。1.1.1 軟件質(zhì)量保證軟件質(zhì)量保證(SQA)是建立一套有計(jì)劃,有系統(tǒng)的方法,來向管理層保證擬定出的標(biāo)準(zhǔn)、步驟、實(shí)踐和方法能夠正確地被所有項(xiàng)目所采用。軟件質(zhì)量保證的目的是使軟件過程對(duì)于管理人員來說是可見的。它通過對(duì)軟件產(chǎn)品和活動(dòng)進(jìn)行評(píng)審和審計(jì)來驗(yàn)證軟件是合乎標(biāo)準(zhǔn)的。軟件質(zhì)量保證組在項(xiàng)目開始時(shí)就一起參與建立計(jì)劃、標(biāo)準(zhǔn)和過程。這些將使軟件項(xiàng)目滿足機(jī)構(gòu)方針的要求。軟件質(zhì)量保證的工作容和工作方法主要如下:(1)針對(duì)具體項(xiàng)目制定SQA計(jì)劃,確保項(xiàng)目組正確執(zhí)行過程。(2)依據(jù)SQA計(jì)劃進(jìn)行SQA審計(jì)工作,按照規(guī)則發(fā)布審計(jì)結(jié)果報(bào)

15、告。(3)對(duì)審計(jì)中發(fā)現(xiàn)的問題,要求項(xiàng)目組改進(jìn),并跟進(jìn)直到解決。1.1.2 軟件測試軟件測試就是在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件品質(zhì),并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過程。從廣義上講,測試是指軟件產(chǎn)品生存周期所有的檢查、評(píng)審和確認(rèn)活動(dòng),如設(shè)計(jì)評(píng)審、系統(tǒng)測試。狹義上講,測試是對(duì)軟件產(chǎn)品質(zhì)量的檢測和評(píng)價(jià),它一方面檢查軟件產(chǎn)品質(zhì)量中存在的質(zhì)量問題,同時(shí)對(duì)產(chǎn)品質(zhì)量進(jìn)行客觀的評(píng)價(jià)210。Glen Myers對(duì)軟件測試提出了一下觀點(diǎn):(1) 測試是一個(gè)程序的執(zhí)行過程,其目的在于發(fā)現(xiàn)錯(cuò)誤。(2)一個(gè)好的測試用例很可能是發(fā)現(xiàn)至今尚未察覺的錯(cuò)誤。(3)一個(gè)成功的測試用例是發(fā)現(xiàn)至今尚未察覺的

16、錯(cuò)誤的測試。軟件測試主要的工作容,即驗(yàn)證和確認(rèn)。下面分別給出其定義:驗(yàn)證:保證軟件以正確的方式來做了這個(gè)事件。確認(rèn):保證軟件做了你所期望的事情。1.1.3 自動(dòng)化測試自動(dòng)化測試是把以人為驅(qū)動(dòng)的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。通常,在設(shè)計(jì)了測試用例并通過評(píng)審之后,由測試人員根據(jù)測試用例中描述的過程一步步執(zhí)行測試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測試效率,便引入了自動(dòng)化測試的概念。由于軟件測試的工作量在整個(gè)軟件按開發(fā)周期中占了很大的部分,同時(shí)軟件測試的許多操作是重復(fù)性、非創(chuàng)造性的、高度提高注意力的活,計(jì)算機(jī)毫無疑問地可以替代人們?nèi)ネ瓿蛇@些活。因此,實(shí)行

17、自動(dòng)化測試,不僅能夠使測試工作效率提高,同時(shí)也降低開發(fā)成本和縮短開發(fā)周期4。目前有許多自動(dòng)化測試框架已被開發(fā)出來,并廣泛應(yīng)用與各種自動(dòng)化測試過程中。但是這些自動(dòng)測試框架不能夠做到很全面的測試,不同測試框架側(cè)重點(diǎn)不同,測試結(jié)果也不大一樣。于是提出了對(duì)原有的自動(dòng)化測試框架和工具進(jìn)行集成和補(bǔ)充并將其應(yīng)用到測試工作中去,通過利用自動(dòng)化測試框架的優(yōu)勢來彌補(bǔ)原有自動(dòng)化測試框架中存在的缺陷,來提高自動(dòng)化測試的效率5。1.2國外研究現(xiàn)狀國外針對(duì)軟件質(zhì)量評(píng)估提出了很多質(zhì)量度量模型。1968年由Ruhey和Hurt wic就軟件的一些特性提出了度量方法,但尚未建立質(zhì)量度量模型,所提出的度量方法也不完整。1976年

18、,Bochm等人提出了定量的評(píng)價(jià)質(zhì)量的概念,給出了60個(gè)質(zhì)量度量公式,表明怎樣用于評(píng)價(jià)軟件質(zhì)量,并且首次提出了軟件質(zhì)量度量的3種模型。1978年,Winters和McCall提出了從軟件質(zhì)量要素(factor)、準(zhǔn)則(criteria)到度量(metric)的3層次式的軟件質(zhì)量度量模型。McCall認(rèn)為,軟件的質(zhì)量有11個(gè)要素構(gòu)成,即正確性、可靠性、效率、完整性、可使用性、可維護(hù)性、可測試性、靈活性、可移植性、重復(fù)使用性和連接性。ISO于1985年提出建議,軟件質(zhì)量度量模型有3層組成:高層(top level)軟件質(zhì)量需求評(píng)價(jià)準(zhǔn)則(SQRC)、中層(mid level)軟件質(zhì)量評(píng)價(jià)設(shè)計(jì)評(píng)價(jià)準(zhǔn)則

19、(SQRC)和底層(low level)軟件質(zhì)量度量評(píng)價(jià)準(zhǔn)則(SQMC)。ISO三層次模型來自McCall等人的模型,高層、中層和底層分別對(duì)應(yīng)與McCall模型中的特性、質(zhì)量準(zhǔn)則和度量。軟件中心根據(jù)ISO/TC97/SC7的建議,同時(shí)參照McCall模型和Boeing模型,并結(jié)合我國實(shí)際情況綜合構(gòu)成了SSC(shanghai Software Center)軟件質(zhì)量度量模型與度量方法,從而形成了SSC軟件質(zhì)量評(píng)價(jià)體系3。1.3論文的研究目標(biāo)與容本文主要是結(jié)合Ant的應(yīng)用,對(duì)公司項(xiàng)目評(píng)價(jià)系統(tǒng)中原有的測試工具和測試框架的再次開發(fā)進(jìn)行研究。研究了原有軟件自動(dòng)化測試框架和自動(dòng)化測試技術(shù)的不足地方,利用

20、ANT技術(shù)對(duì)已有的一套方法、工具進(jìn)行集成和補(bǔ)充,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于ANT的自動(dòng)化測試代碼質(zhì)量評(píng)價(jià)工具。本文的具體研究容與所獲得成果如下:(1)對(duì)原有自動(dòng)化測試技術(shù)進(jìn)行分析。通過研究自動(dòng)化測試的概念、過程、生命周期等,來論述了軟件評(píng)價(jià)的優(yōu)缺點(diǎn)以與存在的一系列問題。(2)闡述原有的測試工具存在的不足之處以與ANT技術(shù),解決了如何利用ant技術(shù)對(duì)這些測試工具進(jìn)行集成和補(bǔ)充,并說明集成這些測試工具的原因。(3)以Cashpro軟件作為測試對(duì)象,利用基于ANT的自動(dòng)化測試工具,來實(shí)現(xiàn)自動(dòng)化測試,并對(duì)這些測試出來的結(jié)果進(jìn)行分析和評(píng)價(jià)。開發(fā)者可以根據(jù)對(duì)評(píng)價(jià)報(bào)表反映的軟件存在的問題進(jìn)行修改和完善,從而保障軟

21、件質(zhì)量的可靠性。(4)詳細(xì)闡述了基于ANT的自動(dòng)化測試工具的設(shè)計(jì)、實(shí)現(xiàn)以與應(yīng)用,通過對(duì)整個(gè)自動(dòng)化測試工具的開發(fā)作總結(jié),提出了未來需要改進(jìn)的地方,并對(duì)未來自動(dòng)化測試工具的廣泛應(yīng)用作了展望。1.4論文章節(jié)安排根據(jù)上述研究容的闡述,本文大概的章節(jié)安排如下:第一章,緒論。主要介紹了本文研究的背景,代碼質(zhì)量評(píng)價(jià)體系的國外現(xiàn)狀,研究的項(xiàng)目情況以與本文主要完成的工作,并介紹了本文的組織結(jié)構(gòu)。第二章,軟件自動(dòng)化測試的介紹。主要介紹自動(dòng)化測試的概念、過程和生命周期,通過分析和對(duì)比自動(dòng)化測試的優(yōu)缺點(diǎn),最后介紹了已有被廣泛應(yīng)用的自動(dòng)化測試工具。第三章,ANT介紹。對(duì)ANT作為在論文研究工具中進(jìn)行二次開發(fā)的自動(dòng)化測試

22、構(gòu)建工具,本章作了簡單介紹。本章還介紹了ANT的工作機(jī)制和原理,以與在具體項(xiàng)目評(píng)價(jià)中的應(yīng)用。第四章,基于ANT的自動(dòng)化測試工具的設(shè)計(jì)與實(shí)現(xiàn)。介紹并分析了自動(dòng)化測試工具的設(shè)計(jì)策略,并在此基礎(chǔ)上通過ANT把原有的自動(dòng)化工具進(jìn)行集成和補(bǔ)充。在本章后面部分中,對(duì)ANT所要整合在一起的各主要功能模塊和詳細(xì)設(shè)計(jì)進(jìn)行論述。第五章,基于ANT的自動(dòng)化測試工具的實(shí)施。根據(jù)第四章中所介紹的自動(dòng)化測試工具的設(shè)計(jì),本章將詳細(xì)論述了自動(dòng)化測試工具是如何對(duì)被測軟件進(jìn)行自動(dòng)化測試評(píng)價(jià)的,以與如何在原有的項(xiàng)目中實(shí)現(xiàn)集成和補(bǔ)充,并對(duì)所產(chǎn)生的結(jié)果報(bào)表做進(jìn)一步分析。第六章,對(duì)全文進(jìn)行了總結(jié),回顧了本文的研究容,并提出進(jìn)一步可以進(jìn)行

23、研究的容,作為未來將要完成的工作的重點(diǎn)。1.5本章總結(jié)在本章中,首先介紹了代碼質(zhì)量和自動(dòng)化測試的的發(fā)展現(xiàn)狀,概要地介紹了國外研究現(xiàn)狀,從中借簽一些成功的經(jīng)驗(yàn)。另外,本章還列出了本文的主要研究容、研究目標(biāo)以與文章的組織結(jié)構(gòu)。第2章 軟件自動(dòng)化測試2.1 自動(dòng)化測試的概述自動(dòng)化測試就是希望通過自動(dòng)化測試工具或其他手段,按照測試工程師的預(yù)定計(jì)劃進(jìn)行自動(dòng)的測試,目的是減輕手工測試的勞動(dòng)量,從而達(dá)到提高軟件質(zhì)量的目的。自動(dòng)化測試的目的在于發(fā)現(xiàn)老缺陷,而手工測試的目的在于發(fā)現(xiàn)新缺陷。通常,軟件測試的工作量很大(據(jù)統(tǒng)計(jì),測試會(huì)占用到40%的開發(fā)時(shí)間;一些可靠性要求非常高的軟件,測試時(shí)間甚至占到開發(fā)時(shí)間的60

24、%)。而測試中的許多操作是重復(fù)性的、非智力性的和非創(chuàng)造性的,并要求做準(zhǔn)確細(xì)致的工作,計(jì)算機(jī)就最適合于代替人工去完成這樣的任務(wù)。軟件自動(dòng)化測試時(shí)相對(duì)手工測試而存在的,主要是通過所開發(fā)的軟件測試工具、腳本等來實(shí)現(xiàn),具有良好的可操作性、可重復(fù)性和高效率等特點(diǎn)68。2.2 自動(dòng)化測試過程自動(dòng)化測試7無非是利用自動(dòng)化測試工具,經(jīng)過對(duì)測試需求的分析,設(shè)計(jì)出自動(dòng)化測試用例,從而搭建自動(dòng)化測試的框架,設(shè)計(jì)與編寫自動(dòng)化腳本。測試腳本的正確性,同樣需要經(jīng)歷需求分析、計(jì)劃、測試用例設(shè)計(jì)、測試、評(píng)估,如圖2.1所示。圖2.1 自動(dòng)化測試過程(1) 自動(dòng)化測試需求分析。當(dāng)測試項(xiàng)目滿足了自動(dòng)化的前提條件,并確定在該項(xiàng)目中

25、需要使用自動(dòng)化測試時(shí),我們便可以開始進(jìn)行自動(dòng)化測試需求分析,可落實(shí)到測試需求說明書。(2) 測試計(jì)劃。此過程需要確定自動(dòng)化測試的圍以與相應(yīng)的測試用例、測試數(shù)據(jù),并形成詳細(xì)的文檔,以便于自動(dòng)化測試框架的建立。此外,還需要定義測試活動(dòng)模型(確定測試所使用的測試技術(shù)),定義測試體系結(jié)構(gòu),完成測試程序的定義域映射(建立測試程序與測試需求之間的聯(lián)系),自動(dòng)/手動(dòng)測試映射(確定哪些測試使用自動(dòng)測試),測試數(shù)據(jù)映射,確定如何測試,劃分測試階段、類型與測試方法等。(3)自動(dòng)化測試框架的搭建。此過程需要確定自動(dòng)化測試框架需要調(diào)用哪些文件、結(jié)構(gòu),調(diào)用的過程,以與文件結(jié)構(gòu)如何劃分。自動(dòng)化測試框架的典型要素如下:公用

26、的對(duì)象;不同測試用例里面被重復(fù)使用的一樣對(duì)象;公用的環(huán)境。公用的方法。測試數(shù)據(jù)。(4)測試用例設(shè)計(jì)-編寫測試用例或開發(fā)測試腳本,并文檔化。(5)測試調(diào)試測試(針對(duì)自動(dòng)化測試腳本)。 (6)評(píng)估評(píng)估測試結(jié)果并改進(jìn)測試過程。 測試執(zhí)行結(jié)束后,需要對(duì)測試結(jié)果進(jìn)行比較、分析以與結(jié)果驗(yàn)證,得出測試報(bào)告。其中總結(jié)性報(bào)告時(shí)提供給被測方的中高層管理者與客戶的,而詳細(xì)報(bào)告作為反饋文檔提供給開發(fā)小組成員。評(píng)估過程如圖2.2所示。圖2.2 評(píng)估流程這個(gè)階段由測試設(shè)計(jì)工程師與測試工程師共同參與。構(gòu)建好的待測系統(tǒng)上使用測試用例腳本執(zhí)行測試數(shù)據(jù),其中測試數(shù)據(jù)時(shí)被設(shè)計(jì)用于測試該應(yīng)用程序的各種特征的。可以使用Excel、wo

27、rd、ClearQuest等工具得到測試后的測試結(jié)果日記、測試度量、缺陷報(bào)告與測試評(píng)估總結(jié)等。2.3自動(dòng)化測試生命周期自動(dòng)化測試的生命周期主要由以下六個(gè)階段組成:編寫測試腳本、開始測試、發(fā)送測試命令、收集數(shù)據(jù)、顯示測試結(jié)果、輸出測試報(bào)告。測試自動(dòng)化流程如圖2.3所示。圖2. 3 測試自動(dòng)化流程在軟件的開發(fā)生命周期中,并不是自動(dòng)化測試運(yùn)用的越多越好,也不是自動(dòng)化測試越少越好,而是根據(jù)項(xiàng)目測試的實(shí)際情況來進(jìn)行運(yùn)用,才能使自動(dòng)測試的生命周期達(dá)到理想狀態(tài)。評(píng)判自動(dòng)化測試是否應(yīng)用的標(biāo)準(zhǔn)就是看自動(dòng)化測試的價(jià)值是否超過了手工測試的價(jià)值。根據(jù)自動(dòng)化測試的條件可以劃分如下兩種情況:適合自動(dòng)化測試的情況:(1)產(chǎn)

28、品型項(xiàng)目產(chǎn)品型的項(xiàng)目,每個(gè)項(xiàng)目只改進(jìn)少量的功能,但每個(gè)項(xiàng)目必須反反復(fù)復(fù)的測試哪些沒有改進(jìn)過的功能,這部分測試完全可以讓自動(dòng)化測試來承擔(dān),同時(shí)可以把新加入的功能的測試頁慢慢地加入到自動(dòng)化測試當(dāng)中(2)增量開發(fā)、持續(xù)集成的項(xiàng)目由于這種開發(fā)模式是頻繁的發(fā)布新的版本進(jìn)行測試,也就需要頻繁的自動(dòng)化測試,以便把人從中解脫出來測試新的功能。(3)回歸測試回歸測試是自動(dòng)化測試的強(qiáng)項(xiàng),它能夠很好的驗(yàn)證你是否引入了新的缺陷,老的缺陷是否修改過來了,在某種程度上可以把自動(dòng)化測試工具叫做回歸測試工具。(4)多次重復(fù)、機(jī)械性操作自動(dòng)化測試最適用于多次重復(fù)、機(jī)械性動(dòng)作,這樣的測試對(duì)它來說從不會(huì)失敗。比如要向系統(tǒng)輸入大量的

29、相似數(shù)據(jù)來測試。(5)需要頻繁運(yùn)行測試在一個(gè)項(xiàng)目中需要頻繁的運(yùn)行測試,測試周期按天算,就能最大限度的利用測試腳本,提高工作效率。(6)性能、壓力測試實(shí)現(xiàn)多人同時(shí)對(duì)系統(tǒng)進(jìn)行操作時(shí)是否正常處理和響應(yīng)以與系統(tǒng)可承受的最大訪問量的測試。自動(dòng)化測試不是適合所有公司、所有項(xiàng)目。大致不適合自動(dòng)化測試的情況有:(1)定制型項(xiàng)目(一次性的)為客戶定制的項(xiàng)目,維護(hù)期由客戶方承擔(dān)的,甚至采用的開發(fā)語言、運(yùn)行環(huán)境也是客戶特別要求的,即公司在這方面的測試積累就少,這樣的項(xiàng)目部適合作自動(dòng)化測試。(2)項(xiàng)目周期很短的項(xiàng)目項(xiàng)目周期很短,測試周期很短,就不值得花精力去投資自動(dòng)化測試,好不容易建立起的測試腳本,不能得到重復(fù)的利用

30、是不現(xiàn)實(shí)的。(3)業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象,有很多的邏輯關(guān)系、運(yùn)算關(guān)系,工具就很難測試。(4)美觀、聲音、易用性測試人的感觀方面的:界面的美觀、聲音的體驗(yàn)、易用性的測試,也只有人來測試。(5)測試很少運(yùn)行測試很少運(yùn)行,對(duì)自動(dòng)化測試就是一種浪費(fèi)。自動(dòng)化測試就是讓它不厭其煩的、反反復(fù)復(fù)的運(yùn)行才有效率。(6)軟件部穩(wěn)定軟件部穩(wěn)定,則會(huì)由于這些不穩(wěn)定因素導(dǎo)致自動(dòng)化測試失敗。只有當(dāng)軟件達(dá)到相對(duì)的穩(wěn)定,沒有界面性嚴(yán)重錯(cuò)誤和中斷錯(cuò)誤才能開始自動(dòng)化測試。(6)設(shè)計(jì)物理交互工具很難完成與物理設(shè)備的交互,比如刷卡的測試等。2.4自動(dòng)化測試的價(jià)值根據(jù)以上論述,自動(dòng)化測試首要解決的問題就是看自動(dòng)化測試的價(jià)

31、值是否大于同等情況下的手工測試的價(jià)值。因此,我們在進(jìn)行自動(dòng)化測試之前要評(píng)估測試的生命周期,看看是否能夠進(jìn)行自動(dòng)化測試。2.4.1 手工測試的問題與面臨的挑戰(zhàn)隨著軟件產(chǎn)業(yè)的日趨成熟,軟件測試不只是發(fā)現(xiàn)軟件缺陷的手段,而且在軟件質(zhì)量的保證中業(yè)起著扮演著重要的角色。隨著軟件質(zhì)量越來越受到人們的關(guān)注,傳統(tǒng)的以手工測試為主的手段,一方面面臨著測試測試數(shù)量的增加,另一方面人工勞動(dòng)強(qiáng)度的增加導(dǎo)致測試失誤的頻率的增加,進(jìn)而導(dǎo)致軟件測試的周期延長,使用自動(dòng)化測試技術(shù)迫在眉急。測試人員可以根據(jù)手工測試需求,來使用測試工具產(chǎn)生測試腳本。在后續(xù)的測試工作中,只需少量修改測試腳本就可反復(fù)使用,就可實(shí)現(xiàn)自動(dòng)化測試。手工測

32、試所面臨的問題和挑戰(zhàn)如下:(1)對(duì)回歸測試不適合。由于回歸測試的動(dòng)作和用例是完全設(shè)計(jì)好的,期待的結(jié)果也是完全預(yù)料到的,如果測試用例過多,就浪費(fèi)很多時(shí)間、人力、成本等資源。(2)運(yùn)行更多繁瑣的測試不適合手工測試。如果純手工來進(jìn)行測試,需要花費(fèi)較多的時(shí)間才能運(yùn)行完更多的測試。(3)需要性能、壓力的測試不適合手工測試。(4)需要頻繁的發(fā)布新的版本的測試不適合手工測試。(5) 手工測試不適合多次重復(fù)、機(jī)械性操作的測試。2.4.2 自動(dòng)化測試的優(yōu)點(diǎn)相對(duì)于手工測試而言,好的自動(dòng)化測試在某種情況下可以達(dá)到難以置信的效果。自動(dòng)化測試相對(duì)于手工測試,具有如下優(yōu)點(diǎn):1、對(duì)程序的回歸測試更方便。這可能是自動(dòng)化測試最

33、主要的任務(wù),特別是在程序修改比較頻繁時(shí),效果是非常明顯的。由于回歸測試的動(dòng)作和用例是完全設(shè)計(jì)好的,測試期望的結(jié)果也是完全可以預(yù)料的,將回歸測試自動(dòng)運(yùn)行,可以極大提高測試效率,縮短回歸測試時(shí)間。2、可以運(yùn)行更多更繁瑣的測試。自動(dòng)化的一個(gè)明顯的好處是可以在較少的時(shí)間運(yùn)行更多的測試。3、可以執(zhí)行一些手工測試?yán)щy或不可能進(jìn)行的測試。比如,對(duì)于大量用戶的測試,不可能同時(shí)讓足夠多的測試人員同時(shí)進(jìn)行測試,但是卻可以通過自動(dòng)化測試模擬同時(shí)有許多用戶,從而達(dá)到測試的目的。4、更好地利用資源。將繁瑣的任務(wù)自動(dòng)化,可以提高準(zhǔn)確性和測試人員的積極性,將測試技術(shù)人員解脫出來投入更多精力設(shè)計(jì)更好的測試用例。有些測試不適合

34、于自動(dòng)測試,僅適合于手工測試,將可自動(dòng)測試的測試自動(dòng)化后,可以讓測試人員專注于手工測試部分,提高手工測試的效率。5、測試具有一致性和可重復(fù)性。由于測試是自動(dòng)執(zhí)行的,每次測試的結(jié)果和執(zhí)行的容的一致性是可以得到保障的,從而達(dá)到測試的可重復(fù)的效果。6、測試的復(fù)用性。由于自動(dòng)測試通常采用腳本技術(shù),這樣就有可能只需要做少量的甚至不做修改,實(shí)現(xiàn)在不同的測試過程中使用一樣的用例。7、增加軟件信任度。由于測試是自動(dòng)執(zhí)行的,所以不存在執(zhí)行過程中的疏忽和錯(cuò)誤,完全取決于測試的設(shè)計(jì)質(zhì)量。一旦軟件通過了強(qiáng)有力的自動(dòng)測試后,軟件的信任度自然會(huì)增加。根據(jù)上面論述,自動(dòng)化測試比手工測試的好處和優(yōu)點(diǎn)是一切盡在不言之中,在合適

35、的環(huán)境下運(yùn)用自動(dòng)化測試,將能從自動(dòng)化測試中受益匪淺。2.4.3 自動(dòng)化測試的問題與缺點(diǎn)當(dāng)然,自動(dòng)化測試不是萬能的,他不能完全替代手工測試。在軟件版本還沒有穩(wěn)定的情況下,千萬不要開展自動(dòng)化測試,否則是自討苦吃:1、不能取代手工測試2、手工測試比自動(dòng)測試發(fā)現(xiàn)的缺陷更多3、對(duì)測試質(zhì)量的依賴性極大4、測試自動(dòng)化不能提高有效性5、測試自動(dòng)化可能會(huì)制約軟件開發(fā)。由于自動(dòng)測試比手動(dòng)測試更脆弱,所以維護(hù)會(huì)受到限制,從而制約軟件的開發(fā)。7、工具本身并無想像力綜上所述,可以歸結(jié)自動(dòng)化完成不了的,手工測試都能彌補(bǔ),兩者有效的結(jié)合是測試質(zhì)量保證的關(guān)鍵。2.5 自動(dòng)化測試工具隨著軟件質(zhì)量越來越受到人們的關(guān)注,越來越多的

36、IT公司開始逐步使用自動(dòng)化測試工具來進(jìn)行項(xiàng)目質(zhì)量保證。正確地選擇和使用自動(dòng)化測試工具,可以從以下角度來進(jìn)行考慮:(1)按照用途選擇匹配的測試工具。(2)在適當(dāng)?shù)纳芷谶x擇測試工具。(3)按照測試人員的實(shí)際技能選擇匹配的測試工具。(4)選擇一個(gè)可提供的測試工具。2.5.1 應(yīng)用自動(dòng)化測試工具的目的一般而言,使用測試工具的目的是為了更加快速,有效地對(duì)軟件進(jìn)行測試,提高軟件產(chǎn)品的質(zhì)量。2.5.2 自動(dòng)化測試工具的介紹測試工具可以從兩個(gè)不同的方面去分類。根據(jù)測試方法不同,自動(dòng)化測試工具可以分為:白盒測試工具、黑盒測試工具和測試管理工具三大類,此外還有些專用的自動(dòng)化測試工具。1.白盒測試工具一般是針對(duì)

37、被測源程序進(jìn)行的測試,測試所發(fā)現(xiàn)的故障可以定位到代碼級(jí)。根據(jù)測試工具工作原理的不同,白盒測試的自動(dòng)化工具可分為靜態(tài)測試工具和動(dòng)態(tài)測試工具。靜態(tài)測試工具是在不執(zhí)行程序的情況下,分析軟件的特征,靜態(tài)分析主要集中在需求文檔、設(shè)計(jì)文檔以與程序結(jié)構(gòu)方面。按照完成的只能不同,靜態(tài)測試工具包括以下幾種類型:(1)代碼審查(2)一致性檢查(3)錯(cuò)誤檢查(4)借口分析(5)輸入輸出規(guī)則說明分析檢查(6)數(shù)據(jù)流分析(7)類型分析(8)單元分析(9)復(fù)雜度分析。常用的動(dòng)態(tài)工具有:Telelogic公司的Logiscope軟件,PR公司的PRQA軟件等12。動(dòng)態(tài)測試工具是直接執(zhí)行被測程序以提供測試活動(dòng),它需要實(shí)際運(yùn)行

38、被測系統(tǒng),并設(shè)置斷點(diǎn),向代碼生成的可執(zhí)行文件中插入一些監(jiān)測代碼,掌握斷點(diǎn)這一時(shí)刻程序運(yùn)行數(shù)據(jù)(對(duì)象屬性、變量的值等),具有功能確認(rèn)、接口測試、覆蓋率分析、性能分析等性能。動(dòng)態(tài)測試工具可以分為以下幾種類型:(1)功能確認(rèn)(2)覆蓋測試(3)性能測試(4)存分析。常用的動(dòng)態(tài)工具有:Compuware公司的DevPartner,IBM公司的Rational。2.黑盒測試工具是在明確軟件產(chǎn)品應(yīng)具有的功能的條件下,完全不考慮被測程序的部結(jié)構(gòu)和部特征,通過測試來檢驗(yàn)軟件功能是否按照軟件需求規(guī)則的說明正常工作。按照完成的職能不同,黑盒測試工具可以分為:功能測試工具用于檢測程序能否達(dá)到預(yù)期的功能要求并正常運(yùn)行

39、。性能測試工具用于確定軟件和系統(tǒng)的性能。常用的黑盒測試工具有:Compuware公司QACenter,IBM公司的Rational TeamTest。3.測試管理工具用于對(duì)測試過程進(jìn)行管理,幫助完成制定測試計(jì)劃,跟蹤測試運(yùn)行結(jié)果。通常,測試管理工具對(duì)測試計(jì)劃、測試用例、測試實(shí)施進(jìn)行管理,還包括缺陷跟蹤管理等。常用的測試管理工具有IBM公司的Rational Test Manager。測試管理工具包括以下容:測試用例管理、缺陷跟蹤管理(問題跟蹤管理)、配置管理。4.除了上述所講的測試工具以外,還有一些專用的自動(dòng)化測試工具,例如,針對(duì)數(shù)據(jù)庫測試的TestBytes,對(duì)應(yīng)用性能進(jìn)行優(yōu)化的EcoSco

40、pe等工具79。2.6 本章小結(jié)在本章中,首先介紹了軟件自動(dòng)化測試的概念、過程和生命周期,通過分析和對(duì)比自動(dòng)化測試的優(yōu)缺點(diǎn),得出自動(dòng)化應(yīng)用的條件,最后介紹了已有被廣泛應(yīng)用的自動(dòng)化測試工具。第3章 ANT介紹3.1 ANT概述Ant1314是用于構(gòu)架、部署Java程序的一個(gè)工具,使用Ant可以明顯加快Java應(yīng)用開的進(jìn)程。Ant是著名的Apache基金會(huì)的一個(gè)開源項(xiàng)目,Ant的主頁是/。Ant可以自動(dòng)化構(gòu)建、部署復(fù)雜的Java應(yīng)用,極簡化了Java的開發(fā)。Ant的應(yīng)用也很廣泛,包括編譯、打包、部署、進(jìn)行Juint測試等??傊?,Ant已經(jīng)廣泛地應(yīng)用到Java的各個(gè)領(lǐng)域中

41、。它以其易于使用、與平臺(tái)無關(guān)、迎合如今項(xiàng)目自動(dòng)測試和自動(dòng)部署的需要,成為許多項(xiàng)目構(gòu)建過程的重要環(huán)節(jié)。目前它已成為所有主要開源java項(xiàng)目采用的獨(dú)立工具,并已成了事實(shí)上的標(biāo)準(zhǔn)。Ant具有以下優(yōu)點(diǎn):1. 自動(dòng)化批處理,減少重復(fù)勞動(dòng)。2. building.xml里的模塊可重用,所以ant的可重用性也好。3. 支持的task很多,還可根據(jù)需要定制task。4. 能自動(dòng)識(shí)別并跳過沒有改動(dòng)過的任務(wù),避免無用功。3.2 ANT的工作原理Ant的運(yùn)行,靠的是一個(gè)構(gòu)建腳本。默認(rèn)的名稱叫build.xml,如果你在任何目下運(yùn)行ant命令,Ant將自動(dòng)查找當(dāng)前目錄下有沒有build.xml文件,如果有這個(gè)文件,就

42、讀取這個(gè)文件,并運(yùn)行其中的默認(rèn)target。3.3 ANT的生成文件3.3.1 project元素每個(gè)build.xml文件都包含一個(gè)project元素和至少一個(gè)(默認(rèn)的)target元素。一個(gè)project元素包含3個(gè)屬性,name、default和basedir,下面分別介紹,如表所示。表3. 1 Project元素的3個(gè)屬性與描述表屬性描述是否必要nameProject項(xiàng)目的名字否default不指定target時(shí)默認(rèn)執(zhí)行的Target否續(xù)表Project元素的3個(gè)屬性與描述表屬性描述是否必要basedir所有路徑的基目錄否3.3.2 target元素一個(gè)項(xiàng)目(project)可以定義一

43、個(gè)或多個(gè)目標(biāo)(target)。一個(gè)target是一系列想要執(zhí)行的任務(wù)的集合。執(zhí)行Ant時(shí),可以選擇執(zhí)行target的順序。當(dāng)沒有給定target時(shí),使用project的default屬性所確定的target。一個(gè)target可以依賴于其他的target。例如,可能會(huì)有一個(gè)target用于編譯程序,一個(gè)target用于生成可執(zhí)行文件。在生成可執(zhí)行文件之前必須先編譯通過,所以生成可執(zhí)行文件的target依賴于編譯target。Ant會(huì)自動(dòng)處理這種依賴關(guān)系。3.3.4 property元素一個(gè)project可以有很多的properties??梢栽赽uildfile中用property task來設(shè)定

44、,或在Ant之外設(shè)定。一個(gè)propety task來設(shè)定,或在Ant之外設(shè)定。一個(gè)property有一個(gè)名字和一個(gè)值。Property可以于task的屬性值。這是通過將屬性名放在“$“和”之間并放在屬性值的位置來實(shí)現(xiàn)的。例如,如果有一個(gè)propertybuildir的值是“build”,這個(gè)property就可用于屬性值:$builddir/class,這個(gè)值就可被解析為build/classes。在Ant中,可以訪問所有的系統(tǒng)屬性(不需要重新定義),例如$被解析成操作系統(tǒng)的名字。其他的系統(tǒng)屬性可以參考Java文檔中的System.getProperties部分,除了這些系統(tǒng)屬性

45、外,Ant本身還提供了一些置屬性。3.3.5 ANT的生成文件解析Ant生成文件使用xml文件編寫(默認(rèn)的xml文件名為build.xml),就是生成文件由單個(gè)project元素組成,該元素又包含個(gè)或多個(gè)target元素,個(gè)target元素是生成過程中已定義的一個(gè)步驟。而一個(gè)步驟中可以執(zhí)行任意數(shù)量的Task任務(wù)每個(gè)task任務(wù)是一段可被執(zhí)行的代碼,Tasks實(shí)就是java代碼。比如javac、java是兩個(gè)最常用的Task。Build.xml文件的結(jié)構(gòu)清單一所示:清單一:<?xml version="1.0" encoding="UTF-8" ?&

46、gt; <project name="HelloWorld" default="run" basedir="."> <property name="src" value="src"/> <property name="dest" value="classes"/> <property name="hello_jar" value="hello.jar"/> 續(xù)清單一 &

47、lt;target name="init"> <mkdir dir="$dest"/> </target> <target name="compile" depends="init"> <javac srcdir="$src" destdir="$dest"/> </target> <target name="build" depends="compile">

48、 <jar jarfile="$hello_jar" basedir="$dest"/> </target> <target name="run" depends="build"> <java classname="test.ant.HelloWorld" classpath="$hello_jar"/> </target> <target name="clean"> <dele

49、te dir="$dest" /> <delete file="$hello_jar" /> </target> <target name="rerun" depends="clean,run"> <ant target="clean" /> <ant target="run" /> </target> </project>Project:每個(gè)生成文件由單個(gè)project組成,一個(gè)Pro

50、ject又可以包含1個(gè)或多個(gè)target。Project包含三個(gè)屬性:name, default, basedir。ant的所有容必須包含在這個(gè)里邊,name是你給它取的名字,basedir故名思義就是工作的根目錄 .代表當(dāng)前目錄。default代表默認(rèn)要做的事情。target是生成過程中已定義的一個(gè)步驟,它執(zhí)行任意數(shù)量的操作。 不同的target對(duì)應(yīng)著不同的task,下面列了幾個(gè)常見的:compile:<javac srcdir = "$src"  destdir = "$dest"/>build(做jar包)

51、:<jar jarfile = "$hello_jar" basedir = "$dest"/>run:<java classname = "test.ant.HelloWorld" classpath = "$hello_jar"/>新建文件夾init:<mkdir dir = "$dest"/>刪除文件clean:<delete dir = "$dest"> <delete file = "$hello_ja

52、r"/>生成文檔doc:<javadoc sourcepath = "" destdir = ""/>3.4 本章小結(jié)Ant是一款非常優(yōu)秀的軟件構(gòu)件工具。執(zhí)行Ant的默認(rèn)文件時(shí)build.xml,也可以再Ant執(zhí)行時(shí)指定使用的構(gòu)件文件。在本章中介紹了Ant的概述和工作原理,Ant的生成文件解析是使用Ant的重點(diǎn)和難點(diǎn)。第4章 基于ANT的自動(dòng)化測試工具的設(shè)計(jì)與實(shí)現(xiàn)4.1 工具整體介紹根據(jù)第二章提到的軟件自動(dòng)話測試的容和第三章對(duì)Ant構(gòu)架工具的認(rèn)識(shí)和掌握,我們在已有的自動(dòng)化測試工具的基礎(chǔ)上,通過Ant構(gòu)建工具對(duì)其進(jìn)行封裝來實(shí)現(xiàn)自

53、動(dòng)化測試工具的集成和補(bǔ)充。該自動(dòng)化測試工具實(shí)現(xiàn)了測試執(zhí)行自動(dòng)化,測試詳細(xì)報(bào)表生成自動(dòng)化以與評(píng)價(jià)相關(guān)系數(shù)報(bào)表自動(dòng)化,只需測試人員修改項(xiàng)目所在的路徑就可以實(shí)現(xiàn)自動(dòng)化測試,對(duì)測試人員的技術(shù)要求低;同時(shí)測試腳本獨(dú)立與項(xiàng)目本身,減少了腳本維護(hù)的成本,對(duì)于提高軟件測試的效率發(fā)揮著重要的作用。4.1.1 自動(dòng)化測試框架的介紹在了解什么是自動(dòng)化測試框架之前,先了解一下什么叫框架?框架是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件與構(gòu)件實(shí)例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面而后者是從目的方面給出的定義。 從框架的定義可以了解,框架可以是被重用的基礎(chǔ)平臺(tái);框架也可

54、以是組織架構(gòu)類的東西。其實(shí)后者更為貼切,因?yàn)榭蚝图鼙緛砭褪墙M織和歸類所用的。所謂自動(dòng)化測試框架,即是應(yīng)用于自動(dòng)化測試所用的框架。按照框架的定義,自動(dòng)化測試框架要么是提供可重用的基礎(chǔ)自動(dòng)化測試模塊,如:selenium、watir等,它們主要提供最基礎(chǔ)的自動(dòng)化測試功能,比如打開一個(gè)程序,模擬鼠標(biāo)和鍵盤來點(diǎn)擊或操作被測試對(duì)象,最后驗(yàn)證被測對(duì)象的屬性以判斷程序的正確性;要么是可以提供自動(dòng)化測試執(zhí)行和管理功能的架構(gòu)模塊,如:robot,STAF等,它們本身不提供基礎(chǔ)的自動(dòng)化測試支持,只是用于組織、管理和執(zhí)行那些獨(dú)立的自動(dòng)化測試用例,測試完成后統(tǒng)計(jì)測試結(jié)果,通常這類框架一般都會(huì)集成一個(gè)基礎(chǔ)自動(dòng)化測試模塊

55、,如:robot框架就可以集成selenium框架。所以自動(dòng)化測試框架的定義為:由一個(gè)或多個(gè)自動(dòng)化測試基礎(chǔ)模塊、自動(dòng)化測試管理模塊、自動(dòng)化測試統(tǒng)計(jì)模塊等組成的工具集合15。4.1.2自動(dòng)化測試框架的分類按框架的定義來分,自動(dòng)化測試框架可以分為:基礎(chǔ)功能測試框架、管理執(zhí)行框架;按不同的測試類型來分,可以分為:功能自動(dòng)化測試框架、性能自動(dòng)化測繪師框架;按測試階段來分,可以分為:單元自動(dòng)化測試框架、接口自動(dòng)化測試框架、系統(tǒng)自動(dòng)化測試框架。按組成結(jié)構(gòu)來分,可以分為:單一自動(dòng)化測試框架、綜合自動(dòng)化測試框架;按部署方式來分,可以分為:單機(jī)自動(dòng)化測試框架、分布式自動(dòng)化測試框架。4.1.3工具的總體設(shè)計(jì)根據(jù)上

56、面對(duì)自動(dòng)化測試框架的介紹,以與對(duì)已有測試分析工具的研究,基于ANT的自動(dòng)化測試工具被設(shè)計(jì)了出來。整個(gè)自動(dòng)化測試工具是對(duì)原有的測試工具PMD、checkstyle、findbugs、sonar、Junit、Jdepend、Function Testing和Performance Testing Automation Framework采用ANT進(jìn)行持續(xù)集成和補(bǔ)充。工具的底層實(shí)現(xiàn)語言是Java工具繼承和擴(kuò)展了已有的測試分析工具,針對(duì)軟件的測試作了相應(yīng)的擴(kuò)展。整個(gè)自動(dòng)化測試工具盡量做到了設(shè)計(jì)架構(gòu)的模塊化,使之結(jié)構(gòu)清晰,易于維護(hù)與擴(kuò)展。在基于ANT的自動(dòng)化測試工具中,主要包含了以下幾個(gè)模塊:(1) C

57、ode quality(2) Code Review(3) Junit(4) Jdepend(5) Function testing(6) Performance testing如圖4.1顯示了自動(dòng)化測試工具的功能架構(gòu)圖。圖4.1 自動(dòng)化測試工具功能結(jié)構(gòu)圖(1) Code Quality:利用findbugs,checkstyle和PMD對(duì)源代碼進(jìn)行掃描,根據(jù)掃描出來的結(jié)果計(jì)算出代碼質(zhì)量的相關(guān)系數(shù)23。(2) Codereview:就是利用sonar工具對(duì)真?zhèn)€項(xiàng)目進(jìn)行分析和評(píng)估。(3) Junit :就是對(duì)項(xiàng)目進(jìn)行單元測試,并統(tǒng)計(jì)代碼覆蓋率。(4) Jdepend:就是分析源代碼的,得出依賴與

58、被依賴的關(guān)系,統(tǒng)計(jì)相互依賴的循環(huán)個(gè)數(shù)。(5) Function Testing:就是根據(jù)測試腳本對(duì)項(xiàng)目的功能進(jìn)行測試,得出功能實(shí)現(xiàn)的準(zhǔn)確率。(6) Performance Testing:就是利用測試數(shù)據(jù)對(duì)項(xiàng)目進(jìn)行壓力測試。本評(píng)價(jià)工具采用多層架構(gòu)模式,將整個(gè)工具清晰的分為多個(gè)功能單元:WEB表示層、業(yè)務(wù)邏輯層、持久層。多層分布式架構(gòu)將確保職責(zé)得到清晰的劃分,使得工具更易于維護(hù)和擴(kuò)展,具有三層或等多層的工具被證明比C/S模型具有更好的伸縮性和靈活性。整個(gè)工具整合了findbugs、PMD、checkstyle、Junit、sonar、Jdepend、Performance Testing和hudson多個(gè)測試分析工具。圖4.3展示了工具的總體架構(gòu)。本節(jié)以下幾節(jié)將具體地介紹自動(dòng)化測試工具的各主要模塊的設(shè)計(jì)與工作流程。4.2 自動(dòng)化測試工具的設(shè)計(jì)本節(jié)將主要介紹自動(dòng)化測試工具中的各主要模塊的功能與設(shè)計(jì)。整個(gè)自動(dòng)化工具按照模塊化的方針進(jìn)行設(shè)計(jì),各模塊化間相互較為獨(dú)立,易于維護(hù)與擴(kuò)展。4.2.1 自動(dòng)化測試的流程分析自動(dòng)化測試是本評(píng)價(jià)系統(tǒng)中核心模塊之一。自動(dòng)化評(píng)價(jià)工具利用測試分析工具對(duì)項(xiàng)目進(jìn)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論