成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解讀C++單元測試種種錯誤方法說明

開發(fā) 后端
為什么每一個 C/C++開發(fā)人員 不馬上對每一個類進行單元測試?設計和建立合適的測試用例。為了徹底地進行C++單元測試的結(jié)構和功能性,你應該設計兩種類型。

C++單元測試本身是一個標準,各種實現(xiàn)之間有區(qū)別,對標準的理解、執(zhí)行程度也不同。而C#、Java語言是由商業(yè)公司掌握的,在這方面很少有問題,但是看完了本篇文章你會有許多意想不到的東西啊。

 一、 單元測試能幫助客戶更準更全面地找到錯誤,顯著提高軟件質(zhì)量
上圖顯示了一個包含許多對象的應用程序的測試模型,大橢圓表示應用程序,小橢圓表示對象,箭
頭表示用戶輸入,紅星表示潛在的錯誤。

在集成測試中為了發(fā)現(xiàn)錯誤,我們希望通過不斷修改輸入,引發(fā)對象間的相互作用使得某對象引發(fā) 潛在的錯誤,但這無疑是有難度的。由于其難度,開發(fā)人員只能依賴應用軟件的運行失敗來發(fā)現(xiàn)錯誤, 這樣不僅很難找到錯誤發(fā)生的準確位置,而且實際上還有大量的類沒有得到測試。

C++單元測試提供了一種更有效的發(fā)現(xiàn)錯誤的方法,它將應用程序中的最小單元分離開,使得測試更接近錯誤,只要簡單地對每個最小單元進行獨立測試,就很容易地使全面準確地找到所有的程序錯誤成 為可能。

單元測試能夠在改善軟件質(zhì)量的同時大量削減開發(fā)時間和成本
由于在較高的層次上修改一個類可能會改變多個程序部件的設計和功能性,因此越遲發(fā)現(xiàn)問題,通
◆常就要修改越多的代碼。當修改的代碼量增加時,其他兩個因素也會隨之增加:
◆修改每一個錯誤所需的時間和費用  在代碼中引入新的錯誤的機會

 一次又一次的研究證明,隨著問題被檢測出來的時間的推遲,發(fā)現(xiàn)軟件錯誤所需的時間和成本會驚 人地增加。C++單元測試由于能夠更容易地找到錯誤,就會減少發(fā)現(xiàn)它們的時間和資源。 其次,由于你每完一個類,就能發(fā)現(xiàn)和改正其中的錯誤,你就不需要在以后花費大量時間重新了解和摸索。

最后,最重要的理由是由于類的相互作用和關聯(lián)性,在單元級修改一個類只會影響到原始的類,避 免了各個單元間的相互作用引發(fā)新的錯誤。因此單元測試能保證大大削減開發(fā)的時間和成本。#t#

基于上述信息,單元測試看上去就象一劑萬能藥 如果是這樣的話,為什么每一個 C/C++開發(fā)人員 不馬上對每一個類進行單元測試?就目前可以使用的技術來說,對 C/C++的單元測試是一件困難、煩瑣 和耗時的事情,沒有很好的工具來自動化這一過程,使得許多 C/C++開發(fā)人員望而生畏。

 執(zhí)行C++單元測試的第一步是是目標類變得可測。這需要兩個工作:
◆設計一個運行目標類的測試驅(qū)動程序
◆設計樁函數(shù),它們?yōu)楸粶y類所引用的任何外部資源返回值 建立一個測試驅(qū)動,需要建立一個新的類,除了C++單元測試原始類以外它不能用于任何其它目的。測試驅(qū) 動應該具有下列特性:
◆一個指定設置和清除的標準方式
◆一個選擇個別測試和所有有效測試的方法
◆一個分析輸出的預期(或非預期)結(jié)果的機制
◆一個標準的錯誤報告形式

為了充分而正確地測試類,你需要設計一個能夠完全檢查被測類的測試驅(qū)動;若干次修改和重寫這 樣一個測試驅(qū)動是免不了的。一旦建立了測試驅(qū)動,你必須仔細檢查它不能包含任何錯誤。C++單元測試驅(qū)動中 的一個錯誤會破壞這個測試,但是你無法單獨測試一個類,你也不能測試測試驅(qū)動本身。

如果你的類引用任何還沒有準備好或不可訪問的外部資源(如外部文件、數(shù)據(jù)庫和 CORBA 對象等),你必須建立相應的樁函數(shù),它們的返回值類似于這些實際的外部資源應該返回的。

當建立這些樁函數(shù)時,你需要選擇樁函數(shù)的返回值,它們將影響程序的執(zhí)行路徑:
◆為了測試類的功能性必須執(zhí)行任何的路徑
◆足夠的路徑能夠提供徹底的測試覆蓋性

責任編輯:chenqingxiang 來源: CSDN
相關推薦

2010-01-13 09:38:17

C++單元測試

2010-01-15 14:10:42

C++單元測試

2010-01-28 15:54:19

Android單元測試

2022-08-05 09:30:57

單元測試C++

2012-06-18 10:03:46

Visual Stud

2011-05-16 16:52:09

單元測試徹底測試

2017-01-14 23:42:49

單元測試框架軟件測試

2009-12-23 15:03:52

WPF單元測試

2009-09-01 10:20:06

protected方法單元測試

2014-04-24 13:43:37

CC++單元測試框架

2010-01-11 13:37:31

C++語言

2023-07-26 08:58:45

Golang單元測試

2011-08-22 13:57:55

gtest

2014-02-25 10:25:52

單元測試測試

2010-01-11 13:31:03

C++語言

2011-06-20 17:25:02

單元測試

2024-10-16 16:09:32

2009-09-01 16:35:16

C#單元測試

2009-06-02 14:24:32

Hibernate單元測試HSQLDB

2017-01-14 23:26:17

單元測試JUnit測試
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频欧美视频 | 黄色成人在线观看 | 亚洲国产一区二区三区四区 | 日日做夜夜爽毛片麻豆 | 日韩在线欧美 | 偷拍亚洲色图 | 91成人在线| 色橹橹欧美在线观看视频高清 | 一二三四在线视频观看社区 | 亚洲精品视频在线观看视频 | 欧美日韩国产一区二区三区 | 精品不卡| 国产一区不卡 | 免费一区二区三区 | 欧美亚洲国产日韩 | 亚洲国产欧美在线 | 精品一区二区在线视频 | 亚洲精品久久久蜜桃 | 欧美精品一区二区三区在线播放 | 久久天堂网| h在线观看 | 日韩在线播放视频 | 国产精品国产三级国产aⅴ中文 | 国产成人在线视频播放 | 欧美成人精品 | av国产精品 | 精品久久视频 | 精品少妇v888av | 久久99视频这里只有精品 | 亚洲国产精品精华素 | 久久久精品一区二区 | 亚洲综合日韩精品欧美综合区 | 成人亚洲视频 | 精品一区二区三区不卡 | 日韩天堂av | 又爽又黄axxx片免费观看 | 成人三级视频在线观看 | 99热播精品| 91电影| 日本一区二区高清不卡 | 午夜精品一区二区三区在线播放 |