軟件測(cè)試網(wǎng)學(xué)習(xí)教程-中文員_第1頁
軟件測(cè)試網(wǎng)學(xué)習(xí)教程-中文員_第2頁
軟件測(cè)試網(wǎng)學(xué)習(xí)教程-中文員_第3頁
軟件測(cè)試網(wǎng)學(xué)習(xí)教程-中文員_第4頁
軟件測(cè)試網(wǎng)學(xué)習(xí)教程-中文員_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本期導(dǎo)軟件測(cè)試用例的設(shè)計(jì)測(cè)試用例的設(shè)計(jì)是軟件測(cè)試工作中的重中之重……[P3.]漫談軟件性能測(cè)試技術(shù).試都有其不同的測(cè)試目標(biāo)、測(cè)試技術(shù)、完成標(biāo)準(zhǔn)……[P10.]ClearQuest體系結(jié)構(gòu)分析ClearQuest的根本在數(shù)據(jù)庫,所有的內(nèi)容都在數(shù)據(jù)庫中。ClearQuest是按照標(biāo)準(zhǔn)的三層結(jié)構(gòu)設(shè)計(jì)的,包括數(shù)據(jù)層、功能層(業(yè)務(wù)層、表示層……[詳見P15.]感悟測(cè)試驅(qū)動(dòng)開發(fā)一段時(shí)間的學(xué)習(xí),讓我的內(nèi)心受到了深深的震撼。我們?cè)瓉淼姆椒ň尤蝗绱说谋课颐鎸?duì)測(cè)試先行這一名字時(shí),當(dāng)時(shí)最大的疑問就是"程序都還沒有寫出來,測(cè)試什么 [詳見P18.]點(diǎn)評(píng)性能測(cè)試工具本文將介紹一個(gè)免費(fèi)的、源代碼開放的web性能測(cè)試工具OpenSTA,包括它的原理、組成部分、錄制 的過程…… [詳見P28.]軟件測(cè)試自動(dòng)化實(shí)踐首先為什么需要軟件測(cè)試自動(dòng)化?從理論上來說應(yīng)該是功能定義軟件系統(tǒng)軟件系統(tǒng)是怎么工作的是從功能規(guī)格上來看的但是你要是沒有一套可以自動(dòng)測(cè)試的測(cè)試程序存在…… [詳見P37.]軟件測(cè)試過程的持續(xù)完善隨著軟件技術(shù)的迅猛發(fā)展,軟件的質(zhì)量愈來愈受到廣泛的重視。而測(cè)試又是保證軟件質(zhì)量的重要 …… 詳見4.]軟件測(cè)試組織與方法投稿主編:審閱:協(xié)作:軟件測(cè)試作為軟件開發(fā)的一個(gè)重要環(huán)節(jié),日益受到人們的重視。為了盡可能多地找出程序中的錯(cuò)誤,生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,加強(qiáng)對(duì)投稿主編:審閱:協(xié)作:一、軟件測(cè)試用例的設(shè)計(jì)作者: 一個(gè)項(xiàng)目最終呈現(xiàn)在用戶面前的質(zhì)量,與測(cè)試執(zhí)行的程度與力度是密不可分的。測(cè)試用例設(shè)計(jì)的基本目的,是確定一組最有可能發(fā)現(xiàn)某個(gè)錯(cuò)誤或者某類錯(cuò)誤的一組測(cè)試數(shù)據(jù)。測(cè)試用例構(gòu)成了設(shè)計(jì)和制定測(cè)試過程的基礎(chǔ),因此測(cè)試用例的質(zhì)量在一定程度上決定了測(cè)試工作有效程度。一個(gè)好的測(cè)試用例使得測(cè)試工作的效果事半功倍,并且能盡早的發(fā)現(xiàn)一些隱藏的BUG,測(cè)試用例的設(shè)計(jì)是軟件開發(fā)中的重中之重。:軟件測(cè)試,測(cè)試用例,TESTCASE,用例設(shè)計(jì)Atestcaseisaseriesoftestsusedtodeterminewhetheroneparticularthingworksproperly.Oftenthatmeanstryingthesameoperationoverandoveragainwithlittleintheprocedure.Atestcaseisa thatdescribesaninput,action,oreventandanexpectedresponse,todetermineifafeatureofanapplicationisworkingcorrectly.Atestcaseshouldcontainparticularssuchastestcaseidentifier,testcasename,objective,testconditions/setup,inputdatarequirements,steps,andexpectedresults.引測(cè)試用例在軟件產(chǎn)品中的作用和意義軟件產(chǎn)品化之后給人們?nèi)粘I詈凸ぷ鲙砹藰O大的便利。同樣的,也使人們對(duì)軟件產(chǎn)品的質(zhì)量重視上升到了更進(jìn)一步的高度。隨著軟件的不斷出現(xiàn)以及人們對(duì)于軟件更進(jìn)一步的認(rèn)識(shí),測(cè)試的地位得到了前所未有的提高,并且人們:測(cè)試開始的時(shí)間越早,軟件的缺陷將越早被發(fā)現(xiàn),帶來整個(gè)軟件開發(fā)中的成本也下降越多。軟件測(cè)試是發(fā)現(xiàn)軟件中缺陷的主要和唯一有效的方法。軟件質(zhì)量的重視度越高,軟件測(cè)試工作在軟件開發(fā)過程中就越重要。完測(cè)試又要求測(cè)試工作的力度和深度以及每一種現(xiàn)實(shí)中可能發(fā)生的操作都要保證正確,很多人覺得這個(gè)似乎是的。軟件測(cè)試中不可能做到窮舉測(cè)往成為測(cè)試工作中的瓶頸問題所在。如何測(cè)試,用什么方式來測(cè)試,在什么環(huán)境和什么樣的條件下進(jìn)試,測(cè)試的工作量和如何避免重復(fù)的測(cè)試,等等各種應(yīng)該考慮的因素在測(cè)試工作中如何協(xié)調(diào)和同步,在測(cè)試用例中應(yīng)該充分描述這些問題。因此,軟件測(cè)試工作中處于重中之重的測(cè)試用例的設(shè)計(jì)要求也隨之上升到了更高的層次。測(cè)試用例不但構(gòu)成了設(shè)計(jì)和制定測(cè)試過程的基礎(chǔ),而且測(cè)試的深度與測(cè)試用例的數(shù)量成正比。一般來講,判斷測(cè)試是否完全的一個(gè)主要評(píng)測(cè)方法是基于需求的覆蓋,而這個(gè)又是以確定、實(shí)施和(或)執(zhí)行的測(cè)試用例的數(shù)量為依據(jù)的;測(cè)試工作量與測(cè)試用例的數(shù)量成比例;測(cè)試設(shè)計(jì)和開發(fā)的類型以及所需的資源主要都受控測(cè)試用例的定義測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。RobertV.Binder是這樣描述的,測(cè)試實(shí)例:輸入、執(zhí)行條件,及為一個(gè)特殊目標(biāo)所開發(fā)的預(yù)期結(jié)果的集合。一個(gè)定義IUT(測(cè)實(shí)現(xiàn)即被測(cè)代碼)及其環(huán)境、測(cè)試輸入或條件,及預(yù)期結(jié)果的測(cè)試前狀態(tài)的表示或?qū)崿F(xiàn)。測(cè)試用例應(yīng)該包含的要素首先測(cè)試用例應(yīng)該包含軟件或者項(xiàng)目名稱、所服務(wù)的范圍、背景、作者、編寫時(shí)間等文檔類信息;根據(jù)測(cè)試用例的定義和目的,測(cè)試用例的內(nèi)容應(yīng)該有:標(biāo)題和用例編號(hào)、版本號(hào)、修改記錄,針對(duì)目標(biāo)和假設(shè)前提/可能發(fā)現(xiàn)的錯(cuò)誤,輸入數(shù)據(jù)/代碼,測(cè)試步驟,預(yù)期輸出和錯(cuò)誤發(fā)現(xiàn)方法。測(cè)試用例中需要注意的問題每個(gè)測(cè)試用例清楚地闡述了正在進(jìn)行評(píng)估的用例、用例場(chǎng)景、測(cè)試目標(biāo)或條件的有關(guān)說明。每個(gè)測(cè)試用例都描述了預(yù)期結(jié)果和評(píng)估該結(jié)果的方法。對(duì)于每個(gè)測(cè)試需求,在測(cè)試用例中需要考慮在正面測(cè)試和測(cè)試的條件下的測(cè)試,或者通過確定兩個(gè)測(cè)試用例來實(shí)現(xiàn),一個(gè)測(cè)試用例代表預(yù)期的條件,它可用于核實(shí)行為是否正確或符合預(yù)期(正面測(cè)試。另一個(gè)測(cè)試用例代表不可接受的、異常的或意外的條件,它可用于核實(shí)測(cè)試需求是否未以非預(yù)期方式執(zhí)行(測(cè)試。在一般情況下,對(duì)于測(cè)試的每個(gè)需求來說,至少要有一個(gè)正面測(cè)試用例和為數(shù)較多的測(cè)試用例,以此來檢查在異常情況下系統(tǒng)能否正常處理,或者用戶進(jìn)行了錯(cuò)誤的操作時(shí)的友好提示等等。測(cè)試用例已被確定用來執(zhí)試目標(biāo)中所有的產(chǎn)品需求行為,包括(視情況而定):功能、數(shù)據(jù)確認(rèn)、業(yè)務(wù)規(guī)則實(shí)施、測(cè)試目標(biāo)工作流程或控制、數(shù)據(jù)流、對(duì)象狀態(tài)、性能(包括工作量、配置和強(qiáng)度)、安全性/可性、兼容性。每個(gè)測(cè)試用例都說明或者/代表一個(gè)唯一的輸入集或事件順序,它能夠產(chǎn)生唯一的測(cè)試目標(biāo)行為,復(fù)審那些產(chǎn)生相為的測(cè)試用例并判定它們是否等同,即它們是否都執(zhí)試目標(biāo)中的路徑。每個(gè)測(cè)試用例(或每組相關(guān)的測(cè)試用例)確定初始的測(cè)試目標(biāo)狀態(tài)和測(cè)試數(shù)據(jù)狀態(tài)。測(cè)試用例名稱和/或ID與測(cè)試工件命名約定一致。測(cè)試用例的設(shè)計(jì)方法概述根據(jù)測(cè)試的方法分為黑盒測(cè)試和白盒測(cè)試,相應(yīng)的測(cè)試用例的設(shè)計(jì)方法也可以分為針對(duì)黑盒測(cè)試的用例設(shè)計(jì)和針對(duì)白盒測(cè)試的用例設(shè)計(jì)。至今測(cè)試用例設(shè)計(jì)方法有許多,下面簡(jiǎn)要的介紹一些比較重要的、常用的方法。白盒測(cè)試的測(cè)試用例設(shè)計(jì)方法邏輯覆蓋邏輯覆蓋包括:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋,各自的定義簡(jiǎn)略描述如下:語句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一可執(zhí)行語句至少執(zhí)行一次。判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次。條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,每個(gè)判斷中的每個(gè)分支至少執(zhí)行一次。條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,可能的條件取值組合至少執(zhí)行一次?;韭窂綔y(cè)試基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語句至少要執(zhí)行一次。黑盒測(cè)試的測(cè)試用例設(shè)計(jì)方法所謂等價(jià)類劃分是指一套被選擇的值,這些值分別代表了許多眾多的可能輸入值,程序?qū)ζ涮幚淼姆绞蕉际且粯拥摹5葍r(jià)類劃分的方法作為繼邊界值分析方法之后補(bǔ)充的測(cè)試用力設(shè)計(jì)試用的一種方法。劃分等價(jià)類、確定測(cè)試用例等價(jià)類劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測(cè)試用例。等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例等價(jià)類的劃分有兩種不同的情況:有效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。邊界值分析在設(shè)計(jì)測(cè)試用例確定輸入和輸出參數(shù)時(shí),大多數(shù)情況下都是用邊界值分析方法,采用邊界值分析設(shè)計(jì)的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤能力最強(qiáng)。邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出的錯(cuò)誤。錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。如果程序的功能說明中含有輸入條件的組合情況,則一開始就可以選用因果圖法。如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情測(cè)試用例的評(píng)審及測(cè)試用例的評(píng)審用例是否完整?是否每一個(gè)需求都有其對(duì)應(yīng)的測(cè)試用例來驗(yàn)證?是否每一個(gè)設(shè)計(jì)元素都有其對(duì)應(yīng)的測(cè)試用例來驗(yàn)證?事件順序,能否產(chǎn)生唯一的測(cè)試目標(biāo)行為?是否每隔測(cè)試用例都闡述了預(yù)期結(jié)果?是否每個(gè)測(cè)試用例(或每組相關(guān)的測(cè)試用例)都確定了初始的測(cè)試目標(biāo)狀態(tài)和測(cè)試數(shù)據(jù)狀態(tài)?測(cè)試用例是否包含了所有單一的邊界?測(cè)試用例是否包含了所有的業(yè)務(wù)數(shù)據(jù)流?是否所有的測(cè)試用例名稱,ID都與測(cè)試工件命名約定一致?員用例庫的更新隨著軟件項(xiàng)目的開發(fā),用例庫的數(shù)據(jù)隨著項(xiàng)目的進(jìn)展動(dòng)態(tài)變化也是需要的,主要包括:不合適用例的修改、冗余用例的刪除、測(cè)試用例的增加,并對(duì)進(jìn)行的操作在備注中署名修改者以及修改時(shí)間和改動(dòng)原因。測(cè)試用例實(shí)例該測(cè)試案例是以一個(gè)B/S結(jié)構(gòu)的登錄功能點(diǎn)位被測(cè)對(duì)象,該測(cè)試用例為黑盒測(cè)試用例。假設(shè)用戶使用的瀏覽器為IE6.0SP4。功能描述如下:輸入用戶名和,登錄,系統(tǒng)自動(dòng)校驗(yàn),并給出相應(yīng)提示信息如果用戶名或者任一信息未輸入,登錄后系統(tǒng)給出相應(yīng)提示信息3次未通過驗(yàn)證時(shí),自動(dòng)關(guān)閉IEXXXX-X-稱用例描述用戶名存在、正確的情況下,進(jìn)入系統(tǒng)頁面信息包含:頁面背景顯示用戶名和錄入接口,輸入數(shù)據(jù)后的登入系統(tǒng)接用例打開IE,在地址欄輸入相應(yīng)地址進(jìn)入該系統(tǒng)登錄頁面測(cè)試用例預(yù)期結(jié)果備注初始頁面顯示從用例處進(jìn)入示與詳細(xì)設(shè)計(jì)一致用戶入輸入已存在的用戶:輸入成功 輸入到藍(lán)色顯示絕輸入圍-入輸入與用戶名相關(guān)聯(lián)的數(shù)據(jù):輸入成功功TC2TC4登錄系統(tǒng)成功系統(tǒng)登錄戶名、校沒有輸入用戶名、,單擊登系統(tǒng)登錄失敗提示:請(qǐng)檢查用戶名和的輸入輸入用戶名,沒有輸入,單擊登錄按鈕碼碼有效性校驗(yàn)輸入用戶名,輸入與用戶提示:錯(cuò)誤的入有效性校驗(yàn)輸入不存在的用戶名、,單擊登錄按鈕3次未成功系統(tǒng)提示:您沒有使用該系統(tǒng)的權(quán)…………參考文獻(xiàn):鄭人杰,,,實(shí)用軟件工程(第二版),RobertV.Binder著,一,君,譯,人民郵電,作者簡(jiǎn)介::,女,2002年畢業(yè)于西安電子科技大學(xué),計(jì)算機(jī)信息管理專業(yè)。研究方向:軟件測(cè)試管理::業(yè)余:聽音樂、爬.慧靈科技慧靈科技依托測(cè)試時(shí)代資源,推出面向?qū)嵺`的軟件測(cè)決實(shí)踐中的關(guān)鍵問題。如果您培訓(xùn)的目的不是拿一個(gè)登陸公司軟件測(cè)試的最佳實(shí)踐,那我們會(huì)是您一個(gè)不錯(cuò)的選擇。,而是想學(xué)習(xí)試專業(yè)課程,由國(guó)內(nèi)著名軟件企業(yè)的一線技術(shù)專家主講,為您的企業(yè)解二、漫談軟件性能測(cè)試技術(shù)引隨著我國(guó)加入WTO,各行各業(yè)都的機(jī)遇和。如何提高產(chǎn)品的質(zhì)量,增強(qiáng)市場(chǎng)競(jìng)爭(zhēng)力,日益成為企業(yè)發(fā)展必須解決的迫切問題,對(duì)軟件企業(yè)來說尤為重要。軟件企業(yè)要直接參與國(guó)際軟件市場(chǎng)的競(jìng)爭(zhēng),加快軟件產(chǎn)品的發(fā)布與交付使用。因此,如何提高軟件質(zhì)量,越來越成為當(dāng)前軟件產(chǎn)業(yè)發(fā)展中一個(gè)迫在眉睫的問題。本文只針對(duì)軟件質(zhì)量的性能方面,做一些探討。軟件質(zhì)量質(zhì)量保證能力的強(qiáng)弱直接影響著軟件業(yè)的發(fā)展和生存。那么,到底什么是軟件的質(zhì)量呢?《GB/T16260軟件產(chǎn)品評(píng)價(jià)質(zhì)量特性及其使用指南》明確定義:軟件質(zhì)量是軟件產(chǎn)品具有滿足明確的或隱含需求能力的特征和特性總和。具體包括以下六個(gè)方面的質(zhì)量特性:1、功能性與一組功能及其指定的性質(zhì)有關(guān)的一組屬性。這里的功能是指滿足明確或隱含的需求的那些功能。2、易用性與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和對(duì)這樣的使用所作的評(píng)價(jià)有關(guān)的一組屬性。3、可靠性與在規(guī)定的一段時(shí)間和條件下,軟件維持其性能水平的能力有關(guān)的一組屬性。4、效率與在規(guī)定的條件下,軟件的性能水平與所使用資源量之間關(guān)系有關(guān)的一組屬性。5、可與進(jìn)行指定的修改所需的努力有關(guān)的一組屬性。6、可移植性與軟件可從某一環(huán)境轉(zhuǎn)移到另一環(huán)境的能力有關(guān)的一組屬性。因此,為了評(píng)價(jià)軟件產(chǎn)品的質(zhì)量,需要對(duì)軟件質(zhì)量的每個(gè)特性實(shí)施和執(zhí)試。隨著現(xiàn)代軟件構(gòu)架技術(shù)的發(fā)展,特別是WEB技術(shù)的發(fā)展,與軟件可靠性、效率質(zhì)量特性相關(guān)的軟件性能問題越來越受到包括軟件從業(yè)人員、專家學(xué)者以及軟件使用者的重視,軟件的性能指標(biāo)的好壞已直接影響到軟件的質(zhì)量。3、軟件性能測(cè)試技術(shù)軟件性能的測(cè)試一般包括三個(gè)方面,即性能評(píng)測(cè)、負(fù)載測(cè)試和強(qiáng)度測(cè)試。每一方面的測(cè)試都有其不同的測(cè)試目標(biāo)、測(cè)試技術(shù)、完成標(biāo)準(zhǔn),具體如下:1、性能評(píng)測(cè)針對(duì)響應(yīng)時(shí)間、事務(wù)處理速率和其他與時(shí)間相關(guān)的需求進(jìn)行評(píng)測(cè)和評(píng)估。目標(biāo)是驗(yàn)證性能需求是否都已滿足。測(cè)試目標(biāo):驗(yàn)證所指定的事務(wù)或業(yè)務(wù)功能在以下情況下的性能行為:正常的預(yù)期工作量預(yù)期的最繁重工作量測(cè)試技術(shù):使用為功能或業(yè)務(wù)周期測(cè)試制定的測(cè)試過程。通過修改數(shù)據(jù)文件來增加事務(wù)數(shù)量,或通過修改來增加每項(xiàng)事務(wù)的迭應(yīng)該在一臺(tái)計(jì)算機(jī)上運(yùn)行(最好是以單個(gè)用戶、單個(gè)事務(wù)為基準(zhǔn)并在多個(gè)客戶機(jī)(虛擬的或?qū)嶋H的客戶機(jī)上重復(fù)。完成標(biāo)準(zhǔn):?jiǎn)蝹€(gè)事務(wù)或單個(gè)用戶:在每個(gè)預(yù)期或要求的時(shí)間范圍內(nèi)成功地完測(cè)試,沒有發(fā)生任何故障多個(gè)事務(wù)或多個(gè)用戶:在可接受的時(shí)間范圍內(nèi)成功地完成測(cè)試,沒有發(fā)生任何故障。注意事項(xiàng):綜合的性能測(cè)試還包括在服務(wù)器上添加工作量??刹捎枚喾N方法來執(zhí)行此操作,其中包括:調(diào)用的形式來實(shí)現(xiàn)。通過創(chuàng)建“虛擬的”用戶負(fù)載來模擬許多個(gè)(通常為數(shù)百個(gè))客戶機(jī)。此負(fù)載可通過“終端仿真”(RemoteTerminalEmulation)工具來實(shí)現(xiàn)。此技術(shù)還可用于在網(wǎng)絡(luò)中加載“流量”。使用多臺(tái)實(shí)際客戶機(jī)在系統(tǒng)上添加負(fù)載。性能測(cè)試應(yīng)該在的計(jì)算機(jī)上或在的機(jī)時(shí)內(nèi)執(zhí)行,以便實(shí)現(xiàn)完全的控制和精確的評(píng)測(cè)。性能測(cè)試所用的數(shù)據(jù)庫應(yīng)該是實(shí)際大小或相同縮放比例的數(shù)據(jù)庫。2、負(fù)載測(cè)試負(fù)載測(cè)試通過使測(cè)試對(duì)象承擔(dān)不同的工作量,以評(píng)測(cè)和評(píng)估測(cè)試對(duì)象在不同工作量條件下的性能行為,以及持續(xù)正常運(yùn)行的能力。目標(biāo)是確定并確保系統(tǒng)在超出最大預(yù)期工作量的情況下仍能正常運(yùn)行,以及軟件的性能特征,例如,響應(yīng)時(shí)間、事務(wù)處理速率和其他與時(shí)間相關(guān)的方面。測(cè)試目標(biāo):驗(yàn)證所指定的事務(wù)在不同的工作量條件下的性能行為時(shí)間。測(cè)試技術(shù):使用為功能或業(yè)務(wù)周期測(cè)試制定的測(cè)試。通過修改數(shù)據(jù)文件來增加事務(wù)數(shù)量,或通過修改測(cè)試來增加每項(xiàng)事務(wù)發(fā)生的次數(shù)。完成標(biāo)準(zhǔn):多個(gè)事務(wù)或多個(gè)用戶:在可接受的時(shí)間范圍內(nèi)成功地完成測(cè)試,沒有發(fā)生任何故障。注意事項(xiàng):負(fù)載測(cè)試應(yīng)該在的計(jì)算機(jī)上或在的機(jī)時(shí)內(nèi)執(zhí)行,以便實(shí)現(xiàn)完全的控制和精確的評(píng)測(cè)。負(fù)載測(cè)試所用的數(shù)據(jù)庫應(yīng)該是實(shí)際大小或相同縮放比例的數(shù)據(jù)庫。3、強(qiáng)度測(cè)試強(qiáng)度測(cè)試目的是找出因資源不足或資源爭(zhēng)用而導(dǎo)致的錯(cuò)誤。如果內(nèi)存或磁盤空間不足,測(cè)試對(duì)象就可能會(huì)表現(xiàn)出一些在正常條件下并不明顯的缺陷。而其他缺陷則可能由于爭(zhēng)用共享資源(如數(shù)據(jù)庫鎖或網(wǎng)絡(luò)帶寬)而造成的。強(qiáng)度測(cè)試還可用于確定測(cè)試對(duì)象能夠處理的最大工作量。測(cè)試目標(biāo):驗(yàn)證測(cè)試對(duì)象能夠在以下強(qiáng)度條件下正常運(yùn)行,不會(huì)出現(xiàn)任何錯(cuò)誤:服務(wù)器上幾乎沒有或根本沒有可用的內(nèi)存(內(nèi)存和磁盤空間連接或模擬了最大實(shí)際()多個(gè)用戶對(duì)相同的數(shù)據(jù)或賬戶執(zhí)行相同的事務(wù)最繁重的事務(wù)量或的事務(wù)組注:強(qiáng)度測(cè)試的目標(biāo)可表述為確定和記錄那些使系統(tǒng)無法繼續(xù)正常運(yùn)行的的情況或條件。測(cè)試技術(shù):使用為性能評(píng)測(cè)或負(fù)載測(cè)試制定的測(cè)試。要對(duì)有限的資源進(jìn)試,就應(yīng)該在一臺(tái)計(jì)算機(jī)上運(yùn)試,而且應(yīng)該減少或限務(wù)器上的內(nèi)存和磁盤空間。對(duì)于其他強(qiáng)度測(cè)試,應(yīng)該使用多臺(tái)客戶機(jī)來運(yùn)行相同的測(cè)試或互補(bǔ)的測(cè)試,以產(chǎn)生最繁重的事務(wù)量或的事務(wù)組合。完成標(biāo)準(zhǔn):件故障,或者導(dǎo)致系統(tǒng)出現(xiàn)故障的條件并不在指定的條件范圍之內(nèi)。注意事項(xiàng):如果要增加網(wǎng)絡(luò)工作強(qiáng)度,可能會(huì)需要使用網(wǎng)絡(luò)工具來給網(wǎng)絡(luò)加載消息或信息包。使多個(gè)客戶機(jī)對(duì)相同的記錄或數(shù)據(jù)賬戶同時(shí)進(jìn)行的達(dá)到同步4軟件質(zhì)量的保證,不僅需要科學(xué)的測(cè)試策略,更要處理好整個(gè)軟件生命周期中其他如需求、分析、設(shè)計(jì)、實(shí)現(xiàn)各階段中出現(xiàn)的問題。只有對(duì)軟件質(zhì)量進(jìn)行全面、全過程的質(zhì)量控制,才能最終保證軟件產(chǎn)品的質(zhì)量,提高企業(yè)的競(jìng)爭(zhēng)力。您是否對(duì)軟件測(cè)試的整體規(guī)劃一直比較您是否對(duì)軟件測(cè)試的整體規(guī)劃一直比較模糊?您是否覺得軟件測(cè)試工作技術(shù)含量不高,不知道如何提高自己?您是否發(fā)覺測(cè)試用例的復(fù)用率非常低而且檢索困難?您是否覺得測(cè)試工作不太容易規(guī)劃,總是不如預(yù)期?您是否覺得性能測(cè)試很重要但是不知道如何組織和實(shí)施有效的性能測(cè)試?您是否非常想知道大型的企業(yè)級(jí)系統(tǒng)是如何進(jìn)行性能規(guī)劃的?您是否想知道流行的測(cè)試工具的使用方法? 三、ClearQuest體系結(jié)構(gòu)分作者:關(guān)鍵 ClearQuest、體系結(jié)構(gòu)分析這一段時(shí)間,一些人問了我很多關(guān)于CQ的問題,其中的很多問題都是于對(duì)于CQ的整體結(jié)構(gòu)不熟悉造成的,所以寫了這篇文章,了解CQ有所幫助。我使用的CQ版本是2002.05.00,誰知道哪里能2003版的,我一直想看看2003和2002有什么差別。ClearQuest是按照標(biāo)準(zhǔn)的三層結(jié)構(gòu)設(shè)計(jì)的,包括數(shù)據(jù)層、功能層(業(yè)務(wù)層、表示層。下面分別說明三層的構(gòu)造和相互的關(guān)系。1、數(shù)據(jù)層ClearQuest的根本在數(shù)據(jù)庫,所有的內(nèi)容都在數(shù)據(jù)庫中。在使用CQ數(shù)據(jù)庫的時(shí)候,一定要記住一點(diǎn):必須先建立空白的數(shù)據(jù)庫再進(jìn)行CQ的操作。因?yàn)槌鞘褂肁ccess數(shù)據(jù)庫,其他類型數(shù)據(jù)庫都涉及數(shù)據(jù)庫操作權(quán)限的問題,所以必須先建立操作數(shù)據(jù)庫的角色。CQ的數(shù)據(jù)庫層分為兩種,一種是MaintenanceTool中SchemaRepository使用的數(shù)據(jù)庫(SR數(shù)據(jù)庫)DesigerSchema使用的數(shù)據(jù)庫(稱S數(shù)據(jù)庫。SR數(shù)據(jù)庫SR數(shù)據(jù)庫中了SchemaRepository信息以及附屬的Schema信息如果原先沒有SR數(shù)據(jù)庫,在MaintenanceTool中通過Create建立SchemaRepository和SR數(shù)據(jù)庫的連接,SchemaRepository內(nèi)容在SR數(shù)據(jù)庫中。如果原先存在SR數(shù)據(jù)庫,在MaintenanceTool中通過NewConnection建立SchemaRepository和原有SR數(shù)據(jù)庫的聯(lián)系,原有SR數(shù)據(jù)庫內(nèi)容不變。SR數(shù)據(jù)庫中,不只存儲(chǔ)了SchemaRepository,還包括SchemaRepository附屬的Schema 信息以及UserAdminitrator中的Group和User信息。刪除SchemaRepository的時(shí)候,SR數(shù)據(jù)庫仍然存在,隨時(shí)可以通過NewConnectio連接回來。MoveSR數(shù)據(jù)庫的時(shí)候,源SR數(shù)據(jù)庫仍然存在,隨時(shí)可以通過NewConnectio連接回來。R數(shù)據(jù)庫R數(shù)據(jù)庫對(duì)應(yīng)相關(guān)的Schema信息,包括Schema本身的各種信息、用戶通過客戶端錄入的變更信息(Defect、_Rule、Project等、操作此Schema的GroupsUsersSchema的時(shí)候,R數(shù)據(jù)庫仍然存在,隨時(shí)可以通過NewConnectio連接回來。MoveR數(shù)據(jù)庫的時(shí)候,源R數(shù)據(jù)庫仍然存在,隨時(shí)可以通過NewConnectio連接回來。2、功能層功能層是CQ中最重要的,所有的設(shè)置幾乎都在功能層實(shí)現(xiàn)。功能層包括兩個(gè)部分,MaintenanceTool和Designer。還有一個(gè)可選擇配置的Web服務(wù)器。下面分別進(jìn)行說明。MaintenanceMaintenanceTool(安裝目錄中cqdbsetup.exe)是在使用CQ前必須配置的。在MaintenanceTool中,必須Create或NewConnection至少一個(gè)SchemaRepository。無論是Designer、客戶端還是Web服務(wù)器最后都必須連接MaintenanceTool中的SchemaRepository。SchemaRepository按照字面的翻譯是“計(jì)劃倉庫”,也就是說,所有的Designer中的SchemaSchemaRepository。如果有多個(gè)SchemaRepository,在使用designer、客戶端、Web服務(wù)器的時(shí)候,必須選擇特定的SchemaRepository,之后的操作都在此SchemaRepository中進(jìn)行。SchemaRepository實(shí)際是接SR數(shù)據(jù)庫并把相應(yīng)數(shù)據(jù)記載到SR數(shù)據(jù)庫的行為。Desinger(安裝中的cqdesign.exe)是設(shè)計(jì)Schema使用的。在進(jìn)入Desinger的時(shí)候,如果MaintenanceTool中有多個(gè)SchemaRepository,必須選擇一個(gè)SchemaRepository才能進(jìn)入Desinger,此時(shí)在Desinger中設(shè)計(jì)的所有Schema都附屬于此登陸的SchemaRepository,并且所有Schema信息都于對(duì)應(yīng)的SR數(shù)據(jù)庫中。Designer中的Schema是可以獨(dú)立存在的,不一定非要連接S數(shù)據(jù)庫,因?yàn)镾chema的信息在SR數(shù)據(jù)庫中。不過如果想在客戶端或Web端使用Schema及其相關(guān)內(nèi)容,則必須建立和Schema相對(duì)應(yīng)的S數(shù)據(jù)庫。新建Schema是一個(gè)繼承的過程,必須選擇一個(gè)原有的Schema,繼承原有Schema所有的Field、StatesandActions、Forms等內(nèi)容。所以可以建立一個(gè)配置好的標(biāo)準(zhǔn)Schema(不用連接數(shù)據(jù)庫),所有其他的Schema都從此標(biāo)準(zhǔn)Schema中繼承,進(jìn)行簡(jiǎn)單的修改就可以使用了。Schema連接的S:ProductionDatabase和TestDatabaseTestDatabase是為Schema設(shè)計(jì)的時(shí)候使用的,設(shè)計(jì)好后,如果建立了Schema對(duì)應(yīng)的TestDatabase,則可以選擇菜單中的File->TestWork調(diào)用客戶端查看Schema設(shè)計(jì)的結(jié)果,此過程可以反復(fù)進(jìn)行,相當(dāng)于調(diào)試的過程。ProductionDatabase是實(shí)際使用的數(shù)據(jù)庫。只有存在ProductionDatabase的時(shí)候,才可以在實(shí)際使用客戶端的過程中看到相應(yīng)的Schema。菜單Tools->UserAdminitrator里面設(shè)置Group和User,User不只在CQ中使用,Robot等User也都調(diào)用CQ中設(shè)置的User。Web服務(wù)器如果想在Web端使用CQ,就必須配置Web服務(wù)器,否則可以不安裝或配置WebServerComponents。在設(shè)置Web的時(shí)候,如果是NTFS格式的文件分區(qū),一定要設(shè)置Cache的完全控制權(quán)限,我看到很多人的問題都出在這里。3、表示層CQ可以使用兩種方式:Web端browser或客戶端Web端如果想Web端,則必須配置Web服務(wù)器客戶端客戶端(安裝中clearquest.exe)是實(shí)際進(jìn)行變更流程操作的CQ程序。在客戶端,可以建立Query、Chart、Report等。客戶端通過建立的Query才可以看到提交的記錄。Report的使用,必須有相應(yīng)的水晶報(bào)表企業(yè)版。_Rule(件規(guī)則)在客戶端設(shè)置。4、其他工CQExportTool、Import這兩個(gè)個(gè)工具我感覺用途是在不同的Schema中導(dǎo)入導(dǎo)出數(shù)據(jù)。比如一個(gè)SchemaSchema希望能把上一個(gè)計(jì)劃未處理的記錄導(dǎo)入到新記錄中,就可以使用這兩個(gè)工具了。工具使用比較的麻煩,關(guān)鍵的是必須設(shè)置每一個(gè)Field的對(duì)應(yīng)關(guān)系,為此不得不把兩個(gè)Schema的Field弄成一樣。CreateRationalClearQuestEvaluation此工具就是在固定的 創(chuàng)建一個(gè)Access數(shù)據(jù)庫的SchemaRepository,感覺一點(diǎn)用處都沒有。ISQL、Sybase這個(gè)兩個(gè)工具好像是給數(shù)據(jù)庫為Sybase的時(shí)候使用的。我沒有使用過數(shù)據(jù)庫,所以不很了解這兩個(gè)工具的使用。來自:天極作者:軟件開發(fā)方法學(xué)的泰斗KentBeck先生最為推崇"模式、極限編程和測(cè)試驅(qū)動(dòng)開發(fā)"。在他所創(chuàng)造的極限編程(XP)方法論中,就向大家推薦"測(cè)試先行"這一最佳實(shí)踐,并且還專門撰寫了《測(cè)試驅(qū)動(dòng)開發(fā)》一書,詳細(xì)說明如何實(shí)現(xiàn)。測(cè)試驅(qū)動(dòng)開發(fā)是極限編程的重要特點(diǎn),它以不斷的測(cè)試推動(dòng)代碼的開發(fā),從而實(shí)現(xiàn)既簡(jiǎn)化代碼,又保證質(zhì)量的目標(biāo)。一看到"測(cè)試先行"、"測(cè)試驅(qū)動(dòng)"這樣的名字,就深深地激起了我好奇心,開始了自己的探索之旅..心靈震一段時(shí)間的學(xué)習(xí),讓我的內(nèi)心受到了深深的震撼。我們?cè)瓉淼姆椒ň尤蝗绱说谋课颐鎸?duì)測(cè)試先行這一名字時(shí),當(dāng)時(shí)最大的疑問就是"程序都還沒有寫出來,測(cè)試什么呀!"。后來,其實(shí)這是一個(gè)泥瓦匠都明白的道理,卻是自己在畫地為牢。我們來看看兩個(gè)不同泥瓦匠是如何工作的吧:工匠一:一塊磚都保持水平。工匠二先將一排磚都砌完,然后拉上一根水平線,看看哪些磚有問題,再進(jìn)行調(diào)整。你會(huì)選擇哪種工作方法呢?你一定會(huì)罵工匠二笨吧!這樣多浪費(fèi)時(shí)間呀!然而你自己想想,你平時(shí)在編寫程序的時(shí)候又是怎么做的呢?我們就是按工匠二的方法在干活的呀!甚至有時(shí)候比工匠二還笨,是整面墻都砌完了,直接進(jìn)行"集成測(cè)試",經(jīng)常讓整面的墻倒塌。看到這里,你還覺得自己的方法高明嗎?單元測(cè)試長(zhǎng)期以來被忽視每一個(gè)程序員都知道應(yīng)該為自己的代碼編寫測(cè)試程序,但卻很少這樣做。當(dāng)人們問為什么的時(shí)候,最常聽到的回答就是:我們的開發(fā)工作太緊張了"。但這樣卻導(dǎo)致了一個(gè)惡性循環(huán),越是沒空編寫測(cè)試程序,代碼的效率與質(zhì)量越差,花在找Bug、ug的時(shí)間也越來越多,實(shí)際效率大大降低。由于效率降低了,因此時(shí)間更緊張,壓力更大。你想想,為什么不拉上一根水平線呢?難道,我們不能夠?qū)⒑竺胬速M(fèi)的時(shí)間花在單元測(cè)試上,使得我們的程序一開始就更加健壯,更加易于修改嗎?拋棄原來的托詞吧!我們的自動(dòng)化水平太低了有人還會(huì)解釋說,那是因?yàn)槔骄€很簡(jiǎn)單,而寫測(cè)試程序卻是十分復(fù)雜的。我暫且對(duì)這句話本身不置可否。不過也體現(xiàn)了一個(gè)新問題,我們需要更加方便、省時(shí)的編寫測(cè)試程序的方法。要測(cè)試一個(gè)類,最簡(jiǎn)單的方法是直接在調(diào)試器中使用表達(dá)式觀察對(duì)象的值與狀態(tài),你也可以在程序中加上一些斷言、打印中間值等,當(dāng)然還可以編寫專門的測(cè)試程序。但是這些方法都有一個(gè)很大的局限性,都需要加入人工的判斷和分析。由此,自動(dòng)化測(cè)試的引入才是解決之道。正是因?yàn)槿绱?,提?測(cè)試驅(qū)動(dòng)開發(fā)"的人群,開發(fā)出一系列的自動(dòng)化單元測(cè)試框架xUnit,現(xiàn)在已經(jīng)有針對(duì)Java、Pyhton、C++、PHP等各種常用語言的測(cè)試框架。這足以搪塞住那些以"編寫測(cè)試代碼太麻煩"為理由的開發(fā)人員,讓他們沒有理由逃避單元測(cè)試。正如RobertMartin所說:"測(cè)試套件運(yùn)行起來越簡(jiǎn)單,就會(huì)越頻繁地運(yùn)行它們。測(cè)試運(yùn)行越多,就會(huì)越快地發(fā)現(xiàn)和那些測(cè)試的任何背離。如果能夠一天多次地運(yùn)行所有的測(cè)試,那么系統(tǒng)的失效時(shí)間就決不會(huì)超過幾分鐘"。認(rèn)清測(cè)試驅(qū)動(dòng)開測(cè)試驅(qū)動(dòng)開發(fā)理論最初源于對(duì)這些問題的思考:如果我們能夠在編寫程序代碼之前先進(jìn)試方案的設(shè)計(jì),會(huì)怎樣如果我們保證除非沒有這個(gè)功能將導(dǎo)致測(cè)試失敗,否則就不在程序中實(shí)現(xiàn)該功能,換一個(gè)角度,如果當(dāng)測(cè)試時(shí)發(fā)現(xiàn)必須增加某項(xiàng)功能才能夠通過測(cè)試時(shí),我們就增加這能,會(huì)怎樣?大師們通過帶著這些問題的實(shí)踐,發(fā)現(xiàn)這的確是一個(gè)提高軟件代碼質(zhì)量,使得效率得到保障的一個(gè)很好出發(fā)點(diǎn)。以這樣的思路進(jìn)行軟件開發(fā),可以保證程序中的每一項(xiàng)功能都有測(cè)試來驗(yàn)證它是正確的,而且每當(dāng)功能被無意修改時(shí),測(cè)試程序會(huì)發(fā)現(xiàn)。同時(shí),也使我們獲得了一個(gè)新的觀察點(diǎn),從對(duì)程序調(diào)用者有利的視角來觀察我們的程序,這使得我們?cè)陉P(guān)心程序功能的本身還能夠?qū)涌谟枰宰銐蚋形驕y(cè)試驅(qū)動(dòng)開發(fā)的關(guān)注,使得其更容易被調(diào)用。另外,這種思路下的代碼,將變得更加易于調(diào)用,也就必須使其與其它代碼保持低耦合性。并且,當(dāng)你想復(fù)用這些模塊時(shí),測(cè)試代碼給出了很好的示例。這一切,使得軟件開發(fā)工作的質(zhì)量一下子變得有保障了。因此,測(cè)試驅(qū)動(dòng)開發(fā)的精髓在于:將測(cè)試方案設(shè)計(jì)工作提前,在編寫代碼之前先做這一項(xiàng)工作;從測(cè)試的角度來驗(yàn)證設(shè)計(jì),推導(dǎo)設(shè)計(jì);同時(shí)將測(cè)試方案當(dāng)作行為的準(zhǔn)繩,有效地利用其檢驗(yàn)代碼編寫的每一步,實(shí)時(shí)驗(yàn)證其正確性,實(shí)現(xiàn)軟件開發(fā)過程的"小步快走"。實(shí)踐測(cè)試驅(qū)動(dòng)開下面,我就結(jié)合一個(gè)實(shí)際的小例子,來說明如何進(jìn)行"測(cè)試驅(qū)動(dòng)開發(fā)"。本實(shí)例在J2SESDK1.4.2環(huán)境下開發(fā),以及配套工具JUnit3.8.1。隊(duì)列是一種在程序開發(fā)中十分常用的數(shù)據(jù)結(jié)構(gòu),在此我就以編寫一個(gè)實(shí)現(xiàn)隊(duì)列功能的類--Queue為例進(jìn)行說明。該類將實(shí)現(xiàn)以下基本運(yùn)算:判斷隊(duì)列是否為空:插入隊(duì)列(即在隊(duì)列未尾增加一個(gè)數(shù)據(jù)元素):inqueue(x)出隊(duì)列(也就是將隊(duì)列首數(shù)據(jù)元素刪除):outqueue()取列頭(也就是讀者隊(duì)列首數(shù)據(jù)元素的值):清空隊(duì)列(也就是將隊(duì)列的所有數(shù)據(jù)元素全刪除):clear()查詢x在隊(duì)列中的位置:search(x)測(cè)試案例分析在測(cè)試驅(qū)動(dòng)開發(fā)實(shí)踐中,第一步就是考慮測(cè)試方案,通過分析該類的功能,我們可以得到以下測(cè)試案例:隊(duì)列為空測(cè)試TC01TC02TC03:當(dāng)出隊(duì)列操作次數(shù)與插入隊(duì)列操作次數(shù)一樣時(shí),應(yīng)為空;插入隊(duì)列測(cè)試:TC04TC05出隊(duì)列測(cè)試TC06:出隊(duì)列操作后,第一個(gè)數(shù)據(jù)元素將被從隊(duì)列中刪除;取隊(duì)頭測(cè)試TC07:取隊(duì)頭操作將獲得隊(duì)列中的第一個(gè)數(shù)據(jù)元素。清空隊(duì)列測(cè)試TC08注:此處為了講解的方便,并未將所有的測(cè)試用例都列出,同時(shí)也選擇了一些十分簡(jiǎn)單的測(cè)試用例。第一次迭代我們首先編寫第一個(gè)測(cè)試代碼,這一測(cè)試代碼只考慮了測(cè)試案例TC01,也就是保證新建的隊(duì)列為空:import//每個(gè)使用JUnit編寫的測(cè)試代碼都應(yīng)該包括本行publicclasstestQueueextends//創(chuàng)建一個(gè)測(cè)試用例,繼承{protectedQueuepublicstaticvoidmain(String[]{ //執(zhí)試用}protectedvoidsetUp()//環(huán)境變量準(zhǔn)備{q1=new}publicstaticTestsuite()//{returnnew}publicvoidtestEmpty()//以下每個(gè)方法就是一個(gè)測(cè)試{//當(dāng)隊(duì)列新建時(shí),應(yīng)為空-}}安裝JUnit十分簡(jiǎn)單,只需在 中的軟件包(ZIP格式),然后將其解壓縮,并且將"JUnit安裝\junit.jar"以及"JUnit安裝"都加到系統(tǒng)環(huán)境變量CLASSPATH中去即可。執(zhí)行套件可以像上述程序一樣在main方法中使用,也可以直接在命令行調(diào)用:javajunit.textui.TestRunner測(cè)試類名(文本格式、javajunit.awtui.TestRunner測(cè)試類名(圖形格式,AWT版、javajunit.swingui.TestRunner測(cè)試類名(圖形版,Swing編譯執(zhí)行(即在命令行執(zhí)行javactestQueue.java和jaatestQueue,你會(huì)發(fā)現(xiàn)屏幕上出現(xiàn)提示:.E一個(gè)小點(diǎn)說明執(zhí)行了一個(gè)測(cè)試用例,E表示其失敗Time:0.11說明執(zhí)試共花費(fèi)了0.11Therewas1error:說明存在一個(gè)錯(cuò)誤1)testEmpty(testQueue)java.lang.NoClassDefFoundError:QueueattestQueue.setUp(testQueue.java:13)attestQueue.main(testQueue.java:9)Testsrun:1,Failures:0,Errors:測(cè)試沒有通過是肯定的,因?yàn)镼ueue類都還沒有寫呢?怎么可能通過測(cè)試,因此,我們就編寫以下代碼,以使測(cè)試通過:publicclassQueueextends{public{}publicboolean{return}}將這個(gè)類編譯后,再次執(zhí)試程序,這時(shí)將出以下提示.一個(gè)小點(diǎn)說明執(zhí)行了一個(gè)測(cè)試用例,沒有E表示其成功Time:OK(1你還可以使用前面我們說到的另兩個(gè)命令,使測(cè)試反饋以圖形化的形式體現(xiàn)出來,例如,執(zhí)行javajunit.awtui.TestRunnertestQueue,將出現(xiàn):第二次迭代TC04、TC05importpublicclasstestQueueextends{protectedQueuepublicstaticvoidmain(String[]{ }protectedvoid{q1=newQueue();q2=newQueue();q2.inqueue("first");/對(duì)隊(duì)列q2執(zhí)行插入隊(duì)列操作}publicstaticTest{returnnew}publicvoid{//當(dāng)隊(duì)列新建時(shí),應(yīng)為空-}publicvoid{//執(zhí)行了插入隊(duì)列操作,隊(duì)列就應(yīng)不為空-TC05//search方法用于確定元素在隊(duì)列中的位置//后插入的數(shù)據(jù)元素,應(yīng)在未尾-//插入兩個(gè),第一個(gè)在位置0,第二在位置}}根據(jù)這個(gè)測(cè)試代碼,我們需要在Queue類中添加上inqueue()search()兩個(gè)方法,如下所示:publicclassQueueextends{public{}publicboolean{return}publicsynchronizedvoidinqueue(Object{}publicintsearch(Object{return}}編譯之后,再次執(zhí)行javajunit.awtui.TestRunnertestQueue,你將再次看到成功我們仔細(xì)看一下這一界面。最上面列出了測(cè)試代碼的類名,右邊有一個(gè)"Run"按鈕,當(dāng)你需要再次運(yùn)行這一測(cè)試代碼時(shí),只需單擊這個(gè)按鈕。另外,將"Reloadclasseseveryrun" 選項(xiàng)打上勾很有用,當(dāng)你測(cè)試未通過(出現(xiàn)紅色時(shí)),你可以轉(zhuǎn)身去修改代碼,修改完后,只需再按"Run"按鈕就可以再次運(yùn)行。(TestCase類中方法的數(shù)量如果測(cè)試時(shí)出現(xiàn)錯(cuò)誤,例如,我們不將"assertTrue(!(q2.empty()));" 寫成為"assertTrue(q2.empty());" 就將造成測(cè)試失?。鹤?由于第一個(gè)測(cè)試還是通過的,因此你會(huì)看到綠色條一閃。這時(shí),你將會(huì)發(fā)現(xiàn)JUnit會(huì)將錯(cuò)誤列出來,并且對(duì)應(yīng)的"Run"按鈕也由灰變成了亮,這表示你可以轉(zhuǎn)身修改,完成后單擊這個(gè)"Run按鈕"可以只做剛才失效的這個(gè)測(cè)試,這將節(jié)省大量的后面的迭代到這里,開發(fā)還沒有完成,但這種思想?yún)s已經(jīng)通過這樣兩個(gè)短小的實(shí)踐傳遞出去了,后面的活大家可以動(dòng)手試一下。另外值得一提的是,這里雖然洋洋灑灑一大篇,實(shí)際兩次迭代花費(fèi)了我不到4.一些遺文章到此就告一段落,遺憾之一:這只是一篇文章,沒有辦法把所有方面都講得面面俱到,以致于大家可能無法馬上上手。正是由于這樣的原因,本文取名為"感悟",與大家交流一會(huì),希望能夠幫助大家更好地接受"測(cè)試驅(qū)動(dòng)開發(fā)"的理念,并開始著手實(shí)踐。遺憾之二:筆者水平有限,《擁抱變化:解析極限編程》等大作都已悉數(shù)擺上了中國(guó)的書店。路雖難走,但明師已有。 實(shí)踐是學(xué)習(xí)的最好方法,看到筆者的感悟,就開始極限之旅吧,因?yàn)槟抢镲L(fēng)光無限,樂趣無限。當(dāng)你掌握了測(cè)試驅(qū)動(dòng)開發(fā)的精髓,那你就能夠 43《單元測(cè)試技術(shù)――Nunit3《測(cè)試管理――TD》2《自動(dòng)測(cè)試工具――Robot2《自動(dòng)測(cè)試工具――LoadRunner2五、點(diǎn)評(píng)性能測(cè)試工具作者:(本文章經(jīng)“測(cè)試員”推薦至“程序員”雜志:本文將介紹一個(gè)免費(fèi)的、源代碼開放的web性能測(cè)試工具OpenSTA,包括它的原理、組成部分、錄制的過程。另外,還將介紹如何在OpenSTA的測(cè)試中引入變量,并給變量賦不同值,比如,將登陸被測(cè)試的用戶名稱設(shè)置為一個(gè)變量,在執(zhí)行性能測(cè)試時(shí),虛擬多個(gè)不同的用戶同時(shí)登陸被測(cè)試,通過將網(wǎng)站的用戶名稱打印出來的方法,驗(yàn)證該變量在測(cè)試執(zhí)行過程中被賦與了不同值。作為測(cè)試工程師,不能只關(guān)注系統(tǒng)的功能,還必須對(duì)系統(tǒng)的性能進(jìn)行全面的測(cè)試,“中國(guó)軟件評(píng)測(cè)中心將性能測(cè)試概括為三個(gè)方面:應(yīng)用在客戶端性能的測(cè)試、應(yīng)用在網(wǎng)絡(luò)上性能的測(cè)試和應(yīng)用在服務(wù)器端性能的測(cè)試。應(yīng)用在客戶端性能測(cè)試的目的是客戶端應(yīng)用的性能,測(cè)試的是客戶端。它主要包括并發(fā)性能測(cè)試、疲勞強(qiáng)度測(cè)試、大數(shù)據(jù)量測(cè)試和速度測(cè)試等,其中并發(fā)性能測(cè)試是重點(diǎn)《性能測(cè)試:軟件測(cè)試的重中之重》作者:中國(guó)軟件評(píng)測(cè)中心時(shí)間:2003.08.26)目前比較著名的并發(fā)性能測(cè)試工具有aonalbo、QLoa、Laduner和微軟的WS等。這其中QAoa、Ladunnr、aonalobot都是比較不錯(cuò)的商業(yè)測(cè)試工具(),AS是一個(gè)免費(fèi)的測(cè)試工具,使用起來比較簡(jiǎn)單,但是由于不能顯示和編輯所錄制的測(cè)試,其可控性和圖形化都較弱,故造成一定的局限性。OpenSTA是于B/S結(jié)構(gòu)的、免費(fèi)的性能測(cè)試工具。它的優(yōu)點(diǎn)除了免費(fèi)、源代碼開放的優(yōu)點(diǎn)外,還能對(duì)錄制的測(cè)試進(jìn)行,按指定的語法進(jìn)行編輯。測(cè)試工程師在錄制完測(cè)試后,只需要了解該語言的特定語法知識(shí),就可以對(duì)測(cè)試腳本進(jìn)行編輯,以便于再次執(zhí)行性能測(cè)試時(shí)獲得所需要的參數(shù),之后進(jìn)行特定的性能指標(biāo)分析。OpenSTA以最簡(jiǎn)單的方式讓大家對(duì)性能測(cè)試的原理有較深的了解,其較為豐富的圖形化大大提高了測(cè)試報(bào)告的可閱讀性。OpenSTA是基于CommonObjectRequestBrokerArchitecture(CORBA)的結(jié)構(gòu)體系。它是通過虛擬一個(gè)proxy,使用其的控制語言,記錄通過proxy的一切HTTP/Straffic。測(cè)試工程師通過分析OpenSTA的性能指標(biāo)收集器收集的各項(xiàng)性能指標(biāo),以及HTTP數(shù)據(jù),對(duì)被測(cè)試系統(tǒng)的性能進(jìn)行分析。OpenSTA都有哪些組成部分?mander–主要控制應(yīng)用程序;NameServer–CORBA背景處理器,保證OpenSTA各個(gè)組成部分之間的(NameServer是安裝OpenSTA的同時(shí)被安裝的,正常運(yùn)行時(shí),可以在任務(wù)欄的右側(cè)看到圖標(biāo),如果沒有正常運(yùn)行或者被停止了,圖標(biāo)顯示為ScriptModeler–配置、啟動(dòng)HttpGateway的工具程序,同時(shí)也是錄制腳本的工具程序;HttpGateway–模擬proxy(接受用戶手工配置的proxy設(shè)置,不接受任何自動(dòng)配置proxy機(jī)制TestExecuter–真正執(zhí)試的背景處理器; –XMLRPCinternet上過濾CORBARepository–測(cè)試、配置和存 TestManager–管理測(cè)試運(yùn)行的背景程序;TaskGroupExecuter–運(yùn)行TaskGroup的處理器。其次,什么是性能指標(biāo)收集器(Collector)呢?這是用戶定義的一組問題,決定在測(cè)試過程中哪些性能指標(biāo)需要記錄。包括兩種類型:NTPerformanceCollectors用于運(yùn)行WinNT或Win2000的主機(jī)的性能指標(biāo).SNMPCollectors用于主機(jī)和其他運(yùn)行SNMPagent或proxySNMPagent的SNMP數(shù)據(jù).Collector的設(shè)置將在下面如何錄制測(cè)試中介紹第三,如何錄制測(cè)試呢1、安裝OpenSTAOpenSTA的三個(gè)工具程序,如下圖:檢查OpenSTANameServer狀態(tài)為運(yùn)行中,即圖標(biāo)為,運(yùn)行“OpenSTACommander”,界面顯示為下圖:2鼠標(biāo)點(diǎn)“Scripts”,通過右鍵菜單“NewScript”->“HTTP”生成新,名稱缺省為NEWSCRIP(如下圖);雙擊新,打開ScriptModeler窗口,在Options菜單中設(shè)置Gateway,一般情況下,保持Gateway的缺省設(shè)置;按中的紅色圓鈕,自動(dòng)打開指定的瀏覽器,輸入需要錄制的系統(tǒng)URL,顯示被測(cè)試的首頁內(nèi)容。在登陸成功之后,執(zhí)行各個(gè)既定的操作步驟。按工具條上的方框按鈕,或直接退出瀏覽器,可以停止的錄制,這是在ScriptModeler窗口中將看到被錄制下來的語句。3、生成Collectors通過browseQueries瀏覽并設(shè)置需要收集的性能指標(biāo)。(各個(gè)性能指標(biāo)的含義不是這篇文章所包含的內(nèi)容,這里不做介紹)4、組成測(cè)試環(huán)境與和性能收集器同樣的方法,在Tests中新建一個(gè)NEWTEST(下圖中已將新建的Test進(jìn)行了重新命名),將測(cè)試和性能指標(biāo)收集器拖到該Test中,如下圖;5、按 中的,執(zhí) 試,測(cè)試過程中可以查看“Monitoring”頁簽的內(nèi)容,測(cè)試結(jié)束后,該頁簽為空;6、測(cè)試結(jié)束后,點(diǎn)工具按鈕下方的Results頁簽,顯示所記錄的數(shù)據(jù),至此,讀者對(duì)如何使用OpenSTA這個(gè)測(cè)試工具應(yīng)該有了一個(gè)大概的了解,如果需要詳細(xì)了解使用的細(xì)節(jié),可以查看該工具的使用手冊(cè),不過是E。需要OpenSTA工具的朋友可以,使用手冊(cè)也可以在這個(gè)網(wǎng)站上。另外,需要注意,OpenSTA是GUI界面,同時(shí)也支持命令行、批處理文件,但是,不支持使用嵌入技術(shù)(Applets,ActiveX,FlashorjavascriptHTTP/S以外的協(xié)議WebServer。下面,介紹如何在OeSTA的測(cè)試中引入變量,并給變量賦不同值的過程。網(wǎng)絡(luò)應(yīng)用系統(tǒng)一般都會(huì)有一個(gè)登陸網(wǎng)頁,需要用戶輸入正確的用戶名稱和,經(jīng)過系統(tǒng)驗(yàn)證后,用戶才能進(jìn)入該應(yīng)用系統(tǒng)。在使用OpeSA錄制測(cè)試時(shí),輸入的用戶名稱和將被peSA記錄在中,錄制完成后,可以在文件中發(fā)現(xiàn)如下語句:PRIMARYPOSTURI"HTTP/1.0"ON2&HEADERDEFAULT_HEADERS,WITH{"Accept:application/vnd.ms-excel,application/msword,application/vnd.ms-powerp"&"oint,image/gif,image/x-image/jpeg,image/pjpeg,*/*", ", "Accept-Language:en-us","Content-Type:application/x-www-form-urlencoded",&"Content-Length:22",&"Pragma:no-cache"},BODY這里“mike“ekim”就是錄制時(shí)登陸系統(tǒng)所輸入的用戶名稱和問題是在執(zhí)行性能測(cè)試時(shí),往往需要模擬很多個(gè)不同的用戶同時(shí)登陸系統(tǒng),觀察系統(tǒng)的各項(xiàng)性能指標(biāo)。為每個(gè)不同的系統(tǒng)用戶錄制單獨(dú)的測(cè)試是不現(xiàn)實(shí)的。那么,如何修改已錄制好的測(cè)試,使其在測(cè)試過程中可以模擬多個(gè)不同的虛擬用戶,而每個(gè)虛擬用戶的用戶名稱和都被寫入測(cè)試中呢?1、首先,在測(cè)試的Definition部分中增加變量USERNAME、PASSWORD的定 USERNAME("mike","allan","david","robert"), PASSWORD("ekim","nalla","divad","trebor"),這里假設(shè)mike、allan、david、robert是該系統(tǒng)正確的用戶名稱,ekim、nalla、divad、trebor分別是這些用戶的登陸(說明:OpenSTA測(cè)試分三個(gè)部分,Environment、Definition、Code)2、同時(shí),在的Definition部分增加變量MY_USERNAME、MY_PASSWORDCHARACTER*512MY_USERNAME,LOCALCHARACTER*512MY_PASSWORD,LOCAL(LOCAL型3PRIMARYURI"HTTP/1.0"ON2…….”之前 加下列語句:ACQUIREMUTEX"LOGIN"NEXTUSERNAMENEXTPASSWORDSETMY_USERNAME=USERNAMESETMY_PASSWORD=PASSWORDRELEASEMUTEXAQUIREMUTEX命令的含義是:將變量USERNAMEPASSWORD設(shè)置為用戶名稱和這兩個(gè)變量選擇值序列中的第一個(gè)值,并設(shè)置為local形式,避免其他虛擬用戶使用這個(gè)值;RELEASEMUTEX命令的含義是:釋放Mutex,其他虛擬用戶可以選擇序列中的第一個(gè)值(序列中的值是被循環(huán)使用的);這里需要解釋一下MUTEX鎖定機(jī)制的含義,是為了避免多個(gè)虛擬用戶測(cè)試時(shí),自動(dòng)從變量選擇值序列中進(jìn)行選擇時(shí),出現(xiàn)選擇同一值的現(xiàn)象(即選擇了同一個(gè)用戶的現(xiàn)象);4、將發(fā)送登陸請(qǐng)求的PRIMARYPOST語句中BODY的用戶名和替換成變量:PRIMARYPOSTURI"HTTP/1.0"ON2&HEADERDEFAULT_HEADERS,WITH{"Accept:application/vnd.ms-excel,application/msword,application/vnd.ms-powerp"&"oint,image/gif,image/x-image/jpeg,image/pjpeg,*/*","Referer:","Accept-Language:en-us","Content-Type:application/x-www-form-urlencoded",&"Content-Length:22",&"Pragma:no-cache"},BODY中,BODY,BODY至此,對(duì)測(cè)試的修改已經(jīng)完成。按照本文前面所介紹的OpenSTA操作步驟,設(shè)置性能測(cè)試收集器,設(shè)置虛擬用戶的個(gè)數(shù)為4,開始執(zhí)試,OpenSTA就會(huì)模擬mike、allan、david、robert這4個(gè)不同的用戶同時(shí)登陸系統(tǒng)的情況。說到這里,讀者可能又會(huì)問,怎么驗(yàn)證在測(cè)試執(zhí)行過程中,確實(shí)是模擬了這幾個(gè)用戶進(jìn)行登陸的呢?我們可以通過將所有登陸系統(tǒng)的用戶名稱打印出來的方法進(jìn)行驗(yàn)證。方法是,在發(fā)送登陸請(qǐng)求的PRIMARYPOSTReport "USER",這樣在測(cè)試執(zhí)行完成后,TestReportLog中就可以看到打印出來的登陸用戶名稱。(是不是很簡(jiǎn)單?大家可以來試試)作者在自己的測(cè)試中進(jìn)行實(shí)驗(yàn),設(shè)置虛擬用戶為3個(gè),在登陸請(qǐng)求語句之后增加Report語句,以下是測(cè)試結(jié)束后TestReportLog信息通過上邊的一系列闡述,大家對(duì)Web性能測(cè)試工具OpenSTA應(yīng)該有了一定的了解。如何更有效的利用這個(gè)工具,收集系統(tǒng)的性能指標(biāo)進(jìn)行性能分析,希望大家共同參考文獻(xiàn):OpenSTAuser:女,在軟件行業(yè)有將近10年的經(jīng)歷,前后從事過技術(shù)支持、C++軟件開發(fā)、流程管理和軟件測(cè)試的工作,期間在英國(guó)攻讀完工程管理的。至今,已經(jīng)做了1年多的web應(yīng)用系統(tǒng)軟件測(cè)試工作,對(duì)這個(gè)工作非常有,也小有一些心得。測(cè)試行業(yè)在國(guó)外已經(jīng)發(fā)展的比較成熟了,在國(guó)內(nèi)這幾年才逐漸引起重視,作者希望能夠通過自己的努力將國(guó)外先進(jìn)的技巧、理念引入國(guó)內(nèi),與國(guó)內(nèi)共同交流,以快速提高我國(guó)的軟件測(cè)試水平。作者首先為什么需要軟件測(cè)試自動(dòng)化?通過我這幾年在微軟的工作,可以感覺到一點(diǎn),應(yīng)該說自動(dòng)測(cè)試,可以定義軟件系統(tǒng)。從理論上來說應(yīng)該是功能定義軟件系統(tǒng),軟件系統(tǒng)是怎么工作的是從功能規(guī)格上來看的。但是你要是沒有一套可以自動(dòng)測(cè)試的測(cè)試程序存在,就沒有辦法驗(yàn)證我這個(gè)軟件系統(tǒng),就是修改了一點(diǎn)點(diǎn),這個(gè)軟件系統(tǒng)是不是和前面的軟件系統(tǒng)一模一樣,你沒有辦法驗(yàn)證,只有有一套自動(dòng)系統(tǒng),才能驗(yàn)證軟件系統(tǒng)是不是還在原來的狀態(tài)上。我覺得自動(dòng)測(cè)試是非常重要的一個(gè)東西,微軟一個(gè)軟件系統(tǒng)如果沒有跟著一套自動(dòng)系統(tǒng)的話,這個(gè)軟件系統(tǒng)基本上沒有生命代碼的復(fù)雜性也是不能小看的?,F(xiàn)在測(cè)試一個(gè)代碼時(shí),所有的覆蓋也是不可能的事情,每一個(gè)ifelseswitch語句就會(huì)把情況增加一倍,許多異常處理代碼正常使用中不會(huì)碰到。許多與時(shí)序,死鎖,資源,多線程有關(guān)的錯(cuò)誤很難捕捉到。除此之外,我們每一個(gè)版本又各自帶SPQFE,每個(gè)SP進(jìn)行組合,可以得到一個(gè)天文數(shù)字,如果沒有一個(gè)自動(dòng)測(cè)試系統(tǒng)的話,要測(cè)試整個(gè)產(chǎn)品,在所有不同的情況下進(jìn)行工作的話,幾乎是一個(gè)不可能的事情。你要是有一套自動(dòng)測(cè)試系統(tǒng),對(duì)未來會(huì)有一種事半功倍的效果。微軟內(nèi)部有各種不同的測(cè)試,首先開發(fā)團(tuán)隊(duì)有自己的DRT或者Check-Suites100%通過就行,所以不需要很強(qiáng)的分析的能力。與開發(fā)團(tuán)隊(duì)的關(guān)系近,在他們的源代碼控制系統(tǒng)中。測(cè)試團(tuán)隊(duì)有測(cè)試的LabVT,所有的測(cè)試者都是在一起的,BT的要求是需要重新安裝機(jī)器,可以排除其他老的因素在上面的干擾。要求速度快,只運(yùn)行0級(jí)測(cè)試,BVT也是在每天的構(gòu)建自動(dòng)運(yùn)行BVT,結(jié)果匯報(bào)要求也是比較簡(jiǎn)單,一般來說需要10010%100%。與測(cè)試團(tuán)隊(duì)的關(guān)系近,在測(cè)試團(tuán)隊(duì)的源代碼控制系統(tǒng)中,由每日產(chǎn)品編譯系統(tǒng)自動(dòng)觸發(fā),全自動(dòng)運(yùn)行。還有自己常規(guī)的LabPass也需要重裝機(jī)器,模擬最終用戶的使用形式。需要使用每日編譯結(jié)果,規(guī)模大,測(cè)試數(shù)多,環(huán)境要求也復(fù)雜,在這時(shí)候我們就會(huì)把整個(gè)剛才我講的測(cè)試者引進(jìn)來,一天可能需要測(cè)試不同版本,或者不同語言版等。對(duì)測(cè)試結(jié)果匯報(bào)與問題要求很高,因?yàn)檫@時(shí)候所有測(cè)試必須百分之百的通過,可能前天有這么一個(gè)問題,今天這個(gè)問題重新出現(xiàn),是不是就可以忽略了呢?如果結(jié)果工具不能干這個(gè)事,每天必須要重新做。由測(cè)試團(tuán)隊(duì)根據(jù)需要產(chǎn)生。測(cè)試團(tuán)隊(duì)的個(gè)人PrivatePass,由測(cè)試個(gè)人根據(jù)需要產(chǎn)生,不一定需要重裝機(jī)器,對(duì)測(cè)試結(jié)果匯報(bào)要求很高,與測(cè)試團(tuán)隊(duì)的關(guān)系近,在測(cè)試團(tuán)隊(duì)的源代碼控制系統(tǒng)中。一個(gè)具體自動(dòng)化測(cè)試系統(tǒng)分析。微軟內(nèi)部有很多套自動(dòng)化測(cè)試系統(tǒng),比如OASys,是Ofice還有Madog,Brue等等。這些系統(tǒng)演化到最后,總體結(jié)構(gòu)大同小異。如果大家自主開發(fā)一套新的自動(dòng)化測(cè)試系統(tǒng),我估計(jì)大概十年以后結(jié)果就是這樣的。以O(shè)ASysWebWebUSQLSerer服務(wù)器,有控制程序,客戶機(jī)程序,客戶程序就是在機(jī)器上裝一個(gè)小的程序,一些結(jié)果報(bào)告與分析的程序,有文件服務(wù)器,存放每天的構(gòu)建的結(jié)果,每次結(jié)果的Logfile等等,除此之外所有的測(cè)試都是在機(jī)器池中進(jìn)行,一系列差不多一樣的機(jī)器,在一個(gè)測(cè)試?yán)镫S時(shí)調(diào)用某一群或者某一些,或者某一個(gè)機(jī)器進(jìn)行使用。具體模塊的功能:文件服務(wù)器是存放每日的結(jié)果,存放每一個(gè)Run的logfile。比如你需要安裝什么東西,需要什么樣的背景。SQLServer存放有關(guān)的SetupClient等等,所有機(jī)器的情況都存在這里;還存放所有RunPass的總體結(jié)果,運(yùn)行數(shù),通過率,運(yùn)行機(jī)器名等……Web服務(wù)器是Web前臺(tái),等于說是一個(gè)Web配置。測(cè)試團(tuán)隊(duì)使用服務(wù)器的,好處就是只需要IE就可以運(yùn)行,零安裝,易集中更新??梢圆樵儾⑿薷乃写娣旁赟QLServer中的參數(shù),可以產(chǎn)生、查詢并觸發(fā)LabRunLabRun進(jìn)展?fàn)顩r,總體結(jié)果等。還可以查詢并調(diào)整客戶機(jī)的狀態(tài),所安裝的OS,程序等。機(jī)器池是幾十臺(tái)一樣或比較接近的輕型機(jī)器,擁有操作系統(tǒng)或文件系統(tǒng)的鏡像程序,可以進(jìn)行自我更新??刂破鞒绦?,從SQLServer中工作數(shù)據(jù),產(chǎn)生工作,并把工作按客戶機(jī)參數(shù)分配給客戶機(jī)運(yùn)行,當(dāng)運(yùn)行結(jié)束時(shí),從Client得到結(jié)果并更新SQLServer,分為機(jī)房控制器與個(gè)人控制器等。Labcontroller主要用于控制Lab里的MachinePool,Privatecontroller主要用于控制Office里的測(cè)試團(tuán)隊(duì)成員個(gè)人的機(jī)器。控制器程序應(yīng)具有動(dòng)態(tài)分配任務(wù)的功能,控制器程序應(yīng)具有LoadBalance的功能,控制器程序應(yīng)能根據(jù)LabRun的優(yōu)先級(jí)與機(jī)器資源最優(yōu)化的分配工作。比如說你有一個(gè)自動(dòng)測(cè)試,一個(gè)自動(dòng)化測(cè)試每次在Run的時(shí)候并不是只有一個(gè)測(cè)試,同時(shí)進(jìn)行的可能有三到四個(gè)同時(shí)進(jìn)行,有的LabRun會(huì)進(jìn)展的很慢,有些優(yōu)先級(jí)很高。動(dòng)態(tài)分配的功能是非常重要的,根據(jù)你的LabRun的優(yōu)先級(jí),決定給你分配多少資源進(jìn)行運(yùn)行,這是非常重要的系統(tǒng)。還需要多少時(shí)間也是一個(gè)比較重要的功能,如果你有以前的數(shù)據(jù),比如上次LabRun以后,就知道每一個(gè)測(cè)試需要Run多少時(shí)間,把總體時(shí)間加起來,客戶機(jī)程序。這個(gè)程序是一個(gè)非常小,非常輕型的程序,是運(yùn)行在各個(gè)小的Client上面的,幾乎是零安裝,就是一個(gè)小程序,非常輕巧,因?yàn)樗麕缀醪灰揽亢文K,可在機(jī)上運(yùn)行,在微軟里所有的模塊都可能是需要測(cè)試的模塊,如果客戶機(jī)上運(yùn)行的程序需要AO這個(gè)東西,我們就需要測(cè)試這個(gè)AD??梢杂糜谕瓿煽刂破鹘唤o的任務(wù)并記錄全過程,非常穩(wěn)定,不會(huì)死機(jī),并能截取大部分的異常情況??蒚imeOut,所有的系統(tǒng)都是在Lab自動(dòng)運(yùn)行的,全部是一些機(jī)器,沒有人的。自動(dòng)化運(yùn)行系統(tǒng)很快,等于說一天24小時(shí)不停的進(jìn)行。機(jī)運(yùn)行等。最主要的是自動(dòng)分析運(yùn)行的結(jié)果文件,比較不同之處,列出改進(jìn)與的TestCas。剛才我講的每天可能有成千成萬的結(jié)果需要分析,成千成萬的結(jié)果可能有很大一塊早就已經(jīng)分析過了,不想重新看這些結(jié)果,就要進(jìn)行比較。各種各樣的情況都能讀出來,和存入的結(jié)果進(jìn)行比較,得出新的需要分析的措施,你已經(jīng)看過這些措施就不用管它了。這個(gè)程序分析完錯(cuò)誤以后,可以輸入失敗錯(cuò)誤的原因。提供結(jié)果文件的,ugDataase的,供進(jìn)一析結(jié)果的具。記錄TestCae失敗的原因,并可直接輸入與ug號(hào),當(dāng)結(jié)果分析完畢,可記入為基準(zhǔn)結(jié)果,以便于未來運(yùn)行結(jié)果的比較。我們是怎樣使用這一套系統(tǒng)的。首先一個(gè)測(cè)試經(jīng)理得到一個(gè)測(cè)試的任務(wù),比如說Windows2000的任務(wù),他可以把這個(gè)任務(wù)告訴一個(gè)人,這個(gè)人應(yīng)該是測(cè)試團(tuán)隊(duì)的成員(LRF)擔(dān)任,這個(gè)人干的活每次根據(jù)這些東西產(chǎn)生一些Run,要知道這個(gè)Run進(jìn)入什么狀態(tài),是不是很成功等等,協(xié)助整個(gè)Run能夠很平和的進(jìn)行。這個(gè)人測(cè)試團(tuán)隊(duì)也不是有很多人愿意干這個(gè)活,大家就輪流干這個(gè)事情。LRF根據(jù)需求在WebUI用模板產(chǎn)生相應(yīng)的Run,填入OS要求,語言要求,運(yùn)行優(yōu)先級(jí),應(yīng)完成時(shí)間等,把這些東西都輸入進(jìn)去。這個(gè)Run被控制器程序得到,得到以后就根據(jù)優(yōu)先級(jí),完成時(shí)間,可用機(jī)房機(jī)器數(shù),合乎要求的機(jī)器數(shù),測(cè)試總量等來分配任務(wù)。機(jī)房客戶機(jī)得到任務(wù),清理自己,安裝要求的程序與模塊,從文件服務(wù)器拷試運(yùn)行程序,執(zhí)行測(cè)試并拷回結(jié)果。LRF通過WebUILabRun進(jìn)展,檢查有無重大問題,檢查運(yùn)行進(jìn)展能否按時(shí)完成并作及時(shí)的調(diào)整,當(dāng)LabRun接近尾聲,測(cè)試團(tuán)隊(duì)驗(yàn)證各自結(jié)果。可以說測(cè)試者本身一般不會(huì)監(jiān)測(cè)LabRun進(jìn)行。測(cè)試團(tuán)隊(duì)成員收到打開我們剛才講的結(jié)果報(bào)告與分析程序,最主要是新的錯(cuò)誤,新的錯(cuò)誤比如說是Bug,產(chǎn)生一個(gè)很小的Code,重現(xiàn)這個(gè)錯(cuò)誤。測(cè)試程序的問題,測(cè)試程序本身Code上的問題,你要修改你的測(cè)試程序等等。如果是對(duì)于客戶機(jī)安裝的問題,一天整個(gè)系統(tǒng)每臺(tái)不同的機(jī)器都是一個(gè)問題,比如今天XP統(tǒng)統(tǒng)都通過了,比較簡(jiǎn)單。最后測(cè)試經(jīng)理對(duì)所有的結(jié)果匯總,也是在結(jié)果報(bào)告程序進(jìn)行的,大家把成果分析完以后,測(cè)試經(jīng)理自動(dòng)產(chǎn)生一張總報(bào)表,會(huì)通過這個(gè)數(shù)據(jù)決定我們這個(gè)產(chǎn)品怎么辦,不光是在最后匯總的時(shí)候用。做一個(gè)很快的回顧,對(duì)于一套測(cè)試自動(dòng)化系統(tǒng)來說,對(duì)一個(gè)成測(cè)試團(tuán)隊(duì)說是非常重要的東西。如果一個(gè)測(cè)試團(tuán)隊(duì)如果沒有一個(gè)完整的測(cè)試系統(tǒng)來說,沒有辦法進(jìn)行一個(gè)測(cè)試。一個(gè)新開發(fā)的測(cè)試自動(dòng)化系統(tǒng),盡量通用化。我們的測(cè)試系統(tǒng),什么都能做,可以看他系統(tǒng)設(shè)計(jì)的模塊,并不是為了測(cè)試什么東西而設(shè)計(jì),可以測(cè)試任何東西,所以O(shè)ffice這么大一個(gè)產(chǎn)品,里面任何東西都是在測(cè)試系統(tǒng)上測(cè)試,測(cè)試系統(tǒng)需求非常簡(jiǎn)單。對(duì)自動(dòng)化測(cè)試本身來說,是非常簡(jiǎn)單的一個(gè)東西,什么都不知道,只知道產(chǎn)生一個(gè)結(jié)果,運(yùn)行結(jié)果拷回去就完了。還有一些控制,控制我剛才講的動(dòng)態(tài)分配資源的問題。如果你要是機(jī)器數(shù)不夠,這就是自動(dòng)化測(cè)試控制,但是要測(cè)試什么東西,完全是由測(cè)試人員自己決定,所有自動(dòng)的都是自己編的,你就是存到文件服務(wù)器上就行了。每個(gè)測(cè)試自動(dòng)化系統(tǒng)每一板塊各有側(cè)重,不必大而全。從測(cè)試自動(dòng)化系統(tǒng)整個(gè)來說,一開始的前期投入可能大一些,大家可以看到,你要建立整套測(cè)試自動(dòng)化系統(tǒng),每個(gè)系統(tǒng)想方設(shè)法自動(dòng)化、模塊化,剛開始投入非常多,長(zhǎng)遠(yuǎn)來說是很有利的。如果手工測(cè)試的話,那么多不同的應(yīng)用程序,有各種不同XP的情況,不同語言的情況下,如果都用手工來做幾乎不可以想象。如果有測(cè)試自動(dòng)化系統(tǒng),只要開發(fā)一次自動(dòng)化以后,所有其他的機(jī)器都是自動(dòng)運(yùn)行的,不用再管他了。所以他對(duì)鼓舞整個(gè)團(tuán)隊(duì)的士氣是非常重要的。一個(gè)測(cè)試者一天的工作,對(duì)來說非常簡(jiǎn)單,只要看一下每天的新的情況就完了,其他的事情都不用管。自動(dòng)化測(cè)試對(duì)后期軟件來說也是非常重要的。自動(dòng)測(cè)試系統(tǒng)是什么都能測(cè)試,不管干什么都可以測(cè)試,針對(duì)你產(chǎn)品所有的測(cè)試自動(dòng)化起來,如果只有一個(gè)版本可能是不行的,微軟所有的產(chǎn)品Office已經(jīng)有十二個(gè)版本了,這么多的版本程序來說,如果沒有自動(dòng)測(cè)試是難以。如果有自動(dòng)測(cè)試就可以同步測(cè)試使用,這樣就可以達(dá)到事半功倍的效果,很快可以驗(yàn)證,可以避免重復(fù)勞動(dòng)。自動(dòng)測(cè)試定義軟件系統(tǒng),如果一個(gè)軟件系統(tǒng)沒有自動(dòng)測(cè)試的話,后期,下一版本的都是難以一件事情。作者1.引言隨著軟件技術(shù)的迅猛發(fā)展,軟件的質(zhì)量愈來愈受到廣泛的重視。而測(cè)試又是保證軟件質(zhì)量的重要。根據(jù)EEE/NSI標(biāo)準(zhǔn),軟件測(cè)試的定義是:"使用為發(fā)現(xiàn)錯(cuò)誤所選擇的輸入和狀態(tài)的組合而執(zhí)行代碼的過程。這就非常明確地提出了軟件測(cè)試是以發(fā)現(xiàn)錯(cuò)誤,檢驗(yàn)是否滿足需求為目標(biāo)。軟件測(cè)試在軟件生命周期中占有非常突出的重要地位,是保證軟件質(zhì)量的重要。根據(jù)oehm的統(tǒng)計(jì),軟件開發(fā)總成本中,用在測(cè)試上的開銷要占40%到50%。軟件測(cè)試的目的就是在軟件投入生產(chǎn)性運(yùn)行之前,盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤,以提高軟件的質(zhì)量?,F(xiàn)代的軟件測(cè)試不僅僅是在軟件開發(fā)完成以后來做測(cè)試工作,而是將測(cè)試滲入到軟件開發(fā)的各個(gè)階段,而且提高自動(dòng)化軟件測(cè)試,來提高測(cè)試效率。有些項(xiàng)目的,認(rèn)為以盡快的速度把測(cè)試之前的所有開發(fā)階段完成(實(shí)際并沒有完成),早日開始測(cè)試,以圖達(dá)到快速和高質(zhì)量(因?yàn)樗坪跤懈L(zhǎng)的時(shí)間可用于測(cè)試)。實(shí)際的效果將會(huì)是俗語所說的"欲速則不達(dá)"。從就可以知道,花開發(fā)時(shí)間去繼續(xù)擴(kuò)大發(fā)展前面階段引入的錯(cuò)誤,得出的只能是更大量的需要耗時(shí)修正的錯(cuò)誤。因此,正確分析與利用測(cè)試的結(jié)果,我們可以非常有效地進(jìn)行軟件過程改進(jìn)。完善測(cè)試過程策略公司的管理層和質(zhì)量控制小組通常進(jìn)行軟件過程的改善,并編寫出了一系列的企業(yè)的標(biāo)準(zhǔn)與規(guī)范,經(jīng)過一系列的評(píng)審、培訓(xùn),然后讓開發(fā)人員去執(zhí)行。但是在執(zhí)行過程中常常碰到阻力,多數(shù)是來自于開發(fā)人員,除了緊張的開發(fā)工作,他們往往會(huì)抱怨又多出許多其它工作,比如按照一定的規(guī)范的文檔的撰寫;制定的企業(yè)開發(fā)規(guī)范不符合企業(yè)的實(shí)際情況,標(biāo)準(zhǔn)太高,無法達(dá)到。這一種做法,費(fèi)時(shí)費(fèi)力不討好,大家的意見都比較大,規(guī)范定的比較完美,而且在評(píng)審時(shí)還要大家表面上都要認(rèn)可,制定規(guī)范的人花費(fèi)了很大的精力,對(duì)規(guī)范的評(píng)審浪費(fèi)了大家的很多的時(shí)間,執(zhí)行時(shí)還難以貫徹下去。這種方式肯定收效甚微。這是一種效率比較低的做法。通常還會(huì)有另外一種做法:降低要求,暫時(shí)拋棄各種標(biāo)準(zhǔn)與規(guī)范,采用一種簡(jiǎn)單易行的策略,即由質(zhì)量控制小組找開發(fā)人員、項(xiàng)目經(jīng)理讓他們自我發(fā)現(xiàn)問題:你有什么缺點(diǎn)?你將如何改進(jìn)?在開發(fā)人員、項(xiàng)目管理人員講自己的改進(jìn)措施后,讓他們確保能做到。在這種辦法中,不需要管理人員花費(fèi)太多的精力進(jìn)行標(biāo)準(zhǔn)的制定,改進(jìn)的推動(dòng),這些工作都是由開發(fā)人員自己去做的,管理人員僅僅是起到了監(jiān)督的作用,只要開發(fā)人員自己說到做到就可以了。但是,我們做了一個(gè)嘗試,如果僅僅從開發(fā)人員的角度出發(fā)制定標(biāo)準(zhǔn),每個(gè)人的習(xí)慣不同,開發(fā)人員往往傾向于按照平日自己的編程習(xí)慣制定符合自己需要的規(guī)范,這樣做的隨意性比較大,難以形成統(tǒng)一的、正規(guī)的文檔體系結(jié)構(gòu)。而且,開發(fā)人員往往利用這一點(diǎn),給自己留有充分的彈性。往往自己制定的規(guī)范都有自己不同的解決辦法,這樣會(huì)造成編程風(fēng)格的不統(tǒng)一。既然是規(guī)范,總得有一定的強(qiáng)制性,而如果單單從下而上,放權(quán)給開發(fā)人員,實(shí)施的綜上所述,我們就采取了一個(gè)折中的辦法,即,根據(jù)開發(fā)人員的要求,先擬訂一份開發(fā)規(guī)范,然后提交給開發(fā)人員或者項(xiàng)目管理人員評(píng)審。允許他們提出自己的意見,如程規(guī)范,但是在實(shí)際開發(fā)的時(shí)候,其中的某些規(guī)則不是很實(shí)用,所以,公司就根據(jù)每個(gè)項(xiàng)目組所使用的開發(fā)工具和語言的不同,制定不同的編程標(biāo)準(zhǔn),而這些編程標(biāo)準(zhǔn)的修改意見,基本上來自于開發(fā)人員,但是是經(jīng)過公司的管理人員和質(zhì)量控制部審核過的。這種做法的好處就是可以主動(dòng)提高公司全體員工的質(zhì)量意識(shí)。對(duì)于管理人員而言,所有的規(guī)范都是經(jīng)過他們審核批準(zhǔn)的,他們起到監(jiān)督作用;對(duì)于開發(fā)人員而言,很多規(guī)則是他們,他們會(huì)自覺遵守。這樣雙管齊下,雙效合一,不僅會(huì)大大提高軟件的質(zhì)量,而且不用將發(fā)現(xiàn)錯(cuò)誤的責(zé)任全部推給測(cè)試人員,而是提前預(yù)防錯(cuò)誤、減少潛在的發(fā)生、減輕測(cè)試人員負(fù)擔(dān)、培養(yǎng)開發(fā)人員良好的編程習(xí)慣。2.重視文檔,需要技巧 軟件文檔也稱文件,通常指的是一些記錄的數(shù)據(jù)和數(shù)據(jù),它具有固定不變的形式,可和計(jì)算機(jī)閱讀。它和計(jì)算機(jī)程序共同構(gòu)成了能完成特定功能的計(jì)算機(jī)軟件(有人把源程序也當(dāng)作文檔的一部分)。硬件產(chǎn)品和產(chǎn)品資料在整個(gè)生產(chǎn)過程中都是有形可見的,軟件生產(chǎn)則有很大不同,文檔本身就是軟件產(chǎn)品。沒有文檔的軟件,不稱其為軟件,更談不上軟件產(chǎn)品。軟件文檔的編制在軟件開發(fā)工作中占有突出的地位和相當(dāng)?shù)墓ぷ髁?。高效率、高質(zhì)量地開發(fā)、分發(fā)、管理和文檔對(duì)于轉(zhuǎn)讓、變更、修正、擴(kuò)充

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論