成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細講解單元測試的內容

開發 測試
本文主要介紹的是單元測試的內容,單元測試是軟件開發過程中重要的質量保證活動,單元測試的質量將很大程度上影響軟件產品的最終質量。希望對你有幫助。

單元測試由一組獨立的測試構成,每個測試針對軟件中的一個單獨的程序單元。單元測試并非檢查程序單元之間是否能夠合作良好,而是檢查單個程序單元行為是否正確。

在單元測試時,測試人員根據詳細設計說明書和源程序清單,了解到該模塊的I/O條件和模塊的邏輯結構,主要采用白盒測試的測試用例,輔之以黑盒測試的測試用例,使之對任何合理和不合理的輸入都要能鑒別和響應。這就要求對程序所有的局部和全局的數據結構、外部接口和程序代碼的關鍵部分進行桌面檢查和代碼審查。

在單元測試中進行的測試工作主要在5個方面對被測模塊進行檢查:

1. 模塊接口測試

在單元測試開始時,應該對通過所有被測模塊的數據流進行測試。如果數據不能正常地輸入及輸出,那么其他的全部測試都說明不了問題。Myers在關于軟件測試的書中為接口測試提出了一個檢查表:

  • 模塊輸入參數的數目是否與模塊形式參數數目相同。
  • 模塊各輸入的參數屬性與對應的形參屬性是否一致。
  • 模塊各輸入的參數類型與對應的形參類型是否一致。
  • 傳到被調用模塊的實參的數目是否與被調用模塊形參的數目相同。
  • 傳到被調用模塊的實參的屬性是否與被調用模塊形參的屬性相同。
  • 傳到被調用模塊的實參的類型是否與被調用模塊形參的類型相同。
  • 引用內部函數時,實參的次序和數目是否正確。
  • 是否引用了與當前入口無關的參數。
  • 用于輸入的變量有沒有改變。
  • 在經過不同模塊時,全局變量的定義是否一致。
  • 限制條件是否以形參的形式傳遞。
  • 使用外部資源時,是否檢查可用性并及時釋放資源,如內存、文件、硬盤、端口等。

當模塊通過外部設備進行輸入/輸出操作時,必須擴展接口測試,附加如下的測試項目:

  • 文件的屬性是否正確。
  • Open與Close語句是否正確。
  • 規定的格式是否與I/O語句相符。
  • 緩沖區的大小與記錄的大小是否相配合。
  • 在使用文件前,文件是否打開。
  • 文件結束的條件是否安排好了。
  • I/O錯誤是否檢查并做了處理。
  • 在輸出信息中是否有文字錯誤。

2. 局部數據結構測試

模塊的局部數據結構是最常見的錯誤來源,應設計測試用例以檢查以下各種錯誤:

  • 不正確或不一致的數據類型說明。
  • 使用尚未賦值或尚未初始化的變量。
  • 錯誤的初始值或錯誤的默認值。
  • 變量名拼寫錯或書寫錯—— 使用了外部變量或函數。
  • 不一致的數據類型。
  • 全局數據對模塊的影響。
  • 數組越界。
  • 非法指針。

3. 路徑測試

檢查由于計算錯誤、判定錯誤、控制流錯誤導致的程序錯誤。由于在測試時不可能做到窮舉測試,所以在單元測試時要根據“白盒”測試和“黑盒”測試用例設計方法設計測試用例,對模塊中重要的執行路徑進行測試。重要的執行路徑指那些處在完成單元功能的算法、控制、數據處理等重要位置的執行路徑,也指由于控制較復雜而易錯的路徑,有選擇地對執行路徑進行測試是一項重要的任務。應當設計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導致的錯誤,對基本執行路徑和循環進行測試可發現大量的路徑錯誤。

在路徑測試中,要檢查的錯誤有:死代碼,錯誤的計算優先級,算法錯誤,混用不同類的操作,初始化不正確,精度錯誤—— 比較運算錯誤、賦值錯誤,表達式的不正確符號—— >、>=;=、==、!=,循環變量的使用錯誤—— 錯誤賦值以及其他錯誤等。

比較操作和控制流向緊密相關,測試用例設計需要注意發現比較操作的錯誤:

  • 不同數據類型的比較。
  • 不正確的邏輯運算符或優先次序。
  • 因浮點運算精度問題而造成的兩值比較不等。
  • 關系表達式中不正確的變量和比較符。
  • “差 1 錯”,即不正常的或不存在的循環中的條件。
  • 當遇到發散的循環時無法跳出循環。
  • 當遇到發散的迭代時不能終止循環。
  • 錯誤的修改循環變量。

4. 錯誤處理測試

錯誤處理路徑是可能引發錯誤處理的路徑及進行錯誤處理的路徑,錯誤出現時錯誤處理程序重新安排執行路線,或通知用戶處理,或干脆停止執行使程序進入一種安全等待狀態。測試人員應意識到,每一行程序代碼都可能執行到,不能自己認為錯誤發生的概率很小而不去進行測試。一般軟件錯誤處理測試應考慮下面幾種可能的錯誤:

  • 出錯的描述是否難以理解,是否能夠對錯誤定位。
  • 顯示的錯誤與實際的錯誤是否相符;
  • 對錯誤條件的處理正確與否;
  • 在對錯誤進行處理之前,錯誤條件是否已經引起系統的干預等。

在進行錯誤處理測試時,要檢查如下內容:

  • 在資源使用前后或其他模塊使用前后,程序是否進行錯誤出現檢查。
  • 出現錯誤后,是否可以進行錯誤處理,如引發錯誤、通知用戶、進行記錄。
  • 在系統干預前,錯誤處理是否有效,報告和記錄的錯誤是否真實詳細。

