《軟件測(cè)試技術(shù)》課件第10章_第1頁(yè)
《軟件測(cè)試技術(shù)》課件第10章_第2頁(yè)
《軟件測(cè)試技術(shù)》課件第10章_第3頁(yè)
《軟件測(cè)試技術(shù)》課件第10章_第4頁(yè)
《軟件測(cè)試技術(shù)》課件第10章_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第10章自?動(dòng)?化?測(cè)?試10.1自動(dòng)化測(cè)試概述10.2自動(dòng)化測(cè)試技術(shù)10.3自動(dòng)化測(cè)試工具10.4本章小結(jié)

10.1自動(dòng)化測(cè)試概述

10.1.1軟件自動(dòng)化測(cè)試

隨著應(yīng)用軟件程序規(guī)模的不斷擴(kuò)大,業(yè)務(wù)邏輯越來越復(fù)雜,軟件系統(tǒng)的可靠性已無法通過手工測(cè)試來全面驗(yàn)證。而且隨著軟件開發(fā)技術(shù)的快速發(fā)展和軟件工程的不斷進(jìn)步,軟件快速開發(fā)的能力越來越強(qiáng),使得在軟件開發(fā)過程中短時(shí)間內(nèi)就可以產(chǎn)生多個(gè)需要測(cè)試的軟件版本,這就意味著軟件測(cè)試周期大大縮短,測(cè)試的頻率大大增加。傳統(tǒng)的手工測(cè)試已經(jīng)遠(yuǎn)遠(yuǎn)滿足不了軟件開發(fā)的需求,其局限性越來越多地暴露出來。手工測(cè)試面臨的主要問題和挑戰(zhàn)如下:

(1)不適合回歸測(cè)試?;貧w測(cè)試是軟件開發(fā)測(cè)試中非常頻繁的一項(xiàng)測(cè)試,若通過手工測(cè)試,則會(huì)耗費(fèi)大量人力物力。

(2)許多與時(shí)序、死鎖、資源沖突、多線程等有關(guān)的錯(cuò)誤,通過手工測(cè)試很難捕捉到。

(3)進(jìn)行系統(tǒng)負(fù)載測(cè)試時(shí),需要模擬大量數(shù)據(jù)或大量并發(fā)用戶等應(yīng)用場(chǎng)合時(shí),很難通過手工測(cè)試來進(jìn)行。

(4)進(jìn)行系統(tǒng)可靠性測(cè)試時(shí),需要模擬系統(tǒng)長(zhǎng)時(shí)間(如10年)運(yùn)行,以驗(yàn)證系統(tǒng)能否穩(wěn)定運(yùn)行,這也是手工測(cè)試無法模擬的。

(5)如果有大量(幾千上萬(wàn))的測(cè)試用例,需要在短時(shí)間內(nèi)(1天)完成,手工測(cè)試幾乎不可能做到。傳統(tǒng)的手工測(cè)試已經(jīng)遠(yuǎn)遠(yuǎn)滿足不了軟件開發(fā)的需求,使用自動(dòng)化測(cè)試技術(shù)勢(shì)在必行。

軟件自動(dòng)化測(cè)試就是使用自動(dòng)化測(cè)試工具來代替手工進(jìn)行的一系列測(cè)試動(dòng)作,以驗(yàn)證軟件是否滿足需求,它包括測(cè)試活動(dòng)的管理與實(shí)施。自動(dòng)化測(cè)試主要是通過所開發(fā)的軟件測(cè)試工具、腳本等來實(shí)現(xiàn),其目的是減輕手工測(cè)試的工作量,以節(jié)約資源(包括人力、物力等)、保證軟件質(zhì)量、縮短測(cè)試周期、提高測(cè)試效率。自動(dòng)化測(cè)試以其高效率、重用性和一致性成為軟件測(cè)試的一個(gè)主流。正確實(shí)施軟件自動(dòng)化測(cè)試并嚴(yán)格遵守測(cè)試計(jì)劃和測(cè)試流程,可以達(dá)到比手工測(cè)試更有效、更經(jīng)濟(jì)的效果。相比手工測(cè)試,自動(dòng)化測(cè)試具有如下優(yōu)點(diǎn):

(1)程序的回歸測(cè)試更方便?;貧w測(cè)試是自動(dòng)化測(cè)試最主要的任務(wù),特別是在程序修改比較頻繁時(shí),效果非常明顯。由于回歸測(cè)試的動(dòng)作和用例是完全設(shè)計(jì)好的,測(cè)試期望的結(jié)果也是完全可以預(yù)料的,將回歸測(cè)試自動(dòng)運(yùn)行,可以極大地提高測(cè)試效率,縮短回歸測(cè)試時(shí)間。

(2)可以運(yùn)行更多更繁瑣的測(cè)試。自動(dòng)化的一個(gè)明顯的好處是可以在較少的時(shí)間內(nèi)運(yùn)行更多的測(cè)試。某些測(cè)試序列可能包括成百甚至上千條測(cè)試消息,這樣的測(cè)試用手工設(shè)置和評(píng)價(jià),常常是不可行的。為了能夠準(zhǔn)確地重復(fù)一個(gè)冗長(zhǎng)序列,必須實(shí)現(xiàn)測(cè)試自動(dòng)化。

(3)可以執(zhí)行一些手工測(cè)試?yán)щy或不可能進(jìn)行的測(cè)試。對(duì)于軟件性能方面的一些測(cè)試,如壓力測(cè)試、負(fù)載測(cè)試、大數(shù)據(jù)量測(cè)試等,用手工測(cè)試是不可能實(shí)現(xiàn)的。而通過測(cè)試工具進(jìn)行自動(dòng)化測(cè)試可以完成這些手工測(cè)試不可能完成的任務(wù)。例如,對(duì)于大規(guī)模用戶的聯(lián)機(jī)系統(tǒng),用手工進(jìn)行并發(fā)操作的測(cè)試幾乎是不可能的,而用自動(dòng)化測(cè)試工具就可以很輕松地模擬出大量用戶的操作。此外,在測(cè)試中使用測(cè)試工具,可以發(fā)現(xiàn)一些正常測(cè)試中很難發(fā)現(xiàn)的缺陷。例如,Numega工具就可以發(fā)現(xiàn)軟件在內(nèi)存方面的問題。

(4)充分利用資源。將繁瑣的任務(wù)自動(dòng)化,可以提高測(cè)試準(zhǔn)確性和測(cè)試人員的積極性,將測(cè)試技術(shù)人員解脫出來投入更多精力設(shè)計(jì)更好的測(cè)試用例,以讓測(cè)試人員專注于手工測(cè)試部分,提高手工測(cè)試的效率。另外,測(cè)試人員還可以利用計(jì)算機(jī)進(jìn)行7×24小時(shí)的自動(dòng)化測(cè)試。

(5)測(cè)試具有一致性和可重復(fù)性。只要每次自動(dòng)化測(cè)試的環(huán)境是相同的,運(yùn)行的腳本是相同的,那么每次執(zhí)行測(cè)試就具有一致性,很容易就能夠重現(xiàn)缺陷,并發(fā)現(xiàn)被測(cè)試軟件的修改之處和缺陷。這在手工測(cè)試中是很難做到的。而且,有些測(cè)試可能在不同的硬件配置下執(zhí)行,使用不同的操作系統(tǒng)或不同的數(shù)據(jù)庫(kù),此時(shí)要求在多種平臺(tái)環(huán)境下運(yùn)行的產(chǎn)品具有跨平臺(tái)質(zhì)量的一致性,這在手工測(cè)試的情況下更不可能做到。

(6)測(cè)試的復(fù)用性。由于自動(dòng)測(cè)試通常采用腳本技術(shù),這樣就有可能只需要做少量的甚至不做修改,實(shí)現(xiàn)在不同的測(cè)試過程中使用相同的用例。

(7)讓產(chǎn)品更快面向市場(chǎng)。一旦一系列自動(dòng)化測(cè)試準(zhǔn)備工作完成,就可以重復(fù)地執(zhí)行一系列的測(cè)試,因此能夠縮短測(cè)試時(shí)間,加快產(chǎn)品開發(fā)周期。

(8)增加軟件信任度。由于測(cè)試是自動(dòng)執(zhí)行的,所以不存在執(zhí)行過程中的疏忽和錯(cuò)誤,完全取決于測(cè)試的設(shè)計(jì)質(zhì)量。一旦軟件通過了強(qiáng)有力的自動(dòng)測(cè)試后,軟件的信任度自然會(huì)增加。當(dāng)然,自動(dòng)化測(cè)試也并非萬(wàn)能,人們對(duì)自動(dòng)化測(cè)試的理解也存在許多誤區(qū),認(rèn)為自動(dòng)化測(cè)試能完成一切工作,從測(cè)試計(jì)劃到測(cè)試執(zhí)行,都不需要人工干預(yù)。其實(shí)自動(dòng)化測(cè)試所完成的測(cè)試功能也是有限的。自動(dòng)化測(cè)試存在下列局限性:

(1)不能完全取代手工測(cè)試。軟件自動(dòng)化測(cè)試不可能也沒必要取代手工測(cè)試來完成所有的測(cè)試任務(wù)。因?yàn)橛行y(cè)試使用手工測(cè)試比自動(dòng)化測(cè)試要簡(jiǎn)單,如果采用自動(dòng)化測(cè)試,則費(fèi)用就比較大了。

(2)不能期望自動(dòng)化測(cè)試發(fā)現(xiàn)大量新缺陷。自動(dòng)化測(cè)試的最大特點(diǎn)在于適合重復(fù)測(cè)試。一般情況下,以前運(yùn)行過的測(cè)試再次用來檢查軟件的新版本往往暴露的缺陷要少得多。測(cè)試專家JamesBach總結(jié)出:85%的缺陷靠手工發(fā)現(xiàn),而自動(dòng)化測(cè)試只能發(fā)現(xiàn)15%的缺陷。自動(dòng)化測(cè)試能夠很好地發(fā)現(xiàn)老缺陷。

(3)軟件自動(dòng)化測(cè)試可能會(huì)制約軟件開發(fā)。應(yīng)用軟件的變化對(duì)自動(dòng)化測(cè)試的影響要比手工測(cè)試更大一些,軟件的部分改變有可能使自動(dòng)化測(cè)試腳本和用例不可再用。而設(shè)計(jì)和實(shí)施自動(dòng)化測(cè)試要比手工測(cè)試開銷大,并需要維護(hù),所以對(duì)自動(dòng)化測(cè)試影響較大的軟件修改可能受到限制。

(4)軟件自動(dòng)化測(cè)試本身沒有想象力。自動(dòng)化測(cè)試是通過軟件進(jìn)行,測(cè)試程序只是按照運(yùn)行機(jī)制執(zhí)行。手工測(cè)試可以直接判斷結(jié)果的正確性,而自動(dòng)化測(cè)試在許多情況下測(cè)試結(jié)果還需要人工干預(yù)判斷。手工測(cè)試可以處理意外事件,如網(wǎng)絡(luò)連接中斷,此時(shí)必須重新建立連接,手工測(cè)試時(shí)可以及時(shí)處理該意外,而自動(dòng)化測(cè)試時(shí)意外事件一般會(huì)導(dǎo)致測(cè)試的

中止。

(5)自動(dòng)化測(cè)試實(shí)施的難度較大。首先,商用測(cè)試執(zhí)行工具是較龐大且復(fù)雜的產(chǎn)品,要求具有一定的技術(shù)知識(shí),才能很好地利用工具。除工具本身的技術(shù)問題外,用戶也要了解被測(cè)試軟件的技術(shù)問題。如果軟件在設(shè)計(jì)和實(shí)現(xiàn)時(shí)沒有考慮可測(cè)性,則測(cè)試時(shí)自動(dòng)化測(cè)試難度會(huì)非常大。如果使用工具測(cè)試這樣的軟件,無疑更增加測(cè)試的難度。其次,還必須有管理支持及組織藝術(shù)。最后,還要考慮管理者是否能夠重視,是否能成立這樣的測(cè)試團(tuán)隊(duì),是否有這樣的技術(shù)水平。另外,測(cè)試腳本的維護(hù)工作量也是很大的,要考慮是否值得維護(hù)等問題。

