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