基于ant腳本的代碼質(zhì)量評價的研究與應用碩士學位論文_第1頁
基于ant腳本的代碼質(zhì)量評價的研究與應用碩士學位論文_第2頁
基于ant腳本的代碼質(zhì)量評價的研究與應用碩士學位論文_第3頁
基于ant腳本的代碼質(zhì)量評價的研究與應用碩士學位論文_第4頁
基于ant腳本的代碼質(zhì)量評價的研究與應用碩士學位論文_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、pmd,codereview,junit,jdepend,function testing和performance testing進行二次開發(fā)的集成和補充,彌補這些工具相互之間不足的地方,來設計并實現(xiàn)了基于ant的自動化測試工具。該自動化測試工具采用模塊化設計,主要應用于對軟件開發(fā)完成后進行代碼質(zhì)量測試、單元測試測試、性能測試、功能測試等自動化測試,實現(xiàn)了測試腳本生成自動化、測試執(zhí)行與驗證自動化、測試報告生成自動化。關鍵詞:自動化測試,自動化測試框架,代碼質(zhì)量,antabstractsoftware testing plays a significant role to ensure the

3、reliability and quality of software in software developing and maintaining process. with the continuous higher requirement from the development of software industry, software testing has been participating into every phase of software life cycle, become more and more important in software developmen

4、t and maintenance.the paper expatiates on the basic theory of automation testing technology and the introduction of ant, analyzes the value of automation testing, researches on the existing automation testing technology、testing framework and the integration and implement of automated testing tools.

5、through analyzing the disadvantages and disadvantages and the challenges of existing automated testing tools. the ant realizes the automation testing tool which is integrated and implemented on the automation tools findbugs, checkstyle, pmd, code review, junit, jdepend, function testing and performa

6、nce 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 and implementation, the aut

7、omated test data verification, the automated test report generation. 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 自動化測試21.2國內(nèi)外研究現(xiàn)狀21.3論文的研究目標與內(nèi)容31.4論文章節(jié)安排31.5本章總結(jié)4第2章 軟件自動化測試52.1 自動化測試的概述52

8、.2 自動化測試過程52.3自動化測試生命周期72.4自動化測試的價值92.4.1 手工測試的問題與面臨的挑戰(zhàn)92.4.2 自動化測試的優(yōu)點102.4.3 自動化測試的問題與缺點112.5 自動化測試工具112.5.1 應用自動化測試工具的目的112.5.2 自動化測試工具的介紹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的自動化測試工具的設

9、計與實現(xiàn)184.1 工具整體介紹184.1.1 自動化測試框架的介紹184.1.2自動化測試框架的分類194.1.3工具的總體設計194.2 自動化測試工具的設計214.2.1 自動化測試的流程分析214.2.2 功能模塊詳細設計224.2.3工具的結(jié)構(gòu)設計244.2.4自動測試工具與ant集成測試的實現(xiàn)254.3 數(shù)據(jù)庫設計314.4 本章小結(jié)39第5章 基于ant的自動化測試工具的實施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 測試腳本的自動執(zhí)行445.2.2 測試執(zhí)行中的結(jié)果進行驗證455.3 測試報告的生成455.4 本章小結(jié)50第6章 總結(jié)與展望516.1 本文完成的主要研究工作516.2 進一步的研究工作516.3 本章小結(jié)52參考文獻53作者簡歷55致謝56圖目錄圖 2.1 自動化測試過程5圖 2.2 評估流程6圖 2.3 自動化測試流程7圖 4.1 自動化測試工具功能結(jié)構(gòu)圖20圖 4.2 評價結(jié)果的匯總圖22圖 4.3 功能模塊結(jié)構(gòu)圖23圖 4.4 自動

