在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/