發(fā)布時(shí)間:2020-07-31
我們經(jīng)常聽(tīng)說(shuō)的是壓力測(cè)試、靜態(tài)分析以及App測(cè)試等,很少聽(tīng)說(shuō)過(guò)自動(dòng)化單元測(cè)試,這個(gè)測(cè)試到底指的是哪個(gè)方面的測(cè)試。自動(dòng)化單元測(cè)試其實(shí)指的就是最小模塊的測(cè)試,它在軟件開(kāi)發(fā)中是最低級(jí)別的測(cè)試,我們下面詳細(xì)的了解一下吧。
自動(dòng)化單元測(cè)試?
自動(dòng)化單元測(cè)試簡(jiǎn)單地說(shuō)就是使用工具對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證。通常而言,一個(gè)單元測(cè)試是用于判斷某個(gè)特定條件(或者場(chǎng)景)下某個(gè)特定函數(shù)的行為。單元就是人為規(guī)定的最小的被測(cè)功能模塊。單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。
提交代碼、運(yùn)行測(cè)試的重點(diǎn)是什么?快速捕獲那些因修改向系統(tǒng)中引入的最常見(jiàn)錯(cuò)誤,并通知開(kāi)發(fā)人員,以便他們能快速修復(fù)他們。提交階段提供反饋的價(jià)值在于,對(duì)它的投入可以讓系統(tǒng)高效且更快地工作。
隔離 UI 操作
UI 應(yīng)當(dāng)作為更高層次的測(cè)試 Level,需要花費(fèi)大量時(shí)間準(zhǔn)備數(shù)據(jù),業(yè)務(wù)邏輯復(fù)雜,過(guò)早進(jìn)入 UI 階段,容易分散開(kāi)發(fā)的單元測(cè)試精力。
隔離數(shù)據(jù)庫(kù)以及文件讀寫(xiě)網(wǎng)絡(luò)開(kāi)銷(xiāo)等操作
自動(dòng)化測(cè)試中如果需要將結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),然后再驗(yàn)證改結(jié)果是否被正確寫(xiě)入,這種驗(yàn)證方法簡(jiǎn)單、容易理解,但是它不是一個(gè)高效的方法。這個(gè)應(yīng)當(dāng)從集成測(cè)試的 Level 去解決。
首先:與數(shù)據(jù)庫(kù)的交互,是漫長(zhǎng)的,甚至有可能要投入維護(hù)數(shù)據(jù)庫(kù)的時(shí)間,那將成為快速測(cè)試的一個(gè)障礙,開(kāi)發(fā)人員不能得到及時(shí)有效的反饋。假設(shè),我需要花費(fèi)一個(gè)小時(shí),才能驗(yàn)證完畢與數(shù)據(jù)庫(kù)交互的結(jié)果,這種等待是多么漫長(zhǎng)呀。
其次,數(shù)據(jù)管理需要成本,從數(shù)據(jù)的篩選(線(xiàn)上數(shù)據(jù)可能是 T 級(jí))到測(cè)試環(huán)境的 M 級(jí)別,如何把篩選合適的大小,這都使得管理成本增加
最后,如果一定要有讀寫(xiě)操作才能完成的測(cè)試,也要反思代碼的可測(cè)試性做的如何?是否需要重構(gòu)。
單元測(cè)試決不要依賴(lài)于數(shù)據(jù)庫(kù)以及文件系統(tǒng)、網(wǎng)絡(luò)開(kāi)銷(xiāo)等一切外部依賴(lài)。
如果在單元測(cè)試中,還需要啟動(dòng) Spring 容器進(jìn)行依賴(lài)注入、加載依賴(lài)的 WebService 等,這個(gè)過(guò)程是相當(dāng)消耗時(shí)間的。
設(shè)計(jì)簡(jiǎn)單的測(cè)試
明確定義方法:
成功:public void testSendReportLongDateSuccess()
失?。簆ublic void testSendReportLongDateFail(),可以包括異常
和單一的斷言,避免在一個(gè)方法內(nèi)使用多個(gè)復(fù)雜斷言,這會(huì)造成代碼結(jié)構(gòu)的復(fù)雜,使得測(cè)試的復(fù)雜性提高。
定義測(cè)試套件的運(yùn)行時(shí)間
構(gòu)建的單元測(cè)試,每個(gè)方法的構(gòu)建時(shí)間應(yīng)該是毫秒級(jí)別,整個(gè)類(lèi)是秒級(jí)別,理想的是整體構(gòu)建時(shí)間控制在 5 分鐘以?xún)?nèi),如果超過(guò)怎么辦呢?
首先,拆分成多個(gè)套件,在多臺(tái)機(jī)器上并行執(zhí)行這些套件;
其次,重構(gòu)那些運(yùn)行時(shí)間比較長(zhǎng)且不經(jīng)常失敗的測(cè)試類(lèi);
關(guān)于自動(dòng)化單元測(cè)試的介紹到這里就結(jié)束了,最后小編介紹一個(gè)自動(dòng)化管理工具吧,AutoRunner是一個(gè)自動(dòng)化的測(cè)試工具,這個(gè)工具支持Java程序、瀏覽器、Siverlight 程序等類(lèi)型的腳本錄制,支持腳本錄制暫停功能等等,功能是很強(qiáng)大的。
推薦閱讀:
自動(dòng)化測(cè)試有哪些?自動(dòng)化測(cè)試的過(guò)程是怎么樣的?
添加客服微信 歡迎咨詢(xún)測(cè)試工具和測(cè)試服務(wù)
掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)
電話(huà)咨詢(xún),400-035-7887,安排專(zhuān)業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢(xún)和商務(wù)報(bào)價(jià))。
您的信息已成功提交!
我們的客服人員稍后會(huì)與您聯(lián)系