(6)測(cè)試工具與其他軟件的互操作性。測(cè)試工具與其他軟件的互操作性也是一個(gè)嚴(yán)重的問題,技術(shù)環(huán)境變化如此之快,使得廠商很難跟上。許多工具看似理想,但在某些環(huán)境中卻并非如此。

總的說來,軟件自動(dòng)化測(cè)試的優(yōu)點(diǎn)和收益是顯而易見的,但同時(shí)它也并非萬(wàn)能,只有對(duì)其進(jìn)行合理的設(shè)計(jì)和正確的實(shí)施才能從中獲益。10.1.2自動(dòng)化測(cè)試的使用領(lǐng)域

人們一般認(rèn)為新技術(shù)可以解決面臨的所有問題,但任何一項(xiàng)技術(shù)都不是萬(wàn)能的,自動(dòng)化測(cè)試也不例外。在具體實(shí)施自動(dòng)化測(cè)試的時(shí)候,總是會(huì)出現(xiàn)這樣或那樣的問題,嚴(yán)重影響自動(dòng)化測(cè)試的效率,造成事倍功半甚至前功盡棄的后果,使自動(dòng)化測(cè)試成了一副空架子。自動(dòng)化測(cè)試與其他技術(shù)一樣,也有適合使用和不適合使用的情況。

1.適合自動(dòng)化測(cè)試的情況

下面是一些適合使用自動(dòng)化測(cè)試的情況。

1)產(chǎn)品型項(xiàng)目

對(duì)于產(chǎn)品型項(xiàng)目,每個(gè)項(xiàng)目只需改進(jìn)少量的功能,但每個(gè)項(xiàng)目必須反反復(fù)復(fù)地測(cè)試那些沒有改動(dòng)過的功能。這部分測(cè)試完全可以由自動(dòng)化測(cè)試來承擔(dān),同時(shí)可以把新加入的功能的測(cè)試也慢慢地加入到自動(dòng)化測(cè)試當(dāng)中。

2)增量式開發(fā)、持續(xù)集成項(xiàng)目

由于這種開發(fā)模式是對(duì)頻繁地發(fā)布新版本進(jìn)行測(cè)試,也就需要自動(dòng)化測(cè)試來頻繁地測(cè)試,以便把人從重復(fù)性工作中解脫出來測(cè)試新的功能。

3)回歸測(cè)試

回歸測(cè)試是自動(dòng)化測(cè)試的強(qiáng)項(xiàng),它能夠很好地確保是否引入了新的缺陷,老的缺陷是否修改過來了。尤其是在軟件經(jīng)常進(jìn)行版本更新的環(huán)境中。當(dāng)新版本測(cè)試時(shí),只需要幾分鐘時(shí)間啟動(dòng)已有的測(cè)試用例即可自動(dòng)完成對(duì)新版本的回歸測(cè)試。在某種程度上可以把自動(dòng)化測(cè)試工具叫做回歸測(cè)試工具。

4)多次重復(fù)、機(jī)械性動(dòng)作的測(cè)試

自動(dòng)化測(cè)試的優(yōu)勢(shì)更好地體現(xiàn)在那些包含有多次重復(fù)、機(jī)械性動(dòng)作的測(cè)試。比如要向系統(tǒng)輸入大量的相似數(shù)據(jù)來測(cè)試壓力和報(bào)表,自動(dòng)化工具比手工輸入準(zhǔn)確性高,還可以將測(cè)試人員從重復(fù)性勞動(dòng)中解脫出來,將精力專注于如何設(shè)計(jì)好的測(cè)試用例。

5)手工測(cè)試很難達(dá)到或無法完成的測(cè)試

使用手工執(zhí)行大規(guī)模的多用戶并發(fā)測(cè)試是很難實(shí)現(xiàn)的,但是使用自動(dòng)測(cè)試工具模擬多用戶就是很容易的事情了,用戶場(chǎng)景測(cè)試隨時(shí)都可以運(yùn)行,測(cè)試執(zhí)行人員不需要了解應(yīng)用程序的復(fù)雜業(yè)務(wù)邏輯。

手工測(cè)試時(shí),期望的輸出通常包含明顯的標(biāo)志,可以讓測(cè)試人員識(shí)別。但是,有很多屬性是很難由人工來確認(rèn)的。例如:圖形界面測(cè)試中,界面操作經(jīng)常會(huì)觸發(fā)一些事件,但是并沒有立刻輸出結(jié)果。在這種情況下,測(cè)試工具可以檢測(cè)到事件被觸發(fā),并執(zhí)行相應(yīng)的操作。

2.不適合自動(dòng)化測(cè)試的情況

自動(dòng)化測(cè)試并不是適合所有的公司或所有的項(xiàng)目。下列情況不適宜進(jìn)行自動(dòng)測(cè)試。

1)定制型項(xiàng)目(一次性的)

為客戶定制的項(xiàng)目,維護(hù)期由客戶方承擔(dān)的,甚至采用的開發(fā)語(yǔ)言、運(yùn)行環(huán)境也是客戶特別要求的,即公司在這方面的測(cè)試積累就少,這樣的項(xiàng)目不適合作自動(dòng)化測(cè)試。

2)周期短的項(xiàng)目

項(xiàng)目周期很短,測(cè)試周期也很短,就不值得花精力去投資自動(dòng)化測(cè)試。好不容易建立起的測(cè)試腳本,不能得到重復(fù)的利用是很浪費(fèi)財(cái)力和人力的。

3)業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象

業(yè)務(wù)規(guī)則復(fù)雜的對(duì)象,有很多的邏輯關(guān)系、運(yùn)算關(guān)系,工具就很難測(cè)試。

4)美觀、聲音、易用性測(cè)試

界面的美觀、聲音的體驗(yàn)、易用性的測(cè)試等屬于主觀方面的,而不是客觀的,而且這些測(cè)試結(jié)果很容易通過人員驗(yàn)證,而對(duì)于自動(dòng)化測(cè)試來說又比較難以實(shí)現(xiàn)。所以這方面的測(cè)試只能由人來完成。

5)測(cè)試很少運(yùn)行

測(cè)試很少運(yùn)行,對(duì)自動(dòng)化測(cè)試就是一種浪費(fèi)。自動(dòng)化測(cè)試就是讓它不厭其煩地、反反復(fù)復(fù)地運(yùn)行才有效率。

6)軟件更改比較頻繁

如果軟件的用戶界面和功能頻繁更改,那么修改自動(dòng)化測(cè)試的成本比較大,因此不適合自動(dòng)化測(cè)試。另外,如果軟件運(yùn)行不穩(wěn)定,則會(huì)由于這些不穩(wěn)定因素導(dǎo)致自動(dòng)化測(cè)試的

失敗。

7)測(cè)試中涉及物理交互

測(cè)試工具很難完成與物理設(shè)備的交互。例如斷開設(shè)備的連接,開/關(guān)電源等。

正確使用自動(dòng)化測(cè)試技術(shù)可以提高測(cè)試效率和測(cè)試質(zhì)量,但很多引入自動(dòng)化測(cè)試工具的軟件公司并沒有能夠讓測(cè)試自動(dòng)化發(fā)揮應(yīng)有的作用,其主要原因有以下幾個(gè)方面:

(1)不正確的觀念或不現(xiàn)實(shí)的期望。沒有建立一個(gè)正確的軟件測(cè)試自動(dòng)化的觀念,或操之過急,認(rèn)為測(cè)試自動(dòng)化可以代替手工測(cè)試,或認(rèn)為測(cè)試自動(dòng)化可以發(fā)現(xiàn)大量新缺陷,或不夠重視而不愿在初期投入比較大的開支等。多數(shù)情況下,對(duì)軟件測(cè)試自動(dòng)化存在過于樂觀的態(tài)度、過高的期望,人們都期望通過自動(dòng)化的方案能解決遇到的所有問題。而同時(shí)測(cè)試工具的軟件廠商自然會(huì)強(qiáng)調(diào)其測(cè)試工具的優(yōu)勢(shì)、有利的或成功的一面,可能對(duì)要取得這種成功所要做出持久不懈的努力和困難卻只字不提,導(dǎo)致最初的期望得不到實(shí)現(xiàn)。

(2)缺乏具有良好素質(zhì)和經(jīng)驗(yàn)的測(cè)試人才。有些軟件公司舍得花幾十萬(wàn)元去買測(cè)試工具軟件,但缺乏具有良好素質(zhì)和經(jīng)驗(yàn)的測(cè)試人才。軟件測(cè)試自動(dòng)化并不是簡(jiǎn)簡(jiǎn)單單地使用測(cè)試工具,還需要有良好的測(cè)試流程、全面的測(cè)試用例等來配合腳本的編寫,這就要求測(cè)試人員不僅熟悉產(chǎn)品的特性和應(yīng)用領(lǐng)域、熟悉測(cè)試流程,而且能很好地掌握測(cè)試技術(shù)和編程技術(shù),具有豐富的測(cè)試經(jīng)驗(yàn)。

(3)沒有進(jìn)行有效的、充分的培訓(xùn)。測(cè)試工具的使用者必須對(duì)測(cè)試工具非常了解,在這方面,有效的培訓(xùn)是必不可少的。如果沒有良好的、有效的、充分的培訓(xùn),測(cè)試人員對(duì)測(cè)試工具了解缺乏深度和廣度,就會(huì)導(dǎo)致其使用效率低下,應(yīng)用結(jié)果不理想。而且,在實(shí)際的使用測(cè)試工具的過程中,測(cè)試工具的使用者可能還存在著這樣那樣的問題,這也需要有專人負(fù)責(zé)解決。

(4)沒有考慮到公司的實(shí)際情況,盲目引入測(cè)試工具。有一點(diǎn)很明確,不同的測(cè)試工具面向不同的測(cè)試目的,不同的測(cè)試工具具有各自的特點(diǎn)和適用范圍,所以不是任何一個(gè)優(yōu)秀的測(cè)試工具都能適應(yīng)不同公司的需求。有些公司懷著美好的愿望花了不小的代價(jià)引入測(cè)試工具,半年或一年以后,測(cè)試工具卻成了擺設(shè)。究其原因,就是沒有能夠考慮公司的現(xiàn)實(shí)情況,不切實(shí)際地期望測(cè)試工具能夠改變公司的現(xiàn)狀,從而導(dǎo)致了失敗。例如,國(guó)內(nèi)多數(shù)軟件公司是針對(duì)最終用戶進(jìn)行項(xiàng)目開發(fā)工程性質(zhì)的軟件,而不是產(chǎn)品開發(fā)。項(xiàng)目開發(fā)周期短,不同的用戶需求不一樣,而且在整個(gè)開發(fā)過程中需求和用戶界面變動(dòng)較大,這種情況下就不適合引入黑盒測(cè)試工具。因?yàn)楹诤袦y(cè)試工具的基本方法是錄制/回放,對(duì)于不停變化的需求和界面,可能錄制腳本和修改腳本的工作量大大超過測(cè)試實(shí)施的工作量,運(yùn)用測(cè)試工具不但不能減輕工作量,反而加重了測(cè)試人員的負(fù)擔(dān)。這種情況下可以考慮引入白盒測(cè)試工具,以提升代碼質(zhì)量。

(5)沒有形成一個(gè)良好的使用測(cè)試工具的環(huán)境。建立良好的測(cè)試工具應(yīng)用環(huán)境,需要測(cè)試流程和管理機(jī)制做相應(yīng)的變化,也只有這樣,測(cè)試工具才能真正發(fā)揮其作用。例如,對(duì)基于GUI錄制/回放的自動(dòng)化測(cè)試來說,產(chǎn)品界面的改變對(duì)腳本的正常運(yùn)行影響較大。再者,白盒測(cè)試工具一般在單元測(cè)試階段使用,而單元測(cè)試在多數(shù)公司是由開發(fā)人員自己完成的,如果沒有流程來規(guī)范開發(fā)人員的行為,在項(xiàng)目進(jìn)度壓力比較大的情況下,開發(fā)人員很可能就會(huì)有意識(shí)地不使用測(cè)試工具,來逃避問題。所以,有必要將測(cè)試工具的使用在開發(fā)和測(cè)試的流程中明確出來。

