欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
單元測試工具Visual Unit 簡(jiǎn)明教程

Visual Unit,簡(jiǎn)稱(chēng)VU,是新一代單元測試工具,功能強大,使用簡(jiǎn)單,完全可視化,不需編寫(xiě)測試代碼。VU的測試結果使程序行為一目了然,有助于整理編程思路,提高編程效率和正確性,并能快速排錯;VU還增強調試器功能(如自由后退、用例切換),提高調試的效率;VU能達到空前的測試完整性,輕松完成語(yǔ)句、條件、分支及路徑覆蓋;VU提供詳盡的測試報告...... VU不僅是單元測試工具,更是一種使程序開(kāi)發(fā)變得更高質(zhì)更高效更舒適的工具。VU目前版本適用于C++語(yǔ)言。

在現有開(kāi)發(fā)隊伍和管理水平的基礎上,使用VU進(jìn)行充分的單元測試,可以使項目或產(chǎn)品的質(zhì)量較大幅度地提高,同時(shí)開(kāi)發(fā)成本還要較大幅度地下降。

使用VU,黑盒方面,可以輕松完成功能測試、邊界測試、速度測試,白盒方面,可以輕松完成語(yǔ)句覆蓋、條件覆蓋、分支覆蓋、路徑覆蓋。這種空前的測試完整性,使代碼中的缺陷無(wú)所循形。

使用VU,隨時(shí)可以用回歸測試檢驗修改是否引入新的錯誤,因此,隨時(shí)可以對項目的設計進(jìn)行或大或小的修改,輕松進(jìn)行螺旋式的迭代開(kāi)發(fā),或邊開(kāi)發(fā)邊設計,甚至“以開(kāi)發(fā)代替設計”,使項目或產(chǎn)品真正符合用戶(hù)的需求。

VU功能強大但使用簡(jiǎn)單,學(xué)習資料豐富,一天時(shí)間就能輕松上手;在VU的支持下編程,程序行為一目了然,感覺(jué)舒適有趣,很受程序員的喜愛(ài),決不會(huì )受到開(kāi)發(fā)人員的抵制;VU提供詳盡的測試報告,測試部門(mén)可以依據測試報告對測試結果進(jìn)行審核,保證測試質(zhì)量。

運行環(huán)境與安裝卸載

操作系統:

Windows2000, Windows XP, Windows Server 2003。

內存:

64M,推薦128M。

硬盤(pán)空間:

50M。

開(kāi)發(fā)環(huán)境:

VC6.0、VC.NET、VC.Net 2003、C++ Builder6.0。

安裝VU:

解包后運行Setup.exe文件,按提示完成安裝。

VU是綠色軟件,安裝時(shí)不寫(xiě)注冊表,除兩個(gè)DLL文件拷貝到系統目錄下外,全部文件均在安裝目錄下。

啟動(dòng)VU:

安裝完后,從開(kāi)始菜單啟動(dòng)VU。

卸載VU:

從開(kāi)始菜單卸載。

VU1.0 主要界面 控制窗口

 

主窗口

 

信息窗口及其菜單

 

數據窗口及其菜單

 

代碼窗口及其菜單

 

路徑窗口及其菜單

 

測試用例編輯器

 

測試用例設計器

 

測試報告

 
 

建立與配置測試工程

建立測試工程:

測試工程使用與產(chǎn)品工程相同的開(kāi)發(fā)環(huán)境建立和編譯,運行測試工程即可執行測試,例如,產(chǎn)品工程的開(kāi)發(fā)環(huán)境是VC6.0,則同樣用VC6.0建立、編譯測試工程。

對測試工程的要求是:能編譯被測試文件,且編譯鏈接的結果是可直接執行的文件,在符合這些條件的前提下盡可能簡(jiǎn)單,例如,產(chǎn)品工程是VC6.0的MFC Multiple Document工程,則可以采用MFC Dialog Base作為測試工程,它比較簡(jiǎn)單,并且可以編譯MFC文件,但不能使用Win32 Application,因為它不能編譯MFC文件,也不能使用MFC DLL,因為它的編譯鏈接的結果不是可直接執行的文件。

