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