11、測試工具中主要類的關系圖25圖 4.5 工程目錄結(jié)構(gòu)圖圖26圖 4.6 單元測試輸出日記圖29圖 4.7 單元測試結(jié)構(gòu)報告30圖 4.8 junit詳細單元測試報告31圖 5.1 測試總結(jié)報告45圖 5.2 junit的詳細測試報告46圖 5.3 checkstyle的詳細測試報告47圖 5.4 sonar詳細測試報告48圖 5.5 jdepend的詳細測試報告49圖 5.6 performance testing的詳細測試報告49表目錄表3. 1 project元素的3個屬性及描述表14表4. 1 代碼質(zhì)量匯總數(shù)據(jù)表(codequalitysummary)32表4. 2 代碼質(zhì)量明細數(shù)據(jù)表(

12、codequalitydetail)33表4. 3 云遵循數(shù)據(jù)數(shù)據(jù)表(cloudcompliance)34表4. 4 代碼質(zhì)量明細數(shù)據(jù)表(codereviewsummary)35表4. 5 單元測試信息數(shù)據(jù)表(junitsummary)35表4. 6 code coverage的明細表(codecoveragesummary)36表4. 7 jdepend匯總表(jdependsummary)37表4. 8 功能測試匯總表(functionsummary)38表4. 9 性能測試匯總表(functionsummary)38第1章 緒論1.1 論文研究背景隨著科學技術(shù)的不斷進步和創(chuàng)新,軟件系統(tǒng)變

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

14、公司的purify系列等;靜態(tài)分析工具產(chǎn)品中,有代表性的是checkstyle、pmd 等軟件1。1.1.1 軟件質(zhì)量保證軟件質(zhì)量保證(sqa)是建立一套有計劃,有系統(tǒng)的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用。軟件質(zhì)量保證的目的是使軟件過程對于管理人員來說是可見的。它通過對軟件產(chǎn)品和活動進行評審和審計來驗證軟件是合乎標準的。軟件質(zhì)量保證組在項目開始時就一起參與建立計劃、標準和過程。這些將使軟件項目滿足機構(gòu)方針的要求。軟件質(zhì)量保證的工作內(nèi)容和工作方法主要如下:(1)針對具體項目制定sqa計劃,確保項目組正確執(zhí)行過程。(2)依據(jù)sqa計劃進行sqa審計工作,按

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

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

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

18、度量方法也不完整。1976年,bochm等人提出了定量的評價質(zhì)量的概念,給出了60個質(zhì)量度量公式,表明怎樣用于評價軟件質(zhì)量,并且首次提出了軟件質(zhì)量度量的3種模型。1978年,winters和mccall提出了從軟件質(zhì)量要素(factor)、準則(criteria)到度量(metric)的3層次式的軟件質(zhì)量度量模型。mccall認為,軟件的質(zhì)量有11個要素構(gòu)成,即正確性、可靠性、效率、完整性、可使用性、可維護性、可測試性、靈活性、可移植性、重復使用性和連接性。iso于1985年提出建議,軟件質(zhì)量度量模型有3層組成:高層(top level)軟件質(zhì)量需求評價準則(sqrc)、中層(mid leve

19、l)軟件質(zhì)量評價設計評價準則(sqrc)和底層(low level)軟件質(zhì)量度量評價準則(sqmc)。iso三層次模型來自mccall等人的模型,高層、中層和底層分別對應與mccall模型中的特性、質(zhì)量準則和度量。上海軟件中心根據(jù)iso/tc97/sc7的建議,同時參照mccall模型和boeing模型,并結(jié)合我國實際情況綜合構(gòu)成了ssc(shanghai software center)軟件質(zhì)量度量模型及度量方法,從而形成了ssc軟件質(zhì)量評價體系3。1.3論文的研究目標與內(nèi)容本文主要是結(jié)合ant的應用,對公司項目評價系統(tǒng)中原有的測試工具和測試框架的再次開發(fā)進行研究。研究了原有軟件自動化測試框

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

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

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

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

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

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

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

27、試該應用程序的各種特征的??梢允褂胑xcel、word、clearquest等工具得到測試后的測試結(jié)果日記、測試度量、缺陷報告及測試評估總結(jié)等。2.3自動化測試生命周期自動化測試的生命周期主要由以下六個階段組成:編寫測試腳本、開始測試、發(fā)送測試命令、收集數(shù)據(jù)、顯示測試結(jié)果、輸出測試報告。測試自動化流程如圖2.3所示。圖2. 3 測試自動化流程在軟件的開發(fā)生命周期中,并不是自動化測試運用的越多越好,也不是自動化測試越少越好,而是根據(jù)項目測試的實際情況來進行運用,才能使自動測試的生命周期達到理想狀態(tài)。評判自動化測試是否應用的標準就是看自動化測試的價值是否超過了手工測試的價值。根據(jù)自動化測試的條件可