多個(gè)產(chǎn)品工程可以使用一個(gè)測試工程,因此,建議采用較高適應性的工程類(lèi)別,例如,產(chǎn)品工程是Win32 Application,測試工程還是采用MFC Dialog Base為好,如果以后項目中要開(kāi)發(fā)一個(gè)MFC工程,可以附加進(jìn)來(lái)一起測試。

測試工程的命名建議采用"Test"+產(chǎn)品工程名,如TestDemo。特別提醒:測試工程不能命名為:xxxTester,因為這是測試文件的專(zhuān)用命名格式。

配置測試工程:

測試工程與普通的產(chǎn)品工程具有兩個(gè)不同之處:

1)定義編譯條件_VUNIT。VU提供的支持代碼中凡是要用在產(chǎn)品文件中的宏,都只在定義了編譯條件_VUNIT時(shí)才編譯,在產(chǎn)品工程中不編譯。

2)執行VuxRunTest()函數。在測試工程最早執行的代碼中調用這個(gè)函數,這個(gè)函數執行完畢,測試也就結束。

除上述兩點(diǎn)外,測試工程與產(chǎn)品工程區別不大,在不同的開(kāi)發(fā)環(huán)境,具體的配置略有區別,請按照幫助系統的說(shuō)明進(jìn)行。

生成測試文件

生成測試文件:

在控制窗口中選擇要測試的文件。

VU會(huì )自動(dòng)彈出“生成測試文件”窗口,點(diǎn)擊“確定”即可生成測試文件。

生成測試文件后,將被測試文件及其引用的文件、剛生成的測試文件加入到測試工程。

在被測文件中添加代碼:

在被測試文件中添加代碼并不是必須的,但這些代碼將提供重要的功能:

UINT_TEST宏:功能是定義友元,使測試代碼可以訪(fǎng)問(wèn)類(lèi)的私有或保護成員。

TEST_DUMP宏:這是一組宏,格式與VC60的消息映射宏相似,功能是為自定義數據類(lèi)型輸出成員變量的數值。

VU提供了自動(dòng)生成這些代碼的工具,只需將生成的代碼拷貝到指定位置即可:

(控制窗口)“定義數據輸出”按鈕,彈出“定義數據輸出”屬性表,在“自定義數據類(lèi)型”頁(yè),左邊的輸入框中輸入類(lèi)名/基類(lèi)名/成員變量,將右邊生成的代碼拷貝到被測試文件,如下圖。

 

只有基類(lèi)也是自定義類(lèi)型并且已定義了TEST_DUMP宏,才需輸入基類(lèi)名。

生成測試函數

選擇了被測試文件后,文件中包含的需要測試的函數會(huì )出現在函數列表中,可以選擇任一個(gè)要測試的函數。

如果選中的被測試函數不存在對應的測試函數,自動(dòng)彈出“生成/匹配測試函數”對話(huà)框,可以選擇是否生成邊界測試代碼和速度測試代碼,建議采用默認值。點(diǎn)擊“確定”,VU在測試文件中生成測試函數。

生成測試函數后,會(huì )自動(dòng)彈出測試用例編輯器。絕大多數情況下,通過(guò)測試用例編輯器即可處理測試用例的建立與編輯等工作,無(wú)須查看或編輯測試函數的代碼。
 

編輯功能測試用例

根據函數最典型的功能,在測試用例編輯器中編輯第一個(gè)測試用例并編譯執行測試工程,即可運行測試。

 

輸入數據和預期輸出可以用點(diǎn)操作符訪(fǎng)問(wèn)成員變量,甚至調用成員函數。

 

