單元測(cè)試的原則

  • Right. 結(jié)果是否正確.
    • 首先,我們需要知道什么是正確的結(jié)果.
    • 對(duì)于有大量數(shù)據(jù)的測(cè)試,考慮使用單獨(dú)的外部文件來(lái)存儲(chǔ)測(cè)試數(shù)據(jù).
  • Boundary. 主要是CORRECT 原則.
    • Conformance. 一致性.
    • Ordering. 順序性.
      • 有序或無(wú)序的.
      • 一個(gè)很大的數(shù)據(jù)集合中某個(gè)數(shù)據(jù)的位置.
    • Range. 值是否位于合理的最大最小值之間.
    • Reference. 代碼是否引用了不在代碼本身控制范圍之外的外部資源.
    • Existence. 值是否存在.
    • Counting. 基數(shù)性.
      • 是否恰好有足夠的值.
    • Time. 時(shí)間性.
      • 事情的發(fā)生是否有序,是否在正確的時(shí)間.
  • InReverse. 相反性.
    • 當(dāng)原方法插入一條記錄到DB時(shí),可反向用查詢語(yǔ)句來(lái)看結(jié)果.
    • 有些Bug可能原和反方向方法中都出現(xiàn),所以應(yīng)使用不同的原理.
  • Cross.
    • 通常計(jì)算會(huì)有多個(gè)算法,考慮性能或其他因素選擇了一種,可用其它算法來(lái)驗(yàn)證該算法的正確性.
  • Error.
    • 是否能夠強(qiáng)制錯(cuò)誤發(fā)生
  • Performance.
    • 是否能夠滿足性能的要求.
  • A-trip原則.
    • Automatic. 測(cè)試所需的任何條件(網(wǎng)絡(luò),DB),都應(yīng)該成為測(cè)試自動(dòng)化的一部分,如Mock對(duì)象.
      • 測(cè)試必須能夠自己決定是否正確的通過(guò).
    • Thorough.一個(gè)極端是所有代碼行,所有分支,所有異常都測(cè)試.
      • 可行的是僅測(cè)試最可能的情況,如邊界測(cè)試等.
    • Repeatable. 測(cè)試應(yīng)(使用Mock) 來(lái)?隔離其它測(cè)試和周圍的環(huán)境.
      • 能夠多次執(zhí)行,并且得到相同的結(jié)果.
    • Independent. 一個(gè)測(cè)試應(yīng)只專注于一個(gè)函數(shù),或一組函數(shù).
      • 每個(gè)方法和類都有自己的setup和tear down. 來(lái)保證全新的開(kāi)始.
    • Professional. 實(shí)現(xiàn)代碼的規(guī)則,也適合于測(cè)試代碼.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容