
測(cè)試規(guī)范化通常跟測(cè)試團(tuán)隊(duì)的方法訓(xùn)練同步進(jìn)行,也可以在方法訓(xùn)練基本完成之后。
測(cè)試規(guī)范的兩個(gè)好處,一是保證測(cè)試團(tuán)隊(duì)產(chǎn)出穩(wěn)定的質(zhì)量,二是通過(guò)對(duì)規(guī)范的共識(shí),減少各方的溝通成本。這兩點(diǎn)是很多人都忽視的地方。想象一下這樣的場(chǎng)景,測(cè)試團(tuán)隊(duì)寫出的缺陷,開(kāi)發(fā),產(chǎn)品或者項(xiàng)目經(jīng)理去看,發(fā)現(xiàn)各種風(fēng)格的寫法,各種漏洞,或者不嚴(yán)謹(jǐn)?shù)牡胤剑蛘邿o(wú)法重現(xiàn),或者無(wú)法理解需要當(dāng)面溝通。這是令人沮喪而且滑稽的事:這個(gè)缺陷有很多缺陷。
1 缺陷規(guī)范
缺陷格式有一個(gè)最佳實(shí)踐,能熟練運(yùn)用的組織,可以自行裁剪以適合自己的業(yè)務(wù)。但是呢,有太多組織對(duì)缺陷格式?jīng)]有達(dá)成共識(shí),甚至組織內(nèi)的測(cè)試人員都對(duì)它不了解。前兩章說(shuō)的人員和測(cè)試方法的運(yùn)用可以看作軟實(shí)力,需要通過(guò)時(shí)間慢慢訓(xùn)練,但是統(tǒng)一缺陷規(guī)范,是可以在立竿見(jiàn)影的。如果沒(méi)有達(dá)成共識(shí),就將對(duì)組織跨職能協(xié)作造成障礙。
一個(gè)缺陷,主要屬性包含標(biāo)題,步驟,期望結(jié)果,實(shí)際結(jié)果,截圖,指派人,等級(jí),備注;其他屬性包括:發(fā)現(xiàn)版本,緊急程度,環(huán)境,附件等。下面將逐個(gè)分析缺陷的主要屬性。

1.1 標(biāo)題?Title?必填
標(biāo)題規(guī)范:通常只回答兩個(gè)問(wèn)題就足夠了:在哪里(Where),什么東西有問(wèn)題(What)。
千萬(wàn)不要把標(biāo)題寫得又臭又長(zhǎng),包含步驟,包含奇怪的符號(hào),包含多個(gè)Where都是非常典型的錯(cuò)誤。當(dāng)多個(gè)地方出現(xiàn)類似的問(wèn)題時(shí),就寫一個(gè)地方,其他的寫備注里。
1.2?步驟?Steps?必填
步驟規(guī)范:1動(dòng)詞開(kāi)頭(點(diǎn)擊,左滑/右滑,下拉/上拉,拖動(dòng)/放開(kāi),ZoomIn/ZoomOut等),2動(dòng)作原子化,3連續(xù)操作合并(比如step1:點(diǎn)擊菜單1,step2:點(diǎn)擊菜單2,step3:點(diǎn)擊按鈕。可以合并成step1:點(diǎn)擊菜單1-菜單2-按鈕)。
太多太多測(cè)試喜歡亂寫步驟,還有一些是偷懶,這跟第一章的人員關(guān)系很大,需要踏踏實(shí)實(shí)一個(gè)蘿卜一個(gè)坑的心態(tài)。也許按標(biāo)準(zhǔn)格式寫會(huì)比隨便寫兩句話要更耗時(shí)間,但是比起開(kāi)發(fā)費(fèi)力讀bug,猜意思,甚至需要跟測(cè)試當(dāng)面確認(rèn)的時(shí)間比起來(lái),其實(shí)是劃得來(lái)的。
1.3?期望結(jié)果?Expected Result?必填
期望結(jié)果規(guī)范:回答兩個(gè)問(wèn)題:什么東西(What),應(yīng)該怎樣(Should?Be)。如果有多個(gè)期望結(jié)果,就分1,2,3點(diǎn)列出。
如果測(cè)試對(duì)期望結(jié)果拿不準(zhǔn)的話,一定得先確認(rèn),哪怕要麻煩很多人。對(duì)期望結(jié)果的錯(cuò)誤判斷,就會(huì)引起B(yǎng)y?Design或者Not?a?Defect的bug,bug被標(biāo)記成這種狀態(tài)是很沒(méi)面子的。
1.4?實(shí)際結(jié)果?Actual?Result?必填
實(shí)際結(jié)果如果有多個(gè),就分1,2,3點(diǎn)列出。
1.5?截圖?選填,指派人?必填,等級(jí)?必填
缺陷等級(jí)規(guī)范
其實(shí)缺陷等級(jí)并不是一個(gè)急需的東西,只是在沒(méi)有對(duì)等級(jí)定義達(dá)成共識(shí)之前,就盡量把缺陷都提到同一級(jí),省得產(chǎn)生不必要的麻煩,其實(shí)開(kāi)發(fā)內(nèi)心對(duì)bug的等級(jí)還是很在意的。我在測(cè)試崗的時(shí)候,會(huì)有一個(gè)缺陷等級(jí)定義表,規(guī)定一共有幾個(gè)等級(jí),每個(gè)等級(jí)的定義,當(dāng)然總體來(lái)說(shuō)不算規(guī)定,只是一個(gè)大家約定而成的建議。
缺陷生命周期

