国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何快速做單元測(cè)試?

這篇具有很好參考價(jià)值的文章主要介紹了如何快速做單元測(cè)試?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先寫unit test之前,要確認(rèn)自己的測(cè)試遵循兩個(gè)原則

1、盡量不要干涉原來的代碼。從閱讀代碼的體驗(yàn)來說,不要讓你的測(cè)試(哪怕是一小段if..else...的代碼)出現(xiàn)在你準(zhǔn)備測(cè)試的代碼中。

2、代碼要只是測(cè)試某個(gè)class里面的一個(gè)特定的function。這個(gè)function不能太簡(jiǎn)單,太簡(jiǎn)單就沒有測(cè)試的意義;也不能太復(fù)雜,不應(yīng)該牽涉太多其他的class,如果太復(fù)雜就不應(yīng)該寫unit test,而考慮其他的測(cè)試方法。

(以上兩個(gè)原則其實(shí)大家都知道,但是寫的時(shí)候很多人都沒有嚴(yán)格遵守,所以這里強(qiáng)調(diào)一下)

這里把單元測(cè)試分為了5個(gè)級(jí)別:

Level1:正常流程可用,即一個(gè)函數(shù)在輸入正確的參數(shù)時(shí),會(huì)有正確的輸出。

Level2:異常流程可拋出邏輯異常,即輸入?yún)?shù)有誤時(shí),不能拋出系統(tǒng)異常,而是用自己定義的邏輯異常通知上層調(diào)用代碼其錯(cuò)誤之處。?

Level3:極端情況和邊界數(shù)據(jù)可用,對(duì)輸入?yún)?shù)的邊界情況也要單獨(dú)測(cè)試,確保輸出是正確有效的。

Level4:所有分支、循環(huán)的邏輯走通,不能有任何流程是測(cè)試不到的。

Level5:輸出數(shù)據(jù)的所有字段驗(yàn)證,對(duì)有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的輸出,確保每個(gè)字段都是正確的。

在做項(xiàng)目中,一般只做到Level2,重要系統(tǒng)或者底層服務(wù),要做到Level3或Level4。而很少做到Level5。即便如此,就已經(jīng)實(shí)現(xiàn)了很難被黑盒測(cè)試工程師發(fā)現(xiàn)bug。

除了級(jí)別外,測(cè)試方法也要區(qū)分不同系統(tǒng)的玩法。比如基于WEB的系統(tǒng),就需要確保單元測(cè)試?yán)锟梢阅M發(fā)送請(qǐng)求,這個(gè)一般是WEB框架提供支持的。比如常用的web.py、Flask、Django都有支持。不僅僅可以模擬簡(jiǎn)單的請(qǐng)求,還可以模擬POST、cookie等。另外一般建議單獨(dú)寫個(gè)函數(shù)來模擬登錄過程,這樣系統(tǒng)登錄后行為的測(cè)試就不必反復(fù)模擬登錄了。

單元測(cè)試一大痛苦是構(gòu)造測(cè)試數(shù)據(jù)。我的看法是測(cè)試數(shù)據(jù)應(yīng)該是人造的,而不是隨便從產(chǎn)品環(huán)境dump出來一份。只有人造的數(shù)據(jù)能確保環(huán)境可控,每次運(yùn)行不會(huì)因?yàn)榄h(huán)境改變而頻繁修改testcase。常用玩法是測(cè)試數(shù)據(jù)分為基礎(chǔ)數(shù)據(jù)和附加數(shù)據(jù)兩部分?;A(chǔ)數(shù)據(jù)是所有testcase共享的,比如建立幾個(gè)常用角色的用戶等等。附加數(shù)據(jù)是testcase內(nèi)部自己建立的。這樣每次testcase運(yùn)行時(shí),先清空數(shù)據(jù)庫,導(dǎo)入基礎(chǔ)數(shù)據(jù),導(dǎo)入附加數(shù)據(jù),然后執(zhí)行測(cè)試,驗(yàn)證結(jié)果。