VU只生成第一個(gè)測試用例。由于不同的測試用例之間,往往變化很小,例如只有一個(gè)輸入數據和一個(gè)預期輸出不同,所以,在現有的測試用例的基礎上進(jìn)行修改是新建更多測試用例的最高效的方法。點(diǎn)擊“新建”按鈕,VU就會(huì )生成當前選中用例的拷貝,并選中新生成用例,這時(shí)即可進(jìn)行修改以獲得新的測試用例。

 

點(diǎn)擊“代碼模式”按鈕,會(huì )轉換成代碼模式,顯示測試用例代碼??梢詫Υa進(jìn)行編輯,有些測試用例比較特殊,例如連續操作的測試用例,即重復調用被測試函數的測試用例,或異常測試用例,可以通過(guò)編輯測試用例的代碼來(lái)獲得。


一邊編寫(xiě)代碼一邊測試

編寫(xiě)函數聲明與定義后就可以生成測試代碼:

在頭文件編寫(xiě)函數聲明,在源文件編寫(xiě)空的函數實(shí)現,有返回值可以隨便加一個(gè)返回語(yǔ)句,通過(guò)編譯后就可以生成對應的測試函數。

生成測試代碼和編輯第一個(gè)測試用例:

從函數列表選中被測試函數,生成測試函數,VU會(huì )自動(dòng)彈出測試用例編輯器。

根據函數最典型的功能,填寫(xiě)第一個(gè)測試用例的輸入數據與預期輸出,編譯并運行測試工程,VU主窗口會(huì )自動(dòng)彈出,顯示測試結果。

一邊編碼,一邊測試,完成功能覆蓋:

為函數的每個(gè)功能點(diǎn)新建測試用例。

編寫(xiě)函數代碼使所有測試通過(guò)。

也可以先編寫(xiě)代碼,每完成一個(gè)功能點(diǎn)即添加測試用例來(lái)測試它。

程序員在編碼時(shí)當然需要了解程序的功能,也就是說(shuō),要了解程序在不同的輸入時(shí)應該產(chǎn)生什么樣的輸出,這些就是功能測試用例。

隨時(shí)觀(guān)察程序的行為:

隨時(shí)可以通過(guò)運行測試來(lái)觀(guān)察程序的行為,例如,編寫(xiě)了計算某一個(gè)變量VAR的幾行代碼,可以用TEST_TRACE(VAR)宏來(lái)輸出它的數值,看看結果對不對。觀(guān)察程序行為對整理編程思路,提高編程效率和正確性具有重要意義,后面會(huì )進(jìn)一步描述。

快速排錯:

測試通不過(guò)時(shí),大部分情況下都無(wú)須單步調試即可找出錯誤原因,后面會(huì )進(jìn)一步描述。

高效調試:

需要單步調試時(shí),在VU的支持下調試,可以大幅度提高調試效率,后面會(huì )進(jìn)一步描述。

代碼優(yōu)化:

代碼編寫(xiě)完成并進(jìn)行功能測試后,閱讀代碼,修改可讀性不強的代碼、重復的代碼、意圖不清晰的代碼、或其他不滿(mǎn)意的代碼。給代碼添加必要的注釋。

每完成一個(gè)小的改動(dòng),就重新運行測試,以確認代碼的功能未改變。

全面測試:

完成白盒覆蓋:語(yǔ)句覆蓋、條件覆蓋應達到100%,刪除不可達分支后,分支覆蓋也要達到100%,刪除安全的分支或分支樹(shù)后,路徑覆蓋也要達到100%。

打開(kāi)邊界測試開(kāi)關(guān),運行邊界測試,可在數據窗口觀(guān)察輸入邊界值時(shí)函數的輸出。

打開(kāi)速度測試開(kāi)關(guān),運行速度測試。

關(guān)于白盒覆蓋測試用例的設計、邊界測試與速度測試,后面會(huì )進(jìn)一步描述。

觀(guān)察程序行為

程序的行為,無(wú)非就是在一定的輸入時(shí),產(chǎn)生了什么輸出、執行了哪些代碼、執行的路徑是什么,這些,都可以一目了然地從主窗口的各子窗口觀(guān)察到。對程序行為了然于胸,不但有助于整理編程思路,提高編程效率和正確性,也會(huì )使編程工作變得更有趣和更舒適。

 