28、以劃分如下兩種情況:適合自動化測試的情況:(1)產(chǎn)品型項目產(chǎn)品型的項目,每個項目只改進少量的功能,但每個項目必須反反復復的測試哪些沒有改進過的功能,這部分測試完全可以讓自動化測試來承擔,同時可以把新加入的功能的測試頁慢慢地加入到自動化測試當中(2)增量開發(fā)、持續(xù)集成的項目由于這種開發(fā)模式是頻繁的發(fā)布新的版本進行測試,也就需要頻繁的自動化測試,以便把人從中解脫出來測試新的功能。(3)回歸測試回歸測試是自動化測試的強項,它能夠很好的驗證你是否引入了新的缺陷,老的缺陷是否修改過來了,在某種程度上可以把自動化測試工具叫做回歸測試工具。(4)多次重復、機械性操作自動化測試最適用于多次重復、機械性動作,這

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

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

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

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

33、:1、對程序的回歸測試更方便。這可能是自動化測試最主要的任務,特別是在程序修改比較頻繁時,效果是非常明顯的。由于回歸測試的動作和用例是完全設計好的,測試期望的結(jié)果也是完全可以預料的,將回歸測試自動運行,可以極大提高測試效率,縮短回歸測試時間。2、可以運行更多更繁瑣的測試。自動化的一個明顯的好處是可以在較少的時間內(nèi)運行更多的測試。3、可以執(zhí)行一些手工測試困難或不可能進行的測試。比如,對于大量用戶的測試,不可能同時讓足夠多的測試人員同時進行測試,但是卻可以通過自動化測試模擬同時有許多用戶,從而達到測試的目的。4、更好地利用資源。將繁瑣的任務自動化,可以提高準確性和測試人員的積極性,將測試技術(shù)人員解

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

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

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

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

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

39、為:功能測試工具用于檢測程序能否達到預期的功能要求并正常運行。性能測試工具用于確定軟件和系統(tǒng)的性能。常用的黑盒測試工具有:compuware公司qacenter,ibm公司的rational teamtest。3.測試管理工具用于對測試過程進行管理,幫助完成制定測試計劃,跟蹤測試運行結(jié)果。通常,測試管理工具對測試計劃、測試用例、測試實施進行管理,還包括缺陷跟蹤管理等。常用的測試管理工具有ibm公司的rational test manager。測試管理工具包括以下內(nèi)容:測試用例管理、缺陷跟蹤管理(問題跟蹤管理)、配置管理。4.除了上述所講的測試工具以外,還有一些專用的自動化測試工具,例如,針對數(shù)

40、據(jù)庫測試的testbytes,對應用性能進行優(yōu)化的ecoscope等工具79。2.6 本章小結(jié)在本章中,首先介紹了軟件自動化測試的概念、過程和生命周期,通過分析和對比自動化測試的優(yōu)缺點,得出自動化應用的條件,最后介紹了已有被廣泛應用的自動化測試工具。第3章 ant介紹3.1 ant概述ant1314是用于構(gòu)架、部署java程序的一個工具,使用ant可以明顯加快java應用開的進程。ant是著名的apache基金會的一個開源項目,ant的主頁是/。ant可以自動化構(gòu)建、部署復雜的java應用,極大地簡化了java的開發(fā)。ant的應用也很廣泛,包括編譯、打包

41、、部署、進行juint測試等。總之,ant已經(jīng)廣泛地應用到java的各個領域中。它以其易于使用、與平臺無關、迎合如今項目自動測試和自動部署的需要,成為許多項目構(gòu)建過程的重要環(huán)節(jié)。目前它已成為所有主要開源java項目采用的獨立工具,并已成了事實上的標準。ant具有以下優(yōu)點:1. 自動化批處理,減少重復勞動。2. building.xml里的模塊可重用,所以ant的可重用性也好。3. 支持的task很多,還可根據(jù)需要定制task。4. 能自動識別并跳過沒有改動過的任務,避免無用功。3.2 ant的工作原理ant的運行,靠的是一個構(gòu)建腳本。默認的名稱叫build.xml,如果你在任何目下運行ant命

42、令,ant將自動查找當前目錄下有沒有build.xml文件,如果有這個文件,就讀取這個文件,并運行其中的默認target。3.3 ant的生成文件3.3.1 project元素每個build.xml文件都包含一個project元素和至少一個(默認的)target元素。一個project元素包含3個屬性,name、default和basedir,下面分別介紹,如表所示。表3. 1 project元素的3個屬性及描述表屬性描述是否必要nameproject項目的名字否default不指定target時默認執(zhí)行的target否續(xù)表project元素的3個屬性及描述表屬性描述是否必要basedir所有

