測試C++軟件舉例說明介紹
C++軟件不同于C的一個關(guān)鍵地方就在于,C++在完全保留有C的高效的基礎(chǔ)上,增添了抽象機(jī)制。而所謂的“現(xiàn)代C++風(fēng)格”,讓我們感受到科學(xué)和美學(xué)的統(tǒng)一所展現(xiàn)出的巨大魅力。
C++軟件測試用例的生成主要還是測試一些邊界值,例如***值、最小值、0等。假設(shè)我們要測試如下一個類的成員函數(shù):void strcpy(char* dest, char const * src),則軟件會自動生成如下9個測試用例:
- <module name="FileLength"/>
- <module name="LineLength">
- <property name="max" value="120"/>
- </module>
- <module name="MethodLength">
- <property name="max" value="300"/>
- </module>
- <module name="ParameterNumber"/>
- <module name="RedundantThrows">
- <property name="allowUnchecked" value="true"/>
- <property name="allowSubclasses" value="true"/>
- </module>
- <module name="VisibilityModifier">
- <property name="protectedAllowed" value="true"/>
- <property name="packageAllowed" value="true"/>
- </module>
可見,如果我們的代碼在實(shí)現(xiàn)時沒有對各種可能情況(尤其是邊界條件)進(jìn)行特殊處理的話,則通過C++Test可以方便地發(fā)現(xiàn)這些潛在的問題。此外,對于一些特殊的測試情況,我們還可以手工創(chuàng)建測試用例。此外,采用C++ Test也可以幫助我們檢查程序的編碼情況,判斷是否嚴(yán)格按編碼規(guī)范進(jìn)行開發(fā)。
C++ Test的使用比較簡單,即可以針對一個VC工程進(jìn)行全面的測試,也可以一次只對一個C++軟件進(jìn)行測試。在試用中發(fā)現(xiàn),如果項(xiàng)目比較大時,***不要直接對一個工程進(jìn)行自動測試,而應(yīng)按文件一個一個地測試,否則可會會導(dǎo)致程序死掉。由于其是采用JAVA技術(shù)開發(fā)的,所以在使用時***使用運(yùn)算速度較快的機(jī)器。
ProfileConf直接使用了第三方SNMP協(xié)議包,而ProfileConfNew則使用了封裝后的SNMP協(xié)議軟件包。進(jìn)行協(xié)議封裝的目的一是為了隔離第三方軟件包,另一個目的是為了簡化客戶端使用SNMP協(xié)議棧的操作。#t#
改造完成后,我們使用Together自帶的軟件測量工具進(jìn)行了數(shù)據(jù)測量。選擇Together菜單中tools——>metrics,里面提供了大量的測量指標(biāo)。通過數(shù)據(jù)可以看出,改進(jìn)以后,編寫的代碼有所減少,大約節(jié)省三分之一的代碼;耦合度有所降低,但并不是特別明顯,因?yàn)槲覀儼褜Φ谌絽f(xié)議包的依賴轉(zhuǎn)為對自己編織的協(xié)議包的依賴了;
C++軟件代碼復(fù)雜度大大降低,這是因?yàn)槲覀冏约壕帉懙膮f(xié)議包更符合實(shí)際使用情況,因而使代碼編寫難度大大降低,非常容易學(xué)習(xí),修改和維護(hù)。數(shù)據(jù)說明了一切。

















