最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

單元測試到底是什么?應(yīng)該怎么做?

2021-12-01 15:24 作者:黑馬測試  | 我要投稿


本篇轉(zhuǎn)載自黑馬測試高贊知乎文章:https://www.zhihu.com/question/28729261/answer/2009501611

我是java程序員出身,后來因為工作原因轉(zhuǎn)到到了測試開發(fā)崗位。測試開發(fā)工作很多年后,現(xiàn)在我在黑馬程序員軟件測試學(xué)科擔(dān)任課程研究員兼黑馬測試開發(fā)課程主講老師。針對題主的兩個問題,我還有些發(fā)言權(quán),特來回復(fù)下:

1、什么是單元測試
2、該怎么做單元測試

一、什么是單元測試?

單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。至于“單元”的大小或范圍,并沒有一個明確的標準,“單元”可以是一個函數(shù)、方法、類、功能模塊或者子系統(tǒng)。

單元測試通常和白盒測試聯(lián)系到一起,如果單從概念上來講兩者是有區(qū)別的,不過我們通常所說的“單元測試”和“白盒測試”都認為是和代碼有關(guān)系的,所以在某些語境下也通常認為這兩者是同一個東西。還有一種理解方式,單元測試和白盒測試就是對開發(fā)人員所編寫的代碼進行測試

提示:概念這個東西大概理解是什么意思即可~


二、單元測試誰來做?

想一想:前面我們介紹了,單元測試簡單理解就是對開發(fā)人員所編寫的代碼進行測試,既然和代碼相關(guān)我們第一感覺那應(yīng)該是“開發(fā)人員來做”;再一看單元測試包含“測試”兩個字,那么“測試人員來做”也應(yīng)該是合理的吧。

單元測試一般是有開發(fā)人員或測試人員來做。誰來做并沒有一個絕對的標準,要根據(jù)公司的實際情況來決定。接下來我們分析一下開發(fā)人員或測試人員做單元測試的優(yōu)缺點:

開發(fā)人員做單元測試:

  • 優(yōu)點:開發(fā)人員對代碼最熟悉,而且開發(fā)人員編程技能相對比較強,所以開發(fā)人員自己寫單元測試效率上和覆蓋率上都比較高

  • 缺點:開發(fā)人員平時寫業(yè)務(wù)代碼就要花費很多時間,有時候確實沒有時間寫單元測試;而且大部分開發(fā)人員沒有太好的測試思想,單元測試可能只是寫個最簡單的用例就完了;自己寫的代碼自己測,往往都是不靠譜!

測試人員做單元測試:

  • 優(yōu)點:測試人員有比較系統(tǒng)的測試思想,可以更好地保證用例的覆蓋。而且通過寫單測測試能更好地了解具體代碼結(jié)構(gòu)、流程,對于后續(xù)的業(yè)務(wù)測試也非常有利。

  • 缺點:測試人員的編程技能相對比較弱,如果不同編程是無法開展單元測試的。并且測試人員對代碼沒有開發(fā)人員熟悉,效率會比較低。

三、單元測試怎么做?

單元測試的實現(xiàn)方式包括:人工靜態(tài)檢查、動態(tài)執(zhí)行跟蹤

  • 人工靜態(tài)檢查:就是通常所說的“代碼走讀”,主要是保證代碼邏輯的正確性

  • 動態(tài)執(zhí)行跟蹤:就是把程序代碼運行起來,檢查實際的運行結(jié)果和預(yù)期結(jié)果是否一致

人工靜態(tài)檢查

人工靜態(tài)檢查包含的主要內(nèi)容:

  • 檢查算法的邏輯正確性

  • 模塊接口的正確性檢查

  • 輸入?yún)?shù)有沒有作正確性檢查

  • 調(diào)用其他方法接口的正確性

  • 異常錯誤處理

  • 保證表達式、SQL語句的正確性

  • 檢查常量或全局變量使用的正確性

  • 程序風(fēng)格的一致性、規(guī)范性

  • 檢查代碼注釋是否完整

動態(tài)執(zhí)行跟蹤

動態(tài)執(zhí)行跟蹤需要編寫測試腳本調(diào)用業(yè)務(wù)代碼進行測試,為了更好的管理維護測試腳本,一般會采用單元測試框架來管理,不同的語言有不同的單元測試框架:

  • Java:JUnit、TestNG

  • Python:UintTest、pyTest

單元測試的一個重要的衡量標準就是代碼覆蓋率,盡量做到代碼的全覆蓋。常見單元測試覆蓋標準:

  • 語句覆蓋

  • 分支覆蓋

  • 條件覆蓋

  • 分支-條件覆蓋

  • 條件組合覆蓋

  • 路徑覆蓋

入門示例:針對開發(fā)人員編寫的實現(xiàn)計算操作的方法進行單元測試

# 開發(fā)人員編寫的業(yè)務(wù)代碼 class CalUtil: ? ?"""計算器""" ? ?@staticmethod ? ?def add(x, y): ? ? ? ?"""加法""" ? ? ? ?return x + y ? ?@staticmethod ? ?def sub(x, y): ? ? ? ?"""減法""" ? ? ? ?return x - y ? ?@staticmethod ? ?def mul(x, y): ? ? ? ?"""乘法""" ? ? ? ?return x * y ? ?@staticmethod ? ?def div(x, y): ? ? ? ?"""除法""" ? ? ? ?return x / y


# 單元測試腳本import unittest from test_ut.cal import CalUtil class TestCal(unittest.TestCase): ? ?def test_add_01(self): ? ? ? ?# 測試數(shù)據(jù) ? ? ? ?x = 1 ? ? ? ?y = 2 ? ? ? ?expect = 3 ? ? ? ?# 調(diào)用被測方法 ? ? ? ?result = CalUtil.add(x, y) ? ? ? ?print(f"result={result}") ? ? ? ?# 斷言 ? ? ? ?self.assertEqual(expect, result) ? ?def test_add_02(self): ? ? ? ?# 測試數(shù)據(jù) ? ? ? ?x = 1 ? ? ? ?y = -1 ? ? ? ?expect = 0 ? ? ? ?# 調(diào)用被測方法 ? ? ? ?result = CalUtil.add(x, y) ? ? ? ?print(f"result={result}") ? ? ? ?# 斷言 ? ? ? ?self.assertEqual(expect, result) ? ?# ...

單元測試基本等同于白盒測試,所以若想對于單元測試有更深入的了解,可以看下黑馬測試《白黑測試用例設(shè)計》這個視頻教程,請狠狠點擊下方鏈接( 有百度網(wǎng)盤和b站視頻鏈接 ):

《白盒測試用例設(shè)計免費下載》bbs.itheima.com/thread-494591-1-1.html?zhihuxhw


敲字不易,如果此文章對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。

若你是對測試不太了解的測試小萌新,有太多太多對測試的疑惑(前途、薪資、技術(shù)含量、男生是否可以干.....),強烈推薦你觀看《測試小白必看:學(xué)習(xí)軟件測試必問的100個問題,從此貼開始》,相信能掃除掉你心目中90%以上的常見問題

《軟件測試100個常見問題》:http://bbs.itheima.com/thread-507947-1-1.html


最后,為方便大家自學(xué)軟件測試,特意給大家準備了一份13G的超實用干貨學(xué)習(xí)資源,涉及的內(nèi)容非常全面。

包括軟件學(xué)習(xí)路線圖,黑馬50多天的上課視頻、16個突擊實戰(zhàn)項目,80余個軟件測試用軟件,37份測試文檔,70個軟件測試相關(guān)問題,40篇測試經(jīng)驗級文章,上千份測試真題分享,還有2020軟件測試面試寶典,還有軟件測試求職的各類精選簡歷,希望對大家有所幫助…..

《2021軟件測試學(xué)習(xí)路線圖,內(nèi)附視頻教程+自學(xué)路線+工具+面試篇》:bbs.itheima.com/thread-405757-1-1.html? ??


單元測試到底是什么?應(yīng)該怎么做?的評論 (共 條)

分享到微博請遵守國家法律
鄂托克前旗| 贡嘎县| 措美县| 丹东市| 调兵山市| 商水县| 湖口县| 如东县| 麻阳| 沐川县| 星子县| 迁安市| 香格里拉县| 曲麻莱县| 钟山县| 嘉善县| 南木林县| 女性| 涡阳县| 阜新市| 连江县| 乌拉特后旗| 定日县| 东宁县| 邯郸市| 深州市| 新建县| 阳新县| 咸阳市| 区。| 辉县市| 普陀区| 长宁区| 海口市| 赞皇县| 铁力市| 平遥县| 通渭县| 博客| 海城市| 鸡东县|