(九)所見即所得 之 單元測試(5)

三、實(shí)際項(xiàng)目中如何開展單元測試?

1、并不是所有的代碼都要進(jìn)行單元測試,通常只有底層模塊或者核心模塊的測試中才會采用單元測試。

2、你需要確定單元測試框架的選型,這和開發(fā)語言直接相關(guān)。比如,Java 最常用的單元測試框架是 Junit 和 TestNG;C/C++ 最常用的單元測試框架是 CppTest 和 Parasoft C/C++test;框架選型完成后,你還需要對樁代碼框架和 Mock 代碼框架選型,選型的主要依據(jù)是開發(fā)所采用的具體技術(shù)棧。

通常,單元測試框架、樁代碼 /Mock 代碼的選型工作由開發(fā)架構(gòu)師和測試架構(gòu)師共同決定。

3、為了能夠衡量單元測試的代碼覆蓋率,通常你還需要引入計(jì)算代碼覆蓋率的工具。不同的語言會有不同的代碼覆蓋率統(tǒng)計(jì)工具,比如 Java 的 JaCoCo,JavaScript 的 Istanbul。

4、你需要把單元測試執(zhí)行、代碼覆蓋率統(tǒng)計(jì)和持續(xù)集成流水線做集成,以確保每次代碼遞交,都會自動觸發(fā)單元測試,并在單元測試執(zhí)行過程中自動統(tǒng)計(jì)代碼覆蓋率,最后以“單元測試通過率”和“代碼覆蓋率”為標(biāo)準(zhǔn)來決定本次代碼遞交是否能夠被接受。

如果你有開發(fā)背景,那么入門單元測試是比較容易的。但真正在項(xiàng)目中全面推行單元測試時,你會發(fā)現(xiàn)還有一些困難需要克服:

  • 緊密耦合的代碼難以隔離;

  • 隔離后編譯鏈接運(yùn)行困難;

  • 代碼本身的可測試性較差,通常代碼的可測試性和代碼規(guī)模成正比;

  • 無法通過樁代碼直接模擬系統(tǒng)底層函數(shù)的調(diào)用;

  • 代碼覆蓋率越往后越難提高。


總結(jié)

以上5篇詳細(xì)介紹了單元測試的概念,和你重點(diǎn)討論了用例的組成,以及在實(shí)際項(xiàng)目中開展單元測試的方法,你需要注意以下三個問題:

  • 代碼要做到功能邏輯正確,必須做到分類正確并且完備無遺漏,同時每個分類的處理邏輯必須正確;

  • 單元測試是對軟件中的最小可測試單元在與軟件其他部分相隔離的情況下進(jìn)行的代碼級測試;

  • 樁代碼起到了隔離和補(bǔ)齊的作用,使被測代碼能夠獨(dú)立編譯、鏈接,并運(yùn)行。


軟件測試52講---筆記整理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 第三,驅(qū)動代碼,樁代碼和 Mock 代碼 驅(qū)動代碼,樁代碼和 Mock 代碼,是單元測試中最常出現(xiàn)的三個名詞。驅(qū)動...
    繁華似錦Fighting閱讀 1,665評論 16 24
  • 什么是單元測試 單元測試是軟件開發(fā)過程中的一種質(zhì)量保證手段。最初的來源是想模仿對硬件芯片做單元測試那樣,在軟件中也...
    MagicBowen閱讀 22,634評論 0 18
  • 專業(yè)考題類型管理運(yùn)行工作負(fù)責(zé)人一般作業(yè)考題內(nèi)容選項(xiàng)A選項(xiàng)B選項(xiàng)C選項(xiàng)D選項(xiàng)E選項(xiàng)F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,660評論 0 13
  • 一、百變怪 Mockito Mockito可謂是Java世界的百變怪,使用它,可以輕易的復(fù)制出各種類型的對象,并與...
    羅力閱讀 4,155評論 3 18
  • ? 黑盒測試由于看不到代碼內(nèi)部的實(shí)現(xiàn)邏輯,經(jīng)常出現(xiàn)漏測或測試不到位的情況,因?yàn)橛行撛诘膯栴}通過黑盒測試不好復(fù)現(xiàn),...
    小魷魚Gun神閱讀 7,727評論 0 0

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