(6)其他技術(shù)問題和組織問題。軟件測(cè)試自動(dòng)化所需要的測(cè)試腳本其維護(hù)量很大,而且軟件產(chǎn)品本身代碼的改變也需要遵守一定的規(guī)則,從而保證良好的測(cè)試腳本使用重復(fù)性,也就是說測(cè)試自動(dòng)化和軟件產(chǎn)品本身不能分離。其次,提供軟件測(cè)試工具的第三方廠商,對(duì)客戶的應(yīng)用缺乏足夠理解,很難提供強(qiáng)有力的技術(shù)支持和具體問題的解決能力。也就是說,軟件測(cè)試工具和被測(cè)試對(duì)象(軟件產(chǎn)品或系統(tǒng))的互操作性會(huì)存在或多或少的問題,加之技術(shù)環(huán)境的不斷變化,所有這些對(duì)測(cè)試自動(dòng)化的應(yīng)用推廣和深入,都會(huì)帶來很大的影響。還有安全性的錯(cuò)覺,即如果軟件測(cè)試工具沒有發(fā)現(xiàn)被測(cè)軟件的缺陷,并不能說明軟件中不存在問題,可能是測(cè)試工具本身不夠全面或測(cè)試的預(yù)期結(jié)果設(shè)置不對(duì)。 10.2自動(dòng)化測(cè)試技術(shù)

1.代碼分析

代碼分析類似于高級(jí)編譯系統(tǒng),一般針對(duì)不同的高級(jí)語(yǔ)言去構(gòu)造分析工具。在工具中定義類、對(duì)象、函數(shù)、變量、運(yùn)算等定義規(guī)則、語(yǔ)法規(guī)則;在分析時(shí)對(duì)代碼進(jìn)行語(yǔ)法掃描,找出不符合編碼規(guī)范的地方;根據(jù)某種質(zhì)量模型評(píng)價(jià)代碼質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。為了更好地進(jìn)行代碼分析,可以在代碼中設(shè)置一些“斷點(diǎn)”,在這些斷點(diǎn)和其他地方插入一些監(jiān)測(cè)代碼,存于構(gòu)造的可執(zhí)行文件中,隨時(shí)了解這些關(guān)鍵點(diǎn)/關(guān)鍵時(shí)刻的某個(gè)變量的值、內(nèi)存/堆棧狀態(tài)等。

2.錄制和回放

代碼分析是一種白盒測(cè)試的自動(dòng)化方法,錄制(Record)和回放(Playback)則是一種黑盒測(cè)試的自動(dòng)化方法。錄制是將用戶的每一步操作都記錄下來。這種記錄的方式是:把程序用戶界面的像素坐標(biāo)或程序顯示對(duì)象(窗口、按鈕、滾動(dòng)條等)的位置,以及相對(duì)應(yīng)的操作、狀態(tài)變化或?qū)傩宰兓涗浵聛恚缓髮⑺械挠涗涋D(zhuǎn)換為一種腳本語(yǔ)言所描述的過程,以模擬用戶的操作。

回放時(shí),將腳本語(yǔ)言所描述的過程轉(zhuǎn)換為屏幕上的操作,然后將被測(cè)系統(tǒng)的輸出記錄下來同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較以判斷測(cè)試是否成功。通過這種方式,可以大大減輕測(cè)試的工作量,在迭代開發(fā)的過程中,能夠很好地進(jìn)行回歸測(cè)試。除了在功能測(cè)試中用“錄制—回放”技術(shù)外,目前自動(dòng)化負(fù)載測(cè)試解決方案幾乎都要采用這種技術(shù)。負(fù)載測(cè)試中的“錄制—回放”是先由手工完成一遍需要測(cè)試的流程,同時(shí)由計(jì)算機(jī)記錄下這個(gè)流程期間客戶端和服務(wù)器端之間的通信信息,這些信息通常是一些協(xié)議和數(shù)據(jù),并形成特定的腳本程序。然后在系統(tǒng)的統(tǒng)一管理下同時(shí)生成多個(gè)虛擬用戶,并運(yùn)行該腳本,監(jiān)控硬件和軟件平臺(tái)的性能,提供分析報(bào)告或相關(guān)資料。這樣,通過幾臺(tái)機(jī)器就可以模擬出成百上千的用戶對(duì)應(yīng)用系統(tǒng)進(jìn)行負(fù)載能力的測(cè)試。

3.腳本技術(shù)

腳本(Script)作為一種特殊的計(jì)算機(jī)程序,包括數(shù)據(jù)和指令。指令作為控制信息來操作軟件中的對(duì)象,數(shù)據(jù)則主要是被操作對(duì)象屬性的值。腳本技術(shù)是圍繞腳本程序結(jié)構(gòu)而進(jìn)行的設(shè)計(jì),它可以實(shí)現(xiàn)測(cè)試用例所要求的輸入、步驟和驗(yàn)證點(diǎn),在創(chuàng)建腳本和維護(hù)腳本的兩個(gè)不同成本中平衡,以獲得測(cè)試自動(dòng)化的最大收益。

腳本可以通過錄制用戶對(duì)被測(cè)試軟件的操作產(chǎn)生,也可以直接用腳本語(yǔ)言編寫腳本。測(cè)試腳本按照實(shí)現(xiàn)方式和技術(shù)可以分為線性腳本、結(jié)構(gòu)化腳本、共享腳本、數(shù)據(jù)驅(qū)動(dòng)腳本和關(guān)鍵字驅(qū)動(dòng)腳本。

1)線性腳本

線性腳本是錄制手工執(zhí)行的測(cè)試用例得到的腳本,這種腳本包含所有手工測(cè)試的操作步驟,如點(diǎn)擊鼠標(biāo)鍵、功能鍵、箭頭、控制測(cè)試軟件的控制鍵及輸入數(shù)據(jù)等等。如果只使用線性腳本技術(shù),即錄制每個(gè)測(cè)試用例的全部?jī)?nèi)容,相當(dāng)于通過自動(dòng)化測(cè)試工具去模擬手工測(cè)試步驟,則被錄制的這些測(cè)試用例可以被完整地回放。然而實(shí)際情況往往是,由于測(cè)試環(huán)境的稍許改變甚至僅僅是程序界面的小小變動(dòng),會(huì)使整段測(cè)試腳本完全不能運(yùn)行。因此線性腳本在實(shí)際應(yīng)用中已經(jīng)很少使用。

2)結(jié)構(gòu)化腳本

結(jié)構(gòu)化腳本是比線性腳本更加靈活的一種腳本技術(shù),它在線性腳本的基礎(chǔ)上增加了一些相應(yīng)的選擇條件。結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設(shè)計(jì),具有各種邏輯結(jié)構(gòu)(順序、分支、循環(huán)),而且具有函數(shù)調(diào)用功能,使得腳本變得結(jié)構(gòu)化。這樣不僅可以提高腳本的可復(fù)用性,而且可以增加腳本的功能和靈活性。在結(jié)構(gòu)化腳本中,充分利用不同的結(jié)構(gòu)控制語(yǔ)句,可以開發(fā)出易于維護(hù)的合理腳本,更好地支持自動(dòng)化測(cè)試集的實(shí)現(xiàn)。結(jié)構(gòu)化腳本的主要優(yōu)點(diǎn)是其健壯性比較好。由于引入了一些條件判斷語(yǔ)句,可以很容易在腳本內(nèi)加入一些錯(cuò)誤處理功能,降低了腳本對(duì)被測(cè)系統(tǒng)的依賴性。同時(shí),由于加入了循環(huán)結(jié)構(gòu),可以使腳本重復(fù)執(zhí)行一些操作,使下一步的數(shù)據(jù)驅(qū)動(dòng)腳本技術(shù)變得可能。結(jié)構(gòu)化腳本的函數(shù)調(diào)用技術(shù)使得腳本可以成為一個(gè)模塊被其他腳本調(diào)用。

結(jié)構(gòu)化腳本的缺點(diǎn)是腳本更復(fù)雜,而且測(cè)試數(shù)據(jù)仍然“捆綁”在腳本中,使得測(cè)試修改和定制非常復(fù)雜困難。

3)共享腳本

共享腳本意味著一個(gè)腳本可被多個(gè)測(cè)試用例使用,即腳本語(yǔ)言允許一個(gè)腳本調(diào)用另一個(gè)腳本,這樣可以節(jié)省生成腳本的時(shí)間。當(dāng)重復(fù)任務(wù)發(fā)生變化時(shí),只需修改其中的某個(gè)腳本。共享腳本可以是在同一主機(jī)、同一系統(tǒng)之間共享腳本,也可以是在不同主機(jī)、不同系統(tǒng)之間共享腳本。共享腳本開發(fā)的思路是產(chǎn)生一個(gè)執(zhí)行某個(gè)任務(wù)的腳本,不同的測(cè)試可能要重復(fù)這個(gè)任務(wù),當(dāng)要執(zhí)行這個(gè)任務(wù)時(shí)只要在適當(dāng)?shù)牡胤秸{(diào)用這個(gè)腳本就可以了。

共享腳本使得實(shí)現(xiàn)類似的測(cè)試花費(fèi)的開銷較少,刪除了明顯的重復(fù)代碼,使代碼更加簡(jiǎn)潔易懂。但共享腳本的編寫需要更高的編程技能,提高了對(duì)測(cè)試工程師的要求。

4)數(shù)據(jù)驅(qū)動(dòng)腳本

數(shù)據(jù)驅(qū)動(dòng)腳本是將測(cè)試輸入和預(yù)期輸出存儲(chǔ)在獨(dú)立的數(shù)據(jù)文件中,而不是與測(cè)試操作捆綁在一起放在測(cè)試腳本中。測(cè)試腳本中僅僅包含了一些與軟件界面交互的操作信息,執(zhí)行測(cè)試時(shí),所需的數(shù)據(jù)直接從文件中讀取,而不是從測(cè)試腳本中讀取,這樣就完成了測(cè)試數(shù)據(jù)和測(cè)試操作的分離。這種方法最大的好處是同一個(gè)腳本允許不同的測(cè)試。需要對(duì)數(shù)據(jù)進(jìn)行修改時(shí),也不必修改執(zhí)行的腳本。使用數(shù)據(jù)驅(qū)動(dòng)腳本可以以較小的開銷實(shí)現(xiàn)較多的測(cè)試用例,這可以通過為一個(gè)測(cè)試腳本指定不同的測(cè)試數(shù)據(jù)文件達(dá)到。將數(shù)據(jù)文件單獨(dú)列出,選擇合適的數(shù)據(jù)格式和形式,可將測(cè)試工程師的注意力集中到數(shù)據(jù)的維護(hù)和測(cè)試上,達(dá)到簡(jiǎn)化數(shù)據(jù)、減少出錯(cuò)概率的目的。數(shù)據(jù)驅(qū)動(dòng)腳本技術(shù)給測(cè)試用例的數(shù)據(jù)輸入和維護(hù)帶來了極大的方便。

5)關(guān)鍵字驅(qū)動(dòng)腳本