43、路徑的基目錄否3.3.2 target元素一個項目(project)可以定義一個或多個目標(target)。一個target是一系列想要執(zhí)行的任務的集合。執(zhí)行ant時,可以選擇執(zhí)行target的順序。當沒有給定target時,使用project的default屬性所確定的target。一個target可以依賴于其他的target。例如,可能會有一個target用于編譯程序,一個target用于生成可執(zhí)行文件。在生成可執(zhí)行文件之前必須先編譯通過,所以生成可執(zhí)行文件的target依賴于編譯target。ant會自動處理這種依賴關系。3.3.4 property元素一個project可以有很多的pr

44、operties??梢栽赽uildfile中用property task來設定,或在ant之外設定。一個propety task來設定,或在ant之外設定。一個property有一個名字和一個值。property可以于task的屬性值。這是通過將屬性名放在“$“和”之間并放在屬性值的位置來實現(xiàn)的。例如,如果有一個propertybuildir的值是“build”,這個property就可用于屬性值:$builddir/class,這個值就可被解析為build/classes。在ant中,可以訪問所有的系統(tǒng)屬性(不需要重新定義),例如$被解析成操作系統(tǒng)的名字。其他的系統(tǒng)屬性可以參考

45、java文檔中的system.getproperties部分,除了這些系統(tǒng)屬性外,ant本身還提供了一些內(nèi)置屬性。3.3.5 ant的生成文件解析ant生成文件使用xml文件編寫(默認的xml文件名為build.xml),就是生成文件由單個project元素組成,該元素又包含個或多個target元素,個target元素是生成過程中已定義的一個步驟。而一個步驟中可以執(zhí)行任意數(shù)量的task任務每個task任務是一段可被執(zhí)行的代碼,tasks實就是java代碼。比如javac、java是兩個最常用的task。build.xml文件的結(jié)構(gòu)清單一所示:清單一: 續(xù)清單一 project:每個生成文件由單

46、個project組成,一個project又可以包含1個或多個target。project包含三個屬性:name, default, basedir。ant的所有內(nèi)容必須包含在這個里邊,name是你給它取的名字,basedir故名思義就是工作的根目錄.代表當前目錄。default代表默認要做的事情。target是生成過程中已定義的一個步驟,它執(zhí)行任意數(shù)量的操作。不同的target對應著不同的task,下面列了幾個常見的:compile:build(做jar包):run:新建文件夾init:刪除文件clean: 生成文檔doc:3.4 本章小結(jié)ant是一款非常優(yōu)秀的軟件構(gòu)件工具。執(zhí)行ant的默認文

47、件時build.xml,也可以再ant執(zhí)行時指定使用的構(gòu)件文件。在本章中介紹了ant的概述和工作原理,ant的生成文件解析是使用ant的重點和難點。第4章 基于ant的自動化測試工具的設計與實現(xiàn)4.1 工具整體介紹根據(jù)第二章提到的軟件自動話測試的內(nèi)容和第三章對ant構(gòu)架工具的認識和掌握,我們在已有的自動化測試工具的基礎上,通過ant構(gòu)建工具對其進行封裝來實現(xiàn)自動化測試工具的集成和補充。該自動化測試工具實現(xiàn)了測試執(zhí)行自動化,測試詳細報表生成自動化以及評價相關系數(shù)報表自動化,只需測試人員修改項目所在的路徑就可以實現(xiàn)自動化測試,對測試人員的技術(shù)要求低;同時測試腳本獨立與項目本身,減少了腳本維護的成本

48、,對于提高軟件測試的效率發(fā)揮著重要的作用。4.1.1 自動化測試框架的介紹在了解什么是自動化測試框架之前,先了解一下什么叫框架?框架是整個或部分系統(tǒng)的可重用設計,表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實例間交互的方法;另一種定義認為,框架是可被應用開發(fā)者定制的應用骨架。前者是從應用方面而后者是從目的方面給出的定義。 從框架的定義可以了解,框架可以是被重用的基礎平臺;框架也可以是組織架構(gòu)類的東西。其實后者更為貼切,因為框和架本來就是組織和歸類所用的。所謂自動化測試框架,即是應用于自動化測試所用的框架。按照框架的定義,自動化測試框架要么是提供可重用的基礎自動化測試模塊,如:selenium、watir等,它們主