各類程序的函數(shù)可以分為純函數(shù)和副作用函數(shù)。純函數(shù)對(duì)應(yīng)的是數(shù)學(xué)里函數(shù)的概念,輸出和輸入是一一對(duì)應(yīng)的。對(duì)一個(gè)輸入有確定的輸出。比如1+1=2。而副作用函數(shù)則相反,同樣的輸入,在不同時(shí)間和環(huán)境里,可能有不同的輸出。比如任何涉及IO、網(wǎng)絡(luò)、數(shù)據(jù)庫的。副作用函數(shù)的測(cè)試比純函數(shù)麻煩的多,因?yàn)槟惚仨氁暾臉?gòu)造其所依賴的所有環(huán)境,才能夠復(fù)現(xiàn)一個(gè)副作用函數(shù)的行為。也正因?yàn)槿绱?,副作用函?shù)出bug的概率比純函數(shù)高的多。理解這個(gè)概念以后,應(yīng)該盡可能的把程序里的純函數(shù)和副作用函數(shù)進(jìn)行拆解,降低副作用函數(shù)的比例和邏輯復(fù)雜度。還有,副作用函數(shù)是會(huì)傳染的,一個(gè)函數(shù)如果調(diào)用了副作用函數(shù),那么它也會(huì)變成副作用函數(shù)。

【整整200集】超超超詳細(xì)的Python接口自動(dòng)化測(cè)試進(jìn)階教程,真實(shí)模擬企業(yè)項(xiàng)目實(shí)戰(zhàn)!!文章來源地址http://www.zghlxwxcb.cn/news/detail-631472.html

