日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

走进单元测试:测试需要从哪些方面着手

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 走进单元测试:测试需要从哪些方面着手 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  籠統的來說測試條件無非就是兩個方面:① 正向測試,② 反向測試!

  如果單從這兩個方面來思考,肯定出現丟三落四的情況,也就是說不全面,所以應該在上面兩種情況的基礎上再進行具體劃分,那么只要我們能夠遵循這些條件基本上就能做到全面(如果能做到,大約80%的問題應該都解決了),于是就出現了下面要說的六個方面內容!

  前輩們把這些測試條件總結為:Right – BICEP

  1、Right - 做正確的事,可以說是“正向測試”

  這種測試前期任務是要準備足夠的正確數據(前提是要保證數據的正確性,這個很重要),運行代碼后返回的值或產生的影響是要跟自己的預期是一致的!

  注意:如果準備的數據太大或容易丟失,建議把它放在數據文件中,然后讓單元測試讀取這個文件,這種方法會在下一篇會說到!

  2、B - 邊界條件(Boundary)

  邊界條件是測試里面的重中之重,必須要有足夠的認識和重視!

  而它又被分為七個方面的子條件,下面就讓我們來一一熟悉它!

  ① 一致性(Conformance)

  數據是否符合我規定的格式(也可以說是非法字符吧)!

  案例:比如我傳入的參數文件名需要的格式是:文件名 + 日期(yy-mm-dd) + 擴展名,那么我就要寫一個測試傳入的文件名為 :“sa#$#$#$#”這樣的格式!

  ② 有序性(Ordering)

  這方面主要是對涉及到數組和集合的數據,而且對數據的順序有嚴格要求的函數,需要對它們里面數據的順序進行測試!

  比如:點菜系統菜譜中每道菜的順序,或者去銀行辦理業務的排隊系統等等!

  ③ 范圍,區間性(Range)

  值是否存在于一個最大值和一個最小值之間,主要是對值類型的數據做的測試!

  這里面還有一個重要的測試點是 → 對數組,集合,以及Table,DataSet中的索引值進行測試,比如索引值不能為負,不能超出索引的范圍等等情況!

  比如:一個通過ID來搜索信息的函數,應該對這個ID進行最大值和最小值的測試!

  ④ 引用,耦合性(Reference)

  這方面主要是:代碼是否引用了一些不受本身代碼控制的外部因素(比如:調用第三方接口,調用其它模塊的接口等等)!

  對于這些情況我們是沒有辦法控制的,所以在測試的時候只能模擬,而在模擬時我們會用到“Mole”技術,讓它來幫助我們創建一個模擬環境(下一篇會介紹)!

  比如:有的項目會調用銀行接口,這種情況下只能先創造一個虛擬銀行接口,然后再進行測試!

  ⑤ 存在性(Exist)

  固定的測試,如Null,Empty,非零等等,這些都是必須考慮的!

  ⑥ 基數性(Cardinality)

  對于這個測試說起來還是蠻難理解,這個測試只有在特定的場合下才會去考慮它!

  它遵循一個原則:“0-1-N”!

  ⑦ 時間性(Timer)

  對時間比較有依賴的軟件或系統應該在這個方面著重測試!

  主要考慮:事情是否按時間的順序執行,是否在正確的時間執行,是否出現執行事情延誤了!

  相對時間:網站超時,數據更新超時等等!

  絕對時間:不同的client間的時間是否同步!

  并發問題在時間性測試中比較重要!

  3、I - 反向關聯(Inversion)

  在準備數據或者驗證數據時的一種反向思維,涉及到個人的思維方式問題了!

  比如:有個函數對數據庫進行了操作,但是它沒任何返回值也沒有任何提示,如果你是對正確的數據進行了測試,那么你要怎么知道測試結果跟你的預期一致呢,這里你就應該去查找數據庫,看數據庫里面的數據是否有真的改動,這就是一種反向的思維方式!

  4、C - 交叉檢查(Cross)

  用一種數量檢查另一種數量(需要考慮的情況不是很多)!

  5、E - 強制產生錯誤(Error)

  通過代碼強制產生軟件在運行過程中出現的特殊情況!

  可以參考下面幾種測試方面:內存耗光,磁盤用滿,斷電,正在執行更新數據時出現斷網現象,網絡負載嚴重導致癱瘓,系統時間出現導致和國際時間不一致等等一些情況!

  6、P - 性能特性(Property)

  性能測試工具的使用,沒具體研究過性能測試工具,知道的朋友可以說下你們的經驗!

  進行壓力測試,一點一點的加大數據量,10000條,100000條,1000000條這樣進行壓力測試!

  總結:本人對反向關聯和交叉檢查這兩個測試條件不是很理解,知道的朋友可以留言給我,我會把它補充到文章中去!

  最后:下面是我對測試條件的小小總結,比較簡陋!








====================================分割線================================

最新內容請見作者的GitHub頁:http://qaseven.github.io/

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的走进单元测试:测试需要从哪些方面着手的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。