49、要提供最基礎的自動化測試功能,比如打開一個程序,模擬鼠標和鍵盤來點擊或操作被測試對象,最后驗證被測對象的屬性以判斷程序的正確性;要么是可以提供自動化測試執(zhí)行和管理功能的架構(gòu)模塊,如:robot,staf等,它們本身不提供基礎的自動化測試支持,只是用于組織、管理和執(zhí)行那些獨立的自動化測試用例,測試完成后統(tǒng)計測試結(jié)果,通常這類框架一般都會集成一個基礎自動化測試模塊,如:robot框架就可以集成selenium框架。所以自動化測試框架的定義為:由一個或多個自動化測試基礎模塊、自動化測試管理模塊、自動化測試統(tǒng)計模塊等組成的工具集合15。4.1.2自動化測試框架的分類按框架的定義來分,自動化測試框架可以

50、分為:基礎功能測試框架、管理執(zhí)行框架;按不同的測試類型來分,可以分為:功能自動化測試框架、性能自動化測繪師框架;按測試階段來分,可以分為:單元自動化測試框架、接口自動化測試框架、系統(tǒng)自動化測試框架。按組成結(jié)構(gòu)來分,可以分為:單一自動化測試框架、綜合自動化測試框架;按部署方式來分,可以分為:單機自動化測試框架、分布式自動化測試框架。4.1.3工具的總體設計根據(jù)上面對自動化測試框架的介紹,以及對已有測試分析工具的研究,基于ant的自動化測試工具被設計了出來。整個自動化測試工具是對原有的測試工具pmd、checkstyle、findbugs、sonar、junit、jdepend、function

51、testing和performance testing automation framework采用ant進行持續(xù)集成和補充。工具的底層實現(xiàn)語言是java工具繼承和擴展了已有的測試分析工具,針對軟件的測試作了相應的擴展。整個自動化測試工具盡量做到了設計架構(gòu)的模塊化,使之結(jié)構(gòu)清晰,易于維護與擴展。在基于ant的自動化測試工具中,主要包含了以下幾個模塊:(1) code quality(2) code review(3) junit(4) jdepend(5) function testing(6) performance testing如圖4.1顯示了自動化測試工具的功能架構(gòu)圖。圖4.1 自動化

52、測試工具功能結(jié)構(gòu)圖(1) code quality:利用findbugs,checkstyle和pmd對源代碼進行掃描,根據(jù)掃描出來的結(jié)果計算出代碼質(zhì)量的相關系數(shù)23。(2) codereview:就是利用sonar工具對真?zhèn)€項目進行分析和評估。(3) junit :就是對項目進行單元測試,并統(tǒng)計代碼覆蓋率。(4) jdepend:就是分析源代碼的,得出依賴與被依賴的關系,統(tǒng)計相互依賴的循環(huán)個數(shù)。(5) function testing:就是根據(jù)測試腳本對項目的功能進行測試,得出功能實現(xiàn)的準確率。(6) performance testing:就是利用測試數(shù)據(jù)對項目進行壓力測試。本評價工具采用

53、多層架構(gòu)模式,將整個工具清晰的分為多個功能單元:web表示層、業(yè)務邏輯層、持久層。多層分布式架構(gòu)將確保職責得到清晰的劃分,使得工具更易于維護和擴展,具有三層或等多層的工具被證明比c/s模型具有更好的伸縮性和靈活性。整個工具整合了findbugs、pmd、checkstyle、junit、sonar、jdepend、performance testing和hudson多個測試分析工具。圖4.3展示了工具的總體架構(gòu)。本節(jié)以下幾節(jié)將具體地介紹自動化測試工具的各主要模塊的設計與工作流程。4.2 自動化測試工具的設計本節(jié)將主要介紹自動化測試工具中的各主要模塊的功能與設計。整個自動化工具按照模塊化的方針進行設計,各模塊化間相互較為獨立,易于維護與擴展。4.2.1 自動化測試的流程分析自動化測試是本評價系統(tǒng)中核心模塊之一。自動化評價工具利用測試分析工具對項目進行測試和分析,最終產(chǎn)生綜合評價結(jié)果

溫馨提示

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

評論

0/150

提交評論