關(guān)鍵字驅(qū)動(dòng)技術(shù)是數(shù)據(jù)驅(qū)動(dòng)技術(shù)的一種改進(jìn)類型。數(shù)據(jù)驅(qū)動(dòng)技術(shù)的限制是每個(gè)測(cè)試用例執(zhí)行的步驟和操作都必須一樣,測(cè)試的邏輯建立在腳本中而不是獨(dú)立的數(shù)據(jù)文件中。而關(guān)鍵字驅(qū)動(dòng)技術(shù)將測(cè)試的邏輯從腳本中剝離開來,它將測(cè)試邏輯按照關(guān)鍵字進(jìn)行分解,形成數(shù)據(jù)文件,關(guān)鍵字對(duì)應(yīng)封裝的業(yè)務(wù)邏輯。主要關(guān)鍵字包括三類:被操作對(duì)象(Item)、操作(Operation)和值(Value),用面向?qū)ο笮问娇蓪⑵浔憩F(xiàn)為Item.Operation(Value)。關(guān)鍵字驅(qū)動(dòng)腳本技術(shù)將被測(cè)試軟件的業(yè)務(wù)邏輯從測(cè)試腳本中脫離出來,克服了數(shù)據(jù)驅(qū)動(dòng)技術(shù)對(duì)業(yè)務(wù)無法靈活適應(yīng)的缺點(diǎn),實(shí)現(xiàn)了關(guān)鍵字驅(qū)動(dòng)技術(shù)所帶來的數(shù)據(jù)、業(yè)務(wù)和腳本三者的分離。關(guān)鍵字驅(qū)動(dòng)腳本的數(shù)量不隨測(cè)試用例的數(shù)量變化,而僅隨軟件規(guī)模而增加。關(guān)鍵字驅(qū)動(dòng)腳本技術(shù)可以極大地減少腳本的維護(hù)開銷,加速自動(dòng)化測(cè)試的實(shí)現(xiàn),提高自動(dòng)化測(cè)試的效率。

4.自動(dòng)比較技術(shù)

測(cè)試驗(yàn)證是檢驗(yàn)軟件是否產(chǎn)生了正確輸出的過程,是通過在測(cè)試的實(shí)際輸出與預(yù)期輸出(例如,當(dāng)軟件正確執(zhí)行時(shí)的輸出)之間完成一次或多次比較來實(shí)現(xiàn)的。進(jìn)行自動(dòng)化測(cè)試工作,自動(dòng)比較就成為一個(gè)必需的環(huán)節(jié),有計(jì)劃地進(jìn)行比較會(huì)比隨意地比較有更高的效率和發(fā)現(xiàn)問題的能力。

在自動(dòng)化測(cè)試中,預(yù)期輸出是事先定義的。在測(cè)試過程中運(yùn)行腳本,將捕獲的結(jié)果和預(yù)期的輸出進(jìn)行比較,從而確定測(cè)試用例是否通過,這就需要自動(dòng)比較技術(shù)。自動(dòng)比較的內(nèi)容可以是多方面的,包括基于磁盤輸出的比較,如對(duì)數(shù)據(jù)文件的比較;基于界面輸出的比較,如對(duì)顯示位圖的比較;基于多媒體輸出的比較,如對(duì)聲音的比較;還包括其他輸出的內(nèi)容的比較。

比較可以是簡(jiǎn)單的比較,僅匹配實(shí)際輸出與預(yù)期輸出是否完全相同,這是自動(dòng)化比較的基礎(chǔ)。智能比較是允許用已知的差異來比較實(shí)際輸出和預(yù)期輸出。比如,要求比較包含日期信息的輸出報(bào)表的內(nèi)容。如果使用簡(jiǎn)單比較,顯然是不行的,因?yàn)槊看紊蓤?bào)表的日期信息肯定是不同的。這時(shí)就需要智能比較,忽略日期的差別,比較其他內(nèi)容,甚至還可以忽略日期的具體內(nèi)容,比較日期的格式,要求日期按特定格式輸出。智能比較需要使用較為復(fù)雜的比較手段,包括正則表達(dá)式的搜索技術(shù)、屏蔽的搜索技術(shù)等。

5.虛擬用戶技術(shù)

將業(yè)務(wù)流程轉(zhuǎn)化為測(cè)試腳本,就是創(chuàng)建虛擬用戶腳本或虛擬用戶。創(chuàng)建虛擬用戶時(shí),將被測(cè)軟件的業(yè)務(wù)流程從頭至尾進(jìn)行確認(rèn)和記錄,弄清每步操作的細(xì)節(jié)和時(shí)間,并能精確地轉(zhuǎn)化為腳本。此過程類似制造一個(gè)能夠模仿人的行為和動(dòng)作的機(jī)器人的過程。這個(gè)步驟非常重要,在這里將現(xiàn)實(shí)世界中的單個(gè)用戶行為比較精確地轉(zhuǎn)化為計(jì)算機(jī)程序語(yǔ)言。虛擬用戶通過驅(qū)動(dòng)一個(gè)真正的客戶程序來模擬真實(shí)用戶。一般通過多進(jìn)程或多線程來創(chuàng)建多個(gè)虛擬用戶。

虛擬用戶對(duì)于性能測(cè)試意義重大。一些負(fù)載測(cè)試工具可用較少的硬件資源模擬成千上萬(wàn)虛擬用戶同時(shí)訪問被測(cè)軟件,并可模擬來自不同IP地址、不同瀏覽器類型以及不同網(wǎng)絡(luò)連接方式的請(qǐng)求,同時(shí)可實(shí)時(shí)監(jiān)視系統(tǒng)性能指標(biāo)。

10.3自動(dòng)化測(cè)試工具

10.3.1測(cè)試工具分類

測(cè)試工具可以從不同的方面去分類。根據(jù)測(cè)試方法不同,自動(dòng)化測(cè)試工具可以分為白盒測(cè)試工具和黑盒測(cè)試工具。根據(jù)測(cè)試的對(duì)象和目的不同,自動(dòng)化測(cè)試工具可以分為單元測(cè)試工具、功能測(cè)試工具、負(fù)載測(cè)試工具、數(shù)據(jù)庫(kù)測(cè)試工具、嵌入式測(cè)試工具、頁(yè)面鏈接測(cè)試工具、測(cè)試管理工具等。

1.白盒測(cè)試工具

白盒測(cè)試工具一般是針對(duì)代碼進(jìn)行測(cè)試,測(cè)試所發(fā)現(xiàn)的缺陷可以定位到代碼級(jí)。根據(jù)測(cè)試工具工作原理的不同,白盒測(cè)試工具可分為靜態(tài)測(cè)試工具和動(dòng)態(tài)測(cè)試工具。

靜態(tài)測(cè)試工具是在不執(zhí)行程序的情況下,分析軟件的特性。靜態(tài)測(cè)試工具一般是對(duì)代碼進(jìn)行語(yǔ)法掃描,找出不符合編碼規(guī)范的地方,根據(jù)某種質(zhì)量模型評(píng)價(jià)代碼的質(zhì)量,生成系統(tǒng)的調(diào)用關(guān)系圖等。

動(dòng)態(tài)測(cè)試工具與靜態(tài)測(cè)試工具不同,動(dòng)態(tài)測(cè)試工具一般采用“插樁”的方式,向代碼生成的可執(zhí)行文件中插入一些監(jiān)測(cè)代碼,用來統(tǒng)計(jì)程序運(yùn)行時(shí)的數(shù)據(jù)。其與靜態(tài)測(cè)試工具最大的不同就是動(dòng)態(tài)測(cè)試工具要求被測(cè)系統(tǒng)實(shí)際運(yùn)行。

2.黑盒測(cè)試工具

黑盒測(cè)試工具是在明確軟件產(chǎn)品應(yīng)具有的功能的條件下,完全不考慮被測(cè)程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特性,通過測(cè)試來檢驗(yàn)軟件功能是否按照軟件需求規(guī)格的說明正常工作。

黑盒測(cè)試工具的一般原理是利用腳本的錄制/回放,模擬用戶的操作,然后將被測(cè)系統(tǒng)的輸出記錄下來同預(yù)先給定的預(yù)期結(jié)果進(jìn)行比較。黑盒測(cè)試工具可以大大減輕黑盒測(cè)試的工作量,在迭代開發(fā)的過程中,能夠很好地進(jìn)行回歸測(cè)試。按照完成的職能不同,黑盒測(cè)試工具可以分為兩種:

(1)功能測(cè)試工具——用于檢測(cè)程序能否達(dá)到預(yù)期的功能要求并正常運(yùn)行。

(2)性能測(cè)試工具——用于確定軟件和系統(tǒng)的性能。

功能測(cè)試工具通過自動(dòng)錄制、檢測(cè)和回放用戶的應(yīng)用操作,將被測(cè)系統(tǒng)的輸出記錄同預(yù)先給定的標(biāo)準(zhǔn)結(jié)果比較,功能測(cè)試工具能夠有效地幫助測(cè)試人員對(duì)復(fù)雜的企業(yè)級(jí)應(yīng)用的不同發(fā)布版本的功能進(jìn)行測(cè)試,提高測(cè)試人員的工作效率和質(zhì)量。其主要目的是檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能并正常運(yùn)行。性能測(cè)試工具通常指用來支持壓力、負(fù)載測(cè)試,能夠錄制和生成腳本、設(shè)置和部署場(chǎng)景、產(chǎn)生并發(fā)用戶和向系統(tǒng)施加持續(xù)壓力的工具。性能測(cè)試工具通過實(shí)時(shí)性能監(jiān)測(cè)來確認(rèn)和查找問題,并針對(duì)所發(fā)現(xiàn)問題對(duì)系統(tǒng)性能進(jìn)行優(yōu)化,確保應(yīng)用的成功部署。性能測(cè)試工具能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試,通過這些測(cè)試企業(yè)能最大限度地縮短測(cè)試時(shí)間,優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。

3.測(cè)試管理工具

一般而言,測(cè)試管理工具對(duì)測(cè)試需求、測(cè)試計(jì)劃、測(cè)試用例、測(cè)試實(shí)施進(jìn)行管理,而且測(cè)試管理工具還包括對(duì)缺陷的跟蹤管理。測(cè)試管理工具能讓測(cè)試人員、開發(fā)人員或其他的IT人員通過一個(gè)中央數(shù)據(jù)倉(cāng)庫(kù),在不同地方就能交互信息。

一般情況下,測(cè)試管理工具應(yīng)包括以下內(nèi)容:

(1)測(cè)試用例管理。

(2)缺陷跟蹤管理(問題跟蹤管理)。

(3)配置管理。

4.專用測(cè)試工具

除了上述的自動(dòng)化測(cè)試工具外,還有一些專用的自動(dòng)化測(cè)試工具,例如,針對(duì)數(shù)據(jù)庫(kù)測(cè)試的TestBytes,對(duì)Web系統(tǒng)中的鏈接進(jìn)行測(cè)試的XenuLinkSleuth等工具。10.3.2測(cè)試工具介紹

1.白盒測(cè)試工具

1)?C++Test

C++Test是Parasoft公司出品的一個(gè)針對(duì)C/C++源代碼進(jìn)行自動(dòng)化單元測(cè)試的工具。它可以自動(dòng)測(cè)試任何C/C++函數(shù)、類或部件,而不需要編寫測(cè)試用例、測(cè)試驅(qū)動(dòng)程序或樁調(diào)用代碼。C++Test能夠自動(dòng)測(cè)試代碼構(gòu)造(白盒測(cè)試)、測(cè)試代碼的功能性(黑盒測(cè)試)和維護(hù)代碼的完整性(回歸測(cè)試)。

白盒測(cè)試時(shí),C++Test對(duì)C/C++源代碼進(jìn)行分析,針對(duì)所有的類的成員函數(shù)(包括:公共的、保護(hù)的以及私有類型的)進(jìn)行測(cè)試。在此狀態(tài)下,軟件針對(duì)指定的文件、類或者是函數(shù)自動(dòng)生成測(cè)試用例。黑盒測(cè)試時(shí),不對(duì)源代碼進(jìn)行分析,并且只針對(duì)類的公共接口函數(shù)進(jìn)行測(cè)試。在此狀態(tài)下,軟件不生成測(cè)試用例,而是直接運(yùn)行在“測(cè)試用例編輯器”中已有的測(cè)試用例(可以是手工添加的)。

