大家都是如何實(shí)施單元測(cè)試的呢?
單元測(cè)試已成為IT行業(yè)的重點(diǎn)關(guān)注內(nèi)容。
無(wú)論做開(kāi)發(fā)工作還是做測(cè)試工作,都需要對(duì)自己編寫(xiě)的后端代碼實(shí)施單元測(cè)試。
按測(cè)試方法劃分,測(cè)試主要分為兩大類(lèi):黑盒測(cè)試與白盒測(cè)試。
一、黑盒測(cè)試
通過(guò)運(yùn)行軟件根據(jù)結(jié)果輸出來(lái)分析軟件功能的正常性。

例如:給你一個(gè)登錄功能
1、用戶(hù)輸入用戶(hù)名和密碼,點(diǎn)擊登錄,
2、如果系統(tǒng)登錄成功進(jìn)入系統(tǒng)主界面
3、如果系統(tǒng)登錄失敗,界面提示用戶(hù)名或密碼錯(cuò)誤,這也是我們生活中最常見(jiàn)的案例。

黑盒測(cè)試不需要考慮功能的內(nèi)部邏輯結(jié)果,根據(jù)前后端提供的界面就可以錄入測(cè)試數(shù)據(jù),進(jìn)行登錄,根據(jù)功能測(cè)試用例分析預(yù)期結(jié)果與實(shí)際結(jié)果的正常性,來(lái)判斷功能與需求的一致性。
二、白盒測(cè)試
單元測(cè)試是一種白盒測(cè)試,用戶(hù)在實(shí)施過(guò)程中通過(guò)閱讀或者測(cè)試程序的代碼來(lái)完成工作。
工作原理如下圖所示:

且如今的python語(yǔ)言或java語(yǔ)言都自帶了JUnit框架,Python中的單元測(cè)試框架主要使用Unittest。
上述登錄案例的代碼如下:
1. 通過(guò)鍵盤(pán)錄入用戶(hù)名和密碼 2. 判斷用戶(hù)是否登錄成功
* 如果用戶(hù)名與密碼正確,則用戶(hù)登錄成功,反之,則用戶(hù)登錄失敗
實(shí)現(xiàn)代碼如下:

今天主要來(lái)講解如何使用Java程序編寫(xiě)單元測(cè)試用例。
需求:分享一個(gè)計(jì)算器中的加、減法單元測(cè)試案例。
具體實(shí)現(xiàn)步驟如下:
一、創(chuàng)建一個(gè)類(lèi)。
在java的世界中一切皆對(duì)象,咱們優(yōu)先創(chuàng)建一個(gè)計(jì)算機(jī)類(lèi),代碼如下 圖所示:

二、編寫(xiě)單元測(cè)試用例方法
創(chuàng)建一個(gè)計(jì)算機(jī)測(cè)試類(lèi),實(shí)例化對(duì)象,代碼實(shí)現(xiàn)如下圖所示:

加法案例執(zhí)行結(jié)果如下:

減法案例代碼執(zhí)行過(guò)程:

通過(guò)上述單元測(cè)試案例的設(shè)計(jì),也得出了單元測(cè)試結(jié)果,但大家有沒(méi)有發(fā)現(xiàn)以上單元測(cè)試用例存在缺陷。
也就是說(shuō)我執(zhí)行單個(gè)加法運(yùn)算或者執(zhí)行單個(gè)減法運(yùn)算,需要將前一個(gè)對(duì)象注解才能執(zhí)行,這樣操作起來(lái)非常不方便。
實(shí)際查看結(jié)果好像沒(méi)問(wèn)題,但以上代碼并沒(méi)有實(shí)際結(jié)果與預(yù)期結(jié)果之分,這樣我們無(wú)法分辨單元測(cè)試結(jié)果的正確性。
故我們需要對(duì)以上單元測(cè)試代碼進(jìn)行一步優(yōu)化。
三、程序腳本優(yōu)化
給單元測(cè)試方法添加修飾符@Test與預(yù)期結(jié)果
加法方法優(yōu)化一:

減法方法優(yōu)化二:

三、單元測(cè)試結(jié)果分析
單元左邊三角形批量執(zhí)行用例,最終達(dá)到單元測(cè)試的效果

執(zhí)行結(jié)果如下圖:

總之,測(cè)試用例占據(jù)測(cè)試工作中60%的工作量,大部分在概設(shè)、詳細(xì)設(shè)計(jì)、編碼過(guò)程,測(cè)試人員都投入大量的時(shí)間與成本來(lái)設(shè)計(jì)測(cè)試點(diǎn)和編寫(xiě)測(cè)試用例。
如果不學(xué)會(huì)沉淀一些經(jīng)驗(yàn)和技巧,將會(huì)降低測(cè)試工作的效率,要想快速提升測(cè)試工作效率,學(xué)會(huì)歸納總結(jié)抽取App測(cè)試共性功能是重中之重。