版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 軟件測試方法技術(shù)的研究與對比</p><p> 作 者 姓 名: </p><p> 學(xué)科、專業(yè) : </p><p> 學(xué) 號(hào) : </p><p> 指 導(dǎo) 教 師:
2、 </p><p> 完 成 日 期: </p><p><b> XX大學(xué)</b></p><p> XXXX University</p><p><b> 摘 要</b></p><p&
3、gt; 軟件測試是保證軟件質(zhì)量的重要手段。隨著計(jì)算機(jī)硬件性能的不斷提高,軟件的功能也越來越強(qiáng)大,軟件結(jié)構(gòu)越來越復(fù)雜,軟件質(zhì)量越來越難以控制。對于比較大型的軟件系統(tǒng)集成測試來說,單純的手工測試不但效率低下,而且很多測試僅靠手工測試無法完成。為減少測試開銷,在有限的時(shí)間內(nèi)執(zhí)行更多地測試,并且降低人為引起的錯(cuò)誤,自動(dòng)化測試是非常必要的。</p><p> 一個(gè)完整地自動(dòng)化軟件測試工具,應(yīng)該包括測試管理工具、功能測試
4、工具、性能測試工具三個(gè)部分。論文闡述了軟件自動(dòng)化測試相關(guān)概念和理論,概括和比較了其適用范圍和組織結(jié)構(gòu)。MI公司、Rational公司、Compuware公司開發(fā)的產(chǎn)品是當(dāng)今市場上三種主流的測試工具,本文從測試步驟、對象識(shí)別等方面對上述三個(gè)公司的功能測試產(chǎn)品;從測試項(xiàng)目管理、人員管理、測試計(jì)劃等方面對其測試管理工具產(chǎn)品作了詳細(xì)的分析和比較,為自動(dòng)化測試研究提供參考。</p><p> 關(guān)鍵詞:軟件測試,自動(dòng)化測試
5、,測試管理工具</p><p><b> Abstract</b></p><p> Software testing is important to ensure software quality. With the enhancement of the computer hardware and the increasing complexity of sof
6、tware functionality and structure, software quality control is more and more challenge. For integration testing on large software, manual testing is usually effort consuming while insufficient to achieve certain testing
7、objectives such as stress testing. Therefore, automatic testing is necessary.</p><p> Functional testing, performance testing and test management are three key characters of testing tools. The concept and t
8、heory related to software automated testing are expounded. The scope of application and the archichecture of software automated testing is summed up and compared. Testing tools delivered by MI, Rational and Compuware occ
9、upy most of the testing market. This thesis analyzes and compares function testing tools from、testing procedure、object recognization, etc. And it analyzes and c</p><p> Keywords:Software Testing , Automated
10、 Testing , Software Testing Management Tools</p><p><b> 目 錄</b></p><p><b> 1.緒論1</b></p><p> 1.1論文的研究背景及意義1</p><p> 1.2論文的主要研究工作及成果1&l
11、t;/p><p> 1.3論文的組織結(jié)構(gòu)2</p><p> 2.軟件測試技術(shù)的概論3</p><p> 2.1軟件測試的定義與目的3</p><p> 2.2軟件測試的過程3</p><p> 2.3軟件測試的分類及主要方法4</p><p> 2.3.1按測試過程劃分4&
12、lt;/p><p> 2.3.2按工作狀態(tài)劃分5</p><p> 2.3.3按測試用例設(shè)計(jì)方法劃分6</p><p> 2.3.4按測試目的劃分8</p><p> 3.自動(dòng)化測試技術(shù)基礎(chǔ)9</p><p> 3.1自動(dòng)化測試概念9</p><p> 3.1.1自動(dòng)化測試9
13、</p><p> 3.1.2自動(dòng)化測試的優(yōu)點(diǎn)9</p><p> 3.1.3自動(dòng)化測試的局限性11</p><p> 3.2自動(dòng)化測試的適用范圍12</p><p> 4.主流自動(dòng)化測試工具簡介15</p><p> 4.1 MI(Mercury Interactive)公司的測試軟件15<
14、/p><p> 4.1.1管理工具16</p><p> 4.1.2測試工具16</p><p> 4.2 Rational公司的測試軟件17</p><p> 4.2.1管理工具17</p><p> 4.2.2測試工具19</p><p> 4.3 Compuware公司的
15、測試軟件20</p><p> 4.3.1管理工具21</p><p> 4.3.2測試工具22</p><p> 5.自動(dòng)化功能測試工具的分析比較與總結(jié)23</p><p> 5.1測試環(huán)境和對象23</p><p> 5.2工具功能模塊詳細(xì)劃分25</p><p>
16、5.3測試步驟28</p><p> 5.4 GUI對象識(shí)別29</p><p> 5.5腳本執(zhí)行與被測程序響應(yīng)的同步問題32</p><p> 5.6測試信息收集33</p><p> 5.7結(jié)合測試管理工具33</p><p> 5.8比較總結(jié)34</p><p>
17、6.測試管理工具的分析與比較35</p><p> 6.1工具特點(diǎn)35</p><p> 6.2測試項(xiàng)目37</p><p> 6.3測試人員管理38</p><p> 6.4測試計(jì)劃39</p><p> 6.5比較總結(jié)42</p><p><b> 7.總結(jié)
18、語44</b></p><p><b> 參考文獻(xiàn)45</b></p><p> 附錄1外文譯文47</p><p> 附錄2外文原文54</p><p><b> 致 謝63</b></p><p><b> 1.緒論</b
19、></p><p> 1.1論文的研究背景及意義</p><p> 近幾年,隨著軟件規(guī)模不斷擴(kuò)大,軟件復(fù)雜度不斷增加,客戶要求不斷提高,如何保證軟件質(zhì)量,提高軟件可靠性也越來越受到各研究機(jī)構(gòu)、相關(guān)企業(yè)的普遍關(guān)注,同時(shí)成為軟件開發(fā)機(jī)構(gòu)特別關(guān)注的方向。目前,許多能有效提高軟件質(zhì)量的質(zhì)量保證技術(shù)相繼問世,例如,幾乎所有的大型軟件開發(fā)機(jī)構(gòu)都結(jié)合自身軟件開發(fā)實(shí)際和經(jīng)驗(yàn)制定了相關(guān)的質(zhì)量標(biāo)準(zhǔn)來
20、規(guī)范企業(yè)內(nèi)部的軟件開發(fā)過程,有些機(jī)構(gòu)在這兩年陸續(xù)成立了與軟件開發(fā)相獨(dú)立的軟件測試中心來保證開發(fā)出來的軟件可用,在開發(fā)過程中增加了許多環(huán)節(jié)(如軟件配置管理、階段性測試和評(píng)審)用來保證開發(fā)出來的軟件具有高可靠性。軟件測試技術(shù)作為保障軟件質(zhì)量最直接、最有效的手段之一也成為重要的研究熱點(diǎn),但是由于軟件本身的復(fù)雜性和不確定性,軟件測試技術(shù)始終具有極大的難度。深入研究軟件測試技術(shù)方法,提高軟件可靠性,已經(jīng)成為國內(nèi)外軟件行業(yè)和相關(guān)機(jī)構(gòu)重要的研究方向[
21、1]。</p><p> 正確選擇和有效地運(yùn)用各種測試方法、技術(shù)和工具,對提高軟件工程的應(yīng)用水平和提高軟件產(chǎn)品的質(zhì)量與可靠性至關(guān)重要。而在軟件測試中使用優(yōu)秀的測試管理工具不但可以大大減少測試過程中出現(xiàn)錯(cuò)誤的可能性,還可以極大的提高測試的效率,加快測試進(jìn)程。</p><p> 1.2論文的主要研究工作及成果</p><p> 論文主要對軟件測試、測試技術(shù)(工具、
22、方法)、自動(dòng)化測試以及測試管理技術(shù)(工具、方法)進(jìn)行理論闡述和綜合論述;然后進(jìn)行綜合分析、比較、總結(jié)。</p><p> 通過查閱文獻(xiàn)資料和對主流工具軟件和相關(guān)技術(shù)的深入學(xué)習(xí)可完成軟件測試技術(shù)方法的比較與分析研究內(nèi)容。在這個(gè)論文研究過程中,可以學(xué)會(huì)正確選擇和有效地運(yùn)用各種測試方法、技術(shù)和工具。</p><p> 1.3論文的組織結(jié)構(gòu)</p><p> 論文的組
23、織結(jié)構(gòu)如圖1.1所示:</p><p> 圖1.1 論文的組織結(jié)構(gòu)</p><p> 2.軟件測試技術(shù)的概論</p><p> 2.1軟件測試的定義與目的</p><p> 軟件測試就是使用人工或者自動(dòng)的手段來運(yùn)行或測定某個(gè)軟件產(chǎn)品系統(tǒng)的過程,其目的是在于檢驗(yàn)軟件產(chǎn)品是否滿足規(guī)定的需求[2]。簡單地說,軟件測試過程就是制造條件,促使錯(cuò)
24、誤發(fā)生的過程。</p><p> 軟件測試的目的是[3]:</p><p> (1)測試的最終目的是為了避免錯(cuò)誤的發(fā)生,確保應(yīng)用程序能夠正常高效的運(yùn)行;</p><p> (2)好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;</p><p> (3)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測試;</p><p> (4)
25、好的測試工程師應(yīng)該做到不僅發(fā)現(xiàn)問題,還能夠幫助開發(fā)人員分析問題。</p><p> 2.2軟件測試的過程</p><p> 軟件測試是一個(gè)貫穿整個(gè)軟件生命周期的活動(dòng),那種等待整個(gè)系統(tǒng)開發(fā)完畢,再對其進(jìn)行測試的想法是錯(cuò)誤的,把測試放到軟件開發(fā)的最后是很危險(xiǎn)的,因?yàn)樗苋菀讓?dǎo)致整個(gè)軟件系統(tǒng)無法集成。另外,對軟件的測試并不僅限于軟件程序的本身,因?yàn)殄e(cuò)誤并不一定是代碼引起的。很有可能是軟件需求
26、、軟件系統(tǒng)的詳細(xì)設(shè)計(jì)等階段引起的。錯(cuò)誤在初期也許只是范圍很小的隱藏問題,但由于軟件開發(fā)的各階段的連續(xù)性,會(huì)使錯(cuò)誤逐步擴(kuò)展,如果早期的開發(fā)中出現(xiàn)的錯(cuò)誤不能排除,將帶到設(shè)計(jì)、編碼、測試等各階段,影響逐步擴(kuò)大。所以對軟件的測試還應(yīng)該包括與軟件有關(guān)的所有的文檔。一個(gè)典型的軟件測試過程如下圖:</p><p> 圖2.1 典型的軟件測試過程</p><p> 一個(gè)軟件的測試過程是一個(gè)不斷回歸的過
27、程。舊的錯(cuò)誤的修改可能會(huì)引起新的錯(cuò)誤的出現(xiàn),所以每修改一個(gè)新的錯(cuò)誤,都要針對系統(tǒng)再作一次測試,直到?jīng)]有新的錯(cuò)誤出現(xiàn)為止,這是一個(gè)很繁瑣的過程。</p><p> 2.3軟件測試的分類及主要方法</p><p> 針對不同規(guī)模、不同類型的軟件,以及軟件開發(fā)的不同階段,所用的測試方法各異,下面我們就主要針對上面的幾種情況對軟件測試做一個(gè)簡單的分類。</p><p>
28、 2.3.1按測試過程劃分</p><p> 我們知道對于軟件開發(fā)商來說,比較大的軟件系統(tǒng)都是由許多人協(xié)作開發(fā)的,一般都是把一個(gè)大的軟件系統(tǒng)分割成不同的功能模塊,然后再將這些模塊分給開發(fā)團(tuán)中的每個(gè)人去完成,在開發(fā)的過程中針對每個(gè)模塊的完成情況,邊開發(fā)、邊測試、邊集成,然后各個(gè)模塊集成的完整的系統(tǒng)還要進(jìn)行測試,當(dāng)系統(tǒng)交付用戶使用后,還要對系統(tǒng)進(jìn)行維護(hù)、升級(jí),這里面也伴隨著測試。根據(jù)上面的過程,我們按軟件開發(fā)過程
29、的可以將軟件測試劃分為下面五個(gè)步驟,它們的關(guān)系如圖2.2:</p><p> 圖2.2 軟件測試步驟</p><p> 單元測試是對軟件中的基本組成單位進(jìn)行的測試,如一個(gè)模塊、一個(gè)過程等等。它是軟件動(dòng)態(tài)測試的最基本的部分,也是最重要的部分之一,其目的是檢驗(yàn)軟件基本組成單位的正確性。一個(gè)軟件單元的正確性是相對于該單元的規(guī)約而言的。因此,單元測試以被測試單位的規(guī)約為基準(zhǔn)。單元測試的主要方法
30、有控制流測試、數(shù)據(jù)流測試、排錯(cuò)測試、分域測試等等[3-5]。</p><p> 集成測試是在軟件系統(tǒng)集成過程中所進(jìn)行的測試,其主要目的是檢查軟件單位之間的接口是否正確。它根據(jù)集成測試計(jì)劃,一邊將模塊或其他軟件單位組合成越來越大的系統(tǒng),一邊運(yùn)行該系統(tǒng),以分析所組成的系統(tǒng)是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底向上兩種[3-5]。</p><p> 系統(tǒng)測試是對已經(jīng)
31、集成好的軟件系統(tǒng)進(jìn)行徹底的測試,以驗(yàn)證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項(xiàng)簡單的任務(wù),它被稱為測試的“先知者問題”。因此,系統(tǒng)測試應(yīng)該按照測試計(jì)劃進(jìn)行,其輸入、輸出和其他動(dòng)態(tài)運(yùn)行行為應(yīng)該與軟件規(guī)約進(jìn)行對比。軟件系統(tǒng)測試方法很多,主要有功能測試、性能測試、隨機(jī)測試等等[3-5]。</p><p> 驗(yàn)收測試旨在向軟件的購買者展示該軟件系統(tǒng)滿足其用戶的需求。它的測試數(shù)
32、據(jù)通常是系統(tǒng)測試的測試數(shù)據(jù)的子集。所不同的是,驗(yàn)收測試常常有軟件系統(tǒng)的購買者代表在現(xiàn)場,甚至是在軟件安裝使用的現(xiàn)場。這是軟件在投入使用之前的最后測試。</p><p> 回歸測試是在軟件維護(hù)階段對軟件進(jìn)行修改之后進(jìn)行的測試。其目的是檢驗(yàn)對軟件進(jìn)行的修改是否正確。這里修改的正確性有兩重含義:一是所作的修改達(dá)到了預(yù)定目的,如錯(cuò)誤得到改正,能夠適應(yīng)新的運(yùn)行環(huán)境等等;二是不影響軟件的其他功能的正確性[1]。</p
33、><p> 2.3.2按工作狀態(tài)劃分</p><p> 軟件測試是一個(gè)對測試經(jīng)驗(yàn)、測試計(jì)劃、測試環(huán)境和測試工具依賴性非常強(qiáng)的工作,按工作狀態(tài)分為靜態(tài)測試和動(dòng)態(tài)測試兩個(gè)階段[6]。</p><p> 靜態(tài)測試主要是針對所有文檔資料、編程規(guī)范、數(shù)據(jù)定義、控制和數(shù)據(jù)使用、代碼與需求的一致性、代碼與設(shè)計(jì)的一致性等方面的分析,其對測試經(jīng)驗(yàn)和測試計(jì)劃的依賴性極強(qiáng)。</p
34、><p> 靜態(tài)測試是在不需運(yùn)行軟件系統(tǒng)的情況下,對系統(tǒng)進(jìn)行的測試。其采用的方法主要有[6]:</p><p> (1)文檔資料瀏覽,達(dá)到正確的理解,并對任何改變具有統(tǒng)一的認(rèn)知;</p><p> (2)討論決定,對文檔資料進(jìn)行討論,并作出決定,如:做什么、不做什么、如何做等;</p><p> (3)檢查,根據(jù)規(guī)范和定義,找出可能存在的
35、問題,如:市場和商業(yè)策略、系統(tǒng)需求和系統(tǒng)設(shè)計(jì)、程序代碼、測試計(jì)劃、測試設(shè)計(jì)、測試案例、測試結(jié)果、用戶手冊、培訓(xùn)教材等;</p><p> (4)利用工具對程序代碼進(jìn)行靜態(tài)分析,如:程序復(fù)雜度、系統(tǒng)結(jié)構(gòu)、控制流程、數(shù)據(jù)流程等。</p><p> 動(dòng)態(tài)測試是被測系統(tǒng)在運(yùn)行當(dāng)中,根據(jù)其動(dòng)態(tài)的行為進(jìn)行的測試。根據(jù)測試規(guī)模,可分為:單元測試、集成測試、系統(tǒng)測試及應(yīng)用測試等幾個(gè)階段。</p&
36、gt;<p> 2.3.3按測試用例設(shè)計(jì)方法劃分</p><p> 軟件測試的方法和技術(shù)是多種多樣的,按測試用例設(shè)計(jì)方法,可分為黑盒測試和白盒測試,并且黑盒測試和白盒測試還是目前通用的測試技術(shù) [2,7-8]。</p><p> 黑盒測試著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進(jìn)行的測試。</p><p> 黑盒測試也稱功
37、能測試、數(shù)據(jù)驅(qū)動(dòng)測試或基于規(guī)格說明的測試,它在已知產(chǎn)品應(yīng)具有的功能的條件下,通過測試來檢測每個(gè)功能是否都能正常使用。在測試時(shí),把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。</p><p> 黑盒測試是以用戶的
38、觀點(diǎn),從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進(jìn)行測試的,它不涉及到程序的內(nèi)部結(jié)構(gòu)。黑盒測試注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)軟件中的功能錯(cuò)誤、界面錯(cuò)誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯(cuò)誤、性能錯(cuò)誤、初始化和終止錯(cuò)誤等。</p><p> 白盒測試是基于代碼的測試,測試人員通過閱讀程序代碼或者通過使用開發(fā)工具中的單步調(diào)試來判斷軟件的質(zhì)量。</p><p> 白盒測試也稱結(jié)構(gòu)測試、邏輯驅(qū)動(dòng)測試或
39、基于程序本身的測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不涉及它的功能,白盒測試的主要方法有邏輯驅(qū)動(dòng)、基路測試等,主要用于軟件驗(yàn)證。</p><p> 白盒測試需要全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。白盒測試是窮舉路徑測試,在使用這一方案時(shí),測試者必須檢查程序的內(nèi)部結(jié)
40、構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。</p><p> 黑盒測試與白盒測試的比較如下表2.1。</p><p> 表2.1 黑盒測試與白盒測試的比較</p><p> 2.3.4按測試目的劃分</p><p> 對于一個(gè)軟件系統(tǒng),衡量它的好壞有兩個(gè)最重要的指標(biāo),一是它的功能是否符合要求,二是它的性能是否符合要求。那么針對這兩個(gè)指標(biāo)
41、,我們可以將軟件測試分為:功能測試和性能測試兩個(gè)部分[2]。</p><p> 功能測試:針對軟件的功能測試,目的是為了驗(yàn)證軟件的功能是否符合軟件需求規(guī)格說明的要求,找出軟件不符合用戶需求的地方。功能測試要盡量測試到軟件的每一個(gè)功能單元,找出軟件中的缺陷,確保軟件的每一個(gè)部分都能正常、正確的工作。</p><p> 性能測試:就是用來測試軟件在系統(tǒng)中的運(yùn)行性能的。性能測試可以發(fā)生在各個(gè)
42、測試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測試來進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起之后,才能檢查一個(gè)系統(tǒng)的真正性能。性能測試經(jīng)常和壓力測試一起進(jìn)行,而且常常需要硬件和軟件測試設(shè)備,這就是說,常常有必要的在一種苛刻的環(huán)境中衡量資源的使用(比如,處理器周期)。外部的測試設(shè)備可以監(jiān)測測試執(zhí)行,當(dāng)出現(xiàn)情況(如中斷)時(shí)記錄下來。通過對系統(tǒng)的檢測,測試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。</p>
43、<p> 3.自動(dòng)化測試技術(shù)基礎(chǔ)</p><p> 3.1自動(dòng)化測試概念</p><p> 隨著軟件系統(tǒng)的規(guī)模越來越大,整個(gè)系統(tǒng)的復(fù)雜性也越來越大,那么單純的手工測試已經(jīng)不適合這種大系統(tǒng)的測試了。首先手工測試的效率低下,其次有些測試是手工測試所無法完成的。為了解決手工測試效率低下和手工測試不能解決的一些測試等問題,自動(dòng)化測試就應(yīng)運(yùn)而生了。</p><p
44、> 軟件自動(dòng)化測試就是執(zhí)行某種程序設(shè)計(jì)語言編制的自動(dòng)測試程序,控制被測軟件的執(zhí)行,模擬手動(dòng)測試步驟,完成全自動(dòng)或半自動(dòng)測試。其目的在于縮短測試周期,增強(qiáng)對軟件性能方面的測試能力等,從而達(dá)到保證軟件質(zhì)量并使軟件能夠提前上線[9]。</p><p> 3.1.1自動(dòng)化測試</p><p> 自動(dòng)化測試就是希望能夠通過自動(dòng)化測試工具或其他手段,按照測試工程師的預(yù)定計(jì)劃進(jìn)行自動(dòng)的測試,
45、目的是減輕手工測試的勞動(dòng)量,從而達(dá)到提高軟件質(zhì)量的目的。自動(dòng)化測試的目的在于發(fā)現(xiàn)老缺陷;而手工測試的目的在于發(fā)現(xiàn)新缺陷。測試自動(dòng)化涉及到測試流程、測試體系、自動(dòng)化化編譯、持續(xù)集成、自動(dòng)發(fā)布測試系統(tǒng)以及自動(dòng)化測試等方面整合。也就是說要讓測試能夠自動(dòng)化,不僅是技術(shù)、工具的問題,更是一個(gè)公司和組織的文化問題。首先公司從資金、管理上支持您,其次要有專門的測試團(tuán)隊(duì)去建立適合自動(dòng)化測試的測試流程、測試體系;其次就是把原代碼從受控庫中取出、編譯、集成
46、、發(fā)布可運(yùn)行系統(tǒng)、進(jìn)行自動(dòng)化的單元測試和自動(dòng)化的功能測試的過程[9]。</p><p> 3.1.2自動(dòng)化測試的優(yōu)點(diǎn)</p><p> 當(dāng)正確實(shí)施軟件自動(dòng)化測試并嚴(yán)格遵守制定的測試過程時(shí),自動(dòng)化測試可帶來若干好處。假定對于給定的企業(yè)需求,測試工程師必須評(píng)估潛在的好處是否符合所要求的改進(jìn)標(biāo)準(zhǔn),在項(xiàng)目實(shí)施自動(dòng)化測試是否仍然是合適的[10-11]。</p><p>&
47、lt;b> (1)提高測試效率</b></p><p> 一般來說,軟件產(chǎn)品的發(fā)布周期很短,而在測試期間是每天都可能要發(fā)布一個(gè)版本供測試人員測試,一個(gè)系統(tǒng)的功能點(diǎn)有幾千個(gè)上萬個(gè),手工測試是一個(gè)勞動(dòng)密集型的工作,并且容易出錯(cuò)。引入自動(dòng)化測試能夠用更有效、可重復(fù)的自動(dòng)化測試環(huán)境代替繁瑣的手工測試活動(dòng),而且能在更少的時(shí)間內(nèi)完成更多的測試工作,從而提高了測試工程師的工作效率。</p>
48、<p> (2)令軟件新版本進(jìn)行回歸測試的開銷最小</p><p> 產(chǎn)品發(fā)現(xiàn)錯(cuò)誤以后的改動(dòng),代碼變了,但要求的功能并沒有變,所以測試用例也不必改變,自動(dòng)化測試就可以很方便地進(jìn)行回歸測試,另外,對于產(chǎn)品型的軟件,每次發(fā)布一個(gè)新的版本,其中大部分功能和界面都和上一個(gè)版本相似或完全相同,這部分功能特別適合于自動(dòng)化測試,從而可以讓測試達(dá)到測試每個(gè)特征的需求。</p><p> (
49、3)可以完成一些手工測試不能或難以完成的測試</p><p> 對于一些非功能性方面的測試,如:壓力測試、并發(fā)測試、大數(shù)據(jù)量測試、崩潰性測試等,這些測試用手工測試是很難,甚至是不可能完成的。但自動(dòng)化測試則能方便地執(zhí)行這些測試,比如并發(fā)測試,使用自動(dòng)化測試工具就可以模擬來自多方的并發(fā)操作了。</p><p> (4)具有一致性和可重復(fù)性</p><p> 由于每
50、次自動(dòng)化測試運(yùn)行的腳本是相同的,所以可以進(jìn)行重復(fù)的測試,使得每次執(zhí)行的測試具有一致性,手工測試則很難做到這點(diǎn)。</p><p> (5)更好地利用資源</p><p> 將繁瑣的測試任務(wù)自動(dòng)化,可以使測試人員解脫出來,將精力更多地投入到測試案例的設(shè)計(jì)和必要的手工測試當(dāng)中。并且,理想的自動(dòng)化測試能夠按計(jì)劃完全自動(dòng)地運(yùn)行,使得完全可以利用周末和晚上的時(shí)間執(zhí)行自動(dòng)測試。</p>
51、<p> (6)解決測試與開發(fā)之間的矛盾</p><p> 通常在開發(fā)的末期,進(jìn)入集成測試階段,由于每發(fā)布一個(gè)版本的初期,測試系統(tǒng)的錯(cuò)誤比較少,這時(shí)開發(fā)人員有等待測試人員測出錯(cuò)誤的時(shí)間。事實(shí)上在迭代周期很短的開發(fā)模式中,存在更多的矛盾,但自動(dòng)化測試可以解決其中的主要矛盾。</p><p> (7)增加軟件信任度</p><p> 每一個(gè)測試人員都
52、有自己特殊的經(jīng)歷和技術(shù)背景,有自己的一些操作習(xí)慣和先入為主的觀念,這就導(dǎo)致不是所有的測試都是可信的,而且有時(shí)測試會(huì)把一些新的錯(cuò)誤帶入軟件產(chǎn)品之中。自動(dòng)化測試則會(huì)在很大程度上避免這些問題。一旦得知軟件通過強(qiáng)有力的自動(dòng)測試后,軟件發(fā)布時(shí)對其的信任度也高(假設(shè)已做過很好的測試)。</p><p> 總而言之,測試自動(dòng)化的優(yōu)點(diǎn)在于通過較少的開銷就可以獲得更徹底的測試能力,以及提高產(chǎn)品的質(zhì)量。</p>&l
53、t;p> 3.1.3自動(dòng)化測試的局限性</p><p> 當(dāng)然,軟件自動(dòng)化測試也并非萬能,人們對軟件自動(dòng)化測試的理解也存在許多誤區(qū),認(rèn)為自動(dòng)化測試能完成一切工作,從測試計(jì)劃到測試執(zhí)行,都不需要人工干預(yù)。其實(shí)軟件自動(dòng)化測試所完成的測試功能也是有限的。以下幾點(diǎn)是自動(dòng)化測試的不足所在[10-11]:</p><p> (1)不能完全取代手工測試。軟件自動(dòng)化測試不可能也沒必要取代手工測
54、試來完成所有的測試任務(wù)。因?yàn)橛行y試使用手工測試比自動(dòng)化測試要簡單,這時(shí)將測試自動(dòng)化的開銷就比較大了。如以下一些情況:</p><p> ?、贉y試很少運(yùn)行。對于很少運(yùn)行的測試任務(wù),例如一年只需測試一次,對測試自動(dòng)化則是一種浪費(fèi)。</p><p> ?、谲浖环€(wěn)定。如果在某段時(shí)間內(nèi)軟件的界面和功能更新頻繁,那么修改相應(yīng)的自動(dòng)化測試點(diǎn)開銷較大,因此只有當(dāng)軟件達(dá)到相對的穩(wěn)定,沒有界面性嚴(yán)重錯(cuò)誤和
55、中斷錯(cuò)誤才適合開始自動(dòng)化測試。</p><p> ③涉及感觀方面的測試。例如界面的美觀、聲音的體驗(yàn)、易用性的測試等,這類測試很容易通過人來驗(yàn)證,自動(dòng)化測試反而難以執(zhí)行。</p><p> ④涉及物理交互的測試。自動(dòng)化測試很難完成與物理設(shè)備的交互,比如刷卡的測試等。</p><p> (2)手工測試比軟件自動(dòng)化測試發(fā)現(xiàn)的缺陷更多</p><p
56、> 自動(dòng)化測試的最大特點(diǎn)在于適合重復(fù)測試。一般情況下,以前運(yùn)行過的測試再次用來檢查軟件的新版本往往暴露的缺陷要少得多。測試專家 JamesBach總結(jié)出,85%的缺陷靠手工發(fā)現(xiàn),而自動(dòng)化測試只能發(fā)現(xiàn)15%的缺陷。自動(dòng)化測試能夠很好的發(fā)現(xiàn)老缺陷。</p><p> (3)軟件自動(dòng)化測試不能提高有效性</p><p> 自動(dòng)化測試并不會(huì)比手工運(yùn)行相同測試更有效,它可以提高測試效率,
57、但也可能對測試的進(jìn)展起反作用。</p><p> (4)軟件自動(dòng)化測試可能會(huì)制約軟件開發(fā)</p><p> 應(yīng)用軟件的變化對自動(dòng)化測試的影響要比手工測試更大一些,軟件的部分改變有可能使自動(dòng)化測試軟件崩潰。而設(shè)計(jì)和實(shí)施自動(dòng)化測試要比手工測試開銷大,并需要維護(hù),所以對自動(dòng)化測試影響較大的軟件修改可能受到限制。</p><p> (5)軟件自動(dòng)化測試本身沒有想象力&
58、lt;/p><p> 自動(dòng)化測試是通過軟件進(jìn)行,測試程序只是按照運(yùn)行機(jī)制執(zhí)行。手工測試時(shí)可以直接判斷結(jié)果的正確性,而自動(dòng)測試許多情況下測試結(jié)果還需要人工干預(yù)判斷。手工測試可以處理意外事件網(wǎng)絡(luò)連接中斷,此時(shí)必須重新建立連接。手工測試時(shí)可以及時(shí)處理該意外,而自動(dòng)化測試時(shí)該意外事件一般會(huì)導(dǎo)致測試的中止。</p><p> 總的說來,軟件自動(dòng)化測試的優(yōu)點(diǎn)和收益是顯而易見的,但它同時(shí)也并非萬能,只有
59、對其進(jìn)行合理的設(shè)計(jì)和順利的實(shí)施才能從中獲益。</p><p> 3.2自動(dòng)化測試的適用范圍</p><p> Peer給出了對各類型測試進(jìn)行自動(dòng)化的參考[12]。</p><p> 表3.1 各類型測試進(jìn)行自動(dòng)化</p><p> 可見重復(fù)性比較高的回歸測試,以及手工測試難以完成的性能測試是自動(dòng)化測試最有潛力應(yīng)用和最能體現(xiàn)價(jià)值的地方,
60、而早期的單元測試中如果引入自動(dòng)化,也將大大提高開發(fā)出的代碼質(zhì)量。</p><p> 當(dāng)決定在一個(gè)產(chǎn)品的測試過程中實(shí)現(xiàn)自動(dòng)化測試的時(shí)候,必須將自動(dòng)化測試手工測試結(jié)合起來使用。目的就是用較少的開銷,獲得徹底的測試,并提高商品的質(zhì)量。</p><p> 下表對何時(shí)使用自動(dòng)化測試和何時(shí)使用手工測試進(jìn)行了一個(gè)概要的總結(jié)。</p><p> 表3.2 何時(shí)使用自動(dòng)化測試和
61、手工測試</p><p> 4.主流自動(dòng)化測試工具簡介</p><p> 自動(dòng)化測試需要不同類型的自動(dòng)化測試工具進(jìn)行支持。目前,軟件市場上已經(jīng)有很多優(yōu)秀的自動(dòng)化測試工具,它們功能強(qiáng)大,有針對功能的,也有針對性能的,有執(zhí)行白盒測試的測試工具也有執(zhí)行黑盒的測試工具。主流的商業(yè)化的自動(dòng)化測試工具軟件開發(fā)公司是:Mercury Interactive公司、IBM Rational公司和Comp
62、uware公司。三個(gè)公司都開發(fā)了一整套自動(dòng)化測試工具,這些自動(dòng)化測試工具都經(jīng)過無數(shù)的實(shí)際運(yùn)用,都是非常優(yōu)秀的自動(dòng)化測試工具。</p><p> 一個(gè)完整地自動(dòng)化軟件測試工具,應(yīng)該包括測試管理工具、功能測試工具、性能測試工具三個(gè)部分。下面就目前Windows操作系統(tǒng)下的主流的自動(dòng)化測試工具作一個(gè)整體的介紹。</p><p> 4.1 MI(Mercury Interactive)公司的測
63、試軟件</p><p> Mercury Interactive公司是商業(yè)技術(shù)優(yōu)化的業(yè)界領(lǐng)導(dǎo)者。它成立于1989年,目前,和全球超過35個(gè)國家都有貿(mào)易往來。全球100強(qiáng)公司中有將近90%的公司依靠MI公司的軟件和服務(wù)來實(shí)施他們的商業(yè)技術(shù)優(yōu)化策略。這使得MI公司成為世界上最大的、成長最快的企業(yè)級(jí)軟件公司。該公司開發(fā)的自動(dòng)化測試工具以其功能強(qiáng)大、完善的售后服務(wù)和支持,使其成為了自動(dòng)化測試軟件開發(fā)領(lǐng)域的領(lǐng)先者。MI主
64、要測試軟件的構(gòu)成如下圖[13]:</p><p> 圖4.1 MI主要測試軟件的構(gòu)成</p><p> 下面對上圖的工具作一個(gè)概括的介紹。</p><p><b> 4.1.1管理工具</b></p><p> TestDirector是MI自動(dòng)化測試工具集中的測試管理工具,它是業(yè)界第一個(gè)基于WEB的測試管理系統(tǒng)
65、。使用TD及其配套的功能和性能等測試工具,可以組織全球范圍的測試。TestDirector通過在一個(gè)整體的應(yīng)用系統(tǒng)中提供并且集成了測試需求管理、測試計(jì)劃、測試日程控制及測試執(zhí)行和錯(cuò)誤跟蹤等功能,通過使用這些功能可以使測試專業(yè)化,提高測試的效率,加速測試的過程。</p><p> TestDirector主要有三大功能模塊構(gòu)成:</p><p> (1)Site Administrato
66、r</p><p> 該模塊的主要功能是:創(chuàng)建測試域,創(chuàng)建和維護(hù)測試項(xiàng)目,管理測試人員,查看測試項(xiàng)目的訪問情況,配置注冊碼。</p><p> (2)Customer</p><p> 在該功能模塊中,TD用戶(即測試人員或其他與測試相關(guān)的人員)可以訂制和修改用戶的一些信息。包括:修改用戶信息、創(chuàng)建新的用戶類型和用戶組類型,訂制模塊的訪問權(quán)限,訂制項(xiàng)目實(shí)體和列
67、表,配置郵件,調(diào)整工作流等。</p><p> (3)TestManager</p><p> 這個(gè)模塊是TestDirector的主要功能的所在。它主要集成了需求指定、建立測試計(jì)劃、執(zhí)行測試、缺陷跟蹤四個(gè)功能模塊。</p><p><b> 4.1.2測試工具</b></p><p> MI的測試工具主要有功能
68、測試工具WinRunner和性能測試工具LoadRunner,下面對這兩個(gè)工具作一個(gè)概括的介紹。</p><p> (1)WinRunner</p><p> 針對Windows應(yīng)用程序的一個(gè)企業(yè)級(jí)的功能測試工具,用于檢測應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。它通過自動(dòng)錄制、檢測和回放用戶的應(yīng)用操作,來發(fā)現(xiàn)程序中的錯(cuò)誤??梢杂行У貛椭鷾y試人員對復(fù)雜的企業(yè)級(jí)應(yīng)用軟件的不同發(fā)布版本進(jìn)行
69、測試,提高測試人員的工作效率和質(zhì)量。確保跨平臺(tái)的、復(fù)雜的企業(yè)級(jí)應(yīng)用軟件無故障發(fā)布和長期穩(wěn)定的運(yùn)行。</p><p> (2)LoadRunner</p><p><b> 黑盒性能測試工具。</b></p><p> 4.2 Rational公司的測試軟件</p><p> Rational公司是軟件業(yè)中領(lǐng)先的應(yīng)
70、用開發(fā)工具供應(yīng)商,提供基于業(yè)界開放標(biāo)準(zhǔn)的工具、最佳方案和服務(wù),用于開發(fā)商業(yè)應(yīng)用和構(gòu)建軟件產(chǎn)品和系統(tǒng)。2002年Rational公司被IBM公司收購。對于Rational公司的產(chǎn)品,我們比較熟悉的是它的建模工具,它的測試工具同它的建模工具一樣優(yōu)秀。Rational的測試工具Rational Suite TestStudio的構(gòu)成如下圖[14]:</p><p> 圖4.2 Rational Suite TestS
71、tudio的構(gòu)成</p><p><b> 4.2.1管理工具</b></p><p> Rational Suite TestStudio測試工具集中的管理工具主要有五個(gè)子工具組成,它們結(jié)合起來,完成一個(gè)完整的測試管理工具的功能。下面就上面各個(gè)管理工具的功能作一個(gè)概括的介紹。</p><p> (1)Rational TestManag
72、er</p><p> TestManager 處于測試管理工具的核心位置。它是一個(gè)開放的可擴(kuò)展的架構(gòu),將其它的工具和測試數(shù)據(jù)聯(lián)合為一個(gè)整體。在TestManager中主要可以完成建立測試計(jì)劃、安排測試、執(zhí)行測試、查看測試結(jié)果和分析測試結(jié)果等工作。</p><p> (2)Rational Administrator</p><p> Rational Adm
73、inistrator集中了測試項(xiàng)目的管理功能,可以創(chuàng)建測試項(xiàng)目,管理相關(guān)的人員,包括測試人員和有關(guān)的開發(fā)人員。它的詳細(xì)功能如下:</p><p> ?、賱?chuàng)建一個(gè)Rational測試項(xiàng)目,配置項(xiàng)目的有關(guān)信息。</p><p> ?、谶B接某個(gè)測試項(xiàng)目。</p><p> ?、弁ㄟ^網(wǎng)絡(luò)操作遠(yuǎn)程的測試項(xiàng)目。</p><p> ?、軇h除一個(gè)測試項(xiàng)目。&
74、lt;/p><p> ?、輨?chuàng)建和管理測試人員和用戶組。</p><p> ⑥創(chuàng)建和管理包含RequisitePro項(xiàng)目和Rose項(xiàng)目的測試項(xiàng)目。</p><p> ?、呖刂埔粋€(gè)Rational測試項(xiàng)目的測試數(shù)據(jù)的安全權(quán)限。</p><p> (3)Rational RequisitePro</p><p> Rati
75、onal RequisitePro是一個(gè)需求管理的工具,它可幫助項(xiàng)目團(tuán)隊(duì)控制開發(fā)的進(jìn)度。它通過將Microsoft Word和一個(gè)需求倉庫連接來組織測試需求,它還提供了跟蹤功能,并且在整個(gè)項(xiàng)目的生命周期內(nèi)可以隨時(shí)改變需求。</p><p> 利用RequisitePro你可以完成如下工作:</p><p> ①定制需求數(shù)據(jù)庫和管理多種不同類型的測試。</p><p&
76、gt; ?、谥付▋?yōu)先級(jí),排序和安排需求。</p><p> ?、劭刂铺卣髯冃?,確保軟件質(zhì)量。</p><p> ?、芨櫘a(chǎn)生的變化,包括這些改變是誰做出的、什么時(shí)候、為什么。</p><p> (4)Rational ClearQuest</p><p> 在ClearQuest中進(jìn)行缺陷的跟蹤和管理。通過ClearQuest可以將測試中
77、發(fā)現(xiàn)的缺陷直接發(fā)送給相應(yīng)的測試人員,集中管理某個(gè)測試項(xiàng)目的缺陷,并跟蹤缺陷的修復(fù)情況。</p><p> (5)Rational SoDA</p><p> 文檔生成工具,測試需求、測試結(jié)果、缺陷報(bào)告等測試信息可以通過SoDA這個(gè)工具生成詳細(xì)的報(bào)表。</p><p><b> 4.2.2測試工具</b></p><p&
78、gt; Rational Suite TestStudio測試工具集中的測試工具比較全面,既有功能和性能的測試工具,也有代碼級(jí)的黑盒和白盒測試工具。</p><p> (1)Rational Robot </p><p> Rational Robot集成了功能測試和性能測試兩種功能。使用Robot可以創(chuàng)建兩種類型的測試腳本:基于GUI對象的功能測試腳本和用于性能測試的腳本。功能測試
79、腳本可以在Robot中直接運(yùn)行,而性能測試的腳本要在TestManager中運(yùn)行。</p><p> (2)Rational Quantify</p><p> Rational Quantify提供了一個(gè)完整的、精確的針對被測應(yīng)用程序和相關(guān)組件的一個(gè)性能測試數(shù)據(jù)集合,同過圖表等易于理解和觀察的方式顯示出來,可以很容易看出被測程序那個(gè)地方耗費(fèi)了較多時(shí)間,然后優(yōu)化修改耗費(fèi)時(shí)間較多的代碼,
80、提高程序執(zhí)行效率。</p><p> Rational Quantify主要適用的應(yīng)用程序的對象是:Visual C/C++開發(fā)的.exe,.dlls,OLE/ActiveX控件以及COM對象組件;Visual Basic開發(fā)的應(yīng)用程序;Java語言開發(fā)的應(yīng)用程序;C#語言開發(fā)的應(yīng)用程序等。</p><p> (3)Rational Purify</p><p>
81、; 檢測內(nèi)存泄露的白盒測試工具。</p><p> (4)Rational PureCoverage </p><p> 測試代碼覆蓋率的白盒測試工具。</p><p> (5)Rational TestFactory</p><p> 它是一個(gè)基于組件的測試工具,主要功能如下:</p><p> ?、俑鶕?jù)程
82、序的導(dǎo)航結(jié)構(gòu)自動(dòng)生成TestFactory腳本。</p><p> ?、谧詣?dòng)創(chuàng)建和維護(hù)一個(gè)被測軟件的詳細(xì)map。</p><p> ?、鄄挥糜涗?,自動(dòng)生成提供擴(kuò)展代碼覆蓋率的腳本和發(fā)現(xiàn)缺陷的腳本。</p><p> ?、茏粉欉\(yùn)行過的或未運(yùn)行過的源代碼,并且報(bào)告它的詳細(xì)的發(fā)現(xiàn)。</p><p> ?、萃ㄟ^最大限度的縮短花費(fèi)在書寫導(dǎo)航代碼上的時(shí)間
83、來縮短產(chǎn)品的測試周期。</p><p> ?、拊赥estFactory中可以回放Robot功能測試腳本一觀察擴(kuò)展代碼覆蓋率的信息以創(chuàng)建回歸測試集;在Robot中也可以回放TestFactory腳本用以調(diào)試腳本。</p><p> (6)Rational SiteCheck</p><p> 網(wǎng)頁測試工具,利用Rational SiteCheck 可以檢查企業(yè)內(nèi)部
84、互聯(lián)網(wǎng)的結(jié)構(gòu)完整性以及網(wǎng)頁錯(cuò)誤??梢詭椭榭础⒏櫤途S護(hù)迅速變化的頁面。</p><p> 利用SiteCheck具體可以做如下事情:</p><p> ?、亠@示網(wǎng)頁的結(jié)構(gòu)以及各頁面間的關(guān)系。</p><p> ?、谧R(shí)別和分析帶有動(dòng)態(tài)內(nèi)容的Web頁面,如:forms, Java, JavaScript, ActiveX, VBScript。</p>
85、<p> ?、圻^濾信息,以利于你觀察制定的文件類型和缺陷,包括斷開的連接。</p><p> ?、軝z查和編輯任意網(wǎng)頁的源代碼。</p><p> ⑤利用集成的編輯器更新或修復(fù)文件。</p><p> ⑥對安全網(wǎng)頁執(zhí)行全面的測試。SiteCheck提供了Secure Scoket Layer(SSL)支持,代理服務(wù)器配置以及多密碼域。</p>
86、<p> (7)Rational TeamTest</p><p><b> 團(tuán)隊(duì)合作測試工具。</b></p><p> 4.3 Compuware公司的測試軟件</p><p> Compuware公司是世界上最大的軟件和專業(yè)服務(wù)供應(yīng)商之一。Compuware開發(fā)的QACenter測試工具集的主要構(gòu)成如下圖[15]:&
87、lt;/p><p> 圖4.3 QACenter測試工具集</p><p><b> 4.3.1管理工具</b></p><p> (1)QADirector</p><p> QADirector處于QACenter管理工具的核心位置,它協(xié)調(diào)整個(gè)測試過程,并提供了一下功能:</p><p>
88、 計(jì)劃和組織測試需求。</p><p> 調(diào)用相應(yīng)的自動(dòng)測試工具執(zhí)行測試。</p><p> 測試過程允許使用手動(dòng)測試。</p><p> 觀察和分析測試結(jié)果。</p><p> 方便的將測試結(jié)果信息加載到測試缺陷跟蹤系統(tǒng)。</p><p><b> 針對需求驗(yàn)證測試。</b><
89、/p><p> 將分析過程和測試過程結(jié)合。</p><p> (2)Reconcile</p><p> 需求管理工具,組織和管理測試需求。</p><p> (3)TrackRecord</p><p> TrackRecord是一個(gè)高級(jí)的需求變更和缺陷管理工具,可以幫助組織建立一個(gè)系統(tǒng)方法來協(xié)調(diào)軟件開發(fā)、調(diào)試
90、、測試和實(shí)現(xiàn)??蛇M(jìn)行自動(dòng)化的軟件缺陷的跟蹤管理。</p><p><b> 4.3.2測試工具</b></p><p><b> (1)QARun</b></p><p> QARun可以提供C/S系統(tǒng)、電子商務(wù)系統(tǒng)和企業(yè)資源計(jì)劃應(yīng)用提供企業(yè)級(jí)的功能測試。同WinRunner和Rational Robot能提供的功能
91、一樣,可以執(zhí)行自動(dòng)化的功能測試。</p><p><b> (2)QALoad</b></p><p> QALoad是C/S系統(tǒng)、企業(yè)資源計(jì)劃(ERP)和電子商務(wù)應(yīng)用的自動(dòng)化負(fù)載測試工具。它是QACenter測試工具集性能版的一部分。它通過可重復(fù)使用的、真實(shí)的測試能夠徹底的度量應(yīng)用程序的可擴(kuò)展性和性能。它可以模擬成百上千的用戶并發(fā)執(zhí)行關(guān)鍵的業(yè)務(wù)完成對應(yīng)用程的性能
92、測試,并針對所發(fā)現(xiàn)的問題對系統(tǒng)性能進(jìn)行優(yōu)化,確保軟件的成功部署。</p><p> (3)WebCheck</p><p> 全面的站點(diǎn)分析和測試工具。</p><p> 5.自動(dòng)化功能測試工具的分析比較與總結(jié)</p><p> WinRunner、Rational Robot和QARun這三個(gè)工具都是自動(dòng)化的功能測試工具,它們針對的
93、測試對象都是使用IDEs(如:支持Java、C/C++、VB、HTML等語言的集成開發(fā)環(huán)境)開發(fā)的帶有GUI對象的應(yīng)用程序,都能夠大大降低重復(fù)性的測試所耗費(fèi)的時(shí)間,將測試人員從復(fù)雜好事的測試工作中解脫出來。</p><p> 我們目前所分析比較WinRunner、Rational Robot、QARun這個(gè)三個(gè)自動(dòng)化功能測試工具,都是比較新的版本,并不是最新的版本。但這些不同版本的測試工具首先從功能、原理上都是
94、一樣的,而且整體的架構(gòu)和細(xì)節(jié)的功能也不會(huì)有太大的變化。所以針對下面三個(gè)較新版本的工具進(jìn)行分析和比較,對新版本的工具選擇同樣具有參考價(jià)值。</p><p> 分析和比較的工具對象的版本及軟件平臺(tái)情況如下表:</p><p> 表5.1 工具對象的版本及軟件平臺(tái)</p><p> 下面,將從測試步驟、測試結(jié)果等方面對這三種工具先作一個(gè)詳細(xì)的分析和介紹,然后根據(jù)分析
95、在對這三個(gè)工具進(jìn)行橫向的詳細(xì)比較。</p><p> 5.1測試環(huán)境和對象</p><p> (1)WinRunner</p><p> 我們使用的WinRunner版本是WinRunner7.50。是MI測試軟件中比較新的版本?;旧峡梢酝瓿蒞indows操作系統(tǒng)下的不同類型軟件的自動(dòng)化功能測試。下表是對WinRunner7.50所支持的環(huán)境和被測軟件對象的
96、一個(gè)總結(jié)[16-17]</p><p> 表5.2 WinRunner7.50所支持的環(huán)境和被測軟件對象</p><p> (2)Rational Robot</p><p> 表5.3 Rational Robot所支持的環(huán)境和被測軟件對象</p><p><b> (3)QARun</b></p>
97、<p> 表5.4 QARun所支持的環(huán)境和被測軟件對象</p><p> 5.2工具功能模塊詳細(xì)劃分</p><p> 雖然三個(gè)工具都是自動(dòng)化的功能測試工具,從大的方面來說,它們的功能都是一樣的,但有許多細(xì)節(jié)的功能還是有很大區(qū)別的。所以,為了更清楚、更詳細(xì)的認(rèn)識(shí)和比較這三個(gè)工具,將這個(gè)工具按它的功能模塊進(jìn)行劃分,然后針對每個(gè)細(xì)節(jié)的功能進(jìn)行分析和比較,最后從整體上把握,
98、是最好的方法。</p><p> (1)WinRunner</p><p> WinRunner為了支持完整的功能測試,簡化測試難度,使測試人員能夠輕松正確的執(zhí)行測試,內(nèi)置了許多強(qiáng)大的功能。下圖是結(jié)合WinRunner的實(shí)際使用情況,對它從主要功能上的一個(gè)詳細(xì)的劃分[13]。</p><p> 圖5.1 WinRunner功能劃分</p><
99、;p> 從上面的功能模塊劃分圖我們可以看出,WinRunner主要13個(gè)主功能模塊,每個(gè)功能模塊還有一些更具體的功能。這些功能模塊集成到到一起,達(dá)到了WinRunner執(zhí)行完整的自動(dòng)化功能測試的功能。</p><p> (2)Rational Robot</p><p> Rational Robot兼具功能測試的完整功能和性能測試腳本生成的功能,所以從整體上Robot可以分為
100、兩大模塊:功能測試模塊和性能測試模塊。對于性能測試來說,Robot只是負(fù)責(zé)性能測試腳本的生成,所以性能測試模塊的功能相對比較單一,而功能測試模塊相對的就比較復(fù)雜[18]。對Robot的主要功能的詳細(xì)劃分如下圖:</p><p> 圖5.2 Robot功能劃分</p><p><b> (3)QARun</b></p><p> 同WinR
101、unner一樣,QARun可以執(zhí)行完整的功能測試,它的所有的功能模塊都是為了能夠正確、方便的進(jìn)行功能測試而存在的。QARun的主要功能模塊的詳細(xì)劃分如下[15]:</p><p> 圖5.3 QARun功能劃分</p><p><b> (4)比較</b></p><p> 對于功能測試,從整體上來看的話三個(gè)工具區(qū)別不是太大。都有腳本的錄
102、制、回放;檢查點(diǎn);一些與腳本的錄制和回放有關(guān)的選項(xiàng)設(shè)置</p><p> WinRunner與其兩個(gè)工具主要有如下幾個(gè)不同的地方:Font Expert功能模塊,腳本的執(zhí)行模塊,GUI Map模塊。Font Expert是為了WinRunner能夠識(shí)別不同的字體而加入的一個(gè)具有字體學(xué)習(xí)功能的模塊;腳本執(zhí)行模塊提供了三種模式下的腳本回放,這三種模式下面會(huì)詳細(xì)分析;GUI Map是為了簡化腳本,識(shí)別GUI對象和提高
103、腳本的可維護(hù)性而設(shè)立的一個(gè)功能模塊,這個(gè)模塊和QARun中的Map模塊的功能是一樣的。</p><p> Robot區(qū)別于其它兩個(gè)工具的一個(gè)顯著的特點(diǎn),就是Robot可以執(zhí)行部分性能測試的功能,即性能測試腳本的生成。而其它兩個(gè)公司將性能測試工具和功能測試工具分的很清楚,MI公司的性能測試工具就是LoadRunner,LoadRunner負(fù)責(zé)從腳本的生成、執(zhí)行到測試結(jié)果的查看等全部與性能測試有關(guān)的工作。和MI公司
104、的分法一樣,Compuware公司將性能測試功能完全交由QALoad完成。像Rational公司這種將功能測試和部分性能測試集成到一個(gè)工具中的做法,雖然對功能測試沒有什么影響,但總讓人感覺工具劃分不清楚,特別是性能測試,腳本生成在Robot中,而執(zhí)行要在TestManager中,顯得有點(diǎn)麻煩。而其它兩個(gè)公司的工具劃分就感覺很好,功能測試、性能測試和管理工具都是相互獨(dú)立的,學(xué)習(xí)和使用起來比較方便。</p><p>
105、 另外一個(gè)特點(diǎn)就是Robot雖然能夠執(zhí)行功能測試,但是測試結(jié)果要在測試管理工具TestManager中查看,所以Robot對管理工具的依賴性比較強(qiáng),從而顯得其獨(dú)立性比較差。</p><p> QARun比較特殊的地方是有一個(gè)Events的模塊和一個(gè)Dialog模塊,Events模塊和WinRunner中的同步點(diǎn)模塊的功能是相近的,是為了使腳本執(zhí)行和被測應(yīng)用程序響應(yīng)更好的同步而設(shè)立的。Dialog模塊是為了增強(qiáng)
106、腳本功能而設(shè)立的,下面會(huì)詳細(xì)介紹。</p><p><b> 5.3測試步驟</b></p><p> (1)WinRunner</p><p> 使用WinRunner進(jìn)行自動(dòng)化功能測試,主要有下面六個(gè)步驟:</p><p> 圖5.4 WinRunner進(jìn)行功能測試步驟</p><p>
107、; 其中Create GUI Map、Debug Tests這兩個(gè)步驟不是必須的。</p><p> (2)Rational Robot</p><p> 使用Robot進(jìn)行功能測試有如下八個(gè)步驟:</p><p> 圖5.5 Robot進(jìn)行功能測試步驟</p><p> 其中Debug Tests、Compile Tests(Ru
108、n Tests步驟中會(huì)先進(jìn)行腳本的編譯)這兩個(gè)步驟不是必須的。</p><p><b> (3)QARun</b></p><p> 使用QARun進(jìn)行功能測試主要有下面九個(gè)步驟:</p><p> 圖5.6 QARun進(jìn)行功能測試步驟</p><p> 其中Create Map、Debug Tests、Comp
109、ile Tests(Run Tests步驟中會(huì)先進(jìn)行腳本的編譯)這三個(gè)步驟不是必須的。</p><p><b> (4)比較</b></p><p> 從上面三個(gè)工具的測試步驟圖,可以看出,三者都要有創(chuàng)建測試、調(diào)試測試、運(yùn)行測試、查看測試結(jié)果、報(bào)告缺陷這些步驟。Robot比其它兩個(gè)工具少了創(chuàng)建對象映射這個(gè)步驟(不是說Robot中沒有對象映射,而是Robot中對象映
110、射只可以查看和捕獲,不能手工修改某個(gè)對象的映射)。WinRunner比其它兩個(gè)工具少了創(chuàng)建測試項(xiàng)目、登錄項(xiàng)目、編譯測試這三個(gè)步驟。從測試步驟上我們也可以看出,WinRunner的獨(dú)立性比Robot和QARun要強(qiáng),Robot、QARun與測試管理工具的結(jié)合更緊密[19-22]。</p><p> 5.4 GUI對象識(shí)別</p><p> 三種工具都是基于捕捉/回放的測試原理,既然要回放
111、用戶的操作,那么用戶操作的對象的識(shí)別就是一個(gè)很重要的要解決的問題。在這三種工具中都采用了一種叫做對象映射的技術(shù),就是一個(gè)實(shí)際的窗口對象用一個(gè)邏輯名來標(biāo)示,而這個(gè)邏輯名對應(yīng)的是這個(gè)對象的實(shí)際物理描述。這種技術(shù)的第一個(gè)好處就是即使某個(gè)對象在窗口中的位置變了,該對象仍可以被正確的識(shí)別,這就大大增強(qiáng)了腳本的生命力;另外一個(gè)好處就是如果一個(gè)對象的物理描述變了,不必去修改腳本,只需要修改該對象的映射即可,當(dāng)然前提是在工具中提供這種對象映射修改的功能
112、。在WinRunner和QARun里面這些對象映射是可以編輯的,Robot中不可以編輯。所以就這一點(diǎn)來說Robot的腳本的可維護(hù)性不如另外兩個(gè)工具。</p><p> 下面讓我們詳細(xì)看一下三個(gè)工具都為GUI對象識(shí)別提供了那些功能[19,21-22]:</p><p> (1)WinRunner</p><p> GUI Map是WinRunner 在Conte
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試的概述及方法 畢業(yè)論文
- 軟件測試的概述及方法畢業(yè)論文
- 軟件測試畢業(yè)論文
- 軟件測試畢業(yè)論文
- 畢業(yè)論文(設(shè)計(jì))-《軟件測試的概述及方法》
- 軟件測試畢業(yè)論文
- 軟件測試畢業(yè)論文
- 畢業(yè)論文軟件測試環(huán)境搭建
- 畢業(yè)論文---軟件測試環(huán)境搭建
- 軟件檢查測試結(jié)業(yè)畢業(yè)論文
- 軟件技術(shù)畢業(yè)論文
- 軟件技術(shù)畢業(yè)論文
- 畢業(yè)論文范文——關(guān)于手機(jī)軟件測試技術(shù)的學(xué)習(xí)與研究
- 畢業(yè)論文范文——關(guān)于手機(jī)軟件測試技術(shù)的學(xué)習(xí)與研究
- 面向?qū)ο笫謾C(jī)軟件測試畢業(yè)論文
- 嵌入式軟件測試與軟件質(zhì)量評(píng)估【畢業(yè)論文】
- 房屋租售管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)──軟件測試與測試方法淺析【畢業(yè)論文設(shè)計(jì)】
- 軟件開發(fā)畢業(yè)論文-畢業(yè)論文
- 畢業(yè)論文-論黑盒測試之提高軟件的質(zhì)量
- 基于gprs技術(shù)的電力電網(wǎng)參數(shù)測試系統(tǒng)——軟件部分【畢業(yè)論文】
評(píng)論
0/150
提交評(píng)論