回歸功能測(cè)試時(shí),在修改源代碼后用原有的測(cè)試用例進(jìn)行重新測(cè)試。在實(shí)際使用中,應(yīng)首先用Record命令執(zhí)行一遍白盒測(cè)試,讓軟件根據(jù)函數(shù)自動(dòng)生成相應(yīng)的測(cè)試用例,然后再根據(jù)需要手工添加一些測(cè)試用例,最后再通過Play命令執(zhí)行一遍黑盒測(cè)試。

C++Test能很容易地快速將單元級(jí)的測(cè)試覆蓋率達(dá)到100%,而且可自動(dòng)生成覆蓋率報(bào)告。

參考網(wǎng)站:/jsp/home.jsp

2)?Jtest

Jtest是Parasoft公司推出的一款針對(duì)Java語(yǔ)言的自動(dòng)化白盒測(cè)試工具,它通過自動(dòng)實(shí)現(xiàn)Java的單元測(cè)試和代碼標(biāo)準(zhǔn)校驗(yàn),來提高代碼的可靠性。

Jtest是一個(gè)高度自動(dòng)化、智能化的測(cè)試解決方案,它可以直接讀取、分析代碼,無需任何手工的干預(yù)就可以自動(dòng)地完成單元測(cè)試,包括全自動(dòng)的白盒測(cè)試、黑盒測(cè)試和回歸

測(cè)試。測(cè)試時(shí),Jtest先分析每個(gè)Java類,然后自動(dòng)生成JUnit測(cè)試用例并執(zhí)行用例,從而實(shí)現(xiàn)代碼的最大覆蓋,并將代碼運(yùn)行時(shí)未處理的異常暴露出來;另外,它還可以檢查以dbc(designbycontract)規(guī)范開發(fā)的代碼的正確性。用戶還可以通過擴(kuò)展測(cè)試用例的自動(dòng)生成器來添加更多的JUnit用例。Jtest還能按照現(xiàn)有的編碼標(biāo)準(zhǔn)來檢查并自動(dòng)糾正大多數(shù)常見的編碼規(guī)則上的偏差,用戶可自定義這些標(biāo)準(zhǔn),通過簡(jiǎn)單的幾個(gè)點(diǎn)擊,就能預(yù)防類似于未處理異常、函數(shù)錯(cuò)誤、內(nèi)存泄漏、性能問題、安全隱患這樣的代碼問題。

參考網(wǎng)站:/jsp/home.jsp

3)?CodeWizard

在增強(qiáng)軟件質(zhì)量的同時(shí)縮短開發(fā)時(shí)間的關(guān)鍵是在開發(fā)的初始階段要防止錯(cuò)誤的發(fā)生,防止錯(cuò)誤的一個(gè)最好的方法就是按代碼開發(fā)規(guī)范進(jìn)行。CodeWizard是Parasoft公司推出的一款先進(jìn)的自動(dòng)化C/C++源代碼分析工具。CodeWizard內(nèi)嵌了超過500個(gè)經(jīng)過業(yè)界驗(yàn)證的編碼規(guī)范來自動(dòng)甄別編譯器無法發(fā)現(xiàn)的危險(xiǎn)代碼結(jié)構(gòu),并通過AEP自動(dòng)防錯(cuò)技術(shù)記憶錯(cuò)誤類型,防止類似錯(cuò)誤再次發(fā)生。CodeWizard通過RuleWizard功能可以很方便地建立新的、自定義的規(guī)范,或者阻止某條規(guī)范的分析。使用CodeWizard可簡(jiǎn)化代碼注釋,同時(shí)使得代碼更易讀易維護(hù)。

參考網(wǎng)站:/jsp/home.jsp

4)?JUnit

JUnit是一個(gè)開源的Java測(cè)試框架,它是XUint測(cè)試體系架構(gòu)的一種實(shí)現(xiàn)。在JUnit單元測(cè)試框架的設(shè)計(jì)時(shí),設(shè)定了三個(gè)總體目標(biāo):第一個(gè)是簡(jiǎn)化測(cè)試的編寫,這種簡(jiǎn)化包括測(cè)試框架的學(xué)習(xí)和實(shí)際測(cè)試單元的編寫;第二個(gè)是使測(cè)試單元保持持久性;第三個(gè)則是可以利用既有的測(cè)試來編寫相關(guān)的測(cè)試。

JUnit是通用的測(cè)試Java程序的測(cè)試框架,可以對(duì)Java代碼進(jìn)行白盒測(cè)試。由于JUnit相對(duì)獨(dú)立于所編寫的代碼,所以測(cè)試代碼的編寫可以先于實(shí)現(xiàn)代碼的編寫。XP中推崇的testfirstdesign的實(shí)現(xiàn)有了現(xiàn)成的手段:用JUnit寫測(cè)試代碼,運(yùn)行測(cè)試,測(cè)試失敗,修改實(shí)現(xiàn)代碼,再運(yùn)行測(cè)試,直到測(cè)試成功。以后對(duì)代碼的修改和優(yōu)化,運(yùn)行測(cè)試成功,則修改成功。

JUnit可對(duì)Java應(yīng)用程序、Filter、Servlet、EJB、JSP、數(shù)據(jù)庫(kù)應(yīng)用程序、Taglib等進(jìn)行單元測(cè)試,而且JUnit是開放源代碼的,可按需要進(jìn)行擴(kuò)展。

5)?CppUnit

CppUnit是一個(gè)基于LGPL的開源項(xiàng)目,最初版本移植自JUnit,是一個(gè)非常優(yōu)秀的開源測(cè)試框架。CppUnit和JUnit一樣,主要思想來源于極限編程(XProgramming)。主要功能就是對(duì)單元測(cè)試進(jìn)行管理,并可進(jìn)行自動(dòng)化測(cè)試。CppUnit設(shè)計(jì)遵循很多設(shè)計(jì)模式,代碼結(jié)構(gòu)易于理解。

CppUnit是一個(gè)單元測(cè)試框架,是目前最廣泛使用的單元測(cè)試框架之一。單元測(cè)試框架是實(shí)現(xiàn)編寫、運(yùn)行單元測(cè)試并生成測(cè)試結(jié)果報(bào)告的軟件程序集。CppUnit能方便快速構(gòu)造測(cè)試用例,可視化運(yùn)行測(cè)試、生成測(cè)試結(jié)果報(bào)告,并提供與IDE集成的快速缺陷定位功能。

參考網(wǎng)站:

6)?HttpUnit

HttpUnit是基于JUnit的一個(gè)測(cè)試框架,主要關(guān)注于測(cè)試Web應(yīng)用,解決使用JUnit框架無法對(duì)遠(yuǎn)程Web內(nèi)容進(jìn)行測(cè)試的弊端。

HttpUnit能模擬瀏覽器的動(dòng)作,如提交表單、JavaScript運(yùn)行、基本HTTP認(rèn)證、Cookies建立以及自動(dòng)頁(yè)面重定向,通過編寫代碼可以處理取回來的文本、XML、DOM、表單、表、鏈接等。HttpUnit還提供了一個(gè)模擬Servlet容器,讓測(cè)試者不需要發(fā)布Servlet就可以對(duì)Servlet的內(nèi)部代碼進(jìn)行測(cè)試。當(dāng)進(jìn)行Servlet等測(cè)試時(shí),可以不需要啟動(dòng)相關(guān)的Web或應(yīng)用服務(wù)器,HttpUnit可以通過讀取并分析Web.xml來自動(dòng)定位相應(yīng)的類。也就是說,在網(wǎng)站開發(fā)的過程中,使用了HttpUnit的測(cè)試程序可以在服務(wù)器端進(jìn)行網(wǎng)站的測(cè)試。

7)?HtmlUnit

HtmlUnit不是一個(gè)通用的單元測(cè)試框架,它是JUnit的一個(gè)擴(kuò)展測(cè)試框架。HtmlUnit以一種特殊的方式來模擬瀏覽器進(jìn)行測(cè)試的目的,用于另一個(gè)測(cè)試框架中。HtmlUnit將返回文檔模擬成HTML,這樣便可以直接處理這些文檔了。HtmlUnit使用table、form等標(biāo)識(shí)符將測(cè)試文檔作為HTML來處理。HtmlUnit同樣需要遵循JUnit測(cè)試框架結(jié)構(gòu)的Java?測(cè)試程序。

參考網(wǎng)站:

8)?EMMA

EMMA是一個(gè)用于檢測(cè)和報(bào)告Java代碼覆蓋率的開源工具。它不但能很好地用于小型項(xiàng)目,很方便得出覆蓋率報(bào)告,而且適用于大型企業(yè)級(jí)別的項(xiàng)目。

EMMA支持許多種級(jí)別的覆蓋率指標(biāo):包、類、方法、語(yǔ)句塊和行,特別是它能測(cè)出某一行是否只是被部分覆蓋(如條件語(yǔ)句短路的情況)。EMMA能生成TEXT、XML、HTML等形式的報(bào)告,以滿足不同的需求。其HTML報(bào)告提供下鉆功能,我們能夠從package開始一步步地鏈接到我們所關(guān)注的某個(gè)方法。EMMA能和Makefile、Ant集成,便于應(yīng)用于大型項(xiàng)目。EMMA的效率很高,這對(duì)于大型項(xiàng)目來說很重要。

EMMA是通過向.class文件中插入字節(jié)碼的方式來跟蹤記錄被運(yùn)行代碼信息的。EMMA支持兩種模式:Onthefly和Offline模式。Onthefly模式往加載的類中加入字節(jié)碼,相當(dāng)于用EMMA實(shí)現(xiàn)的applicationclassloader替代原來的applicationclassloader。Offline模式在類被加載前加入字節(jié)碼。

EMMA支持兩種運(yùn)行方式:Commandline(命令行)和Ant。命令行一般和Onthefly模式一起使用,對(duì)于簡(jiǎn)單的項(xiàng)目能夠快速產(chǎn)生覆蓋率報(bào)告。通過Anttask來運(yùn)行EMMA的話,特別適用于大型的項(xiàng)目。

參考網(wǎng)站:/

9)?Cobertura

Cobertura(cobertura在西班牙語(yǔ)中是覆蓋的意思)是一個(gè)基于jcoverage的免費(fèi)Java工具,用于度量測(cè)試覆蓋率并發(fā)現(xiàn)缺陷。它通過用額外的語(yǔ)句記錄在執(zhí)行測(cè)試包時(shí),哪些行被測(cè)試到、哪些行沒有被測(cè)試到,來測(cè)量測(cè)試覆蓋率。然后它生成一個(gè)HTML或者XML格式的報(bào)告,指出代碼中的哪些包、哪些類、哪些方法和哪些行沒有測(cè)試到,之后可以針對(duì)這些特定的區(qū)域編寫更多的測(cè)試代碼,以發(fā)現(xiàn)所有隱藏的缺陷。除了找出未測(cè)試到的代碼并發(fā)現(xiàn)缺陷外,Cobertura還可以通過標(biāo)記無用的、執(zhí)行不到的代碼來優(yōu)化代碼,并能提供API實(shí)際操作的內(nèi)部信息。

參考網(wǎng)站:/

2.黑盒功能測(cè)試工具

1)?WinRunner

HP-MercuryWinRunner是一種企業(yè)級(jí)的功能測(cè)試工具,用于檢測(cè)應(yīng)用程序是否能夠達(dá)到預(yù)期的功能及正常運(yùn)行。通過自動(dòng)捕獲,檢測(cè)和重復(fù)用戶交互的操作,WinRunner能夠有效地幫助測(cè)試人員對(duì)復(fù)雜的企業(yè)級(jí)應(yīng)用的不同發(fā)布版進(jìn)行測(cè)試,提高測(cè)試人員的工作效率和質(zhì)量,確??缙脚_(tái)的、復(fù)雜的企業(yè)級(jí)應(yīng)用無故障發(fā)布及長(zhǎng)期穩(wěn)定運(yùn)行。

WinRunner具有下列功能和特點(diǎn):

