【正文】
浙江大學(xué)碩士學(xué)位論文 摘要碩士學(xué)位論文基于ANT腳本的自動化測試集成工具的開發(fā)與應(yīng)用摘要在現(xiàn)代軟件開發(fā)與維護階段中,靠什么手段來保障軟件的質(zhì)量?毫無疑問,靠的就是軟件測試。隨著軟件工程技術(shù)的日益成熟以及用戶對軟件產(chǎn)品質(zhì)量的期待也越來越高,軟件測試已經(jīng)滲透到軟件生命周期的每一個環(huán)節(jié),在軟件開發(fā)、生產(chǎn)與維護過程中扮演著重要的角色。 論文詳細(xì)闡述了自動化測試技術(shù)的基本理論和ANT技術(shù),分析了已有自動工測試工具不足,運用ANT技術(shù)對現(xiàn)有的自動化測試技術(shù)、測試框架以及自動化測試工具的集成和擴充。通過分析現(xiàn)有自動化測試測試工具的優(yōu)缺點和面臨的挑戰(zhàn),結(jié)合自動化測試?yán)碚撆c技術(shù),運用ANT技術(shù)對自動化工具Findbugs,Checkstyle,PMD,CodeReview,Junit,Jdepend,F(xiàn)unction testing和performance testing進行二次開發(fā)的集成和補充,彌補這些工具相互之間不足的地方,來設(shè)計并實現(xiàn)了基于ANT的自動化測試工具。該自動化測試工具采用模塊化設(shè)計,主要應(yīng)用于對軟件開發(fā)完成后進行代碼質(zhì)量測試、單元測試測試、性能測試、功能測試等自動化測試,實現(xiàn)了測試腳本生成自動化、測試執(zhí)行與驗證自動化、測試報告生成自動化。關(guān)鍵詞: 自動化測試,自動化測試框架,代碼質(zhì)量,ANTii浙江大學(xué)碩士學(xué)位論文 AbstractAbstractSoftware testing plays a significant role to ensure the 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, bee more and more important in software development 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. 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 performance 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 automated test data verification, the automated test report generation. Key Words: Automation testing, Automation testing framework, Code quality, ANT iii浙江大學(xué)碩士學(xué)位論文 目錄 目錄摘要 iAbstract ii目錄 I圖目錄 III表目錄 IV第1章 緒論 1 論文研究背景 1 軟件質(zhì)量保證 1 軟件測試 1 自動化測試 2 2 3 3 4第2章 軟件自動化測試 5 自動化測試的概述 5 自動化測試過程 5 7 9 手工測試的問題與面臨的挑戰(zhàn) 9 自動化測試的優(yōu)點 10 自動化測試的問題與缺點 11 自動化測試工具 11 應(yīng)用自動化測試工具的目的 11 自動化測試工具的介紹 11 本章小結(jié) 13第3章 ANT介紹 14 ANT概述 14 ANT的工作原理 14 ANT的生成文件 14 project元素 14 target元素 15 property元素 15 ANT的生成文件解析 15 本章小結(jié) 17第4章 基于ANT的自動化測試工具的設(shè)計與實現(xiàn) 18 工具整體介紹 18 自動化測試框架的介紹 18 19 19 自動化測試工具的設(shè)計 21 自動化測試的流程分析 21 功能模塊詳細(xì)設(shè)計 22 24 25 數(shù)據(jù)庫設(shè)計 31 本章小結(jié) 39第5章 基于ANT的自動化測試工具的實施 40 基于ANT測試腳本的生成 40 代碼質(zhì)量模塊的腳本 40 CodeReview模塊整合的腳本 41 Junit模塊的腳本 41 Jdepend模塊的腳本 42 FunctionTesting模塊的腳本 43 PerformanceTest模塊的腳本 44 基于ANT的測試腳本的執(zhí)行 44 測試腳本的自動執(zhí)行 44 測試執(zhí)行中的結(jié)果進行驗證 45 測試報告的生成 45 本章小結(jié) 50第6章 總結(jié)與展望 51 本文完成的主要研究工作 51 進一步的研究工作 51 本章小結(jié) 52參考文獻 53作者簡歷 55致謝 56III浙江大學(xué)碩士學(xué)位論文 圖目錄圖目錄圖 自動化測試過程 5圖 評估流程 6圖 自動化測試流程 7圖 自動化測試工具功能結(jié)構(gòu)圖 20圖 評價結(jié)果的匯總圖 22圖 功能模塊結(jié)構(gòu)圖 23圖 自動測試工具中主要類的關(guān)系圖 25圖 工程目錄結(jié)構(gòu)圖圖 26圖 單元測試輸出日記圖 29圖 單元測試結(jié)構(gòu)報告 30圖 Junit詳細(xì)單元測試報告 31圖 測試總結(jié)報告 45圖 Junit的詳細(xì)測試報告 46圖 checkstyle的詳細(xì)測試報告 47圖 Sonar詳細(xì)測試報告 48圖 Jdepend的詳細(xì)測試報告 49圖 Performance Testing的詳細(xì)測試報告 49IV浙江大學(xué)碩士學(xué)位論文 表目錄表目錄表3. 1 Project元素的3個屬性及描述表 14表4. 1 代碼質(zhì)量匯總數(shù)據(jù)表(CodeQualitysummary) 32表4. 2 代碼質(zhì)量明細(xì)數(shù)據(jù)表(CodeQualityDetail) 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) 38V浙江大學(xué)碩士學(xué)位論文 第1章 緒論第1章 緒論 論文研究背景隨著科學(xué)技術(shù)的不斷進步和創(chuàng)新,軟件系統(tǒng)變得越來越復(fù)雜,體積也變得越來越大,且開發(fā)周期也越來越短,需求變化也越來越頻繁,這些都是當(dāng)前軟件開發(fā)過程的主要特征。如何按時、高質(zhì)量地交付軟件,已經(jīng)成為軟件行業(yè)的重要挑戰(zhàn)。為了應(yīng)付這一挑戰(zhàn),這必然引起了對測試工作的重視,一款好軟件的出世,不但要求有強大的測試團隊,該團隊必須具備在業(yè)務(wù)方面、測試技能方面的專業(yè)水平,而且在軟件開發(fā)過程方面經(jīng)常由于測試而作持續(xù)不斷地調(diào)整。幸運的是,隨著軟件開發(fā)技術(shù)和工具的提高,軟件工程和軟件過程實踐的推廣,軟件測試日益得到重視和專業(yè)化。軟件測試工具的研發(fā)也取得了卓有成就,如動態(tài)分析工具產(chǎn)品中有代表性的是Compuware公司的DevPartner軟件,Rational公司的Purify系列等;靜態(tài)分析工具產(chǎn)品中,有代表性的是Checkstyle、PMD 等軟件[1]。 軟件質(zhì)量保證軟件質(zhì)量保證(SQA)是建立一套有計劃,有系統(tǒng)的方法,來向管理層保證擬定出的標(biāo)準(zhǔn)、步驟、實踐和方法能夠正確地被所有項目所采用。軟件質(zhì)量保證的目的是使軟件過程對于管理人員來說是可見的。它通過對軟件產(chǎn)品和活動進行評審和審計來驗證軟件是合乎標(biāo)準(zhǔn)的。軟件質(zhì)量保證組在項目開始時就一起參與建立計劃、標(biāo)準(zhǔn)和過程。這些將使軟件項目滿足機構(gòu)方針的要求。軟件質(zhì)量保證的工作內(nèi)容和工作方法主要如下:(1)針對具體項目制定SQA計劃,確保項目組正確執(zhí)行過程。(2)依據(jù)SQA計劃進行SQA審計工作,按照規(guī)則發(fā)布審計結(jié)果報告。(3)對審計中發(fā)現(xiàn)的問題,要求項目組改進,并跟進直到解決。 軟件測試軟件測試就是在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件品質(zhì),并對其是否能滿足設(shè)計要求進行評估的過程。從廣義上講,測試是指軟件產(chǎn)品生存周期內(nèi)所有的檢查、評審和確認(rèn)活動,如設(shè)計評審、系統(tǒng)測試。狹義上講,測試是對軟件產(chǎn)品質(zhì)量的檢測和評價,它一方面檢查軟件產(chǎn)品質(zhì)量中存在的質(zhì)量問題,同時對產(chǎn)品質(zhì)量進行客觀的評價[2][10]。Glen Myers對軟件測試提出了一下觀點:(1) 測試是一個程序的執(zhí)行過程,其目的在于發(fā)現(xiàn)錯誤。(2)一個好的測試用例很可能是發(fā)現(xiàn)至今尚未察覺的錯誤。(3)一個成功的測試用例是發(fā)現(xiàn)至今尚未察覺的錯誤的測試。軟件測試主要的工作內(nèi)容,即驗證和確認(rèn)。下面分別給出其定義:驗證:保證軟件以正確的方式來做了這個事件。確認(rèn):保證軟件做了你所期望的事情。 自動化測試自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。通常,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的過程一步步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。由于軟件測試的工作量在整個軟件按開發(fā)周期中占了很大的部分,同時軟件測試的許多操作是重復(fù)性、非創(chuàng)造性的、高度提高注意力的活,計算機毫無疑問地可以替代人們?nèi)ネ瓿蛇@些活。因此,實行自動化測試,不僅能夠使測試工作效率提高,同時也降低開發(fā)成本和縮短開發(fā)周期[4]。目前有許多自動化測試框架已被開發(fā)出來,并廣泛應(yīng)用與各種自動化測試過程中。但是這些自動測試框架不能夠做到很全面的測試,不同測試框架側(cè)重點不同,測試結(jié)果也不大一樣。于是提出了對原有的自動化測試框架和工具進行集成和補充并將其應(yīng)用到測試工作中去,通過利用自動化測試框架的優(yōu)勢來彌補原有自動化測試框架中存在的缺陷,來提高自動化測試的效率[5]。國內(nèi)外針對軟件質(zhì)量評估提出了很多質(zhì)量度量模型。1968年由Ruhey和Hurt wic就軟件的一些特性提出了度量方法,但尚未建立質(zhì)量度量模型,所提出的度量方法也不完整。1976年,Bochm等人提出了定量的評價質(zhì)量的概念,給出了60個質(zhì)量度量公式,表明怎樣用于評價軟件質(zhì)量,并且首次提出了軟件質(zhì)量度量的3種模型。1978年,Winters和McCall提出了從軟件質(zhì)量要素(factor)、準(zhǔn)則(criteria)到度量(metric)的3層次式的軟件質(zhì)量度量模型。McCall認(rèn)為,軟件的質(zhì)量有11個要素構(gòu)成,即正確性、可靠性、效率、完整性、可使用性、可維護性、可測試性、靈活性、可移植性、重復(fù)使用性和連接性。ISO于1985年提出建議,軟件質(zhì)量度量模型有3層組成:高層(top level)軟件質(zhì)量需求評價準(zhǔn)則(SQRC)、中層(mid level)軟件質(zhì)量評價設(shè)計