
背景
最近面試了幾個人,問了一些關(guān)于測試用例的問題,但是基本上沒有能回答的讓我滿意。作為一個測試人員,測試用例的編寫絕對是非常重要的技能。別小看測試用例,小小的用例里面包含了大大的只會。
測試用例
毫無疑問,測試用例的編寫是一個測試人員的基本功,無論做什么方式的測試,都離不開測試用例,一份好的測試用例能夠在測試執(zhí)行過程中給予非常好的指導(dǎo)意義。
測試用例的產(chǎn)出一般來說,是根據(jù)產(chǎn)品(業(yè)務(wù))的需求分析后得出測試需求,再根據(jù)測試需求進(jìn)行細(xì)分,得到測試用例。這中間的學(xué)問就非常大了。
測試設(shè)計
軟件測試的目的就是保證軟件的質(zhì)量,漏測是最大的忌諱,因此在測試設(shè)計過程中,如何防止設(shè)計遺漏是非常關(guān)鍵的。產(chǎn)品(業(yè)務(wù))的需求對功能上描述是比較清晰的,按照功能來設(shè)計,只要設(shè)計的方法正確,那么功能上基本不會有問題。但是這僅僅是從業(yè)務(wù)的角度來分析問題,還需要分析開發(fā)的設(shè)計文檔,根據(jù)開發(fā)的設(shè)計,適當(dāng)?shù)难a(bǔ)充一些需求文檔上沒有覆蓋的點(diǎn)。最后,還需要用自己的經(jīng)驗(yàn)做一些探索性的測試用例。
所以一個好的測試設(shè)計應(yīng)該包括以下幾個部分:
- 業(yè)務(wù)功能的覆蓋
- 開發(fā)設(shè)計中針對業(yè)務(wù)功能的補(bǔ)充
- 某些專題模塊的單獨(dú)測試
- 工作經(jīng)驗(yàn)的探索設(shè)計
測試用例的顆粒度
這個問題在早期工作中有專門嘗試過,不同的設(shè)計方式對后續(xù)的維護(hù)以及執(zhí)行影響非常大,因此在項(xiàng)目的初期就要想好用例設(shè)計的顆粒度。在網(wǎng)上看了一些文章,對于這點(diǎn)的理解都不深,我簡單列一下,不同顆粒度的優(yōu)缺點(diǎn)如下:
粗顆粒度
優(yōu)點(diǎn)
- 設(shè)計的周期短
- 可維護(hù)性強(qiáng)
- 能夠快速的應(yīng)對頻繁變更的需求
- 執(zhí)行時靈活度高,能夠有效的調(diào)動執(zhí)行人員的積極性
- 占用測試資源少,少量的人員花費(fèi)少量的時間即可完成
缺點(diǎn)
- 漏測的可能性高
- 項(xiàng)目質(zhì)量過于依賴測試人員的職業(yè)素養(yǎng)
- 用例數(shù)量少
適用場景
粗顆粒度的測試用例相對適合小團(tuán)隊(duì)適用,人少,時間短,而且能夠快速的相應(yīng)變化的需求。當(dāng)然,缺點(diǎn)也是非常明顯的,沒有了詳細(xì)的測試用例的束縛,每個點(diǎn)的質(zhì)量就非常依賴測試人員的素質(zhì),需要測試人員有很高的職業(yè)道德,并且對于業(yè)務(wù)的理解程度,系統(tǒng)的架構(gòu)的熟悉程度都有很高的要求。
在大項(xiàng)目中也并不是不能使用,我曾經(jīng)在項(xiàng)目中這么干過,說實(shí)話,效果還不錯,在大項(xiàng)目中,開發(fā)人員數(shù)量多,對于業(yè)務(wù)的理解也是參差不齊,很有可能他們沒有按照約定的方式進(jìn)行實(shí)現(xiàn),而這種情況在大項(xiàng)目中會導(dǎo)致大量的測試用例需要維護(hù),而粗顆粒度的設(shè)計,能夠低成本的快速響應(yīng)這些變化。
我在缺點(diǎn)中的列的用例數(shù)量少,不是開玩笑隨便列的。一般來說要拿資源都是以數(shù)據(jù)說話,測試用例數(shù)量少就意味著,你的談判籌碼就少,能申請到的資源也就少,但是在項(xiàng)目不減少的情況下,工作量是固定的,因此每個人的工作量就會相應(yīng)的增加,這也是進(jìn)行粗顆粒度拆分時需要注意的地方
細(xì)顆粒度
優(yōu)點(diǎn)
- 漏測的可能性小
- 風(fēng)險左移,對于管理者來說容易把控
- 用例數(shù)量多,利于申請資源
- 不依賴測試人員的綜合素質(zhì)
- 能夠針對測試用例提前準(zhǔn)備大量的測試數(shù)據(jù)
缺點(diǎn)
- 測試設(shè)計的周期長
- 可維護(hù)性極弱
- 執(zhí)行束縛大
適用場景
細(xì)顆粒度的好處也顯而易見,能夠把所有風(fēng)險集中到設(shè)計階段,對于管理者來說省了非常大的精力來做其他事,但是由于精細(xì)的設(shè)計,導(dǎo)致小團(tuán)隊(duì)沒有很多的資源往測試設(shè)計中投入,因此細(xì)顆粒度的設(shè)計比較適合大團(tuán)隊(duì),對于測試人員的要求非常低,即使是剛?cè)肼毜男氯艘材軌蚩焖俚纳鲜诌M(jìn)行測試。在測試顆粒度細(xì)的情況下,能夠非常清晰的了解將來執(zhí)行階段需要使用的數(shù)據(jù),環(huán)境等資源,因此能夠?qū)?shù)據(jù)提前準(zhǔn)備,這將極大的減少測試執(zhí)行階段的時間。
當(dāng)然,缺點(diǎn)也是顯而易見的,需求做一點(diǎn)變更或者開發(fā)不老實(shí)一點(diǎn),馬上就會血崩,案例維護(hù)的成本非常之高,尤其是大項(xiàng)目的用例,維護(hù)起來非常的折磨人。而且在執(zhí)行過程中實(shí)際結(jié)果和用例產(chǎn)生一點(diǎn)偏差,都會讓執(zhí)行人員非常的尷尬。
總結(jié)
總結(jié)了那么多內(nèi)容,都是一些理論,在實(shí)際的工作中是可以穿插起來進(jìn)行的。測試用例的顆粒度在一個項(xiàng)目中是可以共存的,并不是所有的用例都要粗或者都要細(xì),可以根據(jù)自身的情況做一些調(diào)整,比如按照業(yè)務(wù)進(jìn)行拆分的時候,可以把自己熟悉的業(yè)務(wù)做粗顆粒度的編寫,變化非常小的部分做細(xì)顆粒度的編寫,提前做好分工的情況下,根據(jù)不同執(zhí)行人員的素質(zhì)也可以做顆粒度的拆分。理論知識永遠(yuǎn)是死的,人才是活的,根據(jù)自己的實(shí)際情況合理的利用理論知識才是自我提升的途徑。