(1)?輕松創(chuàng)建測(cè)試。用WinRunner創(chuàng)立一個(gè)測(cè)試,只需記錄一個(gè)標(biāo)準(zhǔn)的業(yè)務(wù)流程。WinRunner直觀的記錄流程能讓測(cè)試者在GUI上輕輕點(diǎn)擊鼠標(biāo)就可以建立測(cè)試,即使技術(shù)知識(shí)有限的用戶也能生成完整的測(cè)試。測(cè)試者還可以直接編輯測(cè)試指令來滿足各種復(fù)雜測(cè)試的需求。WinRunner將兩種測(cè)試創(chuàng)建方式結(jié)合在一個(gè)環(huán)境下,以適應(yīng)不同的背景支持和不同團(tuán)隊(duì)的需求。

(2)插入檢測(cè)點(diǎn)。在記錄一個(gè)測(cè)試的過程中,可插入檢測(cè)點(diǎn)。在插入檢測(cè)點(diǎn)后,WinRunner會(huì)收集一套指標(biāo),在測(cè)試運(yùn)行時(shí)對(duì)其進(jìn)行驗(yàn)證。WinRunner允許使用幾種不同類型的檢查點(diǎn),包括文本、GUI、位圖和數(shù)據(jù)庫(kù)等類型。

(3)檢驗(yàn)數(shù)據(jù)。除了創(chuàng)建并運(yùn)行測(cè)試,WinRunner還能驗(yàn)證數(shù)據(jù)庫(kù)的數(shù)據(jù)值,從而確保交易的準(zhǔn)確性。例如,在測(cè)試創(chuàng)建時(shí),可以設(shè)定哪些數(shù)據(jù)庫(kù)表格和記錄資料需要檢測(cè)。在回放時(shí),測(cè)試程序會(huì)將數(shù)據(jù)庫(kù)內(nèi)的實(shí)際數(shù)值與預(yù)期的數(shù)值進(jìn)行核對(duì)。WinRunner能自動(dòng)顯示檢測(cè)結(jié)果,并標(biāo)識(shí)出有更新、修改、測(cè)試或插入的記錄。

(4)增強(qiáng)測(cè)試。為了全面地測(cè)試一個(gè)應(yīng)用程序,需要了解在不同類型的數(shù)據(jù)下是如何運(yùn)行的。使用WinRunner的DataDriverWizard,只需要點(diǎn)擊幾下鼠標(biāo),就能簡(jiǎn)單地將一個(gè)記錄的業(yè)務(wù)流程轉(zhuǎn)化為一個(gè)數(shù)據(jù)驅(qū)動(dòng)的測(cè)試,以此來反映多個(gè)用戶各自獨(dú)特且真實(shí)的操作行為。WinRunner的另一個(gè)能加強(qiáng)測(cè)試質(zhì)量的特征是具有FunctionGenerator,它是一種可視工具,能快速可靠地測(cè)試增加功能。使用FunctionGenerator,可以從目錄列表里選擇一個(gè)功能加到測(cè)試中以提高測(cè)試能力。

(5)運(yùn)行測(cè)試。在測(cè)試創(chuàng)建完成、插入檢查點(diǎn),并做出一些必要的功能添加之后,就可以開始運(yùn)行測(cè)試。當(dāng)WinRunner執(zhí)行測(cè)試時(shí),它會(huì)自動(dòng)操作應(yīng)用程序,正如一個(gè)真實(shí)用戶根據(jù)記錄流程執(zhí)行著每一步的操作。

(6)分析結(jié)果。一旦測(cè)試運(yùn)行后,需要分析測(cè)試結(jié)果。WinRunner的互動(dòng)式報(bào)告工具會(huì)列出在測(cè)試中發(fā)現(xiàn)的錯(cuò)誤和出錯(cuò)的位置。通過提供這種詳盡的、易懂的報(bào)告,WinRunner可以幫助解釋所得的結(jié)果,這些報(bào)告對(duì)在測(cè)試運(yùn)行中發(fā)生的重要事件進(jìn)行描述。

(7)維護(hù)測(cè)試。隨著時(shí)間的推移,開發(fā)人員會(huì)對(duì)應(yīng)用程序做進(jìn)一步的修改,并需要另加額外的測(cè)試。使用WinRunner,不必為應(yīng)用程序的每一次改動(dòng)創(chuàng)建新的測(cè)試,它會(huì)自動(dòng)創(chuàng)立在程序應(yīng)用周期內(nèi)可重復(fù)使用的測(cè)試。

Winrunner用類C語(yǔ)言開發(fā),編程能力強(qiáng),但對(duì)瀏覽器、ActiveX控件的支持不如QuickTest強(qiáng)。

參考網(wǎng)站:

2)?QuickTest

HP-MercuryQuickTest是一個(gè)自動(dòng)化功能測(cè)試工具,主要應(yīng)用在回歸測(cè)試中。QuickTest針對(duì)的是GUI應(yīng)用程序,包括傳統(tǒng)的Windows應(yīng)用程序,以及現(xiàn)在越來越流行的Web應(yīng)用。

QuickTest采用關(guān)鍵字驅(qū)動(dòng)的測(cè)試?yán)砟?,能完全?jiǎn)化測(cè)試的創(chuàng)建和維護(hù)工作,能便捷地插入、修改、數(shù)據(jù)驅(qū)動(dòng)和移除測(cè)試步驟,并且通過所集成的錄制能力來捕獲測(cè)試的步驟,自動(dòng)生成VBScript來描述測(cè)試過程。因此可以通過修改生成的自動(dòng)化測(cè)試腳本優(yōu)化測(cè)試過程。QuickTest通過活動(dòng)屏幕將文檔和一個(gè)截屏相結(jié)合,還可以自動(dòng)引入檢查點(diǎn)來驗(yàn)證應(yīng)用的屬性和功能點(diǎn),比如確認(rèn)輸出量或檢查鏈接的有效性。

QuickTest支持多種企業(yè)環(huán)境的功能測(cè)試,包括Windows、Web、.NET、Java/J2EE、SAP、Siebel、Oracle、VisualBasic、ActiveX、Webservices等。

使用QuickTest進(jìn)行測(cè)試,包括創(chuàng)建測(cè)試、插入檢查點(diǎn)、檢驗(yàn)數(shù)據(jù)、增強(qiáng)測(cè)試、運(yùn)行測(cè)試、分析結(jié)果和維護(hù)測(cè)試等活動(dòng)。

參考網(wǎng)站:

3)?Robot

IBMRationalRobot是業(yè)界最頂尖的功能測(cè)試工具,可以對(duì)使用各種集成開發(fā)環(huán)境(IDE)和語(yǔ)言建立的軟件應(yīng)用程序創(chuàng)建、修改并執(zhí)行自動(dòng)化的功能測(cè)試、分布式功能測(cè)試、回歸測(cè)試和集成測(cè)試。

Robot是一種可擴(kuò)展的、靈活的功能測(cè)試工具,經(jīng)驗(yàn)豐富的測(cè)試人員可以用它來修改測(cè)試腳本,改進(jìn)測(cè)試的深度。Robot使用SQABasic語(yǔ)言對(duì)測(cè)試腳本進(jìn)行編輯。SQABasic遵循VisualBasic的語(yǔ)法規(guī)則,并且為測(cè)試人員提供了易于閱讀的腳本語(yǔ)言。通過使用這種語(yǔ)言,即便是編程經(jīng)驗(yàn)很少的測(cè)試人員也能夠很容易地理解代碼的含義。對(duì)于那些有豐富編程經(jīng)驗(yàn)的人來說,使用SQA可以非常靈活地進(jìn)行一些高級(jí)的編程。

Robot提供了非常靈活的執(zhí)行測(cè)試腳本的方式,用戶可以通過Robot圖形界面和命令行執(zhí)行測(cè)試腳本,也可以從RationalTestManager按照不同的配置計(jì)劃在遠(yuǎn)程機(jī)器上執(zhí)行測(cè)試腳本。

參考網(wǎng)站:

4)?SilkTest

Segue公司的SilkTest是業(yè)界領(lǐng)先的、用于對(duì)企業(yè)級(jí)應(yīng)用進(jìn)行功能測(cè)試的產(chǎn)品,可用于測(cè)試Web、Java或是傳統(tǒng)的C/S結(jié)構(gòu)。它提供了用于測(cè)試的創(chuàng)建和定制的工作流設(shè)置、測(cè)試計(jì)劃和管理、直接的數(shù)據(jù)庫(kù)訪問及校驗(yàn)等功能,使用戶能夠高效率地進(jìn)行軟件自動(dòng)化測(cè)試。

為提高測(cè)試效率,SilkTest提供多種手段來提高測(cè)試的自動(dòng)化程度,包括測(cè)試腳本的生成、測(cè)試數(shù)據(jù)的組織、測(cè)試過程的自動(dòng)化、測(cè)試結(jié)果的分析等。在測(cè)試腳本的生成過程中,SilkTest通過動(dòng)態(tài)錄制技術(shù),錄制用戶的操作過程,快速生成測(cè)試腳本。在測(cè)試過程中,SilkTest還提供了獨(dú)有的恢復(fù)系統(tǒng)(RecoverySystem),允許測(cè)試可在全天候無人看管條件下運(yùn)行。在測(cè)試過程中一些錯(cuò)誤導(dǎo)致被測(cè)應(yīng)用崩潰時(shí),錯(cuò)誤可被發(fā)現(xiàn)并記錄下來。之后,被測(cè)應(yīng)用可以被恢復(fù)到它原來的基本狀態(tài),以便進(jìn)行下一個(gè)測(cè)試用例的測(cè)試。

參考網(wǎng)站:

5)?QARun

QARun的測(cè)試實(shí)現(xiàn)方式是通過鼠標(biāo)移動(dòng)、鍵盤點(diǎn)擊操作被測(cè)應(yīng)用,隨即得到相應(yīng)的測(cè)試腳本,對(duì)該腳本可以進(jìn)行編輯和調(diào)試。在記錄的過程中可針對(duì)被測(cè)應(yīng)用中所包含的功能點(diǎn)進(jìn)行基線值的建立,換句話說就是在插入檢查點(diǎn)的同時(shí)建立期望值。在這里檢查點(diǎn)是目標(biāo)系統(tǒng)的一個(gè)特殊方面在一特定點(diǎn)的期望狀態(tài)。通常,檢查點(diǎn)在QARun提示目標(biāo)系統(tǒng)執(zhí)行一系列事件之后被執(zhí)行。檢查點(diǎn)用于確定實(shí)際結(jié)果與期望結(jié)果是否相同。

3.性能測(cè)試工具

1)?LoadRunner

HP-MercuryLoadRunner是一種預(yù)測(cè)系統(tǒng)行為和性能的負(fù)載測(cè)試工具。通過以模擬成千上萬(wàn)的用戶實(shí)施并發(fā)負(fù)載及實(shí)時(shí)性能監(jiān)測(cè)的方式來確認(rèn)和查找問題,LoadRunner能夠?qū)φ麄€(gè)企業(yè)架構(gòu)進(jìn)行測(cè)試。

LoadRunner適用于各種體系架構(gòu),能預(yù)測(cè)系統(tǒng)行為并優(yōu)化系統(tǒng)性能。LoadRunner的測(cè)試對(duì)象是整個(gè)企業(yè)的系統(tǒng),通過模擬實(shí)際用戶的操作行為和實(shí)行實(shí)時(shí)性能監(jiān)測(cè),來更快地查找和發(fā)現(xiàn)問題。此外,LoadRunner能支持廣泛的協(xié)議和技術(shù),為特殊環(huán)境提供特殊的解決方案。通過使用LoadRunner,企業(yè)能最大限度地縮短測(cè)試時(shí)間、優(yōu)化性能和加速應(yīng)用系統(tǒng)的發(fā)布周期。

LoadRunner具有下列功能和特點(diǎn):

