版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第五章軟件自動化測試理論及應用一個例子:RationalFuntionalTester1第五章軟件自動化測試理論及應用一個例子:1第五章軟件自動化測試理論及應用5.1自動化測試概念5.2自動化測試在軟件開發(fā)周期中的位置5.3自動化測試局限性5.4自動化測試基本理論5.5自動化測試實施5.6常用工具介紹5.7IBMRational自動化測試解決方案架構(gòu)5.8負載測試工具設計與開發(fā)5.9自動化測試成熟度2第五章軟件自動化測試理論及應用5.1自動化測試概念25.1自動化測試概念用工具代替/輔助人工完成軟件測試活動的過程,泛指所有能用工具輔助進行的有關(guān)測試活動。測試自動化的目標是對被測試系統(tǒng)進行自動測試??偟膩碚f,測試自動化的目標是通過較少的開銷,得到更徹底的測試,并提高產(chǎn)品的質(zhì)量。35.1自動化測試概念用工具代替/輔助人工完成軟件測試活動的過5.1自動化測試概念自動化測試有如下特點:可以對程序的新版本自動執(zhí)行回歸測試可以執(zhí)行一些手工測試困難或不可能進行的測試可以更好地利用資源測試具有一致性和可重復性測試的重用性可以更快地將軟件推向市場可以增加軟件信任度45.1自動化測試概念自動化測試有如下特點:45.1自動化測試概念測試自動化誤區(qū):不現(xiàn)實的期望期望自動測試發(fā)現(xiàn)大量新故障安全性錯覺自動測試的維護開銷技術(shù)問題55.1自動化測試概念測試自動化誤區(qū):55.2自動化測試在軟件開發(fā)周期中的位置65.265.3自動化測試局限性自動化測試不能取代手工測試。下列情況不適合于自動化測試:測試很少進行軟件不穩(wěn)定:如軟件升級版本時,用戶界面和功能頻繁變化,此時自動化測試相應部分修改的開銷較大。而軟件不穩(wěn)定時,手工測試可以很快發(fā)現(xiàn)故障。結(jié)果很容易通過人驗證的測試:該種情況下的自動化測試非常困難甚至不可能,如彩色模式的合適程度、屏幕輪廓的直觀效果,或選擇制定的屏幕對象是否能夠播放正確的聲音等。涉及物理交互的測試:如在讀卡機上劃卡,斷開設備的物理連接,開關(guān)電源等。75.3自動化測試局限性自動化測試不能取代手工測試。下列情況不5.3自動化測試局限性手工測試比自動測試發(fā)現(xiàn)的故障要多自動化測試主要是進行重復測試,一般情況下,自動化測試進行的工作是以前進行過的,因此被測試軟件在自動化測試中暴露的故障要少得多。測試自動化主要用于回歸測試,進行正確性驗證測試,而不是故障發(fā)現(xiàn)測試。據(jù)經(jīng)驗數(shù)據(jù)統(tǒng)計,自動測試只能發(fā)現(xiàn)約15%的故障,而手工測試可以發(fā)現(xiàn)85%的故障。85.3自動化測試局限性手工測試比自動測試發(fā)現(xiàn)的故障要多85.3自動化測試局限性自動化測試不能提高測試的有效性。自動化測試只是用于提高測試的效率,即減少測試的開銷和時間。自動化測試不具有想象力自動化測試是通過測試軟件進行,測試過程只是按照運行機制執(zhí)行。手工測試時可以直接判斷測試結(jié)果的正確性,而自動測試許多情況下測試結(jié)果還需要人工干預判斷。手工測試可以處理意外事件,如網(wǎng)絡連接中斷,此時必須重新建立連接。手工測試時可以及時處理該意外,而自動化測試時該意外事件一般都會導致測試的中止。95.3自動化測試局限性自動化測試不能提高測試的有效性。自動化5.4自動化測試基本理論自動化測試過程中主要涉及以下內(nèi)容:測試驅(qū)動、樁和驅(qū)動數(shù)據(jù)的自動生成:主要是依據(jù)所采用的測試方法,如等價類、邊界值等自動產(chǎn)生多組測試數(shù)據(jù)。自動測試輸入:工具錄制測試者所做的所有操作,并將這些操作寫成工具可以識別的腳本。被錄制的腳本中含有測試輸入(包括文本和鼠標移動、點擊菜單和按鈕等動作)測試腳本技術(shù):用于自動測試過程存放測試步驟、測試數(shù)據(jù)等相關(guān)內(nèi)容。測試結(jié)果的自動比較:將預期輸出與程序運行過程中的實際輸出進行比較。自動測試執(zhí)行:工具讀取腳本并執(zhí)行腳本命令,可以重復測試者的操作。在執(zhí)行腳本過程中可以完成測試結(jié)果的自動比較。自動測試管理:完成測試計劃、測試大綱、測試缺陷管理等工作。105.4自動化測試基本理論自動化測試過程中主要涉及以下內(nèi)容:5.4.1自動測試輸入對于支持命令行的軟件系統(tǒng),采用批處理方式輸入是最好的測試用例自動化輸入方式對于不支持命令行的軟件系統(tǒng),一般來說可以采用商用化錄制回放測試工具生成輸入腳本,或自己編制測試用例輸入腳本115.4.1自動測試輸入對于支持命令行的軟件系統(tǒng),采用批處理5.4.2自動比較簡單比較復雜比較動態(tài)比較執(zhí)行后比較125.4.2自動比較簡單比較125.4.3測試結(jié)果輸出和轉(zhuǎn)儲測試結(jié)果輸出一般有以下形式:基于磁盤的輸出:包括數(shù)據(jù)庫、文件和目錄/文件夾;基于屏幕的輸出:主要是文本和特殊圖形字符、圖形圖像等;多媒體信息的輸出:包括不易比較的測試輸出形式如播放的聲音、顯示的視頻等;通訊報文的輸出:主要是網(wǎng)絡中傳送的通訊報文,一般以幀形式出現(xiàn)。135.4.3測試結(jié)果輸出和轉(zhuǎn)儲測試結(jié)果輸出一般有以下形式:15.4.4腳本技術(shù)線性教本結(jié)構(gòu)化腳本共享腳本數(shù)據(jù)驅(qū)動腳本關(guān)鍵字驅(qū)動腳本145.4.4腳本技術(shù)線性教本145.4.4.1線性教本線性腳本是通過錄制手工執(zhí)行的測試用例時得到的腳本,這種腳本包含所有的擊鍵(鍵盤和鼠標)、控制測試軟件的控制鍵及輸入數(shù)據(jù)的數(shù)字鍵,可以添加比較指令實現(xiàn)結(jié)果比較線性腳本的優(yōu)點主要是:不需要深入的工作或計劃,只需坐在計算機前錄制手工任務;可以快速開始自動化;對實際執(zhí)行操作可以審計跟蹤;用戶不必是編程人員;提供良好的(軟件或工具)演示。線性腳本的缺點主要是:一切依賴于每次捕獲的內(nèi)容;測試輸入和比較是“捆綁”在腳本中的;無法共享或重用腳本;容易受軟件變化的影響;修改代價大,維護成本高。155.4.4.1線性教本線性腳本是通過錄制手工執(zhí)行的測試用例5.4.4.2結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設計,含有控制腳本執(zhí)行的指令,支持順序、選擇和循環(huán)(疊代控制)3種基本控制結(jié)構(gòu),一個腳本可以調(diào)用另一個腳本。另外由于引進其他指令改變控制結(jié)構(gòu),可以提高重用性,增加功能和靈活性,改善維護性。需要一定的編程技術(shù)。主要有優(yōu)點是健壯性更好,更靈活;但是腳本更加復雜,測試數(shù)據(jù)依然“包含”腳本中。165.4.4.2結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設計,含5.4.4.3共享腳本共享腳本可以被多個測試用例使用,腳本之間可以相互調(diào)用;可以允許同一軟件應用或系統(tǒng)的測試之間共享腳本;在不同的軟件應用或系統(tǒng)的測試之間也可共享腳本。共享腳本的優(yōu)點是:以較少的開銷實現(xiàn)類似的測試;維護開銷低于線性腳本;刪除明顯的重復;可以在共享腳本中增加更智能的功能。共享腳本的缺點是:需要跟蹤更多的腳本,文檔、文字以及存儲,如果管理得不好,很難找到適當?shù)哪_本;每個測試仍需要一個特定的測試腳本,維護成本仍然比較高;共享腳本通常只是針對被測軟件的某一部分。175.4.4.3共享腳本共享腳本可以被多個測試用例使用,腳本5.4.4.4數(shù)據(jù)驅(qū)動腳本數(shù)據(jù)驅(qū)動腳本是將測試輸入存儲在獨立的(數(shù)據(jù))文件中(*.XLS、*.TXT、*.DAT等),而不是存儲在腳本中,腳本中只存放控制信息。用變量取代在錄制的腳本代碼中固定輸入內(nèi)容,如:名字、地址、數(shù)據(jù)等,然后通過變量從外部(文件、電子表格、數(shù)據(jù)庫等)讀取數(shù)據(jù)的測試數(shù)據(jù)驅(qū)動腳本的優(yōu)點是:可以很快增加類似的測試(腳本相同,數(shù)據(jù)不同);測試者增加新測試不必具有工具腳本語言的技術(shù)或編程知識;對于第二個測試及后續(xù)測試無額外的腳本維護開銷。數(shù)據(jù)驅(qū)動腳本的缺點是:初始建立的開銷較大;需要專業(yè)(編程)支持。185.4.4.4數(shù)據(jù)驅(qū)動腳本數(shù)據(jù)驅(qū)動腳本是將測試輸入存儲在獨5.4.4.5關(guān)鍵字驅(qū)動腳本關(guān)鍵詞驅(qū)動腳本實際上是較復雜的數(shù)據(jù)驅(qū)動技術(shù)的邏輯擴展。用變量取代在錄制的腳本代碼中的對象標識,如:按鈕、編輯框等控件ID等,然后在腳本中通過這些變量來操作這些對象進行。關(guān)鍵字驅(qū)動腳本有如下特征:測試腳本由控制腳本、測試文件、支持腳本組成;控制腳本不再受被測軟件或特殊應用的約束;測試文件中使用關(guān)鍵字描述測試事例;控制腳本依次讀取測試文件中的每個關(guān)鍵字并調(diào)用相關(guān)的支持腳本。關(guān)鍵字驅(qū)動腳本的優(yōu)點:獨立于測試腳本語言開發(fā)測試事例所需腳本數(shù)量是隨軟件的規(guī)模而不是測試的數(shù)量而變化的可以用與工具(及平臺)無關(guān)的方法實現(xiàn)測試實現(xiàn)測試的方法可以剪裁適合測試者而不是測試工具195.4.4.5關(guān)鍵字驅(qū)動腳本關(guān)鍵詞驅(qū)動腳本實際上是較復雜的5.4.5系統(tǒng)運行數(shù)據(jù)統(tǒng)計性能測試和內(nèi)存泄露檢查的測試過程中,不是預期輸出與實際輸出的比較,而是運行數(shù)據(jù)采集并統(tǒng)計輸出結(jié)果。主要利用操作系統(tǒng)提供的API函數(shù),測試軟件獲得系統(tǒng)信息并進行統(tǒng)計和分析。205.4.5系統(tǒng)運行數(shù)據(jù)統(tǒng)計性能測試和內(nèi)存泄露檢查的測試過程5.5自動化測試實施被測試軟件的測試方式選擇并不是所有的軟件都需要進行自動化測試。215.5自動化測試實施被測試軟件的測試方式選擇215.5自動化測試實施自動化測試實施前的準備工作在進行測試自動化之前,對被測試軟件的可測試性接口的分析和處理是非常重要的工作;通過對接口的分析,制定出測試輸入和輸出的腳本文件結(jié)構(gòu)。225.5自動化測試實施自動化測試實施前的準備工作225.5自動化測試實施自動化測試流程自動化回歸測試在實施上,一般分為兩個主要步驟,一個是測試結(jié)果輸出腳本模板生成,該部分需要人工進行,一個是自動化回歸測試。235.5自動化測試實施自動化測試流程235.5自動化測試實施測試結(jié)果輸出腳本模板生成流程圖245.5自動化測試實施測試結(jié)果輸出腳本模板生成流程圖245.5自動化測試實施整個自動化回歸測試流程圖:255.5自動化測試實施整個自動化回歸測試流程圖:255.6常用工具介紹序號測試的類型簡述1代碼分析器監(jiān)督程序代碼復雜度,是否遵循標準等等2覆蓋分析器校檢哪一部分的代碼已經(jīng)被測試,面向代碼語句覆蓋、條件覆蓋、路徑覆蓋等等3內(nèi)存分析器邊界檢查和漏洞檢測等等4性能測試工具測試在不同的負載級別之下客戶/服務器和WEB應用程序等等5WEB測試工具檢驗鏈接是否有效,客戶和服務器端的代碼、WEB站點的交互是否正常工作6其他工具測試實例管理,文件管理,BUG報告,配置管理工具265.6常用工具介紹序號測試的類型簡述1代碼分析器監(jiān)5.6常用工具介紹性能測試工具Loadrunner嵌入式軟件測試工具CodeTest
LogiScope缺陷管理跟蹤工具TestDirector
Buzilla275.6常用工具介紹性能測試工具275.6.1LoadRunner
LoadRunner?是一種預測系統(tǒng)行為和性能的工業(yè)標準級負載測試工具。通過以模擬上千萬用戶實施并發(fā)負載及實時性能監(jiān)測的方式來確認和查找問題,LoadRunner能夠?qū)φ麄€企業(yè)架構(gòu)進行測試。通過使用LoadRunner,企業(yè)能最大限度地縮短測試時間,優(yōu)化性能和加速應用系統(tǒng)的發(fā)布周期。
285.6.1LoadRunnerLoadRunner?是5.6.1LoadRunner295.6.1LoadRunner295.6.1LoadRunner創(chuàng)建虛擬用戶創(chuàng)建真實的負載實時監(jiān)測器分析結(jié)果以精確定位問題所在重復測試保證系統(tǒng)發(fā)布的高性能其他特性EnterpriseJavaBeans的測試支持無線應用協(xié)議支持MediaStream應用完整的企業(yè)應用環(huán)境的支持
305.6.1LoadRunner創(chuàng)建虛擬用戶305.6.2嵌入式軟件測試工具純軟件測試工具純軟件的測試工具采用的軟件插樁技術(shù),在被測試代碼中插入一些函數(shù),用這些函數(shù)來完成數(shù)據(jù)的生成,并上傳數(shù)據(jù)到目標系統(tǒng)的共享內(nèi)存中。純硬件測試工具:主要是邏輯分析儀和仿真器。邏輯分析儀主要通過監(jiān)控系統(tǒng)在運行時總線上的指令周期,并以一定頻率捕獲這些信號,通過對捕獲的信號進行分析來判斷程序當前運行狀況。仿真器通常采用內(nèi)存標記技術(shù),它所關(guān)心的也是處理器從外存的代碼段讀取數(shù)據(jù)的情況純硬件測試工具是不具備對內(nèi)存分配進行分析和檢查的能力315.6.2嵌入式軟件測試工具純軟件測試工具315.6.2.1CodeTestCodeTest系統(tǒng)包括3種嵌入式軟件測試和分析工具:CodeTestNative,CodeTestSoftware-In-Circuit和CodeTestHardware-In-Circuit,每一種工具代表了嵌入式系統(tǒng)開發(fā)的每一個周期的不同階段,它們分別由于:在開發(fā)階段早期,沒有目標硬件,只有宿主機開發(fā)環(huán)境和測試環(huán)境。在開發(fā)階段中期,系統(tǒng)的集成工作、硬件開發(fā)板已出現(xiàn)。在產(chǎn)品確認階段,此時產(chǎn)品進入系統(tǒng)綜合測試階段。325.6.2.1CodeTestCodeTest系統(tǒng)包括3種5.6.2.1CodeTestCodeTest是一個硬件輔助軟件的測試與分析工具,它一方面吸取軟件插樁技術(shù),并對這種技術(shù)進行改善,純軟件工具插入的是一個函數(shù),而CodeTest插入的是一條賦值語句,它在匯編級也是一條語句,所以它執(zhí)行的時間非常短,同時避免了被其他的中斷所中斷,所以它對目標系統(tǒng)的影響非常小。另一方面,CodeTest從純硬件的測試工具那里吸取了從總線捕獲數(shù)據(jù)的技術(shù)并且對它進行了改善,CodeTest改變了采樣方式,它通過監(jiān)視系統(tǒng)總線,當程序運行到插入的特殊點的時候才會主動地到數(shù)據(jù)總線上去捕獲數(shù)據(jù)。335.6.2.1CodeTestCodeTest是一個硬件輔5.6.2.1CodeTest由于CodeTest對軟件插樁技術(shù)和從總線捕獲數(shù)據(jù)進行改善和提升,具有很強的性能分析、內(nèi)存分析、高級覆蓋率分析和代碼跟蹤功能。性能分析:CodeTest能同時對128000個函數(shù)和1000個任務進行性能分析,可以精確地得出每個函數(shù)或任務執(zhí)行的最大時間、最小時間和平均時間,精確度達到50ns;能夠精確地顯示各函數(shù)或任務之間的調(diào)用情況,幫助開發(fā)人員和測試人員發(fā)現(xiàn)系統(tǒng)瓶頸、優(yōu)化系統(tǒng)。覆蓋率分析:CodeTest在系統(tǒng)真實的環(huán)境下,可以從單元級、集成級、系統(tǒng)級以及產(chǎn)品終端現(xiàn)場階段進行嵌入式軟件的分析與測試,幫助測試工程師掌握當前的測試覆蓋率數(shù)據(jù),指導測試用例的編寫。內(nèi)存分析:CodeTest可以動態(tài)追蹤內(nèi)存分配,報告內(nèi)存出錯和相應的原始數(shù)據(jù)。它不僅可以在程序運行時報告為每條語句分配多少字節(jié)的內(nèi)存,而且可以鑒別20多種內(nèi)存分配的錯誤。代碼跟蹤分析:CodeTest提供400KB的追蹤緩沖空間,能追蹤150萬行源代碼。開發(fā)人員可以設置觸發(fā)器來追蹤自己感興趣的事件,可以顯示運行過程中程序運行的實際情況,幫助查找程序的Bug所在。345.6.2.1CodeTest由于CodeTest對軟件插5.6.2.2LogiScopeLogiScope是一組嵌入式軟件測試工具集。它貫穿于軟件開發(fā)、代碼評審、單元測試、集成測試、系統(tǒng)測試,以及軟件維護階段。LogiScope的重點是幫助代碼評審和動態(tài)覆蓋測試??傮w來說,LogiScope有兩方面的功能:靜態(tài)質(zhì)量分析功能:LogiScope的靜態(tài)分析功能非常直觀,都以圖表的方式顯示和報告,并且可以簡單地分析程序的函數(shù)結(jié)構(gòu),對于質(zhì)量度量的指標都給出了具體的定義。動態(tài)測試分析功能(覆蓋率分析):具有很好的結(jié)構(gòu)分析和瀏覽器,可以很直觀地顯示程序的分支(語句)覆蓋情況。355.6.2.2LogiScopeLogiScope是一組嵌5.6.2.2LogiScopeLogiScope產(chǎn)品線有3個產(chǎn)品,即RuleChecker、Audit、TestChecker。它們的功能分別如下:RuleChecker:根據(jù)為產(chǎn)品定制的規(guī)則自動地檢查代碼編程規(guī)則,可以避免錯誤陷阱和代碼錯誤。Audit:幫助定位錯誤的代碼模塊,一旦發(fā)現(xiàn)錯誤代碼模塊,Audit提供基于軟件度量和圖形的質(zhì)量信息,能夠幫助用戶診斷問題和作出判斷。TestChecker:分析代碼測試覆蓋率和顯示未覆蓋的代碼路徑,發(fā)現(xiàn)未測試源代碼中隱藏的Bug,提供軟件的可靠性。TestChecker產(chǎn)生每個測試的測試覆蓋信息和累計信息。用直方圖顯示覆蓋比率,并根據(jù)測試運行情況實時在線更改,隨時顯示新的測試所反映的測試覆蓋情況。365.6.2.2LogiScopeLogiScope產(chǎn)品線有5.6.3缺陷跟蹤管理工具Compuware公司的TrackRecord軟件MercuryInteractive公司的TestDirectorMozilla公司的Buzilla軟件國內(nèi)的微創(chuàng)公司的BMS軟件375.6.3缺陷跟蹤管理工具Compuware公司的Trac5.6.3.1TestDirectorTestDirector是業(yè)界第一個基于Web的測試管理解決方案,它可以在公司內(nèi)部進行全球范圍的測試協(xié)調(diào)。TestDirector能夠在一獨立的應用系統(tǒng)中提供需求管理功能,并且可以把測試需求管理于測試計劃、測試日程控制、測試執(zhí)行和錯誤跟蹤等功能融合為一體,因此極大地加速了測試的進程。測試需求管理測試計劃管理安排和執(zhí)行測試錯誤管理圖形化和報表輸出385.6.3.1TestDirectorTestDirect5.6.3.2BuzillaMozilla公司向我們提供了一個共享的免費工具Buzilla.作為一個產(chǎn)品缺陷的記錄及跟蹤工具,它能夠建立一個完善的Bug跟蹤體系,包括報告Bug、查詢Bug記錄并產(chǎn)生報表、處理解決、管理員系統(tǒng)初始化和設置四部分。并具有如下特點:基于Web方式,安裝簡單、運行方便快捷、管理安全有利于缺陷的清楚傳達系統(tǒng)靈活,具備可配置能力自動發(fā)送Email,通知相關(guān)人員395.6.3.2BuzillaMozilla公司向我們提供了5.7IBMRational自動化測試解決方案架構(gòu)405.7IBMRational自動化測試解決方案架構(gòu)405.7.1IBMRationalTestManager415.7.1IBMRationalTestManage5.7.1IBMRationalTestManager主要特點和功能自動化測試計劃管理所有類型的測試一次執(zhí)行多種測試類型鏈接測試用例與需求測試評估有意義的報告管理手動測試425.7.1IBMRationalTestManage5.7.2IBMRationalTestRealTime
代碼級測試工具代碼靜態(tài)分析代碼編輯、測試和調(diào)試相集成TestRealTime通過分析源代碼,自動生成測試驅(qū)動(TestDriver)和樁(TestStub)模版。測試執(zhí)行后自動生成測試報告和各種運行時候報告435.7.2IBMRationalTestRealTi5.7.3IBMRationalPurifyPlus
PurifyPlus是一套完整的運行時分析工具,它設計用于提高應用程序的可靠性和性能,PurifyPlus將內(nèi)存錯誤和代碼覆蓋分析結(jié)合到一個單一的、完整的軟件包中,它包括三個應用程序:RationalPurify--一個內(nèi)存分析工具(收集方法和對象層次的內(nèi)存分析數(shù)據(jù),并指出應用程序的內(nèi)存熱點所在)RationalQuantify--一個應用程序執(zhí)行時間分析工具(收集方法和線層次的分析數(shù)據(jù)并指出應用程序的性能瓶頸)RationalPureCoverage--一個代碼覆蓋率分析工具(通過突出未執(zhí)行的方法和代碼行來收集沒有測試到的部分的數(shù)據(jù))445.7.3IBMRationalPurifyPlus5.7.3IBMRationalPurifyPlusPurify:可以自動識別出二十多種內(nèi)存使用錯誤,包括:未初始化的局部變量未申請的內(nèi)存使用已釋放的內(nèi)存數(shù)組越界內(nèi)存丟失棧溢出問題棧結(jié)構(gòu)邊界錯誤等Purify系列現(xiàn)已支持C、C++、FORTRAN語言,以及UNIX和WindowNT等操作系統(tǒng),如SunOS、Solaris2.3,HP-UX,WindowsNTServer以及IBMA/X等。455.7.3IBMRationalPurifyPlusP5.7.3IBMRationalPurifyPlusQuantifyQuantify是一個面向VC,VB或者Java開發(fā)的測試性能瓶頸檢測工具,它可以自動檢測出影響程序段執(zhí)行速度的程序性能瓶頸,提供參數(shù)分析表等等直觀表格。幫助分析影響程序短執(zhí)行速度的關(guān)鍵部分。利用RationalQuantify各種數(shù)據(jù)圖表窗口,您可以直接識別應用程序的性能瓶頸。只需單擊鼠標,Quantify就可以輕松地描繪出整個應用程序或僅僅某個特定部分的性能曲線。465.7.3IBMRationalPurifyPlusQ5.7.3IBMRationalPurifyPlusPureCoveragePureCoverage是一個面向VC,VB或者Java開發(fā)的測試覆蓋程度檢測工具,它可以自動檢測測試完整性和那些無法達到的部分.作為一個質(zhì)量控制工程,可以使用PureCoverage在每一個測試階段生產(chǎn)詳盡的測試覆蓋程度報告。475.7.3IBMRationalPurifyPlusP5.7.4IBMRationalFunctionaltester由于測試是一個需要反復進行的過程,常常要數(shù)十次甚至數(shù)百次地重復。因此,這一特性大大地提高了軟件“再測試”(Re-Test)和"回歸測試"(Regression)的自動化程度,把測試人員從繁雜的、重復性的手工測試中解脫出來,從而顯著地提高軟件測試效率。
485.7.4IBMRationalFunctional5.7.5
IBMRational
PerformanceTester495.7.5IBMRationalPerformance5.7.5IBMRationalRobot
可開發(fā)三種測試腳本:用于功能測試的GUI腳本、用于性能測試的VU以及VB腳本。主要作用如下:執(zhí)行完整的功能測試。記錄和回放遍歷應用程序的腳本,以及測試在查證點(verificationpoints)處的對象狀態(tài)。執(zhí)行完整的性能測試。Robot和TestManager協(xié)作可以記錄和回放腳本,這些腳本有助于你斷定多客戶系統(tǒng)在不同負載情況下是否能夠按照用戶定義標準運行。在SQABasic、VB、VU環(huán)境下創(chuàng)建并編輯腳本。Robot編輯器提供有色代碼命令,并且在強大的集成腳本開發(fā)階段提供鍵盤幫助。測試IDE下VisualBasic、OracleForms、PowerBuilder、HTML、Java開發(fā)的應用程序。甚至可測試用戶界面上不可見對象。腳本回放階段收集應用程序診斷信息,Robot同RationalPurify、Quantify、PureCoverage集成,可以通過診斷工具回放腳本,在日志中察看結(jié)果。505.7.5IBMRationalRobot可開發(fā)三種5.8負載測試工具設計與開發(fā)負載測試工具總體結(jié)構(gòu)如下圖負載測試工具腳本工具(與腳本語句生成與解釋器)控制工具(多進程運行腳本控制)系統(tǒng)資源監(jiān)控工具結(jié)果分析工具(包括測試、自動生成)515.8負載測試工具設計與開發(fā)負載測試工具總體結(jié)構(gòu)如下圖負載5.8.1腳本工具腳本工具的主要功能是可以實現(xiàn)捕捉用戶的操作;可以用腳本語言模擬用戶事務操作,并將用戶的操作轉(zhuǎn)換為腳本語言描述,每個事務交易成為腳本語言的一句或幾句;腳本工具可以解釋運行腳本語言;腳本工具有自己的編輯器,可以對腳本語句進行編輯、增加注釋,還可以對兩個腳本進行比較。腳本語言需要同時記錄客戶端和服務器端的活動。對于數(shù)據(jù)庫系統(tǒng),記錄客戶端發(fā)出的每一個需求,也要記錄服務器端的響應。腳本語言執(zhí)行時需要直接調(diào)用服務器的API功能運行。使用腳本工具可以:監(jiān)視客戶端和服務器端的通信;生成功能調(diào)用執(zhí)行腳本語言。525.8.1腳本工具腳本工具的主要功能是可以實現(xiàn)捕捉用戶的操5.8.2控制工具當要模擬上百萬的用戶并發(fā)操作時,一臺計算機上運行幾百萬個進程會受到本機資源的限制,必須使用多臺計算機來運行這幾百萬個進程。為了協(xié)調(diào)控制,必須設置一臺主控制器,在主控制器上要建立與參與并發(fā)計算機的連接;實現(xiàn)對多臺機器進行控制,包括分配每臺計算機上運行的腳本個數(shù),及啟動腳本。為了測試事務的響應時間,必須建立計時機制。當并發(fā)運行時,主控制器還要收集記錄測試結(jié)果數(shù)據(jù),包括隨時間變化的各種參數(shù)(腳本運行的個數(shù)、事務的處理個數(shù)、資源的使用情況等),每個腳本運行的事務的開始時間、結(jié)束時間、持續(xù)時間,每個事務的最快響應時間、最慢響應時間等,計算平均響應時間。535.8.2控制工具當要模擬上百萬的用戶并發(fā)操作時,一臺計算5.8.3監(jiān)測工具監(jiān)視工具可以調(diào)用操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)軟件的資源監(jiān)測工具對系統(tǒng)資源進行監(jiān)測。還需用特殊工具監(jiān)測一些別的資源。包括下面內(nèi)容:腳本運行狀態(tài)(幾個通過,幾個失?。?,當前時刻多少個腳本在運行。被測事務處理時間響應圖(包括成功運行和失敗運行)。545.8.3監(jiān)測工具監(jiān)視工具可以調(diào)用操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)軟件5.8.4分析工具控制工具記錄下了測試結(jié)果數(shù)據(jù),對于測試結(jié)果數(shù)據(jù)的分析,需要使用工具進行分析,以便得出結(jié)論,分析內(nèi)容如下:原始記錄數(shù)據(jù)導出功能;各事務隨用戶增多的時間響應變化;事務平均響應圖,事務完成在整個測試運行時間所處的階段,各個事物在整個測試運行時間分布。每個事務完成的最快、最慢、平均時間,大部分(90%)完成時間,事務的完成個數(shù)隨響應時間的分布,描述在不同測試時間段內(nèi)完成的事務個數(shù)。比較工具可以在同一圖形上顯示多次測試運行的結(jié)果,以顯示優(yōu)化設置和不同硬件環(huán)境下負載測試的效果。分析工具包括測試報告自動生成工具,如生成word文件。報告內(nèi)容可以包括:測試執(zhí)行腳本名稱,環(huán)境,測試運行時間,被測試的每個事務通過個數(shù),失敗個數(shù),最快響應時間等。555.8.4分析工具控制工具記錄下了測試結(jié)果數(shù)據(jù),對于測試結(jié)5.9自動化測試成熟度在過去的日子中,自動化的測試工具只是被看作是一種捕獲和回放的工具。當前這個神話仍然在很多測試人員的思想中。而事實上自動化測試已經(jīng)遠不止捕獲和回放這么簡單了。按照成熟度自動化的測試可以被劃分為5個級別。565.9自動化測試成熟度在過去的日子中,自動化的測試工具只是被5.9自動化測試成熟度級別1:捕獲和回放:這是使用自動化測試的最低的級別,同時這并不是自動化測試最有用的使用方式。好處自動化的測試腳本能夠被自動的生成,而不需要有任何的編程知識。缺點你會擁有大量的測試腳本,同時當需求和應用發(fā)生變化時相應的測試腳本也必須被重新錄制。用法當測試的系統(tǒng)不會發(fā)生變化時
-
小規(guī)模的自動化。575.9自動化測試成熟度級別1:捕獲和回放:這是使用自動化測5.9自動化測試成熟度級別2:捕獲、編輯和回放:在這個級別中,使用自動化的測試工具來捕獲想要測試的功能。將測試腳本中的任何寫死的測試數(shù)據(jù),比如名字、帳號等等,從測試腳本的代碼中完全刪除,并將他們轉(zhuǎn)換成為變量。好處測試腳本開始變得更加的完善和靈活,并且可以大大的減少腳本的數(shù)量和維護的工作。缺點需要一定的編知識。頻繁的變化可能會引起"意大利面條式的代碼",并且變更和維護幾乎是不可能的。用法當進行回歸測試時,被測試的應用有很小的變化,比如僅僅是針對計算的代碼變化,但是沒有關(guān)于GUI界面的變化。585.9自動化測試成熟度級別2:捕獲、編輯和回放:在這個級別5.9自動化測試成熟度級別3:編程和回放:這個級別是面對多個構(gòu)建版本的有效使用測試自動化的第一個級別。595.9自動化測試成熟度級別3:編程和回放:這個級別是面對多5.9自動化測試成熟度好處確定了測試腳本的設計。適當?shù)脑O計是必要的。編碼的習慣必須是適當?shù)?。使用與開發(fā)中相同的編碼習慣是非常好的。這將開始搭建起測試和開發(fā)之間的橋梁。在項目的早期就可以開始自動化的測試。能夠在項目的早期就開始進行測試腳本的設計。與開發(fā)人員交并調(diào)查他們認為可能會存在問題的區(qū)域。確保了開發(fā)人員關(guān)注在獲得能夠被測試的方案上。缺點要求測試人員具有很好的軟件技能,包括設計、開發(fā)等。用法大規(guī)模的測試套件被開發(fā)、執(zhí)行和維護的專業(yè)自動化測試。605.9自動化測試成熟度好處確定了測試腳本的設計。適當?shù)脑O計是5.9自動化測試成熟度級別4:數(shù)據(jù)驅(qū)動的測試:對于自動化測試來說這是一個專業(yè)的測試級別。擁有一個強大的測試框架,這個測試框架是基于能夠根據(jù)被測試系統(tǒng)的變化快速創(chuàng)建一個測試腳本的測試功能庫。維護的成本相對是比較低的。在測試中會使用到大量真實的數(shù)據(jù)。615.9自動化測試成熟度級別4:數(shù)據(jù)驅(qū)動的測試:對于自動化測試5.9自動化測試成熟度好處能夠維護和使用良好的并且有效的模擬真實生活中數(shù)據(jù)的測試數(shù)據(jù)。缺點軟件開發(fā)的技能是基礎(chǔ),并且需要訪問相關(guān)的測試數(shù)據(jù)。用法大規(guī)模的測試套件被開發(fā)、執(zhí)行和維護的專業(yè)自動化測試。625.9自動化測試成熟度好處能夠維護和使用良好的并且有效的模擬5.9自動化測試成熟度級別5:使用動作詞的測試自動化:這是自動化測試的最高級別。主要的思想是將測試用例從測試工具中分離出來。好處測試用例的設計被從測試工具中分離了出來-關(guān)注在設計良好的測試用例上。允許快速的測試用例的執(zhí)行和基于用例的更好的估計。缺點需要一個具有工具技能和開發(fā)技能的測試團隊,以提供并維護測試工程(框架)。用法專業(yè)的測試自動化將技能的使用最優(yōu)化的結(jié)合起來635.9自動化測試成熟度級別5:使用動作詞的測試自動化:這是自5.9自動化測試成熟度好處測試用例的設計被從測試工具中分離了出來
-
關(guān)注在設計良好的測試用例上。允許快速的測試用例的執(zhí)行和基于用例的更好的估計。缺點需要一個具有工具技能和開發(fā)技能的測試團隊,以提供并維護測試工程(框架)。用法專業(yè)的測試自動化將技能的使用最優(yōu)化的結(jié)合起來645.9自動化測試成熟度好處測試用例的設計被從測試工具中分離了第五章軟件自動化測試理論及應用一個例子:RationalFuntionalTester65第五章軟件自動化測試理論及應用一個例子:1第五章軟件自動化測試理論及應用5.1自動化測試概念5.2自動化測試在軟件開發(fā)周期中的位置5.3自動化測試局限性5.4自動化測試基本理論5.5自動化測試實施5.6常用工具介紹5.7IBMRational自動化測試解決方案架構(gòu)5.8負載測試工具設計與開發(fā)5.9自動化測試成熟度66第五章軟件自動化測試理論及應用5.1自動化測試概念25.1自動化測試概念用工具代替/輔助人工完成軟件測試活動的過程,泛指所有能用工具輔助進行的有關(guān)測試活動。測試自動化的目標是對被測試系統(tǒng)進行自動測試??偟膩碚f,測試自動化的目標是通過較少的開銷,得到更徹底的測試,并提高產(chǎn)品的質(zhì)量。675.1自動化測試概念用工具代替/輔助人工完成軟件測試活動的過5.1自動化測試概念自動化測試有如下特點:可以對程序的新版本自動執(zhí)行回歸測試可以執(zhí)行一些手工測試困難或不可能進行的測試可以更好地利用資源測試具有一致性和可重復性測試的重用性可以更快地將軟件推向市場可以增加軟件信任度685.1自動化測試概念自動化測試有如下特點:45.1自動化測試概念測試自動化誤區(qū):不現(xiàn)實的期望期望自動測試發(fā)現(xiàn)大量新故障安全性錯覺自動測試的維護開銷技術(shù)問題695.1自動化測試概念測試自動化誤區(qū):55.2自動化測試在軟件開發(fā)周期中的位置705.265.3自動化測試局限性自動化測試不能取代手工測試。下列情況不適合于自動化測試:測試很少進行軟件不穩(wěn)定:如軟件升級版本時,用戶界面和功能頻繁變化,此時自動化測試相應部分修改的開銷較大。而軟件不穩(wěn)定時,手工測試可以很快發(fā)現(xiàn)故障。結(jié)果很容易通過人驗證的測試:該種情況下的自動化測試非常困難甚至不可能,如彩色模式的合適程度、屏幕輪廓的直觀效果,或選擇制定的屏幕對象是否能夠播放正確的聲音等。涉及物理交互的測試:如在讀卡機上劃卡,斷開設備的物理連接,開關(guān)電源等。715.3自動化測試局限性自動化測試不能取代手工測試。下列情況不5.3自動化測試局限性手工測試比自動測試發(fā)現(xiàn)的故障要多自動化測試主要是進行重復測試,一般情況下,自動化測試進行的工作是以前進行過的,因此被測試軟件在自動化測試中暴露的故障要少得多。測試自動化主要用于回歸測試,進行正確性驗證測試,而不是故障發(fā)現(xiàn)測試。據(jù)經(jīng)驗數(shù)據(jù)統(tǒng)計,自動測試只能發(fā)現(xiàn)約15%的故障,而手工測試可以發(fā)現(xiàn)85%的故障。725.3自動化測試局限性手工測試比自動測試發(fā)現(xiàn)的故障要多85.3自動化測試局限性自動化測試不能提高測試的有效性。自動化測試只是用于提高測試的效率,即減少測試的開銷和時間。自動化測試不具有想象力自動化測試是通過測試軟件進行,測試過程只是按照運行機制執(zhí)行。手工測試時可以直接判斷測試結(jié)果的正確性,而自動測試許多情況下測試結(jié)果還需要人工干預判斷。手工測試可以處理意外事件,如網(wǎng)絡連接中斷,此時必須重新建立連接。手工測試時可以及時處理該意外,而自動化測試時該意外事件一般都會導致測試的中止。735.3自動化測試局限性自動化測試不能提高測試的有效性。自動化5.4自動化測試基本理論自動化測試過程中主要涉及以下內(nèi)容:測試驅(qū)動、樁和驅(qū)動數(shù)據(jù)的自動生成:主要是依據(jù)所采用的測試方法,如等價類、邊界值等自動產(chǎn)生多組測試數(shù)據(jù)。自動測試輸入:工具錄制測試者所做的所有操作,并將這些操作寫成工具可以識別的腳本。被錄制的腳本中含有測試輸入(包括文本和鼠標移動、點擊菜單和按鈕等動作)測試腳本技術(shù):用于自動測試過程存放測試步驟、測試數(shù)據(jù)等相關(guān)內(nèi)容。測試結(jié)果的自動比較:將預期輸出與程序運行過程中的實際輸出進行比較。自動測試執(zhí)行:工具讀取腳本并執(zhí)行腳本命令,可以重復測試者的操作。在執(zhí)行腳本過程中可以完成測試結(jié)果的自動比較。自動測試管理:完成測試計劃、測試大綱、測試缺陷管理等工作。745.4自動化測試基本理論自動化測試過程中主要涉及以下內(nèi)容:5.4.1自動測試輸入對于支持命令行的軟件系統(tǒng),采用批處理方式輸入是最好的測試用例自動化輸入方式對于不支持命令行的軟件系統(tǒng),一般來說可以采用商用化錄制回放測試工具生成輸入腳本,或自己編制測試用例輸入腳本755.4.1自動測試輸入對于支持命令行的軟件系統(tǒng),采用批處理5.4.2自動比較簡單比較復雜比較動態(tài)比較執(zhí)行后比較765.4.2自動比較簡單比較125.4.3測試結(jié)果輸出和轉(zhuǎn)儲測試結(jié)果輸出一般有以下形式:基于磁盤的輸出:包括數(shù)據(jù)庫、文件和目錄/文件夾;基于屏幕的輸出:主要是文本和特殊圖形字符、圖形圖像等;多媒體信息的輸出:包括不易比較的測試輸出形式如播放的聲音、顯示的視頻等;通訊報文的輸出:主要是網(wǎng)絡中傳送的通訊報文,一般以幀形式出現(xiàn)。775.4.3測試結(jié)果輸出和轉(zhuǎn)儲測試結(jié)果輸出一般有以下形式:15.4.4腳本技術(shù)線性教本結(jié)構(gòu)化腳本共享腳本數(shù)據(jù)驅(qū)動腳本關(guān)鍵字驅(qū)動腳本785.4.4腳本技術(shù)線性教本145.4.4.1線性教本線性腳本是通過錄制手工執(zhí)行的測試用例時得到的腳本,這種腳本包含所有的擊鍵(鍵盤和鼠標)、控制測試軟件的控制鍵及輸入數(shù)據(jù)的數(shù)字鍵,可以添加比較指令實現(xiàn)結(jié)果比較線性腳本的優(yōu)點主要是:不需要深入的工作或計劃,只需坐在計算機前錄制手工任務;可以快速開始自動化;對實際執(zhí)行操作可以審計跟蹤;用戶不必是編程人員;提供良好的(軟件或工具)演示。線性腳本的缺點主要是:一切依賴于每次捕獲的內(nèi)容;測試輸入和比較是“捆綁”在腳本中的;無法共享或重用腳本;容易受軟件變化的影響;修改代價大,維護成本高。795.4.4.1線性教本線性腳本是通過錄制手工執(zhí)行的測試用例5.4.4.2結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設計,含有控制腳本執(zhí)行的指令,支持順序、選擇和循環(huán)(疊代控制)3種基本控制結(jié)構(gòu),一個腳本可以調(diào)用另一個腳本。另外由于引進其他指令改變控制結(jié)構(gòu),可以提高重用性,增加功能和靈活性,改善維護性。需要一定的編程技術(shù)。主要有優(yōu)點是健壯性更好,更靈活;但是腳本更加復雜,測試數(shù)據(jù)依然“包含”腳本中。805.4.4.2結(jié)構(gòu)化腳本結(jié)構(gòu)化腳本類似于結(jié)構(gòu)化程序設計,含5.4.4.3共享腳本共享腳本可以被多個測試用例使用,腳本之間可以相互調(diào)用;可以允許同一軟件應用或系統(tǒng)的測試之間共享腳本;在不同的軟件應用或系統(tǒng)的測試之間也可共享腳本。共享腳本的優(yōu)點是:以較少的開銷實現(xiàn)類似的測試;維護開銷低于線性腳本;刪除明顯的重復;可以在共享腳本中增加更智能的功能。共享腳本的缺點是:需要跟蹤更多的腳本,文檔、文字以及存儲,如果管理得不好,很難找到適當?shù)哪_本;每個測試仍需要一個特定的測試腳本,維護成本仍然比較高;共享腳本通常只是針對被測軟件的某一部分。815.4.4.3共享腳本共享腳本可以被多個測試用例使用,腳本5.4.4.4數(shù)據(jù)驅(qū)動腳本數(shù)據(jù)驅(qū)動腳本是將測試輸入存儲在獨立的(數(shù)據(jù))文件中(*.XLS、*.TXT、*.DAT等),而不是存儲在腳本中,腳本中只存放控制信息。用變量取代在錄制的腳本代碼中固定輸入內(nèi)容,如:名字、地址、數(shù)據(jù)等,然后通過變量從外部(文件、電子表格、數(shù)據(jù)庫等)讀取數(shù)據(jù)的測試數(shù)據(jù)驅(qū)動腳本的優(yōu)點是:可以很快增加類似的測試(腳本相同,數(shù)據(jù)不同);測試者增加新測試不必具有工具腳本語言的技術(shù)或編程知識;對于第二個測試及后續(xù)測試無額外的腳本維護開銷。數(shù)據(jù)驅(qū)動腳本的缺點是:初始建立的開銷較大;需要專業(yè)(編程)支持。825.4.4.4數(shù)據(jù)驅(qū)動腳本數(shù)據(jù)驅(qū)動腳本是將測試輸入存儲在獨5.4.4.5關(guān)鍵字驅(qū)動腳本關(guān)鍵詞驅(qū)動腳本實際上是較復雜的數(shù)據(jù)驅(qū)動技術(shù)的邏輯擴展。用變量取代在錄制的腳本代碼中的對象標識,如:按鈕、編輯框等控件ID等,然后在腳本中通過這些變量來操作這些對象進行。關(guān)鍵字驅(qū)動腳本有如下特征:測試腳本由控制腳本、測試文件、支持腳本組成;控制腳本不再受被測軟件或特殊應用的約束;測試文件中使用關(guān)鍵字描述測試事例;控制腳本依次讀取測試文件中的每個關(guān)鍵字并調(diào)用相關(guān)的支持腳本。關(guān)鍵字驅(qū)動腳本的優(yōu)點:獨立于測試腳本語言開發(fā)測試事例所需腳本數(shù)量是隨軟件的規(guī)模而不是測試的數(shù)量而變化的可以用與工具(及平臺)無關(guān)的方法實現(xiàn)測試實現(xiàn)測試的方法可以剪裁適合測試者而不是測試工具835.4.4.5關(guān)鍵字驅(qū)動腳本關(guān)鍵詞驅(qū)動腳本實際上是較復雜的5.4.5系統(tǒng)運行數(shù)據(jù)統(tǒng)計性能測試和內(nèi)存泄露檢查的測試過程中,不是預期輸出與實際輸出的比較,而是運行數(shù)據(jù)采集并統(tǒng)計輸出結(jié)果。主要利用操作系統(tǒng)提供的API函數(shù),測試軟件獲得系統(tǒng)信息并進行統(tǒng)計和分析。845.4.5系統(tǒng)運行數(shù)據(jù)統(tǒng)計性能測試和內(nèi)存泄露檢查的測試過程5.5自動化測試實施被測試軟件的測試方式選擇并不是所有的軟件都需要進行自動化測試。855.5自動化測試實施被測試軟件的測試方式選擇215.5自動化測試實施自動化測試實施前的準備工作在進行測試自動化之前,對被測試軟件的可測試性接口的分析和處理是非常重要的工作;通過對接口的分析,制定出測試輸入和輸出的腳本文件結(jié)構(gòu)。865.5自動化測試實施自動化測試實施前的準備工作225.5自動化測試實施自動化測試流程自動化回歸測試在實施上,一般分為兩個主要步驟,一個是測試結(jié)果輸出腳本模板生成,該部分需要人工進行,一個是自動化回歸測試。875.5自動化測試實施自動化測試流程235.5自動化測試實施測試結(jié)果輸出腳本模板生成流程圖885.5自動化測試實施測試結(jié)果輸出腳本模板生成流程圖245.5自動化測試實施整個自動化回歸測試流程圖:895.5自動化測試實施整個自動化回歸測試流程圖:255.6常用工具介紹序號測試的類型簡述1代碼分析器監(jiān)督程序代碼復雜度,是否遵循標準等等2覆蓋分析器校檢哪一部分的代碼已經(jīng)被測試,面向代碼語句覆蓋、條件覆蓋、路徑覆蓋等等3內(nèi)存分析器邊界檢查和漏洞檢測等等4性能測試工具測試在不同的負載級別之下客戶/服務器和WEB應用程序等等5WEB測試工具檢驗鏈接是否有效,客戶和服務器端的代碼、WEB站點的交互是否正常工作6其他工具測試實例管理,文件管理,BUG報告,配置管理工具905.6常用工具介紹序號測試的類型簡述1代碼分析器監(jiān)5.6常用工具介紹性能測試工具Loadrunner嵌入式軟件測試工具CodeTest
LogiScope缺陷管理跟蹤工具TestDirector
Buzilla915.6常用工具介紹性能測試工具275.6.1LoadRunner
LoadRunner?是一種預測系統(tǒng)行為和性能的工業(yè)標準級負載測試工具。通過以模擬上千萬用戶實施并發(fā)負載及實時性能監(jiān)測的方式來確認和查找問題,LoadRunner能夠?qū)φ麄€企業(yè)架構(gòu)進行測試。通過使用LoadRunner,企業(yè)能最大限度地縮短測試時間,優(yōu)化性能和加速應用系統(tǒng)的發(fā)布周期。
925.6.1LoadRunnerLoadRunner?是5.6.1LoadRunner935.6.1LoadRunner295.6.1LoadRunner創(chuàng)建虛擬用戶創(chuàng)建真實的負載實時監(jiān)測器分析結(jié)果以精確定位問題所在重復測試保證系統(tǒng)發(fā)布的高性能其他特性EnterpriseJavaBeans的測試支持無線應用協(xié)議支持MediaStream應用完整的企業(yè)應用環(huán)境的支持
945.6.1LoadRunner創(chuàng)建虛擬用戶305.6.2嵌入式軟件測試工具純軟件測試工具純軟件的測試工具采用的軟件插樁技術(shù),在被測試代碼中插入一些函數(shù),用這些函數(shù)來完成數(shù)據(jù)的生成,并上傳數(shù)據(jù)到目標系統(tǒng)的共享內(nèi)存中。純硬件測試工具:主要是邏輯分析儀和仿真器。邏輯分析儀主要通過監(jiān)控系統(tǒng)在運行時總線上的指令周期,并以一定頻率捕獲這些信號,通過對捕獲的信號進行分析來判斷程序當前運行狀況。仿真器通常采用內(nèi)存標記技術(shù),它所關(guān)心的也是處理器從外存的代碼段讀取數(shù)據(jù)的情況純硬件測試工具是不具備對內(nèi)存分配進行分析和檢查的能力955.6.2嵌入式軟件測試工具純軟件測試工具315.6.2.1CodeTestCodeTest系統(tǒng)包括3種嵌入式軟件測試和分析工具:CodeTestNative,CodeTestSoftware-In-Circuit和CodeTestHardware-In-Circuit,每一種工具代表了嵌入式系統(tǒng)開發(fā)的每一個周期的不同階段,它們分別由于:在開發(fā)階段早期,沒有目標硬件,只有宿主機開發(fā)環(huán)境和測試環(huán)境。在開發(fā)階段中期,系統(tǒng)的集成工作、硬件開發(fā)板已出現(xiàn)。在產(chǎn)品確認階段,此時產(chǎn)品進入系統(tǒng)綜合測試階段。965.6.2.1CodeTestCodeTest系統(tǒng)包括3種5.6.2.1CodeTestCodeTest是一個硬件輔助軟件的測試與分析工具,它一方面吸取軟件插樁技術(shù),并對這種技術(shù)進行改善,純軟件工具插入的是一個函數(shù),而CodeTest插入的是一條賦值語句,它在匯編級也是一條語句,所以它執(zhí)行的時間非常短,同時避免了被其他的中斷所中斷,所以它對目標系統(tǒng)的影響非常小。另一方面,CodeTest從純硬件的測試工具那里吸取了從總線捕獲數(shù)據(jù)的技術(shù)并且對它進行了改善,CodeTest改變了采樣方式,它通過監(jiān)視系統(tǒng)總線,當程序運行到插入的特殊點的時候才會主動地到數(shù)據(jù)總線上去捕獲數(shù)據(jù)。975.6.2.1CodeTestCodeTest是一個硬件輔5.6.2.1CodeTest由于CodeTest對軟件插樁技術(shù)和從總線捕獲數(shù)據(jù)進行改善和提升,具有很強的性能分析、內(nèi)存分析、高級覆蓋率分析和代碼跟蹤功能。性能分析:CodeTest能同時對128000個函數(shù)和1000個任務進行性能分析,可以精確地得出每個函數(shù)或任務執(zhí)行的最大時間、最小時間和平均時間,精確度達到50ns;能夠精確地顯示各函數(shù)或任務之間的調(diào)用情況,幫助開發(fā)人員和測試人員發(fā)現(xiàn)系統(tǒng)瓶頸、優(yōu)化系統(tǒng)。覆蓋率分析:CodeTest在系統(tǒng)真實的環(huán)境下,可以從單元級、集成級、系統(tǒng)級以及產(chǎn)品終端現(xiàn)場階段進行嵌入式軟件的分析與測試,幫助測試工程師掌握當前的測試覆蓋率數(shù)據(jù),指導測試用例的編寫。內(nèi)存分析:CodeTest可以動態(tài)追蹤內(nèi)存分配,報告內(nèi)存出錯和相應的原始數(shù)據(jù)。它不僅可以在程序運行時報告為每條語句分配多少字節(jié)的內(nèi)存,而且可以鑒別20多種內(nèi)存分配的錯誤。代碼跟蹤分析:CodeTest提供400KB的追蹤緩沖空間,能追蹤150萬行源代碼。開發(fā)人員可以設置觸發(fā)器來追蹤自己感興趣的事件,可以顯示運行過程中程序運行的實際情況,幫助查找程序的Bug所在。985.6.2.1CodeTest由于CodeTest對軟件插5.6.2.2LogiScopeLogiScope是一組嵌入式軟件測試工具集。它貫穿于軟件開發(fā)、代碼評審、單元測試、集成測試、系統(tǒng)測試,以及軟件維護階段。LogiScope的重點是幫助代碼評審和動態(tài)覆蓋測試??傮w來說,LogiScope有兩方面的功能:靜態(tài)質(zhì)量分析功能:LogiScope的靜態(tài)分析功能非常直觀,都以圖表的方式顯示和報告,并且可以簡單地分析程序的函數(shù)結(jié)構(gòu),對于質(zhì)量度量的指標都給出了具體的定義。動態(tài)測試分析功能(覆蓋率分析):具有很好的結(jié)構(gòu)分析和瀏覽器,可以很直觀地顯示程序的分支(語句)覆蓋情況。995.6.2.2LogiScopeLogiScope是一組嵌5.6.2.2LogiScopeLogiScope產(chǎn)品線有3個產(chǎn)品,即RuleChecker、Audit、TestChecker。它們的功能分別如下:RuleChecker:根據(jù)為產(chǎn)品定制的規(guī)則自動地檢查代碼編程規(guī)則,可以避免錯誤陷阱和代碼錯誤。Audit:幫助定位錯誤的代碼模塊,一旦發(fā)現(xiàn)錯誤代碼模塊,Audit提供基于軟件度量和圖形的質(zhì)量信息,能夠幫助用戶診斷問題和作出判斷。TestChecker:分析代碼測試覆蓋率和顯示未覆蓋的代碼路徑,發(fā)現(xiàn)未測試源代碼中隱藏的Bug,提供軟件的可靠性。TestChecker產(chǎn)生每個測試的測試覆蓋信息和累計信息。用直方圖顯示覆蓋比率,并根據(jù)測試運行情況實時在線更改,隨時顯示新的測試所反映的測試覆蓋情況。1005.6.2.2LogiScopeLogiScope產(chǎn)品線有5.6.3缺陷跟蹤管理工具Compuware公司的TrackRecord軟件MercuryInteractive公司的TestDirectorMozilla公司的Buzilla軟件國內(nèi)的微創(chuàng)公司的BMS軟件1015.6.3缺陷跟蹤管理工具Compuware公司的Trac5.6.3.1TestDirectorTestDirector是業(yè)界第一個基于Web的測試管理解決方案,它可以在公司內(nèi)部進行全球范圍的測試協(xié)調(diào)。TestDirector能夠在一獨立的應用系統(tǒng)中提供需求管理功能,并且可以把測試需求管理于測試計劃、測試日程控制、測試執(zhí)行和錯誤跟蹤等功能融合為一體,因此極大地加速了測試的進程。測試需求管理測試計劃管理安排和執(zhí)行測試錯誤管理圖形化和報表輸出1025.6.3.1TestDirectorTestDirect5.6.3.2BuzillaMozilla公司向我們提供了一個共享的免費工具Buzilla.作為一個產(chǎn)品缺陷的記錄及跟蹤工具,它能夠建立一個完善的Bug跟蹤體系,包括報告Bug、查詢Bug記錄并產(chǎn)生報表、處理解決、管理員系統(tǒng)初始化和設置四部分。并具有如下特點:基于Web方式,安裝簡單、運行方便快捷、管理安全有利于缺陷的清楚傳達系統(tǒng)靈活,具備可配置能力自動發(fā)送Email,通知相關(guān)人員1035.6.3.2BuzillaMozilla公司向我們提供了5.7IBMRational自動化測試解決方案架構(gòu)1045.7IBMRational自動化測試解決方案架構(gòu)405.7.1IBMRationalTestManager1055.7.1IBMRationalTestManage5.7.1IBMRationalTestManager主要特點和功能自動化測試計劃管理所有類型的測試一次執(zhí)行多種測試類型鏈接測試用例與需求測試評估有意義的報告管理手動測試1065.7.1IBMRationalTestManage5.7.2IBMRationalTestRealTime
代碼級測試工具代碼靜態(tài)分析代碼編輯、測試和調(diào)試相集成TestRealTime通過分析源代碼,自動生成測試驅(qū)動(TestDriver)和樁(TestStub)模版。測試執(zhí)行后自動生成測試報告和各種運行時候報告1075.7.2IBMRationalTestRealTi5.7.3IBMRationalPurifyPlus
PurifyPlus是一套完整的運行時分析工具,它設計用于提高應用程序的可靠性和性能,PurifyPlus將內(nèi)存錯誤和代碼覆蓋分析結(jié)合到一個單一的、完整的軟件包中,它包括三個應用程序:RationalPurify--一個內(nèi)存分析工具(收集方法和對象層次的內(nèi)存分析數(shù)據(jù),并指出應用程序的內(nèi)存熱點所在)RationalQuantify--一個應用程序執(zhí)行時間分析工具(收集方法和線層次的分析數(shù)據(jù)并指出應用程序的性能瓶頸)RationalPureCoverage--一個代碼覆蓋率分析工具(通過突出未執(zhí)行的方法和代碼行來收集沒有測試到的部分的數(shù)據(jù))1085.7.3IBMRationalPurifyPlus5.7.3IBMRationalPurifyPlusPurify:可以自動識別出二十多種內(nèi)存使用錯誤,包括:未初始化的局部變量未申請的內(nèi)存使用已釋放的內(nèi)存數(shù)組越界內(nèi)存丟失棧溢出問題棧結(jié)構(gòu)邊界錯誤等Purify系列現(xiàn)已支持C、C++、FORTRAN語言,以及UNIX和WindowNT等操作系統(tǒng),如SunOS、Solaris2.3,HP-UX,WindowsNTServer以及IBMA/X等。1095.7.3IBMRationalPurifyPlusP5.7.3IBMRationalPurifyPlusQuantifyQuantify是一個面向VC,VB或者Java開發(fā)的測試性能瓶頸檢測工具,它可以自動檢測出影響程序段執(zhí)行速度的程序性能瓶頸,提供參數(shù)分析表等等直觀表格。幫助分析影響程序短執(zhí)行速度的關(guān)鍵部分。利用RationalQuantify各種數(shù)據(jù)圖表窗口,您可以直接識別應用程序的性能瓶頸。只需單擊鼠標,Quantify就可以輕松地描繪出整個應用程序或僅僅某個特定部分的性能曲線。1105.7.3IBMRationalPurifyPlusQ5.7.3IBMRationalPurifyPlusPureCoveragePureCoverage是一個面向VC,VB或者Java開發(fā)的測試覆蓋程度檢測工具,它可以自動檢測測試完整性和那些無法達到的部分.作為一個質(zhì)量控制工程,可以使用PureCoverage在每一個測試階段生產(chǎn)詳盡的測試覆蓋程度報告。1115.7.3IBMRationalPurifyPlusP5.7.4IBMRationalFunctionaltester由于測試是一個需要反復進行的過程,常常要數(shù)十次甚至數(shù)百次地重復。因此,這一特性大大地提高了軟件“再測試”(Re-Test)和"回歸測試"(Regression)的自動化程度,把測試人員從繁雜的、重復性的手工測試中解脫出來,從而顯著地提高軟件測試效率。
1125.7.4IBMRationalFunctional5.7.5
IBMRational
PerformanceTester1135.7.5IBMRationalPerformance5.7.5IBMRationalRobot
可開發(fā)三種測試腳本:用于功能測試的GUI腳本、用于性能測試的VU以及VB腳本。主要作用如下:執(zhí)行完整的功能測試。記錄和回放遍歷應用程序的腳本,以及測試在查證點(verificationpoints)處的對象狀態(tài)。執(zhí)行完整的性能測試。Robot和TestManager協(xié)作可以記錄和回放腳本,這些腳本有助于你斷定多客戶系統(tǒng)在不同負載情況下是否能夠按照用戶定義標準運行。在SQABasic、VB、VU環(huán)境下創(chuàng)建并編輯腳本。Robot編輯器提供有色代碼命令,并且在強大的集成腳本開發(fā)階段提供鍵盤幫助。測試IDE下VisualBasic、OracleForms、PowerBuilder、HTML、Java開發(fā)的應用程序。甚至可測試用戶界面上不可見對象。腳本回放階段收集應用程序診斷信息,Robot同RationalPurify、Quantify、PureCoverage集成,可以通過診斷工具回放腳本,在日志中察看結(jié)果。1145.7.5IBMRationalRobot可開發(fā)三種5.8負載測試工具設計與開發(fā)負載測試工具總體結(jié)構(gòu)如下圖負載測試工具腳本工具(與腳本語句生成與解釋器)控制工具(多進程運行腳本控制)系統(tǒng)資源監(jiān)控工具結(jié)果分析工具(包括測試、自動生成)1155.8負載測試工具設計與開發(fā)負載測試工具總體結(jié)構(gòu)如下圖負載5.8.1腳本工具腳本工具的主要功能是可以實現(xiàn)捕捉用戶的操作;可以用腳本語言模擬用戶事務操作,并將用戶的操作轉(zhuǎn)換為腳本語言描述,每個事務交易成為腳本語言的一句或幾句;腳本工具可以解釋運行腳本語言;腳本工具有自己的編輯器,可以對腳本語句進行編輯、增加注釋,還可以對兩個腳本進行比較。腳本語言需要同時記錄客戶端和服務器端的活動。對于數(shù)據(jù)庫系統(tǒng),記錄客戶端發(fā)出的每一個需求,也要記錄服務器端的響應。腳本語言執(zhí)行時需要直接調(diào)用服務器的API功能運行。使用腳本工具可以:監(jiān)視客戶端和服務器端的通信;生成功能調(diào)用執(zhí)行腳本語言。1165.8.1腳本工具腳本工具的主要功能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機掛粉協(xié)議書
- 熱菜供應合同范本
- 苗圃苗木協(xié)議書
- 蒙特列爾協(xié)議書
- 融資合同范協(xié)議
- 解除合同免責協(xié)議
- 認購協(xié)議沒合同
- 設備續(xù)費協(xié)議書
- 說媒贍養(yǎng)協(xié)議書
- 2025廣東廣州市勞動人事爭議仲裁委員會招聘兼職仲裁員備考筆試試題及答案解析
- 2026年度安全教育培訓計劃培訓記錄(1-12個月附每月內(nèi)容模板)
- 廣東省深圳市寶安區(qū)2024-2025學年八年級上學期1月期末考試數(shù)學試題
- 2023電氣裝置安裝工程盤、柜及二次回路接線施工及驗收規(guī)范
- 大量不保留灌腸
- 2025年江蘇省安全員C2本考試題庫+解析及答案
- 物業(yè)經(jīng)理競聘管理思路
- 臨床營養(yǎng)管理制度匯編
- 購銷合同電子模板下載(3篇)
- 防洪評價進度安排方案(3篇)
- 胃腸減壓技術(shù)操作并發(fā)癥
- 院感職業(yè)防護教學課件
評論
0/150
提交評論