快速排錯

觀(guān)察程序行為還可以實(shí)現快速排錯。對比預期輸出與實(shí)際輸出,閱讀執行代碼,很容易找到錯誤原因。對某些關(guān)鍵數據,還可以使用TEST_TRACE宏輸出中間結果。在很多時(shí)候,預期輸出本身是錯的。下例中把result = 0; 改為result = 1;后,測試仍然是失敗的,因為預期輸出不是625而是3125。

快速排錯可以節約很多時(shí)間,但它是事后的靜態(tài)分析,如果找不到錯誤所在,仍然需要進(jìn)行單步調試。

 
 

高效調試

開(kāi)始調試:

(控制窗口)點(diǎn)擊“調試”開(kāi)關(guān),用調試方式運行測試工程。如下圖(VC60)

 

自動(dòng)斷點(diǎn):

程序自動(dòng)中斷時(shí),執行調試器的“Step Into”(VC)或“Trace Into”(C++Builder)命令兩次或三次。C++Builder可能會(huì )彈出CPU窗口,直接關(guān)掉。自動(dòng)斷點(diǎn)可以關(guān)閉:(控制窗口)->選項->擴展,在“忽略自動(dòng)斷點(diǎn)”前打上勾。

后退與重復:

使用調試器的“Run to Cursor”功能,可以實(shí)現真正的后退。跟蹤時(shí)過(guò)了頭或到了函數結束還沒(méi)有找到錯誤所在,可以單擊函數開(kāi)始處的代碼,然后點(diǎn)擊“Run to Cursor”,即可重新跟蹤,可以多次重復,一直到調試結束才退出調試。

后退是由VU的測試代碼控制的,實(shí)現的原理是“重來(lái)”,參數和成員變量的值會(huì )重新設置,可算是真正的后退。

后退也使調試器的“編輯繼續”功能真正有效,修改代碼后,從函數入口處重新單步執行,看到的就是修改后的執行結果。

用例切換:

通過(guò)切換用例,可以比較不同輸入時(shí)代碼的行為或變量的值。在VU的主窗口中切換當前用例,然后執行調試器的“Run to Cursor”回到函數的入口,即可切換用例。

完成調試后,要關(guān)閉VU的調試開(kāi)關(guān),才能繼續進(jìn)行測試。

靈活運用VU提供的調試增強功能,可以大幅提高調試效率。

完成白盒覆蓋

功能測試常常是不夠充分的,例如:真的是所有功能點(diǎn)都測試了嗎?程序的功能點(diǎn)是人為的定義,常常是不全面的;各個(gè)輸入數據之間,有些組合可能會(huì )產(chǎn)生問(wèn)題,怎樣保證這些組合都經(jīng)過(guò)了測試?難于衡量測試的完整性是功能測試的主要缺陷,所以,完成功能測試后,要從白盒角度,即從邏輯覆蓋的角度檢查測試完整性,對于未覆蓋的邏輯目標,要設計測試用例覆蓋它,這樣,可以最大限度地揪出程序中隱藏的“臭蟲(chóng)”。

VU可以很輕松地完成語(yǔ)句覆蓋、條件覆蓋、分支覆蓋與路徑覆蓋。

代碼窗口顯示未覆蓋語(yǔ)句和未覆蓋條件,選中后可用快捷菜單打開(kāi)測試用例設計器。

 

路徑窗口顯示未覆蓋分支和未覆蓋路徑,選中后可用快捷菜單打開(kāi)測試用例設計器。

 

測試用例設計器計算出一個(gè)近似用例,并生成修改提示,依據修改提示對近似用例進(jìn)行簡(jiǎn)單修改,即可獲得可覆蓋預期邏輯目標的測試用例。

 