(1)輕松創(chuàng)建虛擬用戶。?LoadRunner的虛擬用戶產(chǎn)生器(VirtualUserGenerator)能很簡(jiǎn)便地創(chuàng)立起系統(tǒng)負(fù)載。該引擎能夠生成虛擬用戶,以虛擬用戶的方式模擬真實(shí)用戶的業(yè)務(wù)操作行為。利用虛擬用戶,可以在Windows、UNIX或Linux機(jī)器上同時(shí)產(chǎn)生成千上萬(wàn)個(gè)用戶訪問,極大地減少負(fù)載測(cè)試所需的硬件和人力資源。

(2)創(chuàng)建真實(shí)的負(fù)載。腳本錄制好后,根據(jù)測(cè)試的不同業(yè)務(wù),創(chuàng)建不同的業(yè)務(wù)組合,設(shè)定不同的虛擬用戶數(shù)量,來模擬不同的真實(shí)負(fù)載場(chǎng)景。LoadRunner的Controller能很快組織起多用戶的測(cè)試方案。Controller提供了一個(gè)互動(dòng)的環(huán)境,在其中既能建立起持續(xù)且循環(huán)的負(fù)載,又能管理和驅(qū)動(dòng)負(fù)載測(cè)試方案。Controller中的負(fù)載可以來自同一臺(tái)負(fù)載發(fā)生器,也可以來自不同的負(fù)載發(fā)生器。

(3)實(shí)時(shí)監(jiān)測(cè)器。LoadRunner內(nèi)含集成的實(shí)時(shí)監(jiān)測(cè)器,在負(fù)載測(cè)試過程的任何時(shí)候,可以觀察到應(yīng)用系統(tǒng)的運(yùn)行性能。這些性能監(jiān)測(cè)器實(shí)時(shí)顯示性能數(shù)據(jù)和其他系統(tǒng)組件,包括應(yīng)用服務(wù)器、Web服務(wù)器、網(wǎng)路設(shè)備和數(shù)據(jù)庫(kù)等的實(shí)時(shí)性能。這樣可以在測(cè)試過程中從客戶和服務(wù)器的雙方面評(píng)估這些系統(tǒng)組件的運(yùn)行性能,從而更快地發(fā)現(xiàn)問題。

(4)分析結(jié)果以精確定位問題所在。一旦測(cè)試完畢,LoadRunner收集匯總所有的測(cè)試數(shù)據(jù),并提供高級(jí)的分析和報(bào)告工具,通過使用LoadRunner的分析工具,能很快地查找到出錯(cuò)的位置和原因并做出相應(yīng)的調(diào)整。

(5)重復(fù)測(cè)試保證系統(tǒng)發(fā)布的高性能。負(fù)載測(cè)試是一個(gè)重復(fù)過程。每次處理完一個(gè)出錯(cuò)情況,都需要對(duì)應(yīng)用程序在相同的方案下再進(jìn)行一次負(fù)載測(cè)試。以此檢驗(yàn)所做的修正是否改善了運(yùn)行性能。

參考網(wǎng)站:

2)?SilkPerformer

SilkPerformer是業(yè)界最強(qiáng)大、且最易用的企業(yè)級(jí)負(fù)載和強(qiáng)度測(cè)試解決方案,用于對(duì)關(guān)鍵任務(wù)應(yīng)用的質(zhì)量進(jìn)行優(yōu)化。SilkPerformer使用可視化腳本生成技術(shù)和對(duì)存在成千上萬(wàn)的并發(fā)用戶的多個(gè)應(yīng)用環(huán)境進(jìn)行測(cè)試的能力,能夠在企業(yè)應(yīng)用部署之前,就對(duì)其性能、可靠性和可伸縮性進(jìn)行徹底的測(cè)試,而無需考慮其規(guī)模大小和復(fù)雜程度。SilkPerformer強(qiáng)大的診斷工具和管理報(bào)告能夠隔離錯(cuò)誤并快速做出決定,從而最大程度縮短測(cè)試周期和加快上市速度。

SilkPerformer具有以下功能和特點(diǎn):

(1)單一控制、分布測(cè)試。SilkPerformer可以實(shí)現(xiàn)由單點(diǎn)控制的多點(diǎn)部署,同時(shí)對(duì)部署節(jié)點(diǎn)進(jìn)行監(jiān)控。

(2)精確模擬真實(shí)部署情況。SilkPerformer能夠?qū)⑻摂M用戶分成不同組,每組分配在不同機(jī)器上,實(shí)現(xiàn)空間分布模擬。通過定義每個(gè)用戶類型可以使用不同的負(fù)載分布方式,以精確對(duì)應(yīng)現(xiàn)實(shí)的情況。

(3)精確模擬網(wǎng)絡(luò)連接環(huán)境。SilkPerformer模擬的網(wǎng)絡(luò)基本種類可達(dá)30種,如不同速率的Wireless、GPRS、Modem、ADSL、ISDN、LAN等。針對(duì)每種類型,還可按照實(shí)際情況進(jìn)行參數(shù)設(shè)置,操作方便、不需要手工編寫測(cè)試腳本,即可進(jìn)行豐富的模擬,尤其適合企業(yè)級(jí)的應(yīng)用測(cè)試。

(4)精確用戶使用瀏覽器的體驗(yàn)。通過簡(jiǎn)單、方便的配置,而不需手工編寫腳本,即可準(zhǔn)確模擬Web瀏覽器的緩存行為、Cookies管理,從而實(shí)現(xiàn)精確地請(qǐng)求Web頁(yè)面,達(dá)到實(shí)際用戶負(fù)載情況的精確模擬,有助于得出精確的測(cè)試結(jié)果。

(5)完備、豐富的負(fù)載類型。SilkPerformer提供了多種虛擬用戶負(fù)載模擬策略,包括持續(xù)增加虛擬用戶數(shù)、固定虛擬用戶數(shù)、動(dòng)態(tài)變化的虛擬用戶數(shù)、全天候虛擬用戶數(shù)、按照預(yù)定時(shí)間序列變化的虛擬用戶數(shù)等多種負(fù)載模擬策略。每種模擬策略還可進(jìn)一步根據(jù)實(shí)際情況進(jìn)行各種參數(shù)設(shè)置,無需編寫腳本。

(6)專門的腳本語(yǔ)言和方便快捷的腳本定制。SilkPerformer的BenchmarkDescriptionLanguage(BDL)專為測(cè)試目的而設(shè)計(jì),并提供輕松強(qiáng)大的方式對(duì)用戶活動(dòng)進(jìn)行控制。

(7)支持負(fù)載均衡的Web服務(wù)器體系測(cè)試。通過前端IP地址的模擬,能夠用單臺(tái)計(jì)算機(jī)模擬大量的、不同的IP地址,從而實(shí)現(xiàn)對(duì)負(fù)載均衡站點(diǎn)的壓力測(cè)試。SilkPerformer還支持DNS搜索模擬技術(shù)。

(8)豐富的報(bào)表功能?;赪eb的管理報(bào)告不僅易于共享和定制,而且簡(jiǎn)單易懂。

(9)支持廣泛的協(xié)議類型。

參考網(wǎng)站:

3)?QALoad

Compuware公司的QALoad是客戶/服務(wù)器系統(tǒng)、企業(yè)資源配置(ERP)和電子商務(wù)應(yīng)用的自動(dòng)化負(fù)載測(cè)試工具。QALoad是QACenter性能版的一部分,它通過可重復(fù)的、真實(shí)的測(cè)試能夠徹底地度量應(yīng)用的性能和可擴(kuò)展性。

QALoad可以模擬成百上千的用戶并發(fā)執(zhí)行關(guān)鍵業(yè)務(wù)而完成對(duì)應(yīng)用程序的測(cè)試,并針對(duì)所發(fā)現(xiàn)問題對(duì)系統(tǒng)性能進(jìn)行優(yōu)化,確保應(yīng)用的成功部署,其主要功能包括:

(1)預(yù)測(cè)系統(tǒng)性能。當(dāng)應(yīng)用升級(jí)或者新應(yīng)用部署時(shí),負(fù)載測(cè)試能幫助確定系統(tǒng)是否能按計(jì)劃處理用戶負(fù)載。QALoad并不需要調(diào)用最終用戶及其設(shè)備,就能夠仿真數(shù)以千計(jì)的用戶進(jìn)行商業(yè)交易。通過QALoad,用戶可以預(yù)知業(yè)務(wù)量接近投產(chǎn)后真實(shí)水平時(shí),端對(duì)端的響應(yīng)時(shí)間,以便滿足投產(chǎn)后的服務(wù)水平要求。

(2)尋找瓶頸問題。QALoad錄制/回放能力提供了一種可重復(fù)的方法來驗(yàn)證負(fù)載下的應(yīng)用性能,可以很容易地模擬數(shù)千個(gè)用戶,并執(zhí)行和運(yùn)行測(cè)試。利用QALoad反復(fù)測(cè)試可以充分地測(cè)試與容量相關(guān)的問題,快速確認(rèn)性能瓶頸并進(jìn)行優(yōu)化和調(diào)整。

(3)管理全局負(fù)載測(cè)試。QALoadConductor工具為定義、管理和執(zhí)行負(fù)載測(cè)試提供了一個(gè)中心控制點(diǎn)。Conductor通過執(zhí)行測(cè)試腳本,管理大量的虛擬用戶。Conductor可以自動(dòng)識(shí)別網(wǎng)絡(luò)中可進(jìn)行負(fù)載測(cè)試的機(jī)器,并在這些機(jī)器之間自動(dòng)分布工作量,以避免網(wǎng)段超載。從Conductor自動(dòng)啟動(dòng)和配置遠(yuǎn)程用戶,可以進(jìn)行全球負(fù)載測(cè)試。在測(cè)試過程中,Conductor還可以在負(fù)載測(cè)試期間收集有關(guān)性能和時(shí)間的統(tǒng)計(jì)數(shù)據(jù)。

(4)驗(yàn)證應(yīng)用的可擴(kuò)展性。利用QALoad進(jìn)行測(cè)試時(shí),可以有選擇地改變硬件或軟件的配置,并改變測(cè)試步調(diào)和負(fù)載量。QALoad系統(tǒng)的NetLoad模塊幫助建立所需的額外網(wǎng)絡(luò)流量來模擬真實(shí)的產(chǎn)品負(fù)載。借助于“NetLoad”,可以在大環(huán)境下分配虛擬用戶,更好地規(guī)劃投產(chǎn)環(huán)境中如何讓這些應(yīng)用更好地工作。

(5)快速創(chuàng)建仿真的負(fù)載測(cè)試。運(yùn)用QALoad,可以迅速創(chuàng)造出一些實(shí)際的安裝測(cè)試方案,而不需要手工編寫腳本或有關(guān)應(yīng)用中間軟件的詳細(xì)知識(shí)和協(xié)議。對(duì)結(jié)合了多種傳輸協(xié)議的應(yīng)用軟件進(jìn)行負(fù)載測(cè)試是一個(gè)巨大的挑戰(zhàn)。為了準(zhǔn)確仿真這些應(yīng)用軟件產(chǎn)生的流量,QALoad可以捕獲多種協(xié)議并在同一測(cè)試過程中執(zhí)行它們。另外,這些應(yīng)用軟件常常包含一些在測(cè)試方案中必須申明的動(dòng)態(tài)信息。運(yùn)用QALoad的ActiveData特征,可以定義腳本參數(shù)以幫助確保應(yīng)用測(cè)試腳本的成功執(zhí)行。

參考網(wǎng)站:

4)?WebLoad

WebLoad是RadView公司推出的一個(gè)性能測(cè)試和分析工具,它讓W(xué)eb應(yīng)用程序開發(fā)者自動(dòng)執(zhí)行壓力測(cè)試。WebLoad通過模擬真實(shí)用戶的操作,生成壓力負(fù)載來測(cè)試Web的性能,用戶創(chuàng)建的是基于JavaScript的測(cè)試腳本,稱為議程agenda,用它來模擬客戶的行為,通過執(zhí)行該腳本來衡量Web應(yīng)用程序在真實(shí)環(huán)境下的性能。

