• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    C/C++內存問題檢查利器——Purify

    發布: 2009-4-20 17:24 | 作者: 陳皓 | 來源: 測試時代采編 | 查看: 306次 | 進入軟件測試論壇討論

    領測軟件測試網

    二、           Purify簡介

     

    在C/C++的軟件開發中,沒有任何一種工具可以讓你的應用程序避免引入內存問題,但是我們可以使用諸如Purify這樣的工具對已經做好了的程序進行內存問題的檢查。Purify的強大之處是可以找到應用程序中全面的內存問題,并可以和GDB/DBX等調試器以配合使用,讓你對你的內存錯誤一目了然。

     

    Purify是一個Run-Time的工具,也就是說只有在程序運行過程中,根據程序的運行情況來查看在某種運行條件下程序是否有內存上的問題,它可以在一個非常復雜的程序中查找內存錯誤,包括那種多進程或多線程的程序,它也可以進行測試。

     

    Purify對程序中的每一個內存操作都進行檢測,并對精確報告內存出現錯誤的變量和語句,以提供出現錯誤原因的分析。Purify主要檢測的是下面這些內存錯誤:

     

    l         數組內存是否越界讀/寫。

    l         是否使用了未初始化的內存。

    l         是否對已釋放的內存進行讀/寫。

    l         是否對空指針進行讀/寫。

    l         內存漏洞。

     

    在軟件工程中,以我的經驗而言,最好是在編碼階段時就使用Purify檢測內存存問題,一直到交給測試人員測試。請相信我,在一個大型的C/C++軟件產品中,即使檢測出了內存問題,離真正地解決它還有一定的距離,所以為了讓這個“距離”不算太遠,最好還是在功能模塊完成時就進行Purify的內存檢測。

     

    一般而言,在軟件測試中,首要的是軟件的功能測試,然后是反面案例測試,再而是壓力測試。就我個人經驗而言,使用內存檢測工具的階段應該是編碼階段、模塊合并后、以及程序邏輯測試完成以后,直到產品發布前,也要做一個內存測試。

     

    要使用Purify這個工具很簡單,首先在你安裝好了的Purify的目錄上你會看到兩個Shell腳本:purifyplus_setup.csh(對應于C-Shell) purifyplus_setup.sh(對應于標準Shell)。你先執行一下這兩個腳本,以便讓Purify設置好一些環境參數,如:

    > source purifyplus_setup.csh

     

    而對于你的程序而言,你需要這樣使用:

        > purify cc –g –o myProgram myProgram.c

         > purify cc –g –c –o myLib.o myLib.c

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    32/3<123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>