国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

單元測試第二彈——單元測試與單元測試框架

開發 開發工具
今天主要介紹軟件測試的四個階段使用的測試方法以及單元測試框架。

一、黑盒測試與白盒測試

在***彈中(《單元測試***彈——從軟件開發生命周期談單元測試》)我們介紹過,軟件的測試包含單元測試、集成測試、系統測試和回歸測試四個階段。那么,這里我們先來看下各個階段都使用怎樣的測試方法。

軟件測試,從測試方法上來區分可以分為黑盒測試、白盒測試和灰盒測試。

軟件測試

1. 黑盒測試

黑盒測試,也稱為功能測試。測試者不了解程序的內部情況,不需具備應用程序的代碼、內部結構和編程語言的專門知識。只知道程序的輸入、輸出和系統的功能,這是從用戶的角度針對軟件界面、功能及外部結構進行測試,而不考慮程序內部邏輯結構。測試案例是依應用系統應該做的功能,照規范、規格或要求等設計。測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。 此測試方法可適合大部分的軟件測試,如集成測試以及系統測試。

黑盒測試主要是為了發現以下幾類錯誤:

  • 是否有不正確或遺漏的功能?
  • 在接口上,輸入是否能正確的接受?能否輸出正確的結果?
  • 是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?
  • 性能上是否能夠滿足要求?
  • 是否有初始化或終止性錯誤?

2. 白盒測試

白盒測試又稱透明盒測試、結構測試等。測試應用程序的內部結構或運作,而不是測試應用程序的功能(即黑盒測試)。在白盒測試時,以編程語言的角度來設計測試案例。測試者輸入數據驗證數據流在程序中的流動路徑,并確定適當的輸出,類似測試電路中的節點。測試者了解待測試程序的內部結構、算法等信息,這是從程序設計者的角度對程序進行的測試。 白盒測試可以應用于單元測試、集成測試和系統的軟件測試流程。

白盒測試主要是想對程序模塊進行如下檢查:

  • 對程序模塊的所有獨立的執行路徑至少測試一遍。
  • 對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
  • 在循環的邊界和運行的界限內執行循環體。
  • 測試內部數據結構的有效性,等等。

3. 灰盒測試

灰盒測試,是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,常常是通過一些表征性的現象、事件、標志來判斷內部的運行狀態。

4. 對代碼做白盒測試

上面介紹了軟件測試中的黑盒、白盒和灰盒測試。白盒測試被廣泛的使用在單元測試階段。

這里我們先來分析下,我們要進行單元測試,需要做哪些事情?因為單元測試的主要手段是白盒測試,白盒測試的測試方法是:測試者輸入數據驗證數據流在程序中的流動路徑,并確定適當的輸出。那么整個測試流程大概需要包含以下幾個步驟:

  • 初始化測試環境、準備測試數據。
  • 調用需要被測試的單元。
  • 收集結果,并與期望值比較。
  • 測試數據清理。