其中比較敏感的狀態(tài)是Rejected,開(kāi)發(fā)人員必須有正當(dāng)?shù)睦碛蓸?biāo)記Rejected,通常是以下原因:By?Design,Not?a?Defect,Duplicate,Not Repro,Won’t Fix等。
case規(guī)范
當(dāng)然前面講過(guò),測(cè)試用例管理成本高,見(jiàn)效慢,如果企業(yè)規(guī)模達(dá)不到,或者產(chǎn)品級(jí)別達(dá)不到,或者管理水平達(dá)不到,就不建議搞。
關(guān)于case,這里有個(gè)誤解,一些測(cè)試人員做了excel表,表頭包括編號(hào)(甚至不包括),標(biāo)題,內(nèi)容等,認(rèn)為那就是case,PM也覺(jué)得那是case。這里的關(guān)鍵是要看內(nèi)容是不是包含完整步驟,如果包含12345步,每一步分別點(diǎn)什么,輸入什么,那么沒(méi)問(wèn)題那是case;如果內(nèi)容只是一些文字說(shuō)明,把對(duì)應(yīng)的情況列出來(lái),那么這種東西根本不是測(cè)試用例,只能算是等價(jià)類劃分表。

一旦錯(cuò)誤地把等價(jià)類劃分表認(rèn)為是測(cè)試用例,它會(huì)極大限制你對(duì)其他測(cè)試方法的選擇,這是很糟糕的錯(cuò)誤:你永遠(yuǎn)都在用等價(jià)類的形式去設(shè)計(jì),溝通和評(píng)審。決策表,因果圖,場(chǎng)景法都有各自最適合的情景,但都被無(wú)形地放棄了。想象你說(shuō)“出門釣魚(yú)”和“出門釣武昌魚(yú)”的區(qū)別。
測(cè)試用例規(guī)范,如果要做,就是一個(gè)比較有意思的事情。因?yàn)樗囊?guī)范,跟bug規(guī)范幾乎一模一樣,主要屬性包含標(biāo)題,步驟,期望結(jié)果,狀態(tài),指派人,備注;可以看到,跟bug規(guī)范比起來(lái),就是把“實(shí)際結(jié)果”換成了“狀態(tài)”。
測(cè)試用例的狀態(tài)包含:No?Run:未執(zhí)行,Pass:執(zhí)行通過(guò),F(xiàn)ail:執(zhí)行失敗,Block:因故阻塞,N/A:無(wú)需執(zhí)行。
通常來(lái)說(shuō),Block是敏感狀態(tài),需要增加備注的,比如是因?yàn)榱硪粋€(gè)bug導(dǎo)致這個(gè)case無(wú)法執(zhí)行,就備注那個(gè)bug的編號(hào)。N/A是指在這輪測(cè)試?yán)镞@條case根本不用走。比如case是測(cè)試拖拉機(jī)在載重情況下的發(fā)動(dòng)機(jī)動(dòng)力情況,而當(dāng)前產(chǎn)品是轎車,就可以標(biāo)記NA了。
看起來(lái)講到case規(guī)范似乎很簡(jiǎn)單,但背后做支撐的,其實(shí)是case庫(kù)管理,需求管理,產(chǎn)品測(cè)試生命期管理等,隨便拿一個(gè)都是對(duì)投入和管理水平有要求的東西。
case與bug的轉(zhuǎn)換
在有case的情況下,其實(shí)就不需要單獨(dú)寫bug了。所以沒(méi)明白那些有case的組織,走完一條case,如果失敗了又要寫一條bug是什么邏輯。通常來(lái)說(shuō),case設(shè)計(jì)好之后,執(zhí)行的過(guò)程應(yīng)該類似下面:
