使用Rational PurifyPlus 進行運行時分析_第1頁
使用Rational PurifyPlus 進行運行時分析_第2頁
使用Rational PurifyPlus 進行運行時分析_第3頁
使用Rational PurifyPlus 進行運行時分析_第4頁
使用Rational PurifyPlus 進行運行時分析_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第第頁使用RationalPurifyPlus進行運行時分析使用RationalPurifyPlus進行運行時分析

發(fā)表于:2023-03-06來源::點擊數(shù):標簽:Purifypurify

運行時分析是一種基于觀察系統(tǒng)運行時行為的實踐。它與"靜態(tài)分析"不同,靜態(tài)分析是指通過觀察源代碼或高級架構(gòu)分析系統(tǒng)行為;或是分析系統(tǒng)失敗時的"崩潰分析。"調(diào)試是一種經(jīng)典的運行時分析的例子:設(shè)置斷點,一步步地運行系統(tǒng),并且觀察評估值和變量,通過這

運行時分析是一種基于觀察系統(tǒng)運行時行為的實踐。它與"靜態(tài)分析"不同,靜態(tài)分析是指通過觀察源代碼或高級架構(gòu)分析系統(tǒng)行為;或是分析系統(tǒng)失敗時的"崩潰分析。"

調(diào)試是一種經(jīng)典的運行時分析的例子:設(shè)置斷點,一步步地運行系統(tǒng),并且觀察評估值和變量,通過這些方法了解系統(tǒng)運行時所發(fā)生的情況。當您調(diào)試的過程中,您不會對所有可能發(fā)生的事情感興趣,僅僅對真正發(fā)生的感興趣。這正是將運行時分析從靜態(tài)分析中分離出來的原因。

調(diào)試過程是高度互動且有效的,但它受限于所能展示的內(nèi)容。當您將關(guān)注的焦點集中于一行或一個變量時,它很難識別出模式并綜合高級行為。

測試是另一種運行時分析:您通過數(shù)據(jù)或事件檢驗是否獲得來自系統(tǒng)的正確行為。這種類型的測試是軟件質(zhì)量的基礎(chǔ)。

傳統(tǒng)的測試僅僅為您展現(xiàn)出這么多。一個通過了所有測試(獲得正確結(jié)果)的系統(tǒng)仍然具有嚴重的質(zhì)量問題。

這些就是為什么類似于IBMRationalPurifyPlus的運行時分析工具誕生的原因。

什么是PurifyPlus?

PurifyPlus是一種運行時分析工具,它用以在系統(tǒng)運行時監(jiān)測系統(tǒng)并且報告系統(tǒng)行為的重要內(nèi)容:

它會使用多少內(nèi)存?

是否會造成內(nèi)存泄露?

是否包括內(nèi)存訪問錯誤?

需要多長時間啟動;瓶頸在哪里?

什么是線程運行/睡眠行為?

實際運行的源代碼有多少?

這些關(guān)鍵分析特征都與核心"正確性"問題無關(guān):"是否能夠運行?"和"是否產(chǎn)生正確結(jié)果?"測試能夠顯示您的系統(tǒng)是否正常工作,利用類似于PurifyPlus的運行時分析工具能夠發(fā)現(xiàn)所有類型的錯誤。

PurifyPlus的主要組件有:

內(nèi)存使用追蹤及內(nèi)存錯誤檢測

量化的性能分析、代碼流和線程可視化

源代碼覆蓋分析的PureCoverage

系統(tǒng)開發(fā)周期中的運行時分析

交互的開發(fā)周期和工程質(zhì)量方案中重要的自動化構(gòu)建、測試過程中都會包含運行時分析。

開發(fā)與執(zhí)行過程中的運行時分析

在交互開發(fā)過程中,Purify能夠在新代碼加入工程前報告內(nèi)存錯誤。開發(fā)人員能夠使用PureCoverage識別所需新測試的區(qū)域。Quantify能夠在開發(fā)早期展現(xiàn)未期望的代碼路徑和瓶頸。

自動化測試過程中的運行時分析

當運行自動化構(gòu)建測試時,PurifyPlus能夠使您監(jiān)測質(zhì)量并且收集信息以確保工程處于正軌。當您的測試運行于Purify且沒有錯誤報告時,您就可以知道系統(tǒng)并不含有內(nèi)存訪問錯誤和內(nèi)存泄露。當所運行的Quantify顯示性能滿足目標時,您可以知道系統(tǒng)沒有遇到瓶頸。當PureCoverage報告高級別的代碼覆蓋時,您可以知道并沒有引入新的代碼塊,因此不必增加自動測試。

