作者 |包丹珠上??匕?a target="_blank">產(chǎn)品總監(jiān)
版塊 |鑒源論壇 · 觀模
社群 |添加微信號“TICPShanghai”加入“上海控安51fusa安全社區(qū)”
“軟件單元測試真的有必要嗎?(上)”一文中,著重探討了單元測試的重要性及其正面臨的困境,并分享了功能安全標準中羅列的單元測試方法。承接上文,本篇將深入討論單元測試過程中,如何在保質(zhì)保量完成測試任務的同時,縮減時間成本、提高測試效率,并分享目前行業(yè)內(nèi)的實踐經(jīng)驗以及相關自動化測試工具。
04
單元測試可以做,但項目周期催得緊,怎么辦?
然而,在真正實施軟件單元測試時,還需要考慮一個成本問題。
軟件行業(yè)競爭相對比較激烈,在交付為王的時代,軟件發(fā)布的市場Deadline是大家要面臨的一個非生即死的殘酷問題。如何能夠保質(zhì)又保量,即縮減因為引入單元測試而帶來的時間成本呢?
工欲善其事,必先利其器。縮減成本的第一個方法是利用自動化測試工具。目前市面上有可供選擇的自動化單元測試工具,包括開源的和商用的。
開源工具通常是提供針對特定語言的測試框架,單元測試人員使用框架進行測試代碼的編寫。用的較多的開源框架有GoogleTest、Junit等。開源工具由于是基于已有測試框架通過寫代碼的方式進行測試,因此對一般測試人員的編程能力要求相對較高。
商用工具提供可視化的自動化測試工具,不需要大規(guī)模的測試編程,將測試人員的精力專注在測試用例的設計上,而非測試框架的執(zhí)行上,因此對測試人員會更友好。商用工具市場占有率較高的是國外的工具。然而自從2019年以來,這些商業(yè)工具也陸續(xù)出現(xiàn)了國內(nèi)禁售、服務停止續(xù)期的禁令。好在國內(nèi)一些知名高校,在前期有相關的技術積累,目前也出現(xiàn)了為數(shù)不多的國產(chǎn)自動化單元測試工具,比如來源于華東師范大學軟件學院可信實驗室的SmartRocket等,這些工具在自動化執(zhí)行的基礎上,比國外工具更為領先的是提供了自動設計高覆蓋率測試用例的核心功能,可以更大意義上降低測試人員的時間投入等。
在使用自動化測試工具的基礎之上,采用CI(Continuous Integration)持續(xù)集成方式,將單元測試很好地融合進入自動化持續(xù)集成的過程中,也可以進一步縮減時間成本,并且提升軟件上線效率。通過借助Jenkins等持續(xù)集成工具,在模塊代碼提交時,自動觸發(fā)代碼自動化測試崗哨,當測試通過時代碼提交成功,否則提交失敗。自動化測試崗哨除了加入單元測試外,還可以加入像代碼靜態(tài)掃描等自動化Pipeline。軟件持續(xù)集成在行業(yè)內(nèi)有很多的成功案例可以借鑒,是軟件質(zhì)量保證和軟件開發(fā)效率高的一種直觀表現(xiàn)。
05
結語:欲速則不達,耐心做單元測試是程序員的美德。
寫到這里,想必大家對軟件單元測試的重要意義,以及如何進行單元測試實踐有了一定了解。如果您是軟件行業(yè)的從業(yè)者的話,希望本文能夠給您帶來一些新的思考??偨Y一句話,欲速則不達,對于優(yōu)秀的軟件開發(fā)工程師來說,耐心做好單元測試是一項值得養(yǎng)成的基本美德。元宇宙未來的軟件基礎,靠你們鑄就。
審核編輯 黃宇
-
軟件
+關注
關注
69文章
4921瀏覽量
87396 -
單元測試
+關注
關注
0文章
42瀏覽量
3150
發(fā)布評論請先 登錄
相關推薦
評論