摘要:與傳統(tǒng)單元測(cè)試不同,面向?qū)ο蟮膯卧獪y(cè)試關(guān)注于設(shè)計(jì)適當(dāng)?shù)牟僮餍蛄幸詸z查類的狀態(tài)。面向?qū)ο筌浖募蓽y(cè)試主要采用基于使用的測(cè)試策略來(lái)進(jìn)行。
目錄
本關(guān)任務(wù):根據(jù)所學(xué)知識(shí),完成右側(cè)的選擇題。
為了完成本關(guān)任務(wù),你需要掌握面向?qū)ο蟮膯卧獪y(cè)試。
單元的意思已經(jīng)發(fā)生改變
當(dāng)考慮面向?qū)ο蟮能浖r(shí),單元的概念就發(fā)生了改變。因?yàn)閭鹘y(tǒng)面向過(guò)程的軟件中最小單位是模塊,所以此時(shí)單元指的是模塊。而面向?qū)ο蟮能浖械淖钚挝皇穷惡蛯?duì)象,所以這個(gè)時(shí)候單元指的是類和對(duì)象。
而且在測(cè)試面向?qū)ο筌浖r(shí),不能再孤立地測(cè)試單個(gè)操作,而應(yīng)該把操作作為類的一部分來(lái)測(cè)試。
例如,假設(shè)有一個(gè)類層次,X
函數(shù)在其父類中有定義,并且被一組子類繼承了下來(lái),而且每個(gè)子類都會(huì)使用x
函數(shù)。但是X
函數(shù)會(huì)調(diào)用子類中定義的操作并處理子類的私有變量。這個(gè)時(shí)候你若用單元測(cè)試的方式來(lái)測(cè)的話,會(huì)發(fā)現(xiàn)無(wú)從下手。
看起來(lái)這么復(fù)雜的一個(gè)類層次,其實(shí)在面向?qū)ο蟮能浖斜缺冉允?。由于在不同的子類中使?code>X函數(shù)的環(huán)境有微妙的差別,因此有必要在每個(gè)子類的語(yǔ)境中測(cè)試X
函數(shù)。這就說(shuō)明,當(dāng)測(cè)試面向?qū)ο筌浖r(shí),傳統(tǒng)的單元測(cè)試方法是不適用的,不能再孤立地測(cè)試單個(gè)函數(shù)。
目前,面向?qū)ο筌浖臏y(cè)試用例的設(shè)計(jì)方法還處于研究和發(fā)展階段。與傳統(tǒng)單元測(cè)試不同,面向?qū)ο蟮膯卧獪y(cè)試關(guān)注于設(shè)計(jì)適當(dāng)?shù)牟僮餍蛄幸詸z查類的狀態(tài)。
測(cè)試單個(gè)類的方法主要有隨機(jī)測(cè)試和劃分測(cè)試兩種。
下面通過(guò)銀行系統(tǒng)的例子,來(lái)簡(jiǎn)要說(shuō)明這種測(cè)試方法。該系統(tǒng)的account
(賬戶)類有這些函數(shù):open
(打開(kāi))、deposit
(存款)、withdraw
(取款)、balance
(余額)、summarize
(清單)、creditLimit
(透支限額)和close
(關(guān)閉)。
很明顯,只要是account
類的對(duì)象就都能使用這些函數(shù)。但是,使用這些函數(shù)時(shí)也會(huì)有一些限制。例如,必須在打開(kāi)賬戶之后才能關(guān)閉賬戶。
即使有這樣或者那樣的限制,但合理使用函數(shù)的序列還是會(huì)有很多種例如:open->deposit->close
、open->deposit->withdraw->close
、open->summarize->creditLimit->withdraw->close
等。
這些序列其實(shí)就是用戶可能會(huì)在使用系統(tǒng)時(shí)觸發(fā)的函數(shù)使用序列,而且每個(gè)用戶的使用序列可能會(huì)不一樣,所以像這種以序列的方式來(lái)測(cè)試的方法叫作隨機(jī)測(cè)試。
劃分測(cè)試與黑盒測(cè)試中的等價(jià)類劃分類似,先按照一定的規(guī)則,把輸入和輸出分類,然后設(shè)計(jì)測(cè)試用例,用來(lái)測(cè)試劃分出來(lái)的每個(gè)類別。采用劃分測(cè)試方法可以減少測(cè)試類時(shí)所需要的測(cè)試用例的數(shù)量。
例如account
類中,與狀態(tài)有關(guān)的函數(shù)是deposit
和withdraw
,而其他的函數(shù)與狀態(tài)無(wú)關(guān)。那么設(shè)計(jì)測(cè)試用例時(shí),可以分別測(cè)試改變狀態(tài)的函數(shù)和不改變狀態(tài)的函數(shù)。例如:open->deposit->deposit->withdraw->close
用來(lái)測(cè)試改變狀態(tài)的函數(shù),而open->balance->close
用來(lái)測(cè)試不改變狀態(tài)的函數(shù)。
請(qǐng)完成右側(cè)的選擇題,并點(diǎn)擊評(píng)測(cè)按鈕,驗(yàn)證你所填寫(xiě)的答案是否正確。
?
本關(guān)任務(wù):根據(jù)所學(xué)知識(shí),完成右側(cè)的選擇題。
為了完成本關(guān)任務(wù),你需要掌握面向?qū)ο蟮募蓽y(cè)試。
因?yàn)樵诿嫦驅(qū)ο蟮能浖胁淮嬖趯哟蔚目刂平Y(jié)構(gòu),傳統(tǒng)的自頂向下或自頂向上的集成策略就沒(méi)有意義了。此外,由于構(gòu)成類的各個(gè)成分彼此間存在著直接或間接的交互,一次集成一個(gè)操作到類中通常是不現(xiàn)實(shí)的。
面向?qū)ο筌浖募蓽y(cè)試主要采用基于使用的測(cè)試策略來(lái)進(jìn)行。
這種方法首先測(cè)試幾乎不使用服務(wù)器類的那些類(也叫獨(dú)立類),把獨(dú)立類都測(cè)試完之后,再測(cè)試使用獨(dú)立類到下一個(gè)層次的類(也叫依賴類)。對(duì)依賴類的測(cè)試一個(gè)層次一個(gè)層次地持續(xù)進(jìn)行下去,直至把整個(gè)軟件系統(tǒng)構(gòu)造完成,那么整個(gè)系統(tǒng)也就測(cè)試完成了。
例如,一款刷臉簽到的app
中有Camera
類、Recognition
類、DataBase
類、Signin
類。其中Signin
類依賴于DataBase
類和Recognition
類??梢钥闯?,Camera
類、Recognition
類和DataBase
類是獨(dú)立類,應(yīng)該優(yōu)先測(cè)試這些類的功能。而Signin
類是依賴類,因此應(yīng)該在最后才把Signin
類與其他類集成到一起并進(jìn)行測(cè)試。
請(qǐng)完成右側(cè)的選擇題,并點(diǎn)擊評(píng)測(cè)按鈕,驗(yàn)證你所填寫(xiě)的答案是否正確。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/121224.html
摘要:相關(guān)知識(shí)為了完成本關(guān)任務(wù),你需要掌握軟件測(cè)試的測(cè)試策略。第關(guān)測(cè)試過(guò)程任務(wù)描述本關(guān)任務(wù)根據(jù)所學(xué)知識(shí),完成右側(cè)的選擇題。 第1關(guān):測(cè)試策略 任務(wù)描述 本關(guān)任務(wù):根據(jù)所學(xué)知識(shí),完成右側(cè)的選擇題。 相關(guān)知識(shí) 為了完成本關(guān)任務(wù),你需要掌握軟件測(cè)試的測(cè)試策略。 ? 第2關(guān):測(cè)試過(guò)程 任務(wù)描述 本關(guān)任務(wù)...
摘要:第關(guān)基本路徑測(cè)試任務(wù)描述本關(guān)任務(wù)填寫(xiě)缺失代碼,完成白盒測(cè)試。相關(guān)知識(shí)為了完成本關(guān)任務(wù),你需要掌握基本路徑測(cè)試。 第1關(guān):邏輯覆蓋 任務(wù)描述 本關(guān)任務(wù):設(shè)計(jì)測(cè)試用例,填寫(xiě)代碼,完成白盒測(cè)試。 相關(guān)知識(shí) 為了完成本關(guān)任務(wù),你需要掌握: 1.語(yǔ)句覆蓋; 2.判定覆蓋; 3.條件覆蓋; 4.判定/條...
摘要:第關(guān)邊界值法任務(wù)描述本關(guān)任務(wù)編寫(xiě)代碼,使用邊界值法進(jìn)行黑盒測(cè)試。相關(guān)知識(shí)為了完成本關(guān)任務(wù),你需要掌握邊界值法。 第1關(guān):等價(jià)類劃分法 任務(wù)描述 本關(guān)任務(wù):編寫(xiě)代碼,使用等價(jià)類劃分法進(jìn)行黑盒測(cè)試。 相關(guān)知識(shí) 為了完成本關(guān)任務(wù),你需要掌握等價(jià)類劃分法。 第2關(guān):邊界值法 任務(wù)描述 本關(guān)任務(wù):...
摘要:移動(dòng)精英開(kāi)發(fā)社群的第期,也是圍繞架構(gòu)這個(gè)話題進(jìn)行討論。本次我們希望結(jié)合實(shí)際開(kāi)發(fā)中遇到的問(wèn)題,來(lái)聊聊移動(dòng)端的架構(gòu)設(shè)計(jì)。這樣的模式改進(jìn)一些,可能會(huì)更適合移動(dòng)端架構(gòu)。潘衛(wèi)杰之前我們公司移動(dòng)端的大項(xiàng)目就是插座式開(kāi)發(fā)的,批量出各個(gè)行業(yè)的。 此前,58 同城的技術(shù)委員會(huì)執(zhí)行主席沈劍在 OneAPM 的技術(shù)公開(kāi)課上分享過(guò)一個(gè)主題,「好的架構(gòu)不是設(shè)計(jì)出來(lái)的,而是演技出來(lái)的」。因?yàn)閷?duì)很多創(chuàng)業(yè)公司而言,隨...
摘要:在剛開(kāi)始的時(shí)候,我通常都會(huì)先啟動(dòng)一個(gè)簡(jiǎn)單的服務(wù),然后再運(yùn)行我的單元測(cè)試??墒沁@個(gè)單元測(cè)試測(cè)起來(lái)似乎非常笨重。王尼瑪張全蛋測(cè)試之這是自定義的返回值,可以是任意類型。 在開(kāi)發(fā)過(guò)程中往往需要配合單元測(cè)試,但是很多時(shí)候,單元測(cè)試需要依賴一些比較復(fù)雜的準(zhǔn)備工作,比如需要依賴數(shù)據(jù)庫(kù)環(huán)境,需要依賴網(wǎng)絡(luò)環(huán)境,單元測(cè)試就變成了一件非常麻煩的事情。舉例來(lái)說(shuō),比如我們需要請(qǐng)求一個(gè)網(wǎng)頁(yè),并將請(qǐng)求回來(lái)的數(shù)據(jù)進(jìn)行...
閱讀 4173·2021-09-29 09:34
閱讀 3871·2021-09-27 13:34
閱讀 657·2021-09-24 09:47
閱讀 3102·2019-08-30 15:53
閱讀 1885·2019-08-26 13:54
閱讀 2135·2019-08-26 13:43
閱讀 616·2019-08-23 14:47
閱讀 1804·2019-08-23 14:28