單元測(cè)試中的FIRST代表下面五組英文單詞對(duì)應(yīng)的原則:
- Fast
- Isolated / Independent
- Repeatable
- Self-validating
- Timely / Thorough
軟件開發(fā)中,往往會(huì)因?yàn)槲覀儧]有注意到的邏輯或難以理解的代碼,而引進(jìn)Bug來。?
怎么盡早地發(fā)現(xiàn)Bug,軟件人一直在做這方面的努力,單元測(cè)試是眾多努力中相當(dāng)有成效的一個(gè)方式。而寫單元測(cè)試的過程中有些經(jīng)驗(yàn)教訓(xùn)呢?這些經(jīng)驗(yàn)教訓(xùn)背后有沒有一些通用性的原則呢?答案是肯定的,F(xiàn)IRST原則就是其中重要的一個(gè)。?
執(zhí)行快速(Fast)
單元測(cè)試執(zhí)行一定要快,如果要給一個(gè)標(biāo)準(zhǔn)的話,每個(gè)單元測(cè)試的執(zhí)行應(yīng)該是秒級(jí)的。這樣研發(fā)同學(xué)可以在項(xiàng)目周期的任意時(shí)間點(diǎn),可以方便地執(zhí)行單元測(cè)試, 即便是有幾千個(gè)單元測(cè)試也不影響。這些單元測(cè)試最好在幾秒內(nèi)運(yùn)行完并返回期望的結(jié)果。如果是和時(shí)間相關(guān)的測(cè)試,不應(yīng)該真的等待時(shí)間流逝再看結(jié)果,而應(yīng)該使用 Mock 來模擬時(shí)間。
隔離(Isolated)/獨(dú)立(Independent)
每一個(gè)測(cè)試用例運(yùn)行時(shí)、準(zhǔn)備環(huán)境變量時(shí)或測(cè)試前環(huán)境搭建過程中,都是隔離的。過程中,不能有相互依賴,這樣最終的測(cè)試結(jié)果可以不受其它因素的影響。如果需要一些配置,這些配置應(yīng)該在本單元測(cè)試的初始化階段完成。
可重復(fù)(Repeatable)執(zhí)行
單元測(cè)試可以在不做任何修改情況下,在任何環(huán)境下執(zhí)行。如果單元測(cè)試不依賴網(wǎng)絡(luò)或數(shù)據(jù)庫,單元測(cè)試失敗原因的排查中,就不用考慮這方面的原因,畢竟單元測(cè)試依賴的只是被測(cè)試類或方法中的代碼。這個(gè)原則,可以方便地讓自己的單元測(cè)試邏輯保持良好的價(jià)值。?
代碼測(cè)試中自校驗(yàn)(Self-validating)
寫了單元測(cè)試后,咱們不能再依賴肉眼觀察,看被測(cè)代碼的結(jié)果是否正確。測(cè)試代碼自身會(huì)明白無誤地告訴咱哪條測(cè)試用例失敗了。在JUnit中,咱們一般使用assertTrue或assertEquals來驗(yàn)證。
即時(shí)(Timely)/完整(Thorough)
按TDD的理念, 應(yīng)該在相應(yīng)的業(yè)務(wù)代碼之前定單元測(cè)試。這一點(diǎn)上,大家可以自己掌握是否采用TDD的開發(fā)理念。不過,這個(gè)的理念是,即時(shí)地寫單元代碼,即便是很小的代碼也是這樣。 如果你不用 TDD,這一條指的是單元測(cè)試要達(dá)到下面的“完整”標(biāo)準(zhǔn):
- 覆蓋所有基本路徑 (Happy Path)
- 邊界條件
- 安全問題
- 覆蓋所有可能的功能性用例,而不只是應(yīng)付 100% 代碼覆蓋率的要求
遵循FIRST原則,單元測(cè)試質(zhì)量會(huì)提升很多。不過,也不是說,單單遵循這個(gè)FIRST原則后,就包治百病了,畢竟還有其它的一些因素影響著單元測(cè)試的質(zhì)量?;贔IRST原則后, 我們可以有一個(gè)良好的基礎(chǔ)來構(gòu)建整體軟件系統(tǒng)。
想學(xué)習(xí)卻無從下手,該如何學(xué)習(xí)?
這里我準(zhǔn)備了對(duì)應(yīng)上面的每個(gè)知識(shí)點(diǎn)的學(xué)習(xí)資料、可以自學(xué)神器,已經(jīng)項(xiàng)目練手。
最后送上一句話:
世界的模樣取決于你凝視它的目光,自己的價(jià)值取決于你的追求和心態(tài),一切美好的愿望,不在等待中擁有,而是在奮斗中爭取。
如果我的博客對(duì)你有幫助、如果你喜歡我的文章內(nèi)容,請(qǐng) “點(diǎn)贊” “評(píng)論” “收藏” 一鍵三連哦!文章來源:http://www.zghlxwxcb.cn/news/detail-491615.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-491615.html
到了這里,關(guān)于軟件測(cè)試與打螺絲的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!