解決C++Test自動(dòng)生成的測試問題
C++Test自動(dòng)建立一個(gè)測試驅(qū)動(dòng)程序,其設(shè)計(jì)目標(biāo)是極大化類的測試覆蓋性和錯(cuò)誤檢測。為類建立測試驅(qū)動(dòng),你只要簡單地打開這個(gè)類,然后按Build Test鍵。C++Test將自動(dòng)建立測試驅(qū)動(dòng)程序。
另外,如果被測的方法需要調(diào)用當(dāng)時(shí)還不存在或無法訪問的函數(shù),C++Test能夠自動(dòng)生成樁函數(shù);這樣能夠測試與外部資源操作的交互作用和不包含任何隱藏的弱點(diǎn)。C++Test不是實(shí)際調(diào)用這些函數(shù),而是調(diào)用樁函數(shù)并返回樁函數(shù)提供的值。
如果你需要控制使用的返回值,你可以建立一個(gè)樁調(diào)用表,生命輸入/輸出的關(guān)系。 你還能加入用戶定義的樁函數(shù)。例如,如果你要使用原始的函數(shù),且該函數(shù)定義在不同的文件中;或者你想要仿真原始函數(shù)的行為,而用一個(gè)簡單的函數(shù)替代它自動(dòng)生成C/C++類的測試驅(qū)動(dòng)程序和樁函數(shù)的能力是C++Test所獨(dú)有的;
只有C++Test能夠自動(dòng)測試C/C++類(一當(dāng)它能夠編譯時(shí)),而不需要用戶的任何干預(yù)。使得你能夠盡快地自動(dòng)檢測代碼錯(cuò)誤,以最容易、最省錢和最快速的方法找到和修正它們。如果沒有這樣的自動(dòng)化工具,大量的時(shí)間和資源消耗將失去單元測試的潛在好處和現(xiàn)實(shí)意義。
靜態(tài)測試
C++Test內(nèi)嵌了業(yè)界最出名的Effective C++(epcc)、More Effective C++(mepcc)、meyer-klaus(mk)以及Universal Code Standard(ucs)等超過700條的C/C++規(guī)范,用戶自己還能自定義規(guī)范。
同時(shí),它也集成了由parasoft累積出來的一些規(guī)范。靜態(tài)測試中,C++Test會(huì)對(duì)代碼進(jìn)行詳盡的掃描,驗(yàn)證代碼中是否存在和這些規(guī)范相沖突的地方,盡快的發(fā)現(xiàn)一些簡單或低級(jí)錯(cuò)誤,避免由它們帶來的集成擴(kuò)散。
白盒測試
C++Test提供了一種有效并且高效的方法執(zhí)行白盒測試。C++Test完全自動(dòng)執(zhí)行所有的白盒測試過程,自動(dòng)生成和執(zhí)行精心設(shè)計(jì)的測試用例。自動(dòng)標(biāo)記任何運(yùn)行失敗,并以一種簡單的圖示化結(jié)構(gòu)顯示。然后自動(dòng)保存這些測試用例,能夠方便地用于以后的回歸測試。
由于C++Test能夠自動(dòng)生成樁函數(shù),或允許你加入自己的樁函數(shù),因此它能夠測試引用外部對(duì)象的類。換句話說,C++Test能夠運(yùn)行任何一個(gè)或一組類,并自動(dòng)生成和執(zhí)行一組測試用例,它們被設(shè)計(jì)成能夠發(fā)現(xiàn)盡可能多的錯(cuò)誤。 C++Test允許你定制白盒測試用例的生成,和在什么層次上(項(xiàng)目、文件、類或方法)執(zhí)行測試。
黑盒測試
C++Test通過自動(dòng)化黑盒測試的大部分操作,減輕了這類測試的負(fù)擔(dān)。特別是以兩種方法自動(dòng)化黑盒測試的***階段--建立測試用例:幫助你設(shè)置每個(gè)測試用例的結(jié)果。
你可以簡單地輸入測試用例輸入,然后讓C++Test運(yùn)行測試用例并自動(dòng)確定實(shí)際的輸出結(jié)果。如果結(jié)果正確,不需要其它動(dòng)作。如果結(jié)果不正確,你可以輸入預(yù)期的輸出結(jié)果。這樣比手工輸入每個(gè)測試用例的結(jié)果更快更容易。自動(dòng)生成測試用例的核心集合。
C++Test自動(dòng)設(shè)計(jì)了一組廣譜的白盒測試用例。當(dāng)使用這些測試用例在黑盒測試時(shí),你只需簡單地觀察實(shí)際的輸出結(jié)果,然后對(duì)任何不正確的結(jié)果輸入預(yù)期的值。
當(dāng)你需要輸入或修改測試用例時(shí)。
你可以在C++Test自動(dòng)生成的測試用例框架種簡單地鍵入相應(yīng)的值。這將顯著地加快建立測試用例的過程。 在自動(dòng)化建立黑盒測試用例的大多數(shù)步驟之外,C++Test完全自動(dòng)化余下的黑盒測試步驟。按一個(gè)鍵,你能夠?qū)?xiàng)目、文件、類或方法運(yùn)行一個(gè)或一組。C++Test然后自動(dòng)執(zhí)行所有的測試用例,報(bào)告所有的輸入/輸出關(guān)系,并標(biāo)記任何實(shí)際輸出與預(yù)期不一致或?qū)е鲁绦虮罎⒌臏y試用例。
回歸測試
C++Test完全自動(dòng)化與回歸測試有關(guān)的所有步驟。C++Test***測試某個(gè)類時(shí),自動(dòng)保存其測試和測試參數(shù)。當(dāng)需要執(zhí)行回歸測試時(shí),你可以打開合適的項(xiàng)目和文件,運(yùn)行所有原來的白盒和黑盒測試用例;C++Test會(huì)自動(dòng)運(yùn)行完全相同的測試用例和測試參數(shù),并告之發(fā)現(xiàn)的任何問題。這意味著你能夠立即知道修改是否引入了任何錯(cuò)誤。
監(jiān)視測試覆蓋性
為了幫助你測量當(dāng)前使用的測試用例集合的有效性,并且給你提供達(dá)到盡可能高的覆蓋性的信息,C++Test自動(dòng)監(jiān)視測試覆蓋性。 C++Test實(shí)時(shí)跟試覆蓋性,然后建立一個(gè)綜合測試覆蓋性報(bào)告。
覆蓋性窗口圖示化地說明了當(dāng)前正在被執(zhí)行的代碼行,已執(zhí)行過的行和每行的執(zhí)行次數(shù)。因此,它不僅指出了一個(gè)代碼行是否被測試過,而且說明了被測試的有多徹底。這些信息對(duì)于確定那些代碼需要追加測試是非常有幫助的。
【編輯推薦】