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