5. 邊界測試

邊界測試是單元測試中最后的任務。軟件常常在邊界上出錯,例如,在一個程序段中有一個n次循環,當到達第n次循環時就可能會出錯;或者在一個有n個元素的數組中,第n個元素時是很容易出錯的。因此,要特別注意數據流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試。

此外,如果對模塊性能有要求的話,還要專門進行關鍵路徑測試,以確定最壞情況下和平均意義下影響運行時間的因素。下面是邊界測試的具體要檢查的內容:

  • 普通合法數據是否正確處理。
  • 普通非法數據是否正確處理。
  • 邊界內最接近邊界的(合法)數據是否正確處理。
  • 邊界外最接近邊界的(非法)數據是否正確處理等。
  • 在n次循環的第0次、第1次、第n次是否有錯誤。
  • 運算或判斷中取最大最小值時是否有錯誤;
  • 數據流、控制流中剛好等于、大于、小于確定的比較值時是否出現錯誤。

為了使單元測試能充分細致地展開,應在實施單元測試中遵守下述要求:

1)語句覆蓋達到100%。

語句覆蓋指被測單元中每條可執行語句都被測試用例所覆蓋。語句覆蓋是強度最低的覆蓋要求,要考慮語句覆蓋的意義,只要想象一下用一段從沒執行過的程序控制龐大的飛行器升上天空,然后設法使它精確入軌,這種輕率簡直就是荒唐。實際測試中,不一定能做到每條語句都執行到。第一,存在“死碼”,即由于程序設計錯誤在任何情況下都不可能執行到的代碼。第二,不是“死碼”,但是由于要求的測試輸入及條件非常難達到或單元測試的條件所限,使得代碼沒有得到運行。因此,在可執行語句未得到執行時,要深入程序作詳細的分析。如果是屬于以上兩種情況,則可以認為完成了覆蓋,但是對于后者,如果可能一定要盡量測試到,如果以上兩者都不是,則是因為測試用例設計不充分,需要再設計測試用例。

2)分支覆蓋達到100%。

分支覆蓋指分支語句取真值和取假值各一次,分支語句是程序控制流的重要處理語句,在不同流向上測試可以驗證這些控制流向的正確性。分支覆蓋使這些分支產生的輸出都得到驗證,提高測試的充分性。

3)覆蓋錯誤處理路徑。

4)單元的軟件特性覆蓋。

軟件的特性包括功能、性能、屬性、設計約束、狀態數目、分支的行數等。

5)對試用額定數據值、奇異數據值和邊界值的計算進行檢驗,用假想的數據類型和數據值運行,測試排斥不規則輸入的能力。

單元測試通常是由編寫程序的人自己完成的,但是項目負責人應當關心測試的結果。所有的測試用例和測試結果都是模塊開發的重要資料,需妥善保存。

【編輯推薦】

  1. 軟件測試理論:目的、周期、流程
  2. 詳談軟件測試中的動態測試
  3. 淺談軟件測試嵌入式單元測試技能
  4. 軟件測試中排錯的基本方法
  5. 軟件測試接口測試的測試用例類型
責任編輯:于鐵 來源: 互聯網
相關推薦

2011-07-04 18:16:42

單元測試

2017-01-14 23:42:49

單元測試框架軟件測試

2023-07-26 08:58:45

Golang單元測試

2011-05-16 16:52:09

單元測試徹底測試

2017-01-14 23:26:17

單元測試JUnit測試

2017-01-16 12:12:29

單元測試JUnit

2022-05-12 09:37:03

測試JUnit開發

2011-06-14 15:56:42

單元測試

2020-08-18 08:10:02

單元測試Java

2024-10-16 16:09:32

2020-05-07 17:30:49

開發iOS技術

2021-05-05 11:38:40

TestNGPowerMock單元測試

2017-03-23 16:02:10

Mock技術單元測試

2012-05-21 09:41:54

XcodeiOS單元測試

2009-09-29 16:21:31

Hibernate單元

2022-02-14 22:22:30

單元測試Junit5

2016-09-21 15:35:45

Javascript單元測試

2022-08-02 08:07:24

單元測試代碼重構

2022-04-08 09:01:56

腳本Go應用單元

2017-02-23 15:59:53

測試MockSetup
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费看啪啪网站 | 久久99精品久久久久久噜噜 | 亚洲视频在线看 | 国产精产国品一二三产区视频 | 免费高清av| 国产精品自拍视频网站 | 日韩一区二区免费视频 | 久久99精品久久久水蜜桃 | 美女精品一区 | 久久国产精品无码网站 | 91婷婷韩国欧美一区二区 | 天天看天天摸天天操 | 亚洲精品电影网在线观看 | 久久精品男人的天堂 | 91成人在线 | 欧美亚洲高清 | a视频在线| 日韩精品在线观看视频 | 日本精品一区二区三区视频 | 在线免费观看a级片 | 欧美日韩在线观看视频 | av天天干 | 中文字幕在线观看第一页 | 91aiai| 亚洲国产精品99久久久久久久久 | 91精品国产综合久久婷婷香蕉 | 国产美女自拍视频 | 国产毛片av| 亚洲国产欧美日韩 | 国产一区二区三区在线 | 日韩精品一区二区在线观看 | 国产精品一区在线观看 | 极品粉嫩国产48尤物在线播放 | 国产精品成人一区二区三区 | av日韩一区| 亚洲精品乱码8久久久久久日本 | 国产一区二区三区 | 日日干日日| 女同久久 | 日韩中文字幕 | 国产特级毛片aaaaaa |