?一、單元測(cè)試的概念
單元測(cè)試(Unit Testing)是對(duì)軟件基本組成單元進(jìn)行的測(cè)試,如函數(shù)(function或procedure)或一個(gè)類的方法(method)。當(dāng)然這里的基本單元不僅僅指的是一個(gè)函數(shù)或者方法,有可能對(duì)應(yīng)多個(gè)程序文件中的一組函數(shù)。
單元也具有一些基本的屬性。比如:明確的功能、規(guī)格定義,明確的與其他部分的接口定義等,可清晰地與同一程序的其他單元化分開來(lái)。
二、單元測(cè)試的目的
單元測(cè)試的目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤,主要是基于白盒測(cè)試。(也就是說(shuō),在單元測(cè)試過(guò)程中,用的最多的是白盒測(cè)試方法,也可能會(huì)有灰盒或者黑盒。單元測(cè)試和白盒測(cè)試是不同的劃分,不存在包含關(guān)系)。
在單元測(cè)試階段對(duì)應(yīng)的文檔是詳細(xì)設(shè)計(jì)文檔(LLD);對(duì)應(yīng)的代碼就是單元代碼,因此單元測(cè)試的目的主要有3點(diǎn):
1、驗(yàn)證代碼是與設(shè)計(jì)相符合的;
2、發(fā)現(xiàn)設(shè)計(jì)和需求中存在的錯(cuò)誤;
3、發(fā)現(xiàn)在編碼過(guò)程中引入的錯(cuò)誤。
三、單元的常見錯(cuò)誤
單元的常見錯(cuò)誤一般出現(xiàn)在以下五個(gè)方面,因此這五個(gè)方面是單元測(cè)試應(yīng)該關(guān)注的重點(diǎn)。
1、單元接口。
2、局部數(shù)據(jù)結(jié)構(gòu)。
3、獨(dú)立路徑。
4、出錯(cuò)處理。
5、邊界條件。
四、如何進(jìn)行單元測(cè)試
在單元測(cè)試時(shí),由于單元本身不是一個(gè)獨(dú)立的程序,一個(gè)完整的可運(yùn)行的軟件系統(tǒng)并沒有構(gòu)成,所以需要設(shè)置一些輔助測(cè)試單元,輔助測(cè)試單元有兩種,一種是驅(qū)動(dòng)單元,另外一種是樁單元。
1、驅(qū)動(dòng)單元(Driver):用來(lái)模擬被測(cè)單元的上層單元,相當(dāng)于被測(cè)函數(shù)的主函數(shù),如main函數(shù)。所以驅(qū)動(dòng)單元主要完成以下4個(gè)步驟:
(1)接受測(cè)試數(shù)據(jù),包含測(cè)試用例輸入和預(yù)期輸出;
(2)把測(cè)試用例輸入傳送給被測(cè)單元,驅(qū)動(dòng)被測(cè)單元測(cè)試;
(3)將被測(cè)單元的實(shí)際輸出和預(yù)期輸出進(jìn)行比較,得到測(cè)試結(jié)果;
(4)將測(cè)試結(jié)果輸出到指定位置。
2、樁單元(Stub):用來(lái)代替被測(cè)單元工作過(guò)程中調(diào)用的子單元。
樁單元模擬的單元可能是自定義函數(shù):這些自定義函數(shù)可能尚未編寫完成,為了測(cè)試被測(cè)單元,需要構(gòu)造樁單元來(lái)代替它們,可能存在錯(cuò)誤,會(huì)影響測(cè)試結(jié)果,所以需要構(gòu)造正確無(wú)誤的樁單元來(lái)達(dá)到隔離的目的。
驅(qū)動(dòng)單元和樁單元都是額外的開銷,雖然在單元測(cè)試的時(shí)候必須寫,但是并不需要作為最終的產(chǎn)品提供給客戶。
五、單元測(cè)試策略
一般的單元執(zhí)行策略有三種:孤立的單元測(cè)試策略(Isolation Unit Testing),自頂向下的單元測(cè)試策略(Top Down Unit Testing)和自底向上的單元測(cè)試策略(Bottom Up Unit Testing)。需要注意的是:在集成測(cè)試中也有自頂向下和自底向上的測(cè)試策略,但是測(cè)試對(duì)象不同。
1、孤立的單元測(cè)試策略(Isolation Unit Testing)
方法:不考慮每個(gè)模塊與其它模塊之間的關(guān)系,為每個(gè)模塊設(shè)計(jì)樁模塊和驅(qū)動(dòng)模塊,每個(gè)模塊進(jìn)行獨(dú)立的單元測(cè)試。 優(yōu)點(diǎn):這個(gè)方法比較簡(jiǎn)單,最容易操作,可以達(dá)到很高的結(jié)構(gòu)覆蓋率,可以并行開展,該方法是純粹的單元測(cè)試。 缺點(diǎn):樁函數(shù)和驅(qū)動(dòng)函數(shù)工作量很大,效率低。
2、自頂向下的單元測(cè)試策略(Top Down Unit Testing)
方法:先對(duì)最頂層的單元進(jìn)行測(cè)試,把頂層所調(diào)用的單元做成樁模塊,其次對(duì)第二層進(jìn)行測(cè)試,使用上面已經(jīng)測(cè)試過(guò)的單元做驅(qū)動(dòng)模塊,以此類推,直到測(cè)試完所有模塊。 優(yōu)點(diǎn):可以節(jié)省驅(qū)動(dòng)函數(shù)的開發(fā)工作,效率高。 缺點(diǎn):隨著被測(cè)單元一個(gè)一個(gè)被加入,測(cè)試過(guò)程將變得越來(lái)越復(fù)雜,并且開發(fā)和維護(hù)的成本將增加。
3、自底向上的單元測(cè)試策略(Bottom Up Unit Testing)
方法:先對(duì)最底層的模塊進(jìn)行單元測(cè)試,將模擬調(diào)用該模塊的模塊設(shè)置為驅(qū)動(dòng)模塊,然后再對(duì)上面一層做單元測(cè)試,用下面已經(jīng)測(cè)試好的模塊做樁模塊,以此類推,直到測(cè)試完所有模塊。 優(yōu)點(diǎn):可以節(jié)省樁函數(shù)的開發(fā)工作量,測(cè)試效率較高。 缺點(diǎn):不是純粹的單元測(cè)試,底層函數(shù)的測(cè)試質(zhì)量對(duì)上層函數(shù)的測(cè)試將產(chǎn)生很大影響。
最后:下方這份完整的軟件測(cè)試視頻學(xué)習(xí)教程已經(jīng)整理上傳完成,朋友們?nèi)绻枰梢宰孕忻赓M(fèi)領(lǐng)取 【保證100%免費(fèi)】
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-604497.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-604497.html
到了這里,關(guān)于軟件測(cè)試系列--單元測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!