【正文】
onal 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ū)別的。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)。可進(jìn)行自動(dòng)化的軟件缺陷的跟蹤管理。② 調(diào)用相應(yīng)的自動(dòng)測(cè)試工具執(zhí)行測(cè)試。③過(guò)濾信息,以利于你觀察制定的文件類型和缺陷,包括斷開(kāi)的連接。③不用記錄,自動(dòng)生成提供擴(kuò)展代碼覆蓋率的腳本和發(fā)現(xiàn)缺陷的腳本。使用Robot可以創(chuàng)建兩種類型的測(cè)試腳本:基于GUI對(duì)象的功能測(cè)試腳本和用于性能測(cè)試的腳本。②指定優(yōu)先級(jí),排序和安排需求。③通過(guò)網(wǎng)絡(luò)操作遠(yuǎn)程的測(cè)試項(xiàng)目。Rational的測(cè)試工具Rational Suite TestStudio的構(gòu)成如下圖[14]: Rational Suite TestStudio的構(gòu)成Rational Suite TestStudio測(cè)試工具集中的管理工具主要有五個(gè)子工具組成,它們結(jié)合起來(lái),完成一個(gè)完整的測(cè)試管理工具的功能。(1)WinRunner針對(duì)Windows應(yīng)用程序的一個(gè)企業(yè)級(jí)的功能測(cè)試工具,用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。使用TD及其配套的功能和性能等測(cè)試工具,可以組織全球范圍的測(cè)試。下面就目前Windows操作系統(tǒng)下的主流的自動(dòng)化測(cè)試工具作一個(gè)整體的介紹。下表對(duì)何時(shí)使用自動(dòng)化測(cè)試和何時(shí)使用手工測(cè)試進(jìn)行了一個(gè)概要的總結(jié)。回歸測(cè)試回歸測(cè)試實(shí)際上是重復(fù)已經(jīng)存在的測(cè)試。 各類型測(cè)試進(jìn)行自動(dòng)化技術(shù)描述備注單元測(cè)試/組件測(cè)試該測(cè)試工作通常是開(kāi)發(fā)人員的職責(zé),很多不同的方法能夠被使用,比如“測(cè)試先行”,它是一個(gè)測(cè)試框架,開(kāi)發(fā)人員在編寫(xiě)代碼前編寫(xiě)不同的單元測(cè)試。(4)軟件自動(dòng)化測(cè)試可能會(huì)制約軟件開(kāi)發(fā)應(yīng)用軟件的變化對(duì)自動(dòng)化測(cè)試的影響要比手工測(cè)試更大一些,軟件的部分改變有可能使自動(dòng)化測(cè)試軟件崩潰。例如界面的美觀、聲音的體驗(yàn)、易用性的測(cè)試等,這類測(cè)試很容易通過(guò)人來(lái)驗(yàn)證,自動(dòng)化測(cè)試反而難以執(zhí)行。以下幾點(diǎn)是自動(dòng)化測(cè)試的不足所在[1011]:(1)不能完全取代手工測(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í)間。(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ò)。其目的在于縮短測(cè)試周期,增強(qiáng)對(duì)軟件性能方面的測(cè)試能力等,從而達(dá)到保證軟件質(zhì)量并使軟件能夠提前上線[9]。性能測(cè)試可以發(fā)生在各個(gè)測(cè)試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測(cè)試來(lái)進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起之后,才能檢查一個(gè)系統(tǒng)的真正性能。白盒測(cè)試是窮舉路徑測(cè)試,在使用這一方案時(shí),測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)。黑盒測(cè)試著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對(duì)軟件界面和軟件功能進(jìn)行的測(cè)試。這里修改的正確性有兩重含義:一是所作的修改達(dá)到了預(yù)定目的,如錯(cuò)誤得到改正,能夠適應(yīng)新的運(yùn)行環(huán)境等等;二是不影響軟件的其他功能的正確性[1]。因此,系統(tǒng)測(cè)試應(yīng)該按照測(cè)試計(jì)劃進(jìn)行,其輸入、輸出和其他動(dòng)態(tài)運(yùn)行行為應(yīng)該與軟件規(guī)約進(jìn)行對(duì)比。它是軟件動(dòng)態(tài)測(cè)試的最基本的部分,也是最重要的部分之一,其目的是檢驗(yàn)軟件基本組成單位的正確性。很有可能是軟件需求、軟件系統(tǒng)的詳細(xì)設(shè)計(jì)等階段引起的。論文主要對(duì)軟件測(cè)試、測(cè)試技術(shù)(工具、方法)、自動(dòng)化測(cè)試以及測(cè)試管理技術(shù)(工具、方法)進(jìn)行理論闡述和綜合論述;然后進(jìn)行綜合分析、比較、總結(jié)。目前,許多能有效提高軟件質(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)的軟件具有高可靠性。: 論文的組織結(jié)構(gòu)軟件測(cè)試就是使用人工或者自動(dòng)的手段來(lái)運(yùn)行或測(cè)定某個(gè)軟件產(chǎn)品系統(tǒng)的過(guò)程,其目的是在于檢驗(yàn)軟件產(chǎn)品是否滿足規(guī)定的需求[2]。一個(gè)典型的軟件測(cè)試過(guò)程如下圖: 典型的軟件測(cè)試過(guò)程一個(gè)軟件的測(cè)試過(guò)程是一個(gè)不斷回歸的過(guò)程。單元測(cè)試的主要方法有控制流測(cè)試、數(shù)據(jù)流測(cè)試、排錯(cuò)測(cè)試、分域測(cè)試等等[35]。它的測(cè)試數(shù)據(jù)通常是系統(tǒng)測(cè)試的測(cè)試數(shù)據(jù)的子集。靜態(tài)測(cè)試是在不需運(yùn)行軟件系統(tǒng)的情況下,對(duì)系統(tǒng)進(jìn)行的測(cè)試。黑盒測(cè)試是以用戶的觀點(diǎn),從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行測(cè)試的,它不涉及到程序的內(nèi)部結(jié)構(gòu)。如果規(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),一是它的功能是否符合要求,二是它的性能是否符合要求。通過(guò)對(duì)系統(tǒng)的檢測(cè),測(cè)試者可以發(fā)現(xiàn)導(dǎo)致效率降低和系統(tǒng)故障的原因。測(cè)試自動(dòng)化涉及到測(cè)試流程、測(cè)試體系、自動(dòng)化化編譯、持續(xù)集成、自動(dòng)發(fā)布測(cè)試系統(tǒng)以及自動(dòng)化測(cè)試等方面整合。(3)可以完成一些手工測(cè)試不能或難以完成的測(cè)試對(duì)于一些非功能性方面的測(cè)試,如:壓力測(cè)試、并發(fā)測(cè)試、大數(shù)據(jù)量測(cè)試、崩潰性測(cè)試等,這些測(cè)試用手工測(cè)試是很難,甚至是不可能完成的。自動(dòng)化測(cè)試則會(huì)在很大程度上避免這些問(wèn)題。如以下一些情況:①測(cè)試很少運(yùn)行。(2)手工測(cè)試比軟件自動(dòng)化測(cè)試發(fā)現(xiàn)的缺陷更多自動(dòng)化測(cè)試的最大特點(diǎn)在于適合重復(fù)測(cè)試。手工測(cè)試時(shí)可以直接判斷結(jié)果的正確性,而自動(dòng)測(cè)試許多情況下測(cè)試結(jié)果還需要人工干預(yù)判斷。冒煙測(cè)試/構(gòu)建版本測(cè)試冒煙測(cè)試是一般驗(yàn)證被測(cè)試系統(tǒng)的功能性測(cè)試用例的集合,冒煙測(cè)試背后的思想是確?;A(chǔ)是可以工作的,以便更大的測(cè)試工作能夠開(kāi)始在構(gòu)建過(guò)程能夠確保構(gòu)建已經(jīng)為測(cè)試準(zhǔn)備好時(shí),冒煙測(cè)試通常是自動(dòng)化的運(yùn)行功能/集成測(cè)試這里測(cè)試的工作關(guān)注在驗(yàn)證的不同的組件之間的集成上。能夠在每次構(gòu)件完成后執(zhí)行自動(dòng)化的回歸測(cè)試,以驗(yàn)證被測(cè)試系統(tǒng)的改變是否影響了系統(tǒng)的其他功能。 知道什么時(shí)候測(cè)試對(duì)于自動(dòng)化測(cè)試擁有一個(gè)能夠被識(shí)別的測(cè)試框架和侯選者能夠確保多個(gè)測(cè)試運(yùn)行的構(gòu)建策略多平臺(tái)環(huán)境需要被測(cè)試擁有運(yùn)行測(cè)試的硬件擁有關(guān)注在自動(dòng)化過(guò)程上的資源被測(cè)試系統(tǒng)是可自動(dòng)化測(cè)試的沒(méi)有適當(dāng)?shù)臏y(cè)試過(guò)程沒(méi)有一個(gè)測(cè)試什么,什么時(shí)候測(cè)試的清晰的藍(lán)圖剛加入項(xiàng)目組,并且還不是完全的理解方案的功能性和或者設(shè)計(jì)項(xiàng)目成員或者整個(gè)項(xiàng)目在時(shí)間的壓力下在團(tuán)隊(duì)中沒(méi)有資源或者具有自動(dòng)化測(cè)試技能的人沒(méi)有硬件自動(dòng)化測(cè)試需要不同類型的自動(dòng)化測(cè)試工具進(jìn)行支持。全球100強(qiáng)公司中有將近90%的公司依靠MI公司的軟件和服務(wù)來(lái)實(shí)施他們的商業(yè)技術(shù)優(yōu)化策略。(2)Customer在該功能模塊中,TD用戶(即測(cè)試人員或其他與測(cè)試相關(guān)的人員)可以訂制和修改用戶的一些信息。確保跨平臺(tái)的、復(fù)雜的企業(yè)級(jí)應(yīng)用軟件無(wú)故障發(fā)布和長(zhǎng)期穩(wěn)定的運(yùn)行。它是一個(gè)開(kāi)放的可擴(kuò)展的架構(gòu),將其它的工具和測(cè)試數(shù)據(jù)聯(lián)合為一個(gè)整體。⑥創(chuàng)建和管理包含RequisitePro項(xiàng)目和Rose項(xiàng)目的測(cè)試項(xiàng)目。(4)Rational ClearQuest在ClearQuest中進(jìn)行缺陷的跟蹤和管理。Rational Quantify主要適用的應(yīng)用程序的對(duì)象是:Visual C/C++,.dlls,OLE/ActiveX控件以及COM對(duì)象組件;Visual Basic開(kāi)發(fā)的應(yīng)用程序;Java語(yǔ)言開(kāi)發(fā)的應(yīng)用程序;C#語(yǔ)言開(kāi)發(fā)的應(yīng)用程序等。⑥在TestFactory中可以回放Robot功能測(cè)試腳本一觀察擴(kuò)展代碼覆蓋率的信息以創(chuàng)建回歸測(cè)試集;在Robot中也可以回放TestFactory腳本用以調(diào)試腳本。⑥對(duì)安全網(wǎng)頁(yè)執(zhí)行全面的測(cè)試。⑤ 方便的將測(cè)試結(jié)果信息加載到測(cè)試缺陷跟蹤系統(tǒng)。(2)QALoadQALoad是C/S系統(tǒng)、企業(yè)資源計(jì)劃(ERP)和電子商務(wù)應(yīng)用的自動(dòng)化負(fù)載測(cè)試工具。所以針對(duì)下面三個(gè)較新版本的工具進(jìn)行分析和比較,對(duì)新版本的工具選擇同樣具有參考價(jià)值。下圖是結(jié)合WinRunner的實(shí)際使用情況,對(duì)它從主要功能上的一個(gè)詳細(xì)的劃分[13]。Font Expert是為了WinRunner能夠識(shí)別不同的字體而加入的一個(gè)具有字體學(xué)習(xí)功能的模塊;腳本執(zhí)行模塊提供了三種模式下的腳本回放,這三種模式下面會(huì)詳細(xì)分析;GUI Map是為了簡(jiǎn)化腳本,識(shí)別GUI對(duì)象和提高腳本的可維護(hù)性而設(shè)立的一個(gè)功能模塊,這個(gè)模塊和QARun中的Map模塊的功能是一樣的。Dialog模塊是為了增強(qiáng)腳本功能而設(shè)立的,下面會(huì)詳細(xì)介紹。 GUI對(duì)象識(shí)別三種工具都是基于捕捉/回放的測(cè)試原理,既然要回放用戶的操作,那么用戶操作的對(duì)象的識(shí)別就是一個(gè)很重要的要解決的問(wèn)題。有三種方式創(chuàng)建GUI Map:①RapidTest Script向?qū)ㄟ^(guò)該向?qū)憧梢暂p松的將被測(cè)試軟件所包含的所有GUI對(duì)象加入到GUI Map中。(2)Rational Robot雖然Robot也是采用了對(duì)象映射技術(shù)來(lái)識(shí)別GUI對(duì)象,但是它提供的關(guān)于這方面的功能比較弱,而且很多功能都對(duì)用戶隱藏了。需要特殊指出的是別名映射(alias mapping), 它是將一個(gè)非標(biāo)準(zhǔn)的類對(duì)象映射為一個(gè)標(biāo)準(zhǔn)的控件類型,這點(diǎn)與WinRunner中的虛擬對(duì)象映射相似。而第二種方法就很好,只要某個(gè)對(duì)象或事件出現(xiàn),說(shuō)明被測(cè)程序的響應(yīng)已經(jīng)完畢,腳本就繼續(xù)往下執(zhí)行。WinRunner、Robot和QARun都提供了和配套測(cè)試管理工具的接口,結(jié)合相應(yīng)的測(cè)試工具,就可以完成測(cè)試需求建立、測(cè)試用例設(shè)計(jì)、測(cè)試腳本創(chuàng)建、測(cè)試運(yùn)行、測(cè)試結(jié)果分析、缺陷跟蹤等一套完整的測(cè)試流程。而其它兩個(gè)公司的測(cè)試管理系統(tǒng)是基于C/S結(jié)構(gòu)的系統(tǒng),如果一個(gè)測(cè)試人員要使用該測(cè)試管理系統(tǒng)的話,他必須在自己的機(jī)器上安裝該系統(tǒng)才行。三個(gè)公司的工具對(duì)于第三方的數(shù)據(jù)庫(kù)支持大同小異,都支持當(dāng)今主流的數(shù)據(jù)庫(kù)。而Rational和Compuware的測(cè)試項(xiàng)目則不一樣,在它們的測(cè)試項(xiàng)目創(chuàng)建前你完全可以使用它們的需求管理工具創(chuàng)建完成測(cè)試需求,缺陷跟蹤工具創(chuàng)建好缺陷跟蹤的項(xiàng)目,然后創(chuàng)建測(cè)試項(xiàng)目時(shí)將這些需求和缺項(xiàng)項(xiàng)目與測(cè)試項(xiàng)目聯(lián)系起來(lái)。Compuware的QADirector Administrator中對(duì)測(cè)試人員(即用戶)的管理沒(méi)有角色的概念,每加入一個(gè)用戶,都要訂制其權(quán)限,而且權(quán)限劃分也不是很細(xì),訂制用戶權(quán)限的靈活性比較差。MI的TestDirector中的Test Plan模塊就是創(chuàng)建測(cè)試計(jì)劃的一個(gè)平臺(tái),它提供了各種功能以方便測(cè)試計(jì)劃的創(chuàng)建。通過(guò)向測(cè)試計(jì)劃樹(shù)中的測(cè)試添加測(cè)試步驟的方法來(lái)定義測(cè)試操作過(guò)程。一個(gè)項(xiàng)目可以有一個(gè)或多個(gè)測(cè)試計(jì)劃。一個(gè)iteration是在一個(gè)項(xiàng)目進(jìn)行中定義的一個(gè)時(shí)間段。比如:如果一個(gè)需求因?yàn)槟撤N原因改變了,你想知道測(cè)試計(jì)劃中的那些測(cè)試用例受到了影響,那么你可以u(píng)pdate它們以反映需求的變化。郵件通知功能有有有支持操作系統(tǒng)平臺(tái)NT Server with SP 6,Windows 2000 Professional with sp2 Windows 98/2000/XP/2003Windows 95/98/2000,NT 圖形化測(cè)試執(zhí)行安排支持不支持不支持報(bào)表生成功能強(qiáng)大強(qiáng)大一般56軟件測(cè)試是確保軟件質(zhì)量的重要方法,忽略了軟件測(cè)試,就是不重視軟件質(zhì)量。軟件測(cè)試的工作量很大并具有一定的重復(fù)性,尤其在測(cè)試后期所進(jìn)行的回歸測(cè)試中(回歸測(cè)試在軟件出現(xiàn)發(fā)展性的改變和修正性改變時(shí)運(yùn)行),需要驗(yàn)證以前發(fā)現(xiàn)的問(wèn)題在新版本中是否解決,大部分測(cè)試工作是重復(fù)的。3.GUIATF框架的工作原理GUIATF框架的基礎(chǔ)是消息機(jī)制,通過(guò)消息的發(fā)送來(lái)觸發(fā)相應(yīng)的事件。這些結(jié)果數(shù)據(jù)通過(guò)日志管理存儲(chǔ)在日志數(shù)據(jù)庫(kù)中,便于測(cè)試人員查看和分析測(cè)試結(jié)果