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

解讀C++單元測(cè)試種種錯(cuò)誤方法說明

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

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

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

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

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

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

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

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

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

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

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

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

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

責(zé)任編輯:chenqingxiang 來源: CSDN
相關(guān)推薦

2010-01-13 09:38:17

C++單元測(cè)試

2010-01-15 14:10:42

C++單元測(cè)試

2010-01-28 15:54:19

Android單元測(cè)試

2012-06-18 10:03:46

Visual Stud

2022-08-05 09:30:57

單元測(cè)試C++

2011-05-16 16:52:09

單元測(cè)試徹底測(cè)試

2010-01-11 13:37:31

C++語言

2014-04-24 13:43:37

CC++單元測(cè)試框架

2023-07-26 08:58:45

Golang單元測(cè)試

2017-01-14 23:42:49

單元測(cè)試框架軟件測(cè)試

2009-12-23 15:03:52

WPF單元測(cè)試

2009-09-01 10:20:06

protected方法單元測(cè)試

2010-01-11 13:31:03

C++語言

2014-02-25 10:25:52

單元測(cè)試測(cè)試

2011-08-22 13:57:55

gtest

2024-10-16 16:09:32

2011-06-20 17:25:02

單元測(cè)試

2009-09-01 16:35:16

C#單元測(cè)試

2009-06-02 14:24:32

Hibernate單元測(cè)試HSQLDB

2017-01-14 23:26:17

單元測(cè)試JUnit測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩av一区二区在线 | 欧美成人hd | 国产精品成人国产乱 | 午夜在线精品偷拍 | 国产免费福利在线 | 日韩欧美成人一区二区三区 | 国产日韩一区二区 | 日韩一区二区在线视频 | 国产成人精品免高潮在线观看 | 狠狠色综合欧美激情 | 国产精品一区二区无线 | 日韩精品久久久久久 | 99久久99| www.yw193.com | 麻豆亚洲 | 大香网伊人 | 成人午夜av| 亚洲男人网 | 欧美国产中文字幕 | a级大片免费观看 | 久久亚洲一区二区 | 欧美成人一区二区 | 美女视频一区二区三区 | 欧美日韩久久精品 | 亚洲永久在线 | 男人天堂视频在线观看 | 亚洲在线一区 | 日韩电影免费观看中文字幕 | 日韩av一区二区在线观看 | 国产原创在线观看 | 亚洲成人av| 中文字幕国产在线 | 亚洲国产高清高潮精品美女 | 在线黄色网| 日韩成人av在线播放 | 国产福利资源 | 国产免费一区二区三区 | 亚洲欧美一区二区三区1000 | 久久久久亚洲精品 | 国产欧美精品在线 | 色综合激情 |