【正文】
分圖我們可以看出,WinRunner主要13個(gè)主功能模塊,每個(gè)功能模塊還有一些更具體的功能。[1617] 工具操作系統(tǒng)環(huán)境支持被測(cè)軟件對(duì)象WinRunnerversion Microsoft Windows 95/98/NT/2000/XP/2003l Netscape, Microsoft Internet Explorerl JDKl Visual Basicl C/C++l PowerBuilderl Delphil Java applets, Java applications,JavaScriptl ActiveX, OCX Controlsl WAPl ERP/CRM applications(Oracle Applications, PeopleSoft, SAP, Siebel)l C/C++、VB、Delphi、PowerBuilder等開(kāi)發(fā)的應(yīng)用程序(2)Rational Robot Rational Robot所支持的環(huán)境和被測(cè)軟件對(duì)象工具操作系統(tǒng)環(huán)境支持被測(cè)軟件對(duì)象Rational RobotVersionMicrosoft Windows 98/NT/2000/XP/2003l Microsoft Internet Explorer l JDKl Visual Basicl C/C++l PowerBuilderl Delphil Wordl Java applets and applicationsl VB Applicationsl Oracle Forms Applicationsl HTML Applicationsl C/C++、Delphi、PowerBuilder等開(kāi)發(fā)的應(yīng)用程序l PeopleTools Applications(3)QARun QARun所支持的環(huán)境和被測(cè)軟件對(duì)象工具操作系統(tǒng)環(huán)境支持被測(cè)軟件對(duì)象Microsoft Windows l Netscape, Microsoft Internet Explorerl JDKl Visual Studio l 數(shù)據(jù)庫(kù)支持l Microsoft Windows圖形用戶界面應(yīng)用程序l SAP,Siebel,Oracle Web Form和PeopleSoftl Windows 2000控件l 基于Web的應(yīng)用程序l C/S系統(tǒng)雖然三個(gè)工具都是自動(dòng)化的功能測(cè)試工具,從大的方面來(lái)說(shuō),它們的功能都是一樣的,但有許多細(xì)節(jié)的功能還是有很大區(qū)別的。分析和比較的工具對(duì)象的版本及軟件平臺(tái)情況如下表: 工具對(duì)象的版本及軟件平臺(tái)開(kāi)發(fā)單位工具名稱版本平臺(tái)MI公司W(wǎng)inRunnerWindows Server 2003Rational公司Robot2002Windows Server 2003Compuware公司QARun465Windows 2000 Professional下面,將從測(cè)試步驟、測(cè)試結(jié)果等方面對(duì)這三種工具先作一個(gè)詳細(xì)的分析和介紹,然后根據(jù)分析在對(duì)這三個(gè)工具進(jìn)行橫向的詳細(xì)比較。WinRunner、Rational Robot和QARun這三個(gè)工具都是自動(dòng)化的功能測(cè)試工具,它們針對(duì)的測(cè)試對(duì)象都是使用IDEs(如:支持Java、C/C++、VB、HTML等語(yǔ)言的集成開(kāi)發(fā)環(huán)境)開(kāi)發(fā)的帶有GUI對(duì)象的應(yīng)用程序,都能夠大大降低重復(fù)性的測(cè)試所耗費(fèi)的時(shí)間,將測(cè)試人員從復(fù)雜好事的測(cè)試工作中解脫出來(lái)。它是QACenter測(cè)試工具集性能版的一部分。可進(jìn)行自動(dòng)化的軟件缺陷的跟蹤管理。⑥ 針對(duì)需求驗(yàn)證測(cè)試。② 調(diào)用相應(yīng)的自動(dòng)測(cè)試工具執(zhí)行測(cè)試。SiteCheck提供了Secure Scoket Layer(SSL)支持,代理服務(wù)器配置以及多密碼域。③過(guò)濾信息,以利于你觀察制定的文件類型和缺陷,包括斷開(kāi)的連接。(6)Rational SiteCheck網(wǎng)頁(yè)測(cè)試工具,利用Rational SiteCheck 可以檢查企業(yè)內(nèi)部互聯(lián)網(wǎng)的結(jié)構(gòu)完整性以及網(wǎng)頁(yè)錯(cuò)誤。③不用記錄,自動(dòng)生成提供擴(kuò)展代碼覆蓋率的腳本和發(fā)現(xiàn)缺陷的腳本。(3)Rational Purify檢測(cè)內(nèi)存泄露的白盒測(cè)試工具。使用Robot可以創(chuàng)建兩種類型的測(cè)試腳本:基于GUI對(duì)象的功能測(cè)試腳本和用于性能測(cè)試的腳本。通過(guò)ClearQuest可以將測(cè)試中發(fā)現(xiàn)的缺陷直接發(fā)送給相應(yīng)的測(cè)試人員,集中管理某個(gè)測(cè)試項(xiàng)目的缺陷,并跟蹤缺陷的修復(fù)情況。②指定優(yōu)先級(jí),排序和安排需求。⑦控制一個(gè)Rational測(cè)試項(xiàng)目的測(cè)試數(shù)據(jù)的安全權(quán)限。③通過(guò)網(wǎng)絡(luò)操作遠(yuǎn)程的測(cè)試項(xiàng)目。在TestManager中主要可以完成建立測(cè)試計(jì)劃、安排測(cè)試、執(zhí)行測(cè)試、查看測(cè)試結(jié)果和分析測(cè)試結(jié)果等工作。Rational的測(cè)試工具Rational Suite TestStudio的構(gòu)成如下圖[14]: Rational Suite TestStudio的構(gòu)成Rational Suite TestStudio測(cè)試工具集中的管理工具主要有五個(gè)子工具組成,它們結(jié)合起來(lái),完成一個(gè)完整的測(cè)試管理工具的功能。(2)LoadRunner黑盒性能測(cè)試工具。(1)WinRunner針對(duì)Windows應(yīng)用程序的一個(gè)企業(yè)級(jí)的功能測(cè)試工具,用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。包括:修改用戶信息、創(chuàng)建新的用戶類型和用戶組類型,訂制模塊的訪問(wèn)權(quán)限,訂制項(xiàng)目實(shí)體和列表,配置郵件,調(diào)整工作流等。使用TD及其配套的功能和性能等測(cè)試工具,可以組織全球范圍的測(cè)試。這使得MI公司成為世界上最大的、成長(zhǎng)最快的企業(yè)級(jí)軟件公司。下面就目前Windows操作系統(tǒng)下的主流的自動(dòng)化測(cè)試工具作一個(gè)整體的介紹。目前,軟件市場(chǎng)上已經(jīng)有很多優(yōu)秀的自動(dòng)化測(cè)試工具,它們功能強(qiáng)大,有針對(duì)功能的,也有針對(duì)性能的,有執(zhí)行白盒測(cè)試的測(cè)試工具也有執(zhí)行黑盒的測(cè)試工具。下表對(duì)何時(shí)使用自動(dòng)化測(cè)試和何時(shí)使用手工測(cè)試進(jìn)行了一個(gè)概要的總結(jié)。性能測(cè)試性能測(cè)試包括以下不同測(cè)試形式:負(fù)載測(cè)試壓力測(cè)試并發(fā)測(cè)試如果沒(méi)有自動(dòng)化的測(cè)試工具,將無(wú)法執(zhí)行通過(guò)模擬用戶的負(fù)載實(shí)現(xiàn)的高密集度的性能測(cè)試?;貧w測(cè)試回歸測(cè)試實(shí)際上是重復(fù)已經(jīng)存在的測(cè)試。這些類型的測(cè)試通常是被測(cè)試的更加復(fù)雜測(cè)試的基礎(chǔ),大量的邊緣測(cè)試被合并以制造出不同的錯(cuò)誤處理測(cè)試。 各類型測(cè)試進(jìn)行自動(dòng)化技術(shù)描述備注單元測(cè)試/組件測(cè)試該測(cè)試工作通常是開(kāi)發(fā)人員的職責(zé),很多不同的方法能夠被使用,比如“測(cè)試先行”,它是一個(gè)測(cè)試框架,開(kāi)發(fā)人員在編寫(xiě)代碼前編寫(xiě)不同的單元測(cè)試。手工測(cè)試可以處理意外事件網(wǎng)絡(luò)連接中斷,此時(shí)必須重新建立連接。(4)軟件自動(dòng)化測(cè)試可能會(huì)制約軟件開(kāi)發(fā)應(yīng)用軟件的變化對(duì)自動(dòng)化測(cè)試的影響要比手工測(cè)試更大一些,軟件的部分改變有可能使自動(dòng)化測(cè)試軟件崩潰。一般情況下,以前運(yùn)行過(guò)的測(cè)試再次用來(lái)檢查軟件的新版本往往暴露的缺陷要少得多。例如界面的美觀、聲音的體驗(yàn)、易用性的測(cè)試等,這類測(cè)試很容易通過(guò)人來(lái)驗(yàn)證,自動(dòng)化測(cè)試反而難以執(zhí)行。對(duì)于很少運(yùn)行的測(cè)試任務(wù),例如一年只需測(cè)試一次,對(duì)測(cè)試自動(dòng)化則是一種浪費(fèi)。以下幾點(diǎn)是自動(dòng)化測(cè)試的不足所在[1011]:(1)不能完全取代手工測(cè)試。一旦得知軟件通過(guò)強(qiáng)有力的自動(dòng)測(cè)試后,軟件發(fā)布時(shí)對(duì)其的信任度也高(假設(shè)已做過(guò)很好的測(cè)試)。(6)解決測(cè)試與開(kāi)發(fā)之間的矛盾通常在開(kāi)發(fā)的末期,進(jìn)入集成測(cè)試階段,由于每發(fā)布一個(gè)版本的初期,測(cè)試系統(tǒng)的錯(cuò)誤比較少,這時(shí)開(kāi)發(fā)人員有等待測(cè)試人員測(cè)出錯(cuò)誤的時(shí)間。但自動(dòng)化測(cè)試則能方便地執(zhí)行這些測(cè)試,比如并發(fā)測(cè)試,使用自動(dòng)化測(cè)試工具就可以模擬來(lái)自多方的并發(fā)操作了。(1)提高測(cè)試效率一般來(lái)說(shuō),軟件產(chǎn)品的發(fā)布周期很短,而在測(cè)試期間是每天都可能要發(fā)布一個(gè)版本供測(cè)試人員測(cè)試,一個(gè)系統(tǒng)的功能點(diǎn)有幾千個(gè)上萬(wàn)個(gè),手工測(cè)試是一個(gè)勞動(dòng)密集型的工作,并且容易出錯(cuò)。也就是說(shuō)要讓測(cè)試能夠自動(dòng)化,不僅是技術(shù)、工具的問(wèn)題,更是一個(gè)公司和組織的文化問(wèn)題。其目的在于縮短測(cè)試周期,增強(qiáng)對(duì)軟件性能方面的測(cè)試能力等,從而達(dá)到保證軟件質(zhì)量并使軟件能夠提前上線[9]。3.自動(dòng)化測(cè)試技術(shù)基礎(chǔ)隨著軟件系統(tǒng)的規(guī)模越來(lái)越大,整個(gè)系統(tǒng)的復(fù)雜性也越來(lái)越大,那么單純的手工測(cè)試已經(jīng)不適合這種大系統(tǒng)的測(cè)試了。性能測(cè)試可以發(fā)生在各個(gè)測(cè)試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測(cè)試來(lái)進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起之后,才能檢查一個(gè)系統(tǒng)的真正性能。那么針對(duì)這兩個(gè)指標(biāo),我們可以將軟件測(cè)試分為:功能測(cè)試和性能測(cè)試兩個(gè)部分[2]。白盒測(cè)試是窮舉路徑測(cè)試,在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。黑盒測(cè)試注重于測(cè)試軟件的功能需求,主要試圖發(fā)現(xiàn)軟件中的功能錯(cuò)誤、界面錯(cuò)誤、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤、性能錯(cuò)誤、初始化和終止錯(cuò)誤等。黑盒測(cè)試著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行的測(cè)試。其采用的方法主要有[6]:(1)文檔資料瀏覽,達(dá)到正確的理解,并對(duì)任何改變具有統(tǒng)一的認(rèn)知;(2)討論決定,對(duì)文檔資料進(jìn)行討論,并作出決定,如:做什么、不做什么、如何做等;(3)檢查,根據(jù)規(guī)范和定義,找出可能存在的問(wèn)題,如:市場(chǎng)和商業(yè)策略、系統(tǒng)需求和系統(tǒng)設(shè)計(jì)、程序代碼、測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、測(cè)試案例、測(cè)試結(jié)果、用戶手冊(cè)、培訓(xùn)教材等;(4)利用工具對(duì)程序代碼進(jìn)行靜態(tài)分析,如:程序復(fù)雜度、系統(tǒng)結(jié)構(gòu)、控制流程、數(shù)據(jù)流程等。這里修改的正確性有兩重含義:一是所作的修改達(dá)到了預(yù)定目的,如錯(cuò)誤得到改正,能夠適應(yīng)新的運(yùn)行環(huán)境等等;二是不影響軟件的其他功能的正確性[1]。所不同的是,驗(yàn)收測(cè)試常常有軟件系統(tǒng)的購(gòu)買者代表在現(xiàn)場(chǎng),甚至是在軟件安裝使用的現(xiàn)場(chǎng)。因此,系統(tǒng)測(cè)試應(yīng)該按照測(cè)試計(jì)劃進(jìn)行,其輸入、輸出和其他動(dòng)態(tài)運(yùn)行行為應(yīng)該與軟件規(guī)約進(jìn)行對(duì)比。集成測(cè)試是在軟件系統(tǒng)集成過(guò)程中所進(jìn)行的測(cè)試,其主要目的是檢查軟件單位之間的接口是否正確。它是軟件動(dòng)態(tài)測(cè)試的最基本的部分,也是最重要的部分之一,其目的是檢驗(yàn)軟件基本組成單位的正確性。舊的錯(cuò)誤的修改可能會(huì)引起新的錯(cuò)誤的出現(xiàn),所以每修改一個(gè)新的錯(cuò)誤,都要針對(duì)系統(tǒng)再作一次測(cè)試,直到?jīng)]有新的錯(cuò)誤出現(xiàn)為止,這是一個(gè)很繁瑣的過(guò)程。很有可能是軟件需求、軟件系統(tǒng)的詳細(xì)設(shè)計(jì)等階段引起的。簡(jiǎn)單地說(shuō),軟件測(cè)試過(guò)程就是制造條件,促使錯(cuò)誤發(fā)生的過(guò)程。論文主要對(duì)軟件測(cè)試、測(cè)試技術(shù)(工具、方法)、自動(dòng)化測(cè)試以及測(cè)試管理技術(shù)(工具、方法)進(jìn)行理論闡述和綜合論述;然后進(jìn)行綜合分析、比較、總結(jié)。軟件測(cè)試技術(shù)作為保障軟件質(zhì)量最直接、最有效的手段之一也成為重要的研究熱點(diǎn),但是由于軟件本身的復(fù)雜性和不確定性,軟件測(cè)試技術(shù)始終具有極大的難度。目前,許多能有效提高軟件質(zhì)量的質(zhì)量保證技術(shù)相繼問(wèn)世,例如,幾乎所有的大型軟件開(kāi)發(fā)機(jī)構(gòu)都結(jié)合自身軟件開(kāi)發(fā)實(shí)際和經(jīng)驗(yàn)制定了相關(guān)的質(zhì)量標(biāo)準(zhǔn)來(lái)規(guī)范企業(yè)內(nèi)部的軟件開(kāi)發(fā)過(guò)程,有些機(jī)構(gòu)在這兩年陸續(xù)成立了與軟件開(kāi)發(fā)相獨(dú)立的軟件測(cè)試中心來(lái)保證開(kāi)發(fā)出來(lái)的軟件可用,在開(kāi)發(fā)過(guò)程中增加了許多環(huán)節(jié)(如軟件配置管理、階段性測(cè)試和評(píng)審)用來(lái)保證開(kāi)發(fā)出來(lái)的軟件具有高可靠性。而在軟件測(cè)試中使用優(yōu)秀的測(cè)試管理工具不但可以大大減少測(cè)試過(guò)程中出現(xiàn)錯(cuò)誤的可能性,還可以極大的提高測(cè)試的效率,加快測(cè)試進(jìn)程。: 論文的組織結(jié)構(gòu)軟件測(cè)試就是使用人工或者自動(dòng)的手段來(lái)運(yùn)行或測(cè)定某個(gè)軟件產(chǎn)品系統(tǒng)的過(guò)程,其目的是在于檢驗(yàn)軟件產(chǎn)品是否滿足規(guī)定的需求[2]。另外,對(duì)軟件的測(cè)試并不僅限于軟件程序的本身,因?yàn)殄e(cuò)誤并不一定是代碼引起的。一個(gè)典型的軟件測(cè)試過(guò)程如下圖: 典型的軟件測(cè)試過(guò)程一個(gè)軟件的測(cè)試過(guò)程是一個(gè)不斷回歸的過(guò)程。根據(jù)上面的過(guò)程,我們按軟件開(kāi)發(fā)過(guò)程的可以將軟件測(cè)試劃分為下面五個(gè)步驟,: 軟件測(cè)試步驟單元測(cè)試是對(duì)軟件中的基本組成單位進(jìn)行的測(cè)試,如一個(gè)模塊、一個(gè)過(guò)程等等。單元測(cè)試的主要方法有控制流測(cè)試、數(shù)據(jù)流測(cè)試、排錯(cuò)測(cè)試、分域測(cè)試等等[35]。系統(tǒng)測(cè)試是對(duì)已經(jīng)集成好的軟件系統(tǒng)進(jìn)行徹底的測(cè)試,以驗(yàn)證軟件系統(tǒng)的正確性和性能等滿足其規(guī)約所指定的要求,檢查軟件的行為和輸出是否正確并非一項(xiàng)簡(jiǎn)單的任務(wù),它被稱為測(cè)試的“先知者問(wèn)題”。它的測(cè)試數(shù)據(jù)通常是系統(tǒng)測(cè)試的測(cè)試數(shù)據(jù)的子集。其目的是檢驗(yàn)對(duì)軟件進(jìn)行的修改是否正確。靜態(tài)測(cè)試是在不需運(yùn)行軟件系統(tǒng)的情況下,對(duì)系統(tǒng)進(jìn)行的測(cè)試。軟件測(cè)試的方法和技術(shù)是多種多樣的,按測(cè)試用例設(shè)計(jì)方法,可分為黑盒測(cè)試和白盒測(cè)試,并且黑盒測(cè)試和白盒測(cè)試還是目前通用的測(cè)試技術(shù) [2,78]。黑盒測(cè)試是以用戶的觀點(diǎn),從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行測(cè)試的,它不涉及到程序的內(nèi)部結(jié)構(gòu)。白盒測(cè)試需要全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對(duì)所有邏輯路徑進(jìn)行測(cè)試。如果規(guī)格說(shuō)明有誤,則無(wú)法發(fā)現(xiàn)無(wú)法檢驗(yàn)程序的外特性,無(wú)法對(duì)未實(shí)現(xiàn)規(guī)格說(shuō)明的程序內(nèi)部欠缺部分進(jìn)行測(cè)試缺點(diǎn)來(lái)源基于程序所有功能得到說(shuō)明的基礎(chǔ)之上基于所有的需求得到實(shí)現(xiàn)的基礎(chǔ)之上舉例等價(jià)類劃分邊值分析因果圖語(yǔ)句覆蓋,分支覆蓋條件覆蓋,判定/條件覆蓋,路徑覆蓋對(duì)于一個(gè)軟件系統(tǒng),衡量它的好壞有兩個(gè)最重要的指標(biāo),一是它的功能是否符合要求,二是它的性能是否符合要求。性能測(cè)試:就是用來(lái)測(cè)試軟件在系統(tǒng)中的運(yùn)行性能的。通過(guò)對(duì)系統(tǒng)的檢測(cè),測(cè)試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。軟件自動(dòng)化測(cè)試就是執(zhí)行某種程序設(shè)計(jì)語(yǔ)言編制的自動(dòng)測(cè)試程序,控制被測(cè)軟件的執(zhí)行,模擬手動(dòng)測(cè)試步驟,完成全自動(dòng)或半自動(dòng)測(cè)試。測(cè)試自動(dòng)化涉及到測(cè)試流程、測(cè)試體系、自動(dòng)化化編譯、持續(xù)集成、自動(dòng)發(fā)布測(cè)試系統(tǒng)以及自動(dòng)化測(cè)試等方面整合。假定對(duì)于給定的企業(yè)需求,測(cè)試工程師必須評(píng)估潛在的好處是否符合所要求的改進(jìn)標(biāo)準(zhǔn),在項(xiàng)目實(shí)施