到了這里,關(guān)于如何快速做單元測(cè)試?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 軟件測(cè)試技術(shù)(單元測(cè)試)

    軟件測(cè)試技術(shù)(單元測(cè)試)

    1、JUnit JUnit是一個(gè)Java語言的單元測(cè)試框架,用于編寫和運(yùn)行測(cè)試。它提供了一些注解和斷言方法,可以使測(cè)試代碼更加簡(jiǎn)潔和易于閱讀。使用JUnit進(jìn)行單元測(cè)試,可以提高代碼的質(zhì)量和可維護(hù)性,減少代碼的錯(cuò)誤和缺陷,從而提高整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。 JUnit框架的核心

    2024年02月04日
    瀏覽(22)
  • 【軟件測(cè)試】單元測(cè)試

    單元測(cè)試 (Unit Testing),又稱 單體測(cè)試 、 模塊測(cè)試 ,是最小單位的測(cè)試,其依據(jù)是詳細(xì)設(shè)計(jì)、程序源代碼或編碼標(biāo)準(zhǔn),對(duì)模塊內(nèi)所有重要的控制路徑設(shè)計(jì)測(cè)試用例,以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤,使代碼達(dá)到設(shè)計(jì)要求。 單元測(cè)試是所有的測(cè)試活動(dòng)中最早進(jìn)行的,它能以最低的成

    2024年02月13日
    瀏覽(23)
  • 軟件測(cè)試——單元測(cè)試

    單元測(cè)試是軟件開發(fā)中的一種測(cè)試方法,用于驗(yàn)證軟件中的各個(gè)獨(dú)立單元(通常是函數(shù)、方法或類)是否按照設(shè)計(jì)規(guī)范正常工作。以下是進(jìn)行單元測(cè)試的一般步驟和最佳實(shí)踐: 1. 選擇測(cè)試框架 選擇適合項(xiàng)目的測(cè)試框架,例如: JUnit(Java) PyTest(Python) JUnit(JavaScript) PHP

    2024年02月03日
    瀏覽(23)
  • 軟件測(cè)試之單元測(cè)試詳解

    目錄 前言: 1、什么是單元測(cè)試? 2、什么是好的單元測(cè)試? 3、怎么寫單元測(cè)試? 4、玩轉(zhuǎn)單元測(cè)試 單元測(cè)試是軟件測(cè)試中的一種測(cè)試方法,用于驗(yàn)證代碼中最小可測(cè)試單元的正確性。它主要關(guān)注對(duì)程序的各個(gè)獨(dú)立模塊、函數(shù)或方法進(jìn)行測(cè)試,以確保其按照預(yù)期產(chǎn)生正確的輸

    2024年02月12日
    瀏覽(31)
  • 軟件測(cè)試之【單元測(cè)試、系統(tǒng)測(cè)試、集成測(cè)試】

    目錄 一、單元測(cè)試的概念 二、單元測(cè)試的目的 三、單元的常見錯(cuò)誤 四、如何進(jìn)行單元測(cè)試 五、單元測(cè)試策略 六、系統(tǒng)測(cè)試的概念 七、系統(tǒng)測(cè)試的環(huán)境 八、系統(tǒng)測(cè)試的類型 九、系統(tǒng)測(cè)試的過程 十、集成測(cè)試概念 十一、集成測(cè)試的目的 十二、集成測(cè)試關(guān)注的重點(diǎn) 十三、集

    2023年04月08日
    瀏覽(22)
  • 軟件測(cè)試之單元測(cè)試、系統(tǒng)測(cè)試、集成測(cè)試詳解

    軟件測(cè)試之單元測(cè)試、系統(tǒng)測(cè)試、集成測(cè)試詳解

    ?? 視頻學(xué)習(xí): 文末有免費(fèi)的配套視頻可觀看 ???關(guān)注公眾號(hào)【互聯(lián)網(wǎng)雜貨鋪】,回復(fù) 1?, 免費(fèi)獲取軟件測(cè)試全套資料,資料在手,漲薪更快 單元測(cè)試是對(duì)軟件基本組成單元進(jìn)行的測(cè)試,如函數(shù)或一個(gè)類的方法。當(dāng)然這里的基本單元不僅僅指的是一個(gè)函數(shù)或者方法,有可能

    2024年04月25日
    瀏覽(30)
  • 軟件測(cè)試實(shí)驗(yàn):Junit單元測(cè)試

    軟件測(cè)試實(shí)驗(yàn):Junit單元測(cè)試

    目錄 前言 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)內(nèi)容 實(shí)驗(yàn)要求 實(shí)驗(yàn)過程 題目一 題目一測(cè)試結(jié)果 題目二 題目二實(shí)驗(yàn)結(jié)果 總結(jié) 軟件測(cè)試是軟件開發(fā)過程中不可缺少的一個(gè)環(huán)節(jié),它可以保證軟件的質(zhì)量和功能,發(fā)現(xiàn)并修復(fù)軟件的缺陷和錯(cuò)誤。軟件測(cè)試分為多種類型,其中一種是單元測(cè)試,即對(duì)軟件

    2024年02月02日
    瀏覽(33)
  • 【軟件測(cè)試】單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試有什么區(qū)別?

    【軟件測(cè)試】單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試有什么區(qū)別?

    1、粒度不同 集成測(cè)試bai粒度居中,單元測(cè)試粒度最小,系統(tǒng)du測(cè)試粒度最大。 2、測(cè)試方式不同 集成測(cè)試一般由開發(fā)zhi小組采用白盒加黑盒的方式來測(cè)試,單元測(cè)試一般由開發(fā)小組采用白盒方式來測(cè)試,系統(tǒng)測(cè)試一般由獨(dú)立測(cè)試小組采用黑盒方式來測(cè)試。 3、測(cè)試內(nèi)容不同

    2024年02月09日
    瀏覽(27)
  • 軟件測(cè)試--應(yīng)用JUnit進(jìn)行單元測(cè)試

    軟件測(cè)試--應(yīng)用JUnit進(jìn)行單元測(cè)試

    JUnit是一個(gè)開源的Java編程語言的單元測(cè)試框架,最初由 Erich Gamma 和 Kent Beck 編寫。Junit測(cè)試是一種白盒測(cè)試工具。JUnit是一套框架,繼承TestCase類,就可以用Junit進(jìn)行自動(dòng)測(cè)試了。具有JUnit經(jīng)驗(yàn)對(duì)于應(yīng)用“測(cè)試驅(qū)動(dòng)開發(fā)(TDD)”的程序開發(fā)模型是非常重要的。 JUnit本質(zhì)上是一套框

    2023年04月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包