版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...C++Test介紹修訂歷史記錄日期版本說(shuō)明作者C++Test6.0C++Test原理,使用介紹,RuleWizard定制規(guī)則目錄TOC\o"1-3"\h\z第一章C++Test特性4第二章C++Test使用6一.安裝說(shuō)明61.Windows下安裝62.申請(qǐng)License6二.啟動(dòng)C++Test71.從VC++里啟動(dòng)C++Test72.傳統(tǒng)啟動(dòng)C++Test8三.Linux下安裝及啟動(dòng)9四.C++Test快速測(cè)試101.翻開(kāi)被測(cè)文件102.靜態(tài)測(cè)試123.動(dòng)態(tài)測(cè)試144.生成報(bào)表16第三章C++Test高級(jí)功能19一.導(dǎo)入VC++工程(ImportVC++project)19二.選擇編譯器(projectconfiguration)20三.設(shè)置測(cè)試配置(testconfiguration)21四.編碼規(guī)則測(cè)試結(jié)果分析26五.測(cè)試用例分析28六.DataSource33七.樁函數(shù)設(shè)置40八.導(dǎo)入導(dǎo)出測(cè)試用例43九.TestObjects45十.覆蓋率分析48十一.回歸測(cè)試52十二.其他設(shè)置551.設(shè)置TCM552.設(shè)置GRS563.設(shè)置源代碼編輯器和HTML瀏覽器57第四章RuleWizard定制規(guī)則59一.啟動(dòng)RuleWizard59二.翻開(kāi)一個(gè)現(xiàn)有的規(guī)則60三.設(shè)計(jì)一個(gè)新規(guī)則62四.C++Test中導(dǎo)入自定義規(guī)則71第一章C++Test特性C++Test是一個(gè)C/C++單元測(cè)試工具,自動(dòng)測(cè)試任何C/C++類(lèi)、函數(shù)或部件,而不需要您編寫(xiě)一個(gè)測(cè)試用例、測(cè)試驅(qū)動(dòng)程序或樁調(diào)用。C++Test能夠自動(dòng)測(cè)試代碼構(gòu)造〔白盒測(cè)試〕、測(cè)試代碼的功能性〔黑盒測(cè)試〕和維護(hù)代碼的完整性〔回歸測(cè)試〕。C++Test是一個(gè)易于使用的產(chǎn)品,能夠適應(yīng)任何開(kāi)發(fā)生命周期。通過(guò)將C++Test集成到開(kāi)發(fā)過(guò)程中,您能夠有效地防止軟件錯(cuò)誤,提高代碼的穩(wěn)定性,并自動(dòng)化單元測(cè)試技術(shù)〔這是極端編程過(guò)程的根基〕。特性即時(shí)測(cè)試類(lèi)/函數(shù)支持極端編程模式下的代碼測(cè)試自動(dòng)建設(shè)類(lèi)/函數(shù)的測(cè)試驅(qū)動(dòng)程序和樁調(diào)用自動(dòng)建設(shè)和執(zhí)行類(lèi)/函數(shù)的測(cè)試用例提供快速參加和執(zhí)行說(shuō)明和功能性測(cè)試的框架執(zhí)行自動(dòng)回歸測(cè)試執(zhí)行部件測(cè)試〔COM〕優(yōu)點(diǎn)幫助您立即驗(yàn)證類(lèi)功能性和構(gòu)造將您從編寫(xiě)測(cè)試驅(qū)動(dòng)程序、樁和測(cè)試用例的繁重工作中解放出來(lái)自動(dòng)化極端編程和其它編程模式的單元測(cè)試過(guò)程使得您能夠?qū)崿F(xiàn)和執(zhí)行100%的代碼覆蓋性支持緊急和短線開(kāi)發(fā)工程降低調(diào)試和維護(hù)時(shí)間改善應(yīng)用的可靠性防止簡(jiǎn)單錯(cuò)誤的擴(kuò)大系統(tǒng)要求最小系統(tǒng)要求:Pentiumclassprocessor800MHz512MBRAM(1024MBisrecommended)150MBfreediskspaceforC++Testinstallation其他要求:保存足夠的磁盤(pán)空間供測(cè)試使用。支持平臺(tái)Windows?SupportedPlatforms:WindowsNT,2000,XP?SupportedCompilers:Microsoft?VisualC++?6.0,.NET?,or.NET2003?,GNUGCC2.95xor3.x.CygwinGCC2.95.x,3.2.x,3.3.xMingwGCC2.95.x,3.2.x,3.3.xUNIX?SupportedPlatforms:Linuxkernel2.4(withSystemVIPC),glibc2.2,PentiumprocessorSolaris7,8,9,UltraSPARCprocessor?SupportedCompilers:GNUGCC3.2.x,GNUGCC3.3.x,GNUGCC3.4.xSun?C++5.3?(SunForteC++6Update2forSPARCSolaris),Sun?C++5.5?(SunONEStudio8)第二章C++Test使用一.安裝說(shuō)明1.Windows下安裝翻開(kāi)安裝源程序,同普通的windows應(yīng)用程序一樣,選擇安裝路徑,完成安裝。2.申請(qǐng)License1.申請(qǐng)License從桌面或者菜單翻開(kāi)C++Test,將彈出類(lèi)似于下面的一個(gè)要求輸入密碼的窗口:按“是(Y)〞進(jìn)入。這里的machineID就是C++Test和主機(jī)綁定的信息?;蛟谶M(jìn)入C++Test主界面后,在菜單Help->License…可以同樣翻開(kāi)下面的界面。這個(gè)machineID需交給Parasoft代理商,來(lái)申請(qǐng)license。而由于license的種類(lèi)不同,可以分為locallicense〔單機(jī)版〕和netlicense〔網(wǎng)絡(luò)版〕。2.輸入License將相應(yīng)的license和expiredate粘貼到相應(yīng)的位置,如果信息正確,系統(tǒng)將提示licenseok。如果信息不正確,系統(tǒng)將提示wronglicense。輸入正確的license,翻開(kāi)C++Test,就可以進(jìn)入C++Test的用戶界面了。二.啟動(dòng)C++Test1.從VC++里啟動(dòng)C++Test安裝VC++后,再安裝C++Test,VC++工具條里會(huì)自動(dòng)地增加使用C++Test的按扭。可以啟動(dòng)C++Test界面,或進(jìn)展C++Test靜態(tài)和動(dòng)態(tài)測(cè)試。2.傳統(tǒng)啟動(dòng)C++Test開(kāi)場(chǎng)->程序->C++Test,可以啟動(dòng)C++Test。三.Linux下安裝及啟動(dòng)建議安裝linuxredhat9.0及以上版本,建議安裝開(kāi)發(fā)工作站,同時(shí)需要圖形界面支持在圖形界面下建設(shè)組gtest(或其他)在圖形界面下建設(shè)用戶utest(或其他),并且屬于組gtest。utest主目錄是/home/utest。用bash。在/home/utest/下建設(shè)目錄cpptest,并且拷貝cpptest_linux_.sh到cpptest目錄下在圖形界面下用utest用戶登錄在Terminaltool中進(jìn)入/home/utest/cpptest目錄執(zhí)行安裝cpptest_linux_.sh〔或./cpptest_linux_.sh〕。安裝程序是腳本安裝程序,沒(méi)有圖形安裝界面。C++Test將安裝在/home/utest/cpptest目錄下進(jìn)入/home/utest目錄下。在.bash_profile文件中給環(huán)境變量PATH行后面增加:/home/utest/cpptest/bin。然后保存用戶utest重新在圖形界面下登錄在Terminaltool中輸入c++test(或在圖形界面下執(zhí)行/home/utest/cpptest/bin/c++test程序)??梢詥?dòng)c++test四.C++Test快速測(cè)試1.翻開(kāi)被測(cè)文件翻開(kāi)C++Test,選擇file/openfile,選擇C++Test安裝目錄下examples/cpptest_demo.cpp,這個(gè)cpp文件將出現(xiàn)在當(dāng)前的project下。在當(dāng)前project下,右擊cpptest_demo.cpp,選擇readsymbols〔讀入符號(hào)表〕,此時(shí)C++Test將parse(剖析)這個(gè)源程序,分析出此文件的文件構(gòu)造。在源代碼窗口可以看到我們所測(cè)試的代碼,界面非常友好,中選擇代碼時(shí),被選擇的代碼也會(huì)以藍(lán)色塊的形式出現(xiàn)。并且,當(dāng)我們進(jìn)展了靜態(tài)分析和動(dòng)態(tài)分析時(shí),這里我們也可以非常直觀的觀測(cè)到靜態(tài)分析和動(dòng)態(tài)分析的結(jié)果。代碼左側(cè)的紅色精靈帽表示靜態(tài)分析時(shí)出現(xiàn)問(wèn)題的所在,黃色小齒輪則表示動(dòng)態(tài)分析時(shí)出現(xiàn)問(wèn)題的所在。點(diǎn)擊相應(yīng)的地方,會(huì)出現(xiàn)對(duì)問(wèn)題的一個(gè)簡(jiǎn)單描述。2.靜態(tài)測(cè)試在向右三角型旁邊的下拉箭頭,選擇內(nèi)置的編碼規(guī)則工程。C++Test將自動(dòng)完成對(duì)源代碼的靜態(tài)測(cè)試,也就是我們所說(shuō)的代碼走查,走查所用到的標(biāo)準(zhǔn)可以在靜態(tài)測(cè)試標(biāo)簽的rulemanage下看到。在靜態(tài)分析欄中的Results標(biāo)簽是對(duì)靜態(tài)分析結(jié)果的一個(gè)羅列。每個(gè)紅色精靈帽都代表一種違規(guī)行為,而它旁邊的數(shù)字則代表測(cè)試代碼中出現(xiàn)這種違規(guī)的次數(shù)。緊接著的字母說(shuō)明違規(guī)行為的嚴(yán)重級(jí)別。再后面就是對(duì)這條標(biāo)準(zhǔn)的大致描述以及規(guī)則編號(hào)。而標(biāo)簽RulesManager則是對(duì)這些規(guī)則的管理,當(dāng)用戶需要使用某條規(guī)則的時(shí)候,只需要在相應(yīng)規(guī)則左側(cè)的方框內(nèi)打上勾就說(shuō)明選擇了該條規(guī)則。而當(dāng)用戶不需要某條規(guī)則檢查的時(shí)候,只需要去掉相應(yīng)規(guī)則的勾就可以了。以下列圖,右側(cè)就是靜態(tài)測(cè)試〔代碼走查〕的結(jié)果。每條違規(guī)信息包括對(duì)違規(guī)的描述,該錯(cuò)誤共發(fā)生的次數(shù)以及相對(duì)應(yīng)的具體位置。而下面的ruledesription則是對(duì)這條規(guī)則的一個(gè)比擬詳細(xì)的描述。頂層的文件夾后面的“I=4PV=1V=33……〞描述的是整個(gè)的對(duì)違規(guī)信息的統(tǒng)計(jì)。I表示information,通知行為PV表示possibleviolation,可能的違規(guī)行為V表示violation,違規(guī)行為PSV表示possibleservereviolation,可能的嚴(yán)重違規(guī)行為SV表示servereviolation,嚴(yán)重違規(guī)行為。3.動(dòng)態(tài)測(cè)試在向右三角型旁邊的下拉箭頭,選擇內(nèi)置的白盒測(cè)試。C++Test將自動(dòng)完成代碼的動(dòng)態(tài)測(cè)試??梢詮母鱾€(gè)層面上〔單個(gè)測(cè)試用例,整個(gè)函數(shù)的測(cè)試用例,整個(gè)代碼的測(cè)試用例〕去看相對(duì)應(yīng)代碼的覆蓋率。操作的時(shí)候,只需要右擊相應(yīng)的層次〔例如一個(gè)測(cè)試用例〕,選擇showcoverage,就可以看到對(duì)應(yīng)的覆蓋率了。在動(dòng)態(tài)測(cè)試中的TestCase/Results欄中,主要是對(duì)測(cè)試用例的一個(gè)總體管理。在這里,所有的測(cè)試用例的狀態(tài)都一目了然,綠色表示成功,紅色表示失敗。用戶可以自己添加或修改測(cè)試用例。而StubTables欄則是對(duì)樁函數(shù)的管理,Suppressions則是對(duì)測(cè)試對(duì)象的一個(gè)管理。例如,上面的Data類(lèi)有很多個(gè)成員函數(shù),當(dāng)用戶并不想全部都測(cè),而只是測(cè)其中的幾個(gè)。這個(gè)時(shí)候就可以通過(guò)Suppressions進(jìn)展選擇。除此之外,上面的Treefilter還提供強(qiáng)大的濾波器功能,可以讓用戶更好的關(guān)注他們的焦點(diǎn),例如只看最近一次測(cè)試的失敗用例。以下列圖,右側(cè)就是對(duì)動(dòng)態(tài)測(cè)試的一個(gè)整體描繪。列舉了所有的測(cè)試用例,并且用顏色來(lái)區(qū)分成功和失敗的測(cè)試用例,綠色代表成功通過(guò)了的測(cè)試用例,而紅色代表沒(méi)有通過(guò)也就是失敗了的測(cè)試用例,對(duì)于每個(gè)錯(cuò)誤的測(cè)試用例都有一個(gè)大致的描述。每個(gè)測(cè)試用例或者各個(gè)節(jié)點(diǎn)上都做到了相應(yīng)的覆蓋率信息,包括了LC〔語(yǔ)句覆蓋〕,BBC〔塊覆蓋〕,PC(路徑覆蓋),DC〔決策覆蓋〕,MCDC(多條件決策覆蓋)以及CC(條件覆蓋)。此外,上面的treefilter過(guò)濾器功能可以幫助用戶迅速觀察到自己關(guān)心的焦點(diǎn)或錯(cuò)誤。4.生成報(bào)表選擇file/generatereport,根據(jù)對(duì)報(bào)表的需求,選擇適當(dāng)?shù)膱?bào)表內(nèi)容種類(lèi)〔例如dynamicanalysis1,coveragestatistic1〕。生成一個(gè)HTML格式的報(bào)表。第三章C++Test高級(jí)功能一.導(dǎo)入VC++工程(ImportVC++project)C++Test6.0可以直接導(dǎo)入VC++6.0project,VC++.Netproject和VC++.Net2003project文件。菜單File->NewProject…出現(xiàn)下面的界面選擇ImportVC++6.0project輸入測(cè)試工程文件名稱(chēng)(projectname)選擇VC++6.0工程文件.dsp(VC++6.0projectfiles)二.選擇編譯器(projectconfiguration)如果你同時(shí)安裝了VC++6.0和VC++.Net的話。你必須選擇你需要的編譯器。否則C++Test6.0會(huì)使用默認(rèn)的編譯器。菜單Project->ProjectConfigurations…選擇VC++6.0為當(dāng)前測(cè)試工程的編譯器〔下面界面默認(rèn)的C++Test使用編譯器是VC++.Net2003〕三.設(shè)置測(cè)試配置(testconfiguration)C++Test6.0可以選擇不同的測(cè)試配置選項(xiàng)對(duì)一個(gè)工程、文件進(jìn)展測(cè)試。測(cè)試配置:是一系列編碼規(guī)則、單元測(cè)試用例生成規(guī)則的組合,決定要測(cè)試什么編碼規(guī)則,如何生成測(cè)試用例。菜單Tests->TestConfigurations…翻開(kāi)測(cè)試配置界面。新建一個(gè)測(cè)試配置:選擇project->鼠標(biāo)右鍵–>NewConfigurationAnalysisFlow決定是否要做編碼規(guī)則測(cè)試和單元測(cè)試AnalysisSettings包括CodingStandards和UnitTesting。其中CodingStandards選擇需要的規(guī)則。打√選擇規(guī)則UnitTesting中Types設(shè)置不同數(shù)據(jù)類(lèi)型在生成測(cè)試用例的取值,可以增加某種數(shù)據(jù)類(lèi)型在生成測(cè)試用例時(shí)的取值。比方char類(lèi)型可以增加特定的字符’A’設(shè)置一個(gè)被測(cè)單元自動(dòng)生成測(cè)試用例的最大數(shù)目〔默認(rèn)是50個(gè)〕設(shè)置新增加的測(cè)試設(shè)置為活動(dòng)用新增加測(cè)試設(shè)置進(jìn)展測(cè)試。在向右三角型旁邊的下拉箭頭,選擇新增加的測(cè)試設(shè)置。四.編碼規(guī)則測(cè)試結(jié)果分析以下列圖,右側(cè)就是靜態(tài)測(cè)試〔代碼走查〕的結(jié)果。I表示information,通知行為PV表示possibleviolation,可能的違規(guī)行為V表示violation,違規(guī)行為PSV表示possibleservereviolation,可能的嚴(yán)重違規(guī)行為SV表示servereviolation,嚴(yán)重違規(guī)行為。1.頂層的文件夾后面的“I=4PV=1V=33……〞描述的是整個(gè)的對(duì)違規(guī)信息的統(tǒng)計(jì)。2.下面的每個(gè)小紅帽表示一條違例規(guī)則。前面的數(shù)字表示違反次數(shù),緊接著是嚴(yán)重程度,然后是此規(guī)則的簡(jiǎn)單描述。每條違規(guī)信息包括對(duì)違規(guī)的描述,該錯(cuò)誤共發(fā)生的次數(shù)以及相對(duì)應(yīng)的具體位置。而下面的ruledesription則是對(duì)這條規(guī)則的一個(gè)比擬詳細(xì)的描述。3.Treefilter:可以按嚴(yán)重程度分類(lèi)顯示。4.CodingStandards的Suppressions可以按嚴(yán)重程度,類(lèi),文件等條件決定是否要顯示測(cè)試結(jié)果。以下列圖中對(duì)Violation類(lèi)型的編碼規(guī)則測(cè)試結(jié)果不顯示5.不顯示Violation類(lèi)型的測(cè)試結(jié)果五.測(cè)試用例分析用C++Test做單元測(cè)試,最重要的步驟是分析測(cè)試用例。如果這步?jīng)]有做好,你會(huì)覺(jué)得C++Test不適合你們;如果做好了,你的單元測(cè)試就做好了。用C++Test做單元測(cè)試,重點(diǎn)在分析測(cè)試用例,而不是設(shè)計(jì)測(cè)試用例。C++Test自動(dòng)生成的測(cè)試用例是白盒測(cè)試用例。如果你要用C++Test做黑盒測(cè)試,你需要手工增加黑盒測(cè)試用例或修改白盒測(cè)試用例使之成為黑盒測(cè)試用例,要求:要準(zhǔn)確地分析測(cè)試用例,必須對(duì)被測(cè)函數(shù)有清楚的了解。1.選擇Examples\complex.cpp文件2.選擇工具條中向右三角型進(jìn)展進(jìn)展單元測(cè)試3.選擇一個(gè)測(cè)試用例,然后按“Edit〞按扭進(jìn)入測(cè)試用例編輯界面4.分析測(cè)試用例Arguments:測(cè)試前的函數(shù)的參數(shù)值A(chǔ)rgumentsPost:測(cè)試后的函數(shù)的參數(shù)值Return:測(cè)試前設(shè)定的函數(shù)的返回值Pre-Conditions>This:測(cè)試前對(duì)象構(gòu)造值,特別是構(gòu)造對(duì)象時(shí)給成員變量設(shè)定的的值Pre-Conditions>Externals:測(cè)試前全局變量值Post-Conditions>This:測(cè)試后對(duì)象構(gòu)造值,特別是構(gòu)造對(duì)象時(shí)給成員變量設(shè)定的的值Post-Conditions>Externals:測(cè)試后全局變量值ExecutionResult:預(yù)期的測(cè)試結(jié)果。是正常返回、Assert失敗,還是各種異常返回A)首先讓我們先看看源代碼//complex.cpp//ThisexampleillustrateshowC++TestworkswithoverloadedoperatorsandconstructorsclassComplex{public:Complex(floatre=0,floatim=0):_re(re),_im(im){}Complexoperator+(constComplex&);Complexoperator-(constComplex&);private:float_re;float_im;};ComplexComplex::operator+(constComplex&c){returnComplex(this->_re+c._re,this->_im+c._im);}ComplexComplex::operator-(constComplex&c){returnComplex(this->_re-c._re,this->_im-c._im);}ComplextestComplexOperators(Complex&a,Complex&b){Complexzero;Complexneg_a=zero-a;Complexneg_a_sum_b=neg_a-b;returna+b+neg_a_sum_b;//thisfunctionshouldalwaysreturncomplexzerovalue}B〕我們的測(cè)試用例是針對(duì)函數(shù)ComplexComplex::operator+(constComplex&c)的Arguments:表示函數(shù)參數(shù)是一個(gè)Complex&c,這個(gè)參數(shù)對(duì)象c構(gòu)造的時(shí)候給c成員變量float_re=1.0;float_im=-1.0ArgumentsPost:表示函數(shù)測(cè)試后。這個(gè)參數(shù)對(duì)象c在測(cè)試后c成員變量float_re=1;float_im=-1Return:表示返回對(duì)象Complex,它的值應(yīng)當(dāng)成員變量float_re=自身的成員變量_re+輸入對(duì)象c的成員變量_re〔1〕;float_im=自身的成員變量_im+輸入對(duì)象c的成員變量_im〔0〕;注意:這里的返回值是錯(cuò)誤的,正確的選項(xiàng)是_re=3;_im=-3才對(duì)。此測(cè)試用例測(cè)試結(jié)果應(yīng)當(dāng)是錯(cuò)誤的〔變紅〕。Pre-Conditions:表示進(jìn)展單元測(cè)試的時(shí)候,類(lèi)成員變量的值float_re=2;float_im=-2Post-Conditions:表示在測(cè)試后。類(lèi)成員變量的值float_re=2;float_im=-2ExecutionResult:表示測(cè)試完畢是NormalReturn。正常完畢,而不是異常完畢C)上面測(cè)試用例測(cè)試后的結(jié)果是失敗的預(yù)期的結(jié)果是〔_re=1,_im=0〕。實(shí)際的結(jié)果是〔_re=3,_im=-3〕5.調(diào)試測(cè)試用例選擇某個(gè)測(cè)試用例->鼠標(biāo)右鍵->DebugSelectedTestCase(s)->翻開(kāi)VC++.Net2003(默認(rèn)編譯器)調(diào)試界面。注意:對(duì)VC++6.0好象無(wú)法進(jìn)展調(diào)試。六.DataSource如果一個(gè)函數(shù)有一系列相似的輸入,比方協(xié)議類(lèi)函數(shù)。這個(gè)時(shí)候可以把這一系列相似的輸入保存成一個(gè)excel文件,CSV文件或數(shù)據(jù)庫(kù)的表。我們稱(chēng)之為DataSource。這樣當(dāng)C++Test進(jìn)展單元測(cè)試的時(shí)候,可以根據(jù)DataSource的內(nèi)容生成一系列的測(cè)試用例。1.翻開(kāi)C++Test安裝目錄Examples\DataSource\dsexample.cpp2.菜單project->projectconfigurations…->翻開(kāi)工程配置界面。選擇DataSources。按“Add〞按扭增加DataSource文件。3.輸入DataSource名稱(chēng)4.選擇DataSource類(lèi)型為CSVDataSource4.選擇C++Test安裝目錄Examples\DataSource\data.csv文件。//data.csv的內(nèi)容"LOWER";"UPPER";"TESTED";"ANSWER"3;8;5;TRUE3;8;1;FALSE4;9;10;FALSE2;3;3;FALSE2;3;2;FALSE-1;1;0;TRUE5.選擇data.csv文件的分割符號(hào)。要根據(jù)實(shí)際的.csv文件分割符號(hào)選擇’或;。6.按按扭“ShowColumns〞顯示DataSouce文件的列名稱(chēng)。類(lèi)似excel表格中的列頭名稱(chēng)。7.根據(jù)設(shè)置的DataSource生成測(cè)試用例。選擇UnitTesting->選擇函數(shù)isBetween->“Add〞,增加測(cè)試用例8.選擇剛剛設(shè)置好的DataSource配置csv1。要在UseDataSouce前面打√。然后按“ShowColumns〞9.在輸入、輸出參數(shù)和返回值中選擇對(duì)應(yīng)的列。10.測(cè)試用例按DataSource文件自動(dòng)生成。不同于一般情況下生成的測(cè)試用例七.樁函數(shù)設(shè)置對(duì)于單元測(cè)試,如果一個(gè)函數(shù)A調(diào)用了其他函數(shù)B〔樁函數(shù)〕,而函數(shù)B由于還沒(méi)有實(shí)現(xiàn)或其他原因無(wú)法使用。要正確測(cè)試函數(shù)A,就必須對(duì)函數(shù)B〔樁函數(shù)〕進(jìn)展設(shè)置特定的返回值供測(cè)試函數(shù)A使用1.翻開(kāi)C++Test自帶的Examples\stubs.cpp。2.選擇stubs.cpp->鼠標(biāo)右鍵->ReadSymbols解析stubs.cpp。從下面的界面可以看到mod2()函數(shù)調(diào)用了odd()函數(shù)。但是odd()函數(shù)沒(méi)有實(shí)現(xiàn)。要對(duì)測(cè)試mod2的所以必須實(shí)現(xiàn)樁函數(shù)odd()。3.選擇UnitTesting->選擇StubConfiguration->選擇odd()函數(shù)->鼠標(biāo)右鍵->adduserdefinition。4.翻開(kāi)stub設(shè)置界面。人為增加代碼returnture;,讓函數(shù)boolodd(int)返回trueorfalse〔下面返回值為true〕,保存修改后的樁函數(shù)。5.進(jìn)展單元測(cè)試。翻開(kāi)C++Test測(cè)試用例編輯界面。不管輸入mod2()函數(shù)的輸入?yún)?shù)是什么值,它的返回值應(yīng)當(dāng)是1,這是因?yàn)闃逗瘮?shù)odd()返回值為true。八.導(dǎo)入導(dǎo)出測(cè)試用例當(dāng)你測(cè)試某個(gè)單元,使用一些特殊或自己定義的測(cè)試用例。而其他人也同樣測(cè)試此單元,你可以通過(guò)測(cè)試用例的Import和Export功能,導(dǎo)入或?qū)С鎏囟ǖ臏y(cè)試用例。生成一個(gè)XML文件。導(dǎo)出測(cè)試用例:選擇某個(gè)測(cè)試用例或某個(gè)函數(shù)->鼠標(biāo)右鍵->選擇Export(或從菜單File->Export)2.導(dǎo)入測(cè)試用例:選擇某個(gè)函數(shù)->鼠標(biāo)右鍵->選擇Import(或從菜單File->Import)九.TestObjects當(dāng)你測(cè)試某個(gè)類(lèi)的一個(gè)單元時(shí),使用一些特殊或自己定義的類(lèi)構(gòu)造對(duì)象。而測(cè)試一個(gè)類(lèi)中的其他函數(shù)或其他人也需要此構(gòu)造對(duì)象的時(shí)候,你可以通過(guò)TestObjects例的Import和Export功能,導(dǎo)入或?qū)С鎏囟ǖ腡estObjects。生成一個(gè)XML文件。一個(gè)TestObjects可能包含一個(gè)或多個(gè)成員變量,而且這些成員變量有特定的值。StoreObject:在圖形化測(cè)試用例界面中->某個(gè)對(duì)象->鼠標(biāo)右鍵->選擇StoreObject)2.UseObject:在圖形化測(cè)試用例界面中->某個(gè)對(duì)象->選擇右邊框中的Data對(duì)象的一個(gè)TestObject->鼠標(biāo)右鍵->選擇UseObject)測(cè)試用例的對(duì)象Data的值已經(jīng)變成為T(mén)estObject的值導(dǎo)出TestObject:選擇某個(gè)TestObject或某個(gè)對(duì)象->鼠標(biāo)右鍵->選擇Export(或從菜單File->Export)導(dǎo)入TestObject:選擇某個(gè)對(duì)象->鼠標(biāo)右鍵->選擇Import(或從菜單File->Import)十.覆蓋率分析可以顯示工程、類(lèi)、函數(shù)和單個(gè)測(cè)試用例的覆蓋率。當(dāng)分別選擇工程、類(lèi)、函數(shù)和單個(gè)測(cè)試用例的時(shí)候,在下邊的CoverageStatisticTab中顯示相應(yīng)的覆蓋率2.從菜單Coverage->CoverageSource可以選擇覆蓋率來(lái)源Any:包括自身函數(shù)和其他函數(shù)調(diào)用此函數(shù)產(chǎn)生的Own:函數(shù)測(cè)試用例產(chǎn)生的External:其他函數(shù)的測(cè)試用例調(diào)用此函數(shù)產(chǎn)生的3.覆蓋率分:LineCoverage:語(yǔ)句覆蓋BasicBlockCoverage:沒(méi)有包含分支,控制流轉(zhuǎn)的一段代碼覆蓋PathCoverage:一條從函數(shù)入口到出口的路徑覆蓋Decision(Branch)Coverage:分支覆蓋ModifiedCondition/DecisionCoverage(MC/DC):嵌套boolean表達(dá)式的組合覆蓋ConditionCoverage:boolean表達(dá)式中的各個(gè)boolean條件覆蓋4.覆蓋率顯示顏色:綠色: >=80%黃色: >=40%同時(shí)<80%紅色: <40%5.在源代碼上顯示覆蓋率在左邊的樹(shù)狀中選擇文件,類(lèi)或函數(shù)。然后選擇菜單Coverage->ShowCoverage…翻開(kāi)源文件覆蓋率以下列圖中第一列數(shù)字: 行標(biāo)第二列數(shù)字: 代碼被執(zhí)行的此數(shù)目: 在當(dāng)前行上有額外的覆蓋率信息代碼藍(lán)色表示執(zhí)行過(guò)十一.回歸測(cè)試回歸測(cè)試:先做單元測(cè)試->保存單元測(cè)試用例->修改源代碼->用原來(lái)的測(cè)試用例測(cè)試修改后的代碼1.翻開(kāi)Example\cpptest_demo.cpp。按進(jìn)展單元測(cè)試。結(jié)果如下2.修改源代碼,并保存voidData::copyToBuffer(char*from){//argumentshouldbevalidated-exceptionthrownifNULLpassed//offbyoneerror-shoulduse'<'insteadof'<="constunsignedSZ=getSize();for(inti=0;i<=SZ;++i){*(_data+i)=*(from+i);}_data[SZ-1]='\0';}修改為voidData::copyToBuffer(char*from){//argumentshouldbevalidated-exceptionthrownifNULLpassed//offbyoneerror-shoulduse'<'insteadof'<="constunsignedSZ=getSize();if(NULL!=_data&&NULL!=from){for(inti=0;i<=SZ;++i){*(_data+i)=*(from+i);}_data[SZ-1]='\0'; } else {_data=NULL; }}用下面方法進(jìn)展回歸測(cè)試測(cè)試回歸測(cè)試的結(jié)果如下〔不再重新生成測(cè)試用例,而是用原來(lái)的測(cè)試用例〕十二.其他設(shè)置1.設(shè)置TCMTCM是保存測(cè)試配置的服務(wù)器。C++TestArchitectEdition可以上傳測(cè)試配置到TCM。C++TestProfessorEdition可以從TCM中取得測(cè)試配置。 菜單Settings->Customize…翻開(kāi)設(shè)置界面。選擇TeamConfigurationManager。在下面的界面中輸入TCM所在的服務(wù)器,然后按“Check〞按扭。檢測(cè)TCM設(shè)置是否正確。〔前提是要正確安裝和運(yùn)行TCM〕。2.設(shè)置GRSGRS是一個(gè)全局報(bào)告系統(tǒng),它自動(dòng)從C++Test.Jtest的測(cè)試工具中收集測(cè)試數(shù)據(jù)。并且按不同的角色,顯示不同的內(nèi)容。菜單Settings->Customize…翻開(kāi)設(shè)置界面。選擇Test->GroupReportingSystem->Settings…。在下面的界面中輸入GRS所在的服務(wù)器,然后按“Check〞按扭。檢測(cè)GRS設(shè)置是否正確〔前提是要正確安裝和運(yùn)行GRS〕。3.設(shè)置源代碼編輯器和HTML瀏覽器菜單Settings->Customize…翻開(kāi)設(shè)置界面。選擇General。Editors選擇查看源代碼的程序。HTMLBrowser設(shè)置查看HTML測(cè)試結(jié)果的瀏覽器。第四章RuleWizard定制規(guī)則一.啟動(dòng)Rule
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)略合作協(xié)議書(shū)合同
- 自建房屋勞務(wù)分包合同
- 2025斷樁處理施工合同書(shū)
- 邊坡支護(hù)工程施工合同協(xié)議范本年
- 2025合同模板貨車(chē)租賃合同模板范本
- 2025有償贈(zèng)與合同范文
- 拓展視野與國(guó)際交流主題班會(huì)
- 開(kāi)發(fā)潛能的技能培訓(xùn)方法
- 銷(xiāo)售系統(tǒng)銷(xiāo)售合同
- 2025年粵教版八年級(jí)地理下冊(cè)階段測(cè)試試卷
- ITSMS-D-038 問(wèn)題記錄表范本
- 第1課+古代亞非(教學(xué)設(shè)計(jì))【中職專(zhuān)用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 新教科版六年級(jí)下冊(cè)科學(xué)全冊(cè)教案
- 物業(yè)客服管家的培訓(xùn)課件
- 2024年房地產(chǎn)行業(yè)的樓市調(diào)控政策解讀培訓(xùn)
- 《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語(yǔ)言-時(shí)間序列分析和預(yù)測(cè)
- 裝飾定額子目(河南省)
- 【高速鐵路乘務(wù)工作存在的問(wèn)題及對(duì)策研究9800字】
- 北師大版英語(yǔ)課文同步字帖三年級(jí)下冊(cè)課文對(duì)話原文及翻譯衡水體英語(yǔ)字帖三年級(jí)起點(diǎn)
- GB/T 2550-2016氣體焊接設(shè)備焊接、切割和類(lèi)似作業(yè)用橡膠軟管
- GB/T 21295-2014服裝理化性能的技術(shù)要求
評(píng)論
0/150
提交評(píng)論