WebLoad可被用于測(cè)試性能和伸縮性,也可被用于正確性驗(yàn)證(驗(yàn)證返回結(jié)果的正確性)。其測(cè)試腳本是用JavaScript(和集成的COM/Java對(duì)象)編寫的,并支持多種協(xié)議,如Web、SOAP/XML及其他可從腳本調(diào)用的協(xié)議,如FTP、SMTP等,因而可從所有層面對(duì)應(yīng)用程序進(jìn)行測(cè)試。

WebLoad的面向目標(biāo)的測(cè)試,也稱為“巡航控制(CruiseControl)”,是基于Radview開發(fā)的一項(xiàng)專利技術(shù)。簡(jiǎn)而言之,測(cè)試時(shí)需要給WebLoad定義一組目標(biāo)(目標(biāo)之間可用邏輯與/或來結(jié)合),WebLoad會(huì)定期檢查這些目標(biāo),一但目標(biāo)達(dá)成,用戶就會(huì)得到通知。用戶可以預(yù)先決定當(dāng)目標(biāo)達(dá)成時(shí)是停止測(cè)試還是繼續(xù)。

5)?JMeter

JMeter是Apache組織的開放源代碼項(xiàng)目,是一個(gè)100%的純Java桌面應(yīng)用,用于壓力測(cè)試和性能測(cè)試。它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,后來擴(kuò)展到其他測(cè)試領(lǐng)域。JMeter可以用于對(duì)靜態(tài)的和動(dòng)態(tài)的資源(文件、Servlet、Perl腳本、Java

對(duì)象、數(shù)據(jù)庫(kù)和查詢、FTP服務(wù)器等)的性能進(jìn)行測(cè)試。JMeter用于模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對(duì)象上附加高負(fù)載以測(cè)試它們提供服務(wù)的受壓能力,或者分析它們提供的服務(wù)在不同負(fù)載條件下的總性能情況。可以用JMeter提供的圖形化界面分析性能指標(biāo)或者在高負(fù)載情況下測(cè)試服務(wù)器的行為。另外,JMeter能夠?qū)?yīng)用程序做回歸測(cè)試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證程序返回的期望結(jié)果。為了最大限度提高靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。

JMeter的特性包括:

(1)能夠?qū)TTP和FTP服務(wù)器進(jìn)行壓力和性能測(cè)試,也可以對(duì)任何數(shù)據(jù)庫(kù)進(jìn)行同樣的測(cè)試(通過JDBC)。

(2)完全的可移植性和100%純Java。

(3)完全Swing和輕量組件支持包(預(yù)編譯的JAR使用javax.swing.*)。

(4)完全多線程框架允許通過多個(gè)線程并發(fā)取樣和通過單獨(dú)的線程組對(duì)不同的功能同時(shí)取樣。

(5)精心的GUI設(shè)計(jì)允許快速操作和更精確地記錄性能指標(biāo)。

(6)緩存和離線分析/回放測(cè)試結(jié)果。

(7)高可擴(kuò)展性。相比其他HTTP測(cè)試工具,JMeter最主要的特點(diǎn)在于擴(kuò)展性強(qiáng)。JMeter能夠自動(dòng)掃描其lib/ext子目錄下?.jar文件中的插件,并且將其裝載到內(nèi)存,讓用戶通過不同的菜單調(diào)用。

參考網(wǎng)站:/jmeter/index.html

6)?OpenSTA

OpenSTA是專用于B/S結(jié)構(gòu)的、免費(fèi)的性能測(cè)試工具。它的優(yōu)點(diǎn)除了免費(fèi)、源代碼開放的優(yōu)點(diǎn)外,還能對(duì)錄制的測(cè)試腳本按指定的語(yǔ)法進(jìn)行編輯。測(cè)試工程師在錄制完測(cè)試腳本后,只需要了解該腳本語(yǔ)言的特定語(yǔ)法知識(shí),就可以對(duì)測(cè)試腳本進(jìn)行編輯,以便于再次執(zhí)行性能測(cè)試時(shí)獲得所需要的參數(shù),然后進(jìn)行特定的性能指標(biāo)分析。OpenSTA以最簡(jiǎn)單的方式讓大家對(duì)性能測(cè)試的原理有較深的了解,其較為豐富的圖形化測(cè)試結(jié)果大大提高了測(cè)試報(bào)告的可閱讀性。

OpenSTA是基于CommonObjectRequestBrokerArchitecture(CORBA)的結(jié)構(gòu)體系。它通過虛擬一個(gè)代理(proxy),使用其專用的腳本控制語(yǔ)言,記錄通過proxy的一切HTTP/Straffic。測(cè)試工程師通過分析OpenSTA的性能指標(biāo)收集器收集的各項(xiàng)性能指標(biāo),以及HTTP數(shù)據(jù),對(duì)被測(cè)試系統(tǒng)的性能進(jìn)行分析。

參考網(wǎng)站:

7)?WAS

WebApplicationStressTool(WAS,Web應(yīng)用負(fù)載測(cè)試工具)是由微軟的網(wǎng)站測(cè)試人員所開發(fā),專門用來進(jìn)行實(shí)際網(wǎng)站壓力測(cè)試的一套工具。WAS要求WindowsNT4.0SP4或者更高,或者Windows2000。為了對(duì)網(wǎng)站進(jìn)行負(fù)載測(cè)試,WAS可以通過一臺(tái)或者多臺(tái)客戶機(jī)模擬大量用戶的活動(dòng)。WAS支持身份驗(yàn)證、加密和Cookies,也能夠模擬各種瀏覽器類型和Modem速度,它的功能和性能可以與數(shù)萬(wàn)美元的產(chǎn)品相媲美。要對(duì)網(wǎng)站進(jìn)行負(fù)載測(cè)試首先必須創(chuàng)建WAS腳本模擬用戶活動(dòng)??梢杂孟旅嫠姆N方法之一創(chuàng)建腳本:

(1)通過記錄瀏覽器的活動(dòng)創(chuàng)建。

(2)通過導(dǎo)入IIS日志創(chuàng)建。

(3)通過把WAS指向Web網(wǎng)站的內(nèi)容創(chuàng)建。

(4)手工制作。

準(zhǔn)備好測(cè)試腳本之后,可以調(diào)整測(cè)試配置以便觀察不同條件下的應(yīng)用性能,獲取性能測(cè)試數(shù)據(jù)。

4.測(cè)試管理工具

1)?QualityCenter(TestDirector)

HP-MercuryQualityCenter提供了基于Web的系統(tǒng),可在廣泛的應(yīng)用環(huán)境下自動(dòng)執(zhí)行軟件質(zhì)量測(cè)試和管理。儀表盤技術(shù)可以了解驗(yàn)證功能和將業(yè)務(wù)流程自動(dòng)化,并確定生產(chǎn)中阻礙業(yè)務(wù)成果的瓶頸。HP-MercuryQualityCenter使IT團(tuán)隊(duì)能夠在開發(fā)流程完成前就參與應(yīng)用程序測(cè)試。這樣將縮短發(fā)布時(shí)間表,同時(shí)確保最高水平的質(zhì)量。利用HP-MercuryQualityCenter,可以實(shí)現(xiàn)下列功能:

(1)制定可靠的部署決策。

(2)管理整個(gè)質(zhì)量流程并使其標(biāo)準(zhǔn)化。

(3)降低應(yīng)用程序部署風(fēng)險(xiǎn)。

(4)提高應(yīng)用程序質(zhì)量和可用性。

(5)通過手動(dòng)和自動(dòng)化功能測(cè)試管理應(yīng)用程序變更影響。

(6)確保戰(zhàn)略采購(gòu)方案中的質(zhì)量。

(7)存儲(chǔ)重要應(yīng)用程序質(zhì)量項(xiàng)目數(shù)據(jù)。

(8)針對(duì)功能和性能測(cè)試面向服務(wù)的基礎(chǔ)架構(gòu)服務(wù)。

(9)確保支持所有環(huán)境,包括J2EE、.NET、Oracle和SAP。

2)?ClearQuest

RationalClearQuest是一種對(duì)缺陷和記錄的變化進(jìn)行跟蹤管理的工具。它體現(xiàn)了一個(gè)缺陷的完整的生命周期,從提交到關(guān)閉,記錄了缺陷所有的改變歷史,同時(shí)ClearQuest提供了各種查詢功能,及時(shí)反映了缺陷的處理情況。

ClearQuest的基本功能如下:

(1)提供用戶彈性的變更需求管理環(huán)境。

(2)用戶可根據(jù)開發(fā)工作流程和變更需求周期,通過圖示工具定義處理流程。

(3)提供預(yù)設(shè)的變更需求管理流程,用戶可直接使用或進(jìn)行特殊設(shè)置。

(4)提供強(qiáng)大的圖表功能,用戶可深入分析開發(fā)現(xiàn)狀。

(5)有瀏覽器界面,可讓遠(yuǎn)端的用戶進(jìn)行訪問。

(6)與業(yè)界標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)和報(bào)表生成器集成。

(7)與Rational的軟件管理工具ClearCase完全集成,讓用戶充分掌握變更需求情況。

(8)支持?jǐn)?shù)據(jù)庫(kù)MSACCESS和SQLSERVER6.5。

(9)優(yōu)異的系統(tǒng)擴(kuò)展性,提供將數(shù)據(jù)從ACCESS轉(zhuǎn)移到SQLSERVER的功能。

ClearQuest具有下列優(yōu)點(diǎn):

(1)簡(jiǎn)化變更管理。ClearQuest特別針對(duì)動(dòng)態(tài)的、不斷更新的軟件開發(fā)工作,提供最佳的變更需求管理解決方案。運(yùn)用它可以方便地跟蹤、管理相關(guān)的變更需求,充分掌握變更的現(xiàn)狀,用戶也可按不同需要調(diào)節(jié)它的操作模式,讓變更需求管理能順利在開發(fā)團(tuán)隊(duì)內(nèi)推動(dòng)和實(shí)施。

(2)提高工作效率。項(xiàng)目管理者能隨時(shí)跟蹤并掌握變更需求的處理情況;程序員可以集中精力于程序編寫,節(jié)省變更需求尋求確認(rèn)的時(shí)間;測(cè)試員則能充分了解每一個(gè)變更需求的來龍去脈;而系統(tǒng)管理員會(huì)發(fā)現(xiàn)ClearQuest不但容易安裝、調(diào)試而且可以與其他工具集成運(yùn)用;如果有遠(yuǎn)程用戶,還可以通過瀏覽器界面訪問ClearQuest。

(3)順暢的自動(dòng)化工作流程。ClearQuest中不同類型的變更需求(錯(cuò)誤修正、功能增強(qiáng)或文件更新等),都可規(guī)范特定的工作流程和處理周期。用戶可以直接運(yùn)用ClearQuest預(yù)設(shè)的變更需求管理流程,或是利用它提供的管理工具自定義符合需要的變更需求管理流程。

(4)了解快速更新的軟件。ClearQuest按照趨勢(shì)、時(shí)間及分布等角度描繪出清晰易懂的圖表,讓開發(fā)人員充分掌握項(xiàng)目進(jìn)展情況。無論是利用預(yù)設(shè)的或是自定義的圖表及查詢功能,它們都可以并入功能菜單,方便操作。

參考網(wǎng)站:

3)?TestManager

IBMRationalTestManager是針對(duì)測(cè)試活動(dòng)管理、執(zhí)行和報(bào)告的中央控制臺(tái),在整個(gè)項(xiàng)目生命周期中提供流程自動(dòng)化、測(cè)試管理以及缺陷和變更跟蹤功能。該工具支持的測(cè)試范圍從純?nèi)斯y(cè)試方法到各種自動(dòng)化范型(包括單元測(cè)試、功能回歸測(cè)試和性能測(cè)試),同時(shí)支持本地和遠(yuǎn)程測(cè)試的執(zhí)行。

TestManager可以由項(xiàng)目團(tuán)隊(duì)的所有成員訪問,確保測(cè)試覆蓋信息、缺陷和應(yīng)用程序準(zhǔn)備狀

溫馨提示

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

評(píng)論

0/150

提交評(píng)論