您可以增加利用自動化測試工具(IBMRationalFunctionalTester)所獲得的運行時分析數(shù)據(jù)的質(zhì)量。自動化的測試能夠在一次疊代中得到更多的測試信息,并且能夠評估所引入的新產(chǎn)品質(zhì)量效果。如果軟件質(zhì)量介于兩類連續(xù)的組件疊代間,那么運行時分析數(shù)據(jù)很容易找出其中的特點或代碼的改變。

用以理解系統(tǒng)的運行時分析

有時,運行時分析并不包括正確性或質(zhì)量。例如,運行時分析可以幫助理解系統(tǒng)。尤其是,Quantify能夠展示出調(diào)用圖,揭示系統(tǒng)的各個部分如何協(xié)調(diào)工作,或揭示了非期望的性能下降或交互。

基本的PurifyPlus能力

如上所述,IBMRationalPurifyPlus具有三個主要組件:內(nèi)存分析的Purify,性能分析的Quantify,和代碼覆蓋分析的PureCoverage。

對于C/C++程序,Purify自動化的檢測并報告內(nèi)存泄露和內(nèi)存訪問錯誤,例如,在內(nèi)存釋放后使用內(nèi)存,重復(fù)釋放相同區(qū)域的內(nèi)存,或是初始化前從內(nèi)存讀。所有這些都是潛伏于程序中的軟件質(zhì)量問題,即使通過了所有測試。這類錯誤可以導(dǎo)致嚴重的生產(chǎn)錯誤。

對于Java和Microsoft.Net程序("已管理的程序"),Purify追蹤內(nèi)存的使用和內(nèi)存引用,因此,您能夠發(fā)現(xiàn)哪里是內(nèi)存瓶頸,應(yīng)在哪里釋放內(nèi)存,比對前后圖形以檢測程序中未預(yù)料的內(nèi)存使用("泄露")。

Quantify追蹤程序性能和調(diào)用行為,因此您能夠發(fā)現(xiàn)執(zhí)行流并識別出瓶頸。Quantify強調(diào)了使用RiverofTime(tm)特征的花費最久的代碼路徑。除此之外,Quantify為您可視化的實現(xiàn)了線程執(zhí)行行為。

PureCoverage追蹤代碼覆蓋,因此您可以發(fā)現(xiàn)測試與運行時分析工具不能發(fā)現(xiàn)的鴻溝。由于Purify和Quantify僅僅看到了實際運行的代碼,PureCoverage提供的代碼覆蓋矩陣重點了解正在檢測和更新的質(zhì)量。

使用PurifyPlus的運行時分析的例子

調(diào)試的主要目標就是找出缺陷的根本原因并理解程序行為。

運行時分析提供了額外的補充傳統(tǒng)調(diào)試不足的能力:

應(yīng)用執(zhí)行的可視化。

重要運行時參數(shù)的度量,包括內(nèi)存使用、性能和代碼覆蓋。

用戶模式下的錯誤檢測。

運行時行為的文檔。

我們將在下面檢查這些能力。

應(yīng)用執(zhí)行的可視化

為理解這一能力,我們將看到以下四個例子。

可視化例子1:代碼覆蓋

使用諸如RationalPureCoverage的運行時工具(包含于RationalPurifyPlus中)提供了各種視圖展現(xiàn)代碼覆蓋信息,其中之一就是AnnotatedSource。這一特別的視圖顯示了所檢查的應(yīng)用的源文件;劃線的顏色指出了執(zhí)行測試事例之后的狀態(tài):hit、missed、dead或部分hit。

可視化例子2:線程

運行時分析工具諸如RationalQuantify(包含于RationalPurifyPlus中)提供了線程可視化,它能夠利用標記調(diào)試時每個線程的狀態(tài)檢測多線程問題。如圖2所示,它允許您在調(diào)試時檢測可視化線程的狀態(tài)。

可視化例子3:調(diào)用圖

運行時分析工具還能夠檢測和顯示性能瓶頸。這種方法與傳統(tǒng)方式相比最大的優(yōu)勢就在于,您可以獲得完美的執(zhí)行路徑概況,和關(guān)于調(diào)用數(shù)準確信息。如圖3A和3B所示,RationalQuantify中的CallGraph強調(diào)了最大時間消耗執(zhí)行的路徑的調(diào)用鏈;那就是性能弱點。連接方法的粗線表示了調(diào)用鏈所花費時間和剩余應(yīng)用時間(如果使用Purify,那就是內(nèi)存)的比率。

可視化例子4:內(nèi)存使用

處理內(nèi)存泄露的第一步就是要檢測。一種直觀的方式就是可視化全部內(nèi)存使用并且在測試(PUT)下進行內(nèi)存快照。這可以在運行中的應(yīng)用中發(fā)現(xiàn)潛在的內(nèi)存泄露。(在RationalPurifyforJava和.NET管理應(yīng)用中已經(jīng)實現(xià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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論