上圖中,待滿(mǎn)足條件是 A==2 || X>1,兩個(gè)條件的關(guān)系是邏輯或,即可以任選一個(gè)。如果選擇條件A==2,A==2與已滿(mǎn)足條件A>1并不沖突,因此,只需把輸入數據中的A的值改為2,即可得到可覆蓋預期邏輯目標的測試用例;如果選擇X>1作為修改條件,由于依賴(lài)關(guān)系中出現了變量X,這時(shí)應點(diǎn)擊“代碼”按鈕查看代碼的依賴(lài)關(guān)系,如下圖。從下圖可看出,由于X被語(yǔ)句X=X/A重新賦值,且A的值為3,要使待滿(mǎn)足條件X>1成立,X的輸入值必須大于等于6。因此,把近似用例中X的值改為6或大于6的數,就可以得到符合預期的測試用例。修改后點(diǎn)擊“新建用例”按鈕,新用例就會(huì )保存到測試文件中,重新運行測試,就會(huì )看到邏輯目標已被覆蓋。

 

使用測試用例設計器設計白盒覆蓋測試用例,無(wú)須象傳統的方法一樣分析程序的邏輯結構。在很復雜的情況下,也只需要對程序代碼有基本的理解。例如下圖,如果對所測試的程序有基本的理解,那么很容易看到,在strlen(head) != false,即head不是空串的前提下,不進(jìn)入循環(huán)是不可能的,因此邏輯目標(分支或路徑)是不可覆蓋的,應在路徑圖中刪除。

 

邊界測試與速度測試

邊界測試,是指使用預先定義的邊界值,如最大值、最小值、空值、或其他特殊值作為輸入數據來(lái)運行測試。所有數據類(lèi)型都可以定義邊界值,包括自定義的類(lèi)型,具體方法參考幫助系統。邊界測試是功能測試的有效補充,通過(guò)檢查程序是否對邊界輸入作了適當處理,可有效增強程序的健壯性。

速度測試,通過(guò)輪流執行現有的測試用例多次(默認為共1000次)來(lái)計算函數的平均速度。

要運行速度測試和邊界測試,只需要打開(kāi)開(kāi)關(guān)。

 

查看測試報告

測試報告記錄函數測試的詳細結果數據。

菜單->測試報告,打開(kāi)測試報告窗口。

測試報告含有十多項數據,不過(guò)常用的只有失敗斷言、邏輯覆蓋率、速度等幾項??梢允褂?#8220;設定”功能選擇顯示哪些項。

邏輯覆蓋率是測試是否充分的重要指標,如果程序集成后發(fā)現不明錯誤,測試不充分的函數包含錯誤的可能比較大。

如果程序性能不理想,可以將函數耗時(shí)由大到小排列,速度比較慢的函數可能就是性能瓶頸。

 

回歸測試

回歸測試是指修改了舊代碼后,重新進(jìn)行測試以確認修改沒(méi)有引入新的錯誤或導致其他代碼產(chǎn)生錯誤。自動(dòng)回歸測試將大幅降低系統測試、維護升級等階段的成本?;貧w測試包括兩部分:函數本身的測試、其他代碼的測試。在對被修改的函數重新測試。如果函數的設計功能沒(méi)有變化,直接運行函數測試就可以了。如果修改了設計功能,則要根據增減的功能點(diǎn),增加或刪除測試用例。另外,還要完成白盒覆蓋。

函數代碼的修改可能導致調用該函數的代碼產(chǎn)生錯誤,所以需要測試其他代碼。如果函數是私有函數并且未涉及到全局變量,應運行類(lèi)測試,否則應運行工程測試。在函數列表中選擇類(lèi)測試或工程測試,編譯運行測試工程,即可執行對其他代碼的回歸測試。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
軟件測試的基本流程
單元測試大揭密
嵌入式軟件的基本測試方法 - 測試者家園 - 博客園
如何在面試時(shí)寫(xiě)出高質(zhì)量的代碼
單元測試中測試用例的設計方法
測試用例質(zhì)量的重要性
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久