在測試設計時最主要依據(jù)的就是測試金字塔的測試結構石景。如果在項目臨近發(fā)布才開始測試并發(fā)現(xiàn)缺陷,這樣修復缺陷的成本就會很高拙吉,項目的進度也會很不確定潮孽。所以,就開發(fā)階段來說筷黔,如果把測試分層往史,在不同的開發(fā)階段都進行測試,能很大程度上緩解這些問題佛舱。
測試分層的優(yōu)勢有以下幾點:
1.測試的成本
單元測試的開發(fā)成本要遠低于用戶界面測試椎例,如果在用戶界面的測試中發(fā)現(xiàn)缺陷,修復缺陷的成本也是遠高于通過單元測試和組件測試的成本请祖。
這里的成本不單純是開發(fā)人員修復缺陷所需要的資源和時間订歪,還包括缺陷修復后測試人員進行回歸測試所需要的資源和時間,以及項目延期等其他項目成本肆捕。
2.測試的效率
單元測試能很快地驗證很小的功能或者方法刷晋,且運行時間短,反饋更為及時慎陵。
3.缺陷定位的難易
單元測試失敗后眼虱,測試人員能夠很容易知道是被測試的特定功能或者方法不正確;而如果是用戶界面的缺陷席纽,測試人員就需要花費更多的時間來進行排查蒙幻,確定出現(xiàn)問題的功能模塊,最后再進一步發(fā)現(xiàn)需要修復的功能和方法胆筒。
4.反映真實的業(yè)務需求
單元測試無法從全局觀的角度了解系統(tǒng)模塊之間的交互,也無法通過方法的組合幫助用戶完成業(yè)務目的诈豌;而由于用戶界面的測試描述的是從用戶角度出發(fā)的用戶使用場景仆救,因此可以更容易地闡述用戶的行為和業(yè)務需求。
5.更加接近業(yè)務
用戶界面測試描述測試的層級更高矫渔,所以更接近業(yè)務彤蔽;單元測試描述測試的層級更具體,所以更接近于實現(xiàn)庙洼。
從測試金字塔分層來看顿痪,不同層級的測試都很有必要镊辕,而我們也需要根據(jù)不同測試所處的層級及其特點來設計測試。
另外蚁袭,實際測試設計時采用的測試金字塔具有更多更細節(jié)的分層征懈。高層級的測試和低級別的測試相比,抽象程度更高揩悄,測試運行的時間更長卖哎,與更多的系統(tǒng)和模塊有交互。反饋的周期更長删性,接近缺陷的成本也更高亏娜。
單元和組件測試的測試驅動開發(fā)TDD的基本循環(huán)步驟是:
1,測試失數磐Α维贺;
2,測試通過巴帮;
3溯泣,重構;
由于測試驅動開發(fā)是針對單元和組件測試所使用的開發(fā)技術晰韵,所以在進行單元和組件測試時发乔,測試人員只需要了解并評審開發(fā)人員在單元和組件測試中覆蓋了哪些場景,并不需要完成其實現(xiàn)雪猪。
在測試金字塔的最高層級栏尚,是對于App的“探索性測試”。
1.探索性測試是針對于腳本測試提出的只恨,但是兩者并不是針鋒相對的译仗,而是相輔相成的。探索性測試官觅,腳本測試和自動化測試之間可以相互轉化纵菌,相輔相成。
2.探索性測試要求測試人員在執(zhí)行測試時休涤,如同用戶旅程一樣咱圆,首先設定好測試目標,然后規(guī)劃出一段時間功氨,使用啟發(fā)式測試策略模型序苏,通過測試人員的創(chuàng)造性思維,采取不同的測試路徑捷凄,來達到測試目標的測試方法忱详。
3,在探索性測試執(zhí)行中跺涤,為了提高探索性測試的效率匈睁,并且能夠重現(xiàn)所發(fā)現(xiàn)的問題监透,可以采用基于測程的測試管理。在App測試中也可以使用SBTM技巧進行探索性測試航唆。
4胀蛮,針對App測試,測試人員需要測試在低層級測試中不能覆蓋的對于頁面跳轉和不同頁面間數(shù)據(jù)流動和展示等需要涉及到多個頁面的流程操作佛点。
5醇滥,當進行App的探索性測試時,選擇在真實設備上運行可以提高測試的真實性和加深對于用戶使用場景的理解超营,從而不斷促進探索性測試的發(fā)展和深入鸳玩。