以上四個步驟在每個單元在被測試的時候都需要被執行。舉個例子,我們有一個除法運算的方法,我們要對他做單元測試。

  1. public class Calculator{ 
  2.     public float divide(float divisor,float dividend){ 
  3.         return divisor/dividend; 
  4.     } 

我們要在程序中驗證上面這個方法的正確性,一般會寫以下代碼來測試他:

  1. public class CalculatorTest{ 
  2.     public static void main(String [] args){ 
  3.         Calculator calculator = new Calculator(); 
  4.         float result = calculator. divide(10.0,2.0); 
  5.         if(result == 5.0){ 
  6.             System.out.println("divide test ok"); 
  7.         }else{ 
  8.             System.out.println("divide test failed"); 
  9.         } 
  10.     } 

這只是對該方法測試的***個測試,如果我想測試這個方法在被除數是0的情況下會怎么樣,那么我就要再寫一個CalculatorTest2,然后重寫寫一個main方法,再重新定義一個Calculator對象,然后在調用divide方法的時候把第二個參數的值傳為0。

其實上面的測試是存在很大問題的,因為在內存中并無法精確的存儲浮點數,當我們把兩個浮點數相除的時候結果并不一定可以精確的存儲下來,而我們的逾期結果卻是一個精確值,這樣的比較可能會不相等的。但是這樣的情況需要多個case才有可能被發現。

所以,我們在測試一個類中的一個方法的時候,可能要定義大量的類,然后需要分別執行,并且通過看控制臺的輸出才能確認結果。

這里,請先記住這些問題,因為,接下來我們要介紹的測試框架會幫我們解決這些問題的。

二、單元測試框架

通常,在沒有特定框架支持下,我們在對一個方法進行單元測試的時候,無外乎是使用分支判斷、異常處理、流程控制等來控制代碼的執行,通過程序輸出來表示方法的執行成功和失敗。這樣存在的***問題就是我們每執行完一個單測之后,都要去控制臺看輸出才知道單元測試有沒有成功,這明顯是不合理的,因為單元測試是需要自動化執行的,程序沒辦法幫我們檢查輸出是否正確的。

單元測試框架就解決了這個問題,一旦使用了框架,加入單元測試相對來說會簡單許多。通常,Java中常用的單元測試框架一般包含三個功能:測試工具、測試套件、測試運行器。

1. 測試工具

測試工具是一整套固定的工具用于基線測試。測試工具的目的是為了確保測試能夠在共享且固定的環境中運行,因此保證測試結果的可重復性。一般負責初始化測試環境、準備測試數據和測試數據清理。

2. 測試套件

測試套件意味捆綁幾個測試案例并且同時運行。

3. 測試運行器

用于執行測試案例。一般負責調用需要被測試的單元、收集結果、并與期望值比較。

除了以上這些功能之外,針對不同的功能,一般還會提供很多API和語法支持。

下一彈會重點介紹如何使用JUnit進行單元測試—《單元測試第三彈——使用JUnit進行單元測試》

【本文是51CTO專欄作者Hollis的原創文章,轉載聯系作者本人獲取授權】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2017-01-16 12:12:29

單元測試JUnit

2017-01-14 23:26:17

單元測試JUnit測試

2017-03-23 16:02:10

Mock技術單元測試

2022-05-12 09:37:03

測試JUnit開發

2020-08-18 08:10:02

單元測試Java

2024-10-16 16:09:32

2009-09-01 10:20:06

protected方法單元測試

2023-07-26 08:58:45

Golang單元測試

2011-07-04 18:16:42

單元測試

2020-05-07 17:30:49

開發iOS技術

2021-05-05 11:38:40

TestNGPowerMock單元測試

2011-05-16 16:52:09

單元測試徹底測試

2009-08-19 09:00:48

單元測試框架自動化測試

2017-02-21 10:30:17

Android單元測試研究與實踐

2016-09-21 15:35:45

Javascript單元測試

2022-08-02 08:07:24

單元測試代碼重構

2009-09-29 16:21:31

Hibernate單元

2022-04-08 09:01:56

腳本Go應用單元

2022-02-14 22:22:30

單元測試Junit5

2017-04-07 13:45:02

PHP單元測試數據庫測試
點贊
收藏

51CTO技術棧公眾號

久久综合欧美| 亚洲精品视频在线观看免费| 26uuu另类亚洲欧美日本老年| 欧美精品久久久久久久久久丰满| 免费一级欧美片在线观看| 国产91精品高潮白浆喷水| 精品日韩av| 午夜视频在线观看一区二区三区| 日韩 欧美 视频| 91久久黄色| 日韩av第一页| 美女色狠狠久久| 欧美丰满嫩嫩电影| 国产一级黄色电影| 99久久国产综合精品女不卡| 欧美另类一区| 欧美视频官网| 国产精品久久久久久久午夜| 国产成人免费av一区二区午夜 | 国产精品一区二区三区网站| 国产欧美在线一区二区| 国产精品密蕾丝视频下载| www.亚洲男人天堂| 成人欧美大片| 亚洲国产日韩欧美在线图片| 五月香视频在线观看| 欧美日韩亚洲一区二区| 欧美18一12sex性处hd| 国产精品一色哟哟| 国产综合久久久久久久久久久久| 国产精品一区二区久久精品| 78m国产成人精品视频| 国产精品一区二| 国产麻豆精品久久| 久久99久国产精品黄毛片入口| 黑人精品一区| 日韩精品中文字幕在线播放| 青草青在线视频| 8v天堂国产在线一区二区| 国产专区在线| 在线观看免费亚洲| 成人高清免费在线播放| 在线一区二区三区四区五区 | 91福利视频在线观看| 秋霞影院一区| 久久久久久久一区二区| 欧美一级三级| 久久免费视频这里只有精品| 日日夜夜天天综合| 91看片就是不一样| 国产剧情在线观看一区二区| 欧洲高清一区二区| 美女国产一区| 永久免费精品视频网站| 美国三级日本三级久久99| 久久久国产精品x99av| 日韩精品一区国产| 911精品产国品一二三产区| 丝袜足控免费网站xx网站| 视频一区视频二区中文| 亚洲激情第一页| 青青草在线播放| 国产精品久久看| 校园春色影音先锋| 91成人免费在线| 四虎影视成人| 日韩在线视频网站| 久久久免费毛片| 91嫩草在线视频| 视频一区在线视频| 黄色一级视频片| 亚洲精品高清在线观看| 久草福利在线视频| 亚洲精品成人免费| 国精品产品一区| 视频免费裸体网站| 青青草国产精品亚洲专区无| 欧美v日韩v国产v| 波多野结衣中文字幕一区| 有码av在线| 亚洲综合三区| 免费看黄在线看| 亚洲三级在线免费观看| 精品日韩欧美在线| 国产91在线免费| 亚洲成人av中文| 成人黄色网址| 久久天堂电影网| 久久在线免费| 亚洲精品久久区二区三区蜜桃臀 | 亚洲色图欧洲色图| av在线免费一区| 日韩精品视频在线| 欧美三级自拍| 日韩少妇中文字幕| 国产精品久久久久久久久动漫| 在线观看免费黄视频| 日韩中文在线不卡| 成人激情免费视频| 国产av熟女一区二区三区| 亚洲不卡一区二区三区| 奇米777日韩| 91亚洲永久免费精品| 粉嫩欧美一区二区三区高清影视 | 欧美日韩国产高清一区二区| 亚洲成av在线| 91久久国产综合久久蜜月精品| 成人午夜免费视频| www.黄色网址.com| 欧美一区二区三区公司| 欧美不卡在线观看| 26uuu国产在线精品一区二区| 一区二区三区www| 午夜欧美巨大性欧美巨大| 亚洲欧美制服综合另类| 亚洲精品一区二区妖精| 人人妻人人添人人爽欧美一区| 日韩一区二区三区视频在线观看 | 国产传媒欧美日韩成人| 欧美hdxxxx| 91视频最新入口| 91精品国产一区二区| 中文在线资源| 亚洲一区二区在线| 91浏览器在线视频| 久草在线资源福利站| 国产精品国产精品国产专区蜜臀ah| 国产亚洲欧洲一区高清在线观看| 国产不卡人人| 国产私拍一区| 精品magnet| 少妇精品久久久一区二区三区| 激情六月丁香婷婷| 亚洲视频在线观看| 三级一区在线视频先锋| 深夜视频在线免费| 日韩av成人在线| 日韩毛片高清在线播放| 亚洲一区二区电影| 亚洲中文字幕无码专区| 亚洲奶大毛多的老太婆| 男女av一区三区二区色多| 中文字幕中文字幕一区| 亚洲夜夜综合| 国产伦理一区二区三区| 一本色道亚洲精品aⅴ| 日韩在线观看电影完整版高清免费悬疑悬疑| 国产aaaaa毛片| 久久久久一本一区二区青青蜜月| 91在线精品一区二区| 国产精品99久久久久久董美香 | a级片在线免费观看| 国产乱码精品一区二区三区日韩精品 | 欧美国产日本在线| 99久久久国产精品免费蜜臀| 高清不卡av| 无码人妻精品一区二区蜜桃百度| 欧美va亚洲va| 韩国精品在线观看| 高清视频在线观看三级| 亚洲一二三区精品| 精品欧美一区二区久久| 日韩电影免费在线看| 欧美人与禽猛交乱配| 亚洲视频电影| 精品视频久久久久久| 成人毛片老司机大片| 麻豆精品在线| 2019中文字幕视频| 国产欧美最新羞羞视频在线观看| 亚洲国产欧美日韩另类综合| 97精品视频| 男人天堂久久久| 亚洲欧美国产一区二区| 国产视频精品一区二区三区| 成人免费毛片aaaaa**| 一区二区日韩| h网站在线播放| 成人区精品一区二区| 欧美哺乳videos| 另类小说欧美激情| 日韩精品第二页| 国产福利电影网| 成人毛片网站| 日韩av网址在线观看| 久久天天做天天爱综合色| 国产精品羞羞答答在线观看 | 伊人中文在线| 久久久综合亚洲91久久98| 国产视频精品自拍| 久久综合999| 99精品电影| 在线能看的av网址| 999www成人| 国产精品伊人日日| 色视频www在线播放国产成人| 亚洲精品写真福利| 日韩中文字幕1| 91嫩草精品| 黄页视频在线播放|