[讀書筆記](méi) 五十個(gè)改善測(cè)試的點(diǎn)子

感謝測(cè)試大牛邰曉梅(博客)的推薦。最近讀了《Fifty quick ideas to improve your tests》

這本書真的很不錯(cuò)


有可愛(ài)的插圖









也有可怕的樣例



偷學(xué)一點(diǎn)出去賣,收到熱烈的反饋


一點(diǎn)心得

書中提出了50條關(guān)于改進(jìn)測(cè)試的點(diǎn)子,按照主題分為產(chǎn)生測(cè)試靈感,設(shè)計(jì)好的case,改進(jìn)系統(tǒng)可測(cè)試性,以及管理大型測(cè)試集幾組。
不少點(diǎn)子都很有啟發(fā)性。更難能可貴的是,每個(gè)點(diǎn)子作者不僅提出見解,分析收益,更給出了如何實(shí)施的指導(dǎo)。
非常值得一讀。
以下是一些印象深刻的點(diǎn)子。

從問(wèn) “總是/從不” 開始

當(dāng)進(jìn)入一個(gè)新領(lǐng)域時(shí),最危險(xiǎn)的不是大家都認(rèn)為你是菜鳥的時(shí)候;而是已經(jīng)待的足夠久,以至于大家假定你已經(jīng)了解了領(lǐng)域里的基本常識(shí)。比如“飛行過(guò)程中不能開艙門”
快速理解領(lǐng)域常識(shí)的一個(gè)方法是問(wèn)什么事情應(yīng)該總是會(huì)發(fā)生的,或從來(lái)不會(huì)發(fā)生。從這些問(wèn)題,你可以迅速的知道最基本的假設(shè)和約定。
而且,由于這種絕對(duì)的論斷很容易被駁倒。往往當(dāng)列出一條“總是/從不”時(shí),就會(huì)有人指出不符合的特例。然后就可以由此展開對(duì)業(yè)務(wù)的深入討論。

帶入情緒

系統(tǒng)不僅僅可以有happy path(一切順利的開心路徑),還可以有膽戰(zhàn)心驚路徑, 漫不經(jīng)心路徑,尷尬路徑,健忘路徑……

避免用數(shù)學(xué)公式來(lái)描述測(cè)試

盡管公式初看起來(lái)非常嚴(yán)謹(jǐn)完善,但是公式往往只是復(fù)述了從別處搬來(lái)的規(guī)則。無(wú)益于我們發(fā)現(xiàn)還遺漏的用例,或增進(jìn)對(duì)系統(tǒng)的理解。相反,它會(huì)給我們虛假的信心相信測(cè)試已經(jīng)完全。

比如如下規(guī)則

交易日期 包括在報(bào)表?
報(bào)表產(chǎn)生日期 - 30 < 交易日期 不包括
報(bào)表產(chǎn)生日期 - 30 < 交易日期 < 報(bào)表產(chǎn)生日期 包括
交易日期 > 報(bào)表產(chǎn)生日期 不包括

看起來(lái)非常完整。但是是否澄清了下面的疑問(wèn)呢?

  • 交易日期和報(bào)表日期是僅僅包括日期還是日期時(shí)間格式?
  • 時(shí)區(qū)會(huì)有影響么?
  • 如果報(bào)表日期為3月3日,那么3月3日 00:01是否包括在里面? 23:59:59呢?
  • 閏年和夏令時(shí)會(huì)不會(huì)對(duì)邊界發(fā)生影響?

避免使用公式,用具體的例子說(shuō)明系統(tǒng)的行為。

說(shuō)明測(cè)試的目的,而不是如何做

如前面可怕的樣例貼圖里的測(cè)試:“按這里,那里顯示xxx,再按這里,又會(huì)顯示xxx,……,最后輸入xxx,得到的結(jié)果是xxx”……
這樣只是描述步驟的測(cè)試,除了當(dāng)初寫它的人外沒(méi)人可以理解。這樣的測(cè)試無(wú)法讓干系人查看是否符合業(yè)務(wù),無(wú)法給測(cè)試人員啟發(fā),只能從頭到尾機(jī)械執(zhí)行。經(jīng)過(guò)一段時(shí)間的變更之后系統(tǒng)無(wú)法維護(hù),只能從頭再錄一次這樣的流程。

不要自動(dòng)化手工測(cè)試用例

即便最詳細(xì)的手工測(cè)試腳本,也只是指導(dǎo)測(cè)試人員探索系統(tǒng)的手冊(cè)而已。它本身并不能完整說(shuō)明系統(tǒng)應(yīng)該的行為。測(cè)試人員執(zhí)行時(shí)會(huì)發(fā)現(xiàn)很多用自動(dòng)化難以檢查的輸出。一旦流程出錯(cuò),對(duì)人來(lái)說(shuō)可以容易的繞過(guò)小問(wèn)題繼續(xù),而對(duì)電腦卻是復(fù)雜的技術(shù)問(wèn)題。
為自動(dòng)化測(cè)試設(shè)計(jì)專門的用例。自動(dòng)化測(cè)試并不是為了替代手工測(cè)試。

改善測(cè)試可讀性,而非寫測(cè)試的效率

太多的測(cè)試工具專注于高效的寫出測(cè)試用例。然而快速寫出一堆用例并不能真正增進(jìn)我們對(duì)系統(tǒng)的理解。無(wú)法理解的測(cè)試也是無(wú)法維護(hù)的。在系統(tǒng)長(zhǎng)期的生命周期中,測(cè)試的可讀性遠(yuǎn)遠(yuǎn)比快速寫出測(cè)試重要。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.測(cè)試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開發(fā)包括:需求、設(shè)...
    Mr希靈閱讀 22,376評(píng)論 7 278
  • 1.測(cè)試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開發(fā)包括:需求、設(shè)...
    宇文臭臭閱讀 6,852評(píng)論 5 101
  • 文章來(lái)自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,345評(píng)論 2 126
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 你和我像兩根相鄰的電線桿,縱然之間有千絲萬(wàn)縷,種種過(guò)往,也擺脫不了,誰(shuí)也不可能邁出一步的現(xiàn)實(shí),也許只有我心甘情愿的...
    大棚蓋澆飯閱讀 144評(píng)論 0 0

友情鏈接更多精彩內(nèi)容