在測(cè)試設(shè)計(jì)時(shí)最主要依據(jù)的就是測(cè)試金字塔的測(cè)試結(jié)構(gòu)。如果在項(xiàng)目臨近發(fā)布才開始測(cè)試并發(fā)現(xiàn)缺陷,這樣修復(fù)缺陷的成本就會(huì)很高,項(xiàng)目的進(jìn)度也會(huì)很不確定。所以,就開發(fā)階段來說,如果把測(cè)試分層,在不同的開發(fā)階段都進(jìn)行測(cè)試,能很大程度上緩解這些問題。
測(cè)試分層的優(yōu)勢(shì)有以下幾點(diǎn):
1.測(cè)試的成本
單元測(cè)試的開發(fā)成本要遠(yuǎn)低于用戶界面測(cè)試,如果在用戶界面的測(cè)試中發(fā)現(xiàn)缺陷,修復(fù)缺陷的成本也是遠(yuǎn)高于通過單元測(cè)試和組件測(cè)試的成本。
這里的成本不單純是開發(fā)人員修復(fù)缺陷所需要的資源和時(shí)間,還包括缺陷修復(fù)后測(cè)試人員進(jìn)行回歸測(cè)試所需要的資源和時(shí)間,以及項(xiàng)目延期等其他項(xiàng)目成本。
2.測(cè)試的效率
單元測(cè)試能很快地驗(yàn)證很小的功能或者方法,且運(yùn)行時(shí)間短,反饋更為及時(shí)。
3.缺陷定位的難易
單元測(cè)試失敗后,測(cè)試人員能夠很容易知道是被測(cè)試的特定功能或者方法不正確;而如果是用戶界面的缺陷,測(cè)試人員就需要花費(fèi)更多的時(shí)間來進(jìn)行排查,確定出現(xiàn)問題的功能模塊,最后再進(jìn)一步發(fā)現(xiàn)需要修復(fù)的功能和方法。
4.反映真實(shí)的業(yè)務(wù)需求
單元測(cè)試無法從全局觀的角度了解系統(tǒng)模塊之間的交互,也無法通過方法的組合幫助用戶完成業(yè)務(wù)目的;而由于用戶界面的測(cè)試描述的是從用戶角度出發(fā)的用戶使用場(chǎng)景,因此可以更容易地闡述用戶的行為和業(yè)務(wù)需求。
5.更加接近業(yè)務(wù)
用戶界面測(cè)試描述測(cè)試的層級(jí)更高,所以更接近業(yè)務(wù);單元測(cè)試描述測(cè)試的層級(jí)更具體,所以更接近于實(shí)現(xiàn)。
從測(cè)試金字塔分層來看,不同層級(jí)的測(cè)試都很有必要,而我們也需要根據(jù)不同測(cè)試所處的層級(jí)及其特點(diǎn)來設(shè)計(jì)測(cè)試。
另外,實(shí)際測(cè)試設(shè)計(jì)時(shí)采用的測(cè)試金字塔具有更多更細(xì)節(jié)的分層。高層級(jí)的測(cè)試和低級(jí)別的測(cè)試相比,抽象程度更高,測(cè)試運(yùn)行的時(shí)間更長(zhǎng),與更多的系統(tǒng)和模塊有交互。反饋的周期更長(zhǎng),接近缺陷的成本也更高。
單元和組件測(cè)試的測(cè)試驅(qū)動(dòng)開發(fā)TDD的基本循環(huán)步驟是:
1,測(cè)試失??;
2,測(cè)試通過;
3,重構(gòu);
由于測(cè)試驅(qū)動(dòng)開發(fā)是針對(duì)單元和組件測(cè)試所使用的開發(fā)技術(shù),所以在進(jìn)行單元和組件測(cè)試時(shí),測(cè)試人員只需要了解并評(píng)審開發(fā)人員在單元和組件測(cè)試中覆蓋了哪些場(chǎng)景,并不需要完成其實(shí)現(xiàn)。
在測(cè)試金字塔的最高層級(jí),是對(duì)于App的“探索性測(cè)試”。
1.探索性測(cè)試是針對(duì)于腳本測(cè)試提出的,但是兩者并不是針鋒相對(duì)的,而是相輔相成的。探索性測(cè)試,腳本測(cè)試和自動(dòng)化測(cè)試之間可以相互轉(zhuǎn)化,相輔相成。
2.探索性測(cè)試要求測(cè)試人員在執(zhí)行測(cè)試時(shí),如同用戶旅程一樣,首先設(shè)定好測(cè)試目標(biāo),然后規(guī)劃出一段時(shí)間,使用啟發(fā)式測(cè)試策略模型,通過測(cè)試人員的創(chuàng)造性思維,采取不同的測(cè)試路徑,來達(dá)到測(cè)試目標(biāo)的測(cè)試方法。
3,在探索性測(cè)試執(zhí)行中,為了提高探索性測(cè)試的效率,并且能夠重現(xiàn)所發(fā)現(xiàn)的問題,可以采用基于測(cè)程的測(cè)試管理。在App測(cè)試中也可以使用SBTM技巧進(jìn)行探索性測(cè)試。
4,針對(duì)App測(cè)試,測(cè)試人員需要測(cè)試在低層級(jí)測(cè)試中不能覆蓋的對(duì)于頁面跳轉(zhuǎn)和不同頁面間數(shù)據(jù)流動(dòng)和展示等需要涉及到多個(gè)頁面的流程操作。
5,當(dāng)進(jìn)行App的探索性測(cè)試時(shí),選擇在真實(shí)設(shè)備上運(yùn)行可以提高測(cè)試的真實(shí)性和加深對(duì)于用戶使用場(chǎng)景的理解,從而不斷促進(jìn)探索性測(cè)試的發(fā)展和深入。