7月底腻惠,客戶方的十幾位產(chǎn)品人來(lái)ThoughtWorks進(jìn)行經(jīng)驗(yàn)交流集灌,公司準(zhǔn)備了好幾個(gè)議題欣喧,我有幸負(fù)責(zé)《ThoughtWorks測(cè)試方法論與實(shí)踐的交流》唆阿。在方法論部分,我著重分享了“探索性測(cè)試”和“精益測(cè)試”闲询;在實(shí)踐部分扭弧,我分享了在敏捷和DevOps開發(fā)模式下該如何測(cè)試鸽捻。
這次的分享出乎意料地成功泽腮,過程中引發(fā)了很多有趣的討論诊赊,會(huì)議持續(xù)了1.5小時(shí)豪筝,大家仍意猶未盡。
不料团搞,前兩天多艇,客戶又邀請(qǐng)我們?cè)僮鲆淮尉€上交流峻黍,欲將以上內(nèi)容分享給公司更多的同事姆涩。于是骨饿,我就“探索性測(cè)試”和“精益測(cè)試”兩個(gè)方法論的部分寫一寫宏赘,來(lái)進(jìn)一步推敲其中的細(xì)節(jié),希望能給第二次的分享帶來(lái)更多不一樣的體驗(yàn)闷游。
01?探索性測(cè)試
我于2019年12月22日發(fā)表了一篇名為《“探索性測(cè)試”在敏捷項(xiàng)目中的運(yùn)用》的公眾號(hào)推文脐往。后來(lái)钙勃,這篇文章有幸被“清華大學(xué)出版社”、“水木IT社區(qū)”希太、“DevOps”誊辉、及“ThoughtWorks洞見”公眾號(hào)申請(qǐng)轉(zhuǎn)載堕澄。可當(dāng)我再次細(xì)讀文章時(shí)拍屑,卻發(fā)現(xiàn)部分例證其實(shí)可以更精準(zhǔn)僵驰,無(wú)奈公眾號(hào)推文無(wú)法修改蒜茴,我只好借這篇文章重新闡述粉私。不過本文只從部分視角入手诺核,更多內(nèi)容猪瞬,仍建議閱讀上一篇文章陈瘦。
如何理解探索性測(cè)試
舉個(gè)例子痊项,為了7月底的這次經(jīng)驗(yàn)交流會(huì)酥诽,ThoughtWorks計(jì)劃專門為參會(huì)人員定制一款馬克杯肮帐。供應(yīng)商設(shè)計(jì)并研發(fā)好了樣品训枢,提供給我們驗(yàn)收恒界。
傳統(tǒng)測(cè)試會(huì)如何驗(yàn)收呢十酣?
首先,閱讀產(chǎn)品需求規(guī)格說明工育,理解需求翅娶。
材質(zhì):陶瓷
容量:250ml
外觀:(外)綠色釉面竭沫、(里)米色釉面蜕提、米色Logo谎势、標(biāo)注容量
功能:可盛白開水脏榆、茶须喂、咖啡趁蕊、牛奶等一般熱飲
然后掷伙,根據(jù)需求規(guī)格設(shè)計(jì)測(cè)試用例任柜。我們運(yùn)用“等價(jià)類”和“邊界值”測(cè)試方法設(shè)計(jì)了三組測(cè)試用例宙地,然后用儀器檢測(cè)材質(zhì)绸栅;用眼睛觀察UI粹胯;用實(shí)際裝水风纠、咖啡况鸣、茶、牛奶的過程來(lái)驗(yàn)證功能竹观。最后镐捧,逐一執(zhí)行測(cè)試用例,我們發(fā)現(xiàn)臭增,有一條UI的用例測(cè)試不通過懂酱。
對(duì)于這個(gè)例子,我們?nèi)绾芜\(yùn)用探索性測(cè)試驗(yàn)收呢列牺?
和傳統(tǒng)測(cè)試一樣,首先需要根據(jù)需求設(shè)計(jì)測(cè)試拗窃、然后逐一執(zhí)行瞎领。然而,探索性測(cè)試到這里并沒有結(jié)束随夸。
在測(cè)試執(zhí)行過程中九默,我們有了新的發(fā)現(xiàn),進(jìn)而引發(fā)出一些思考:
現(xiàn)象:盛完茶水宾毒,杯子里好多茶漬
思考:能不能刷干凈驼修?
與此同時(shí),我們忽然想到一些特殊的場(chǎng)景:
上班的時(shí)候伍俘,我常常要端著杯子輾轉(zhuǎn)于各個(gè)會(huì)議室邪锌,會(huì)一開就是一個(gè)多小時(shí)。250ml容量夠不夠癌瘾?沒有蓋子觅丰,水會(huì)不會(huì)容易撒出來(lái)?
這些過程中想到的點(diǎn)都還沒有得到驗(yàn)證妨退,因此需要將其添加到測(cè)試用例中妇萄。與傳統(tǒng)測(cè)試不同的是,設(shè)計(jì)用例的時(shí)候咬荷,我們并不一定清楚期待結(jié)果冠句,而是要根據(jù)實(shí)際發(fā)生的結(jié)果去判斷能否接受。比如幸乒,盛完茶水懦底,杯子里好多茶漬,可是稍微一刷便煥然一新罕扎,那么就是可接受的結(jié)果聚唐。而如果丐重,我使勁了渾身解數(shù),茶漬依然紋絲不動(dòng)杆查,那這個(gè)馬克杯只能當(dāng)做一次性的了扮惦,著實(shí)可惜、不可接受亲桦。而對(duì)于第二個(gè)特殊場(chǎng)景崖蜜,250ml容量的確不夠,沒有蓋子客峭,水也的確會(huì)容易灑出來(lái)豫领。可它們真的是問題嗎桃笙?針對(duì)用戶的特殊需求氏堤,換個(gè)容量大一點(diǎn)兒的、帶蓋子的杯子搏明,或許才是解決問題的最佳選擇鼠锈。
相比之下,傳統(tǒng)測(cè)試的過程是線性發(fā)生的星著,“先設(shè)計(jì)购笆、再測(cè)試”,很多公司甚至要求在設(shè)計(jì)用例的時(shí)候就達(dá)到100%覆蓋虚循。而探索性測(cè)試是環(huán)狀的同欠,主張學(xué)習(xí),強(qiáng)調(diào)同時(shí)展開測(cè)試設(shè)計(jì)横缔、執(zhí)行铺遂、并從結(jié)果中獲得反饋,從而持續(xù)優(yōu)化測(cè)試茎刚。
傳統(tǒng)測(cè)試幫助我們交付滿足要求的產(chǎn)品襟锐;而探索性測(cè)試則是為了交付更高質(zhì)量的產(chǎn)品。
運(yùn)用“漫游地圖模型”梳理測(cè)試策略
《探索性測(cè)試實(shí)踐之路》一書提到一種“漫游地圖模型”膛锭,它將測(cè)試比擬為游客在城市中漫游粮坞,將其分為商業(yè)區(qū)、歷史區(qū)初狰、旅游區(qū)莫杈、破舊區(qū)、娛樂區(qū)奢入、及旅館區(qū)筝闹。
(1)商業(yè)區(qū):人們?cè)谏虡I(yè)區(qū)完成一天的工作
(2)歷史區(qū):很多城市都有歷史古跡,很多游客往往為了追隨歷史古跡而來(lái)
(3)旅游區(qū):旅游區(qū)大部分只有游客才去,而當(dāng)?shù)厝藭?huì)盡量避開這些擁堵的地方
(4)破舊區(qū):破舊區(qū)是一個(gè)城市最不受歡迎的地方关顷,可能存在違法亂紀(jì)的現(xiàn)象
(5)娛樂區(qū):游客經(jīng)歷了景點(diǎn)和名勝古跡的游覽之后肩杈,需要在娛樂區(qū)休閑和放松一下,從而使假期變得張弛有度
(6)旅館區(qū):游客經(jīng)過了繁忙的旅程之后解寝,需要在旅館區(qū)休息,恢復(fù)體力
“漫游地圖模型”幫助測(cè)試人員規(guī)劃和分解被測(cè)產(chǎn)品艘儒、制定測(cè)試策略聋伦。
首先,在白紙上畫出商業(yè)區(qū)界睁、歷史區(qū)觉增、旅游區(qū)、破舊區(qū)翻斟、娛樂區(qū)逾礁、及旅館區(qū),代表軟件系統(tǒng)的6個(gè)區(qū)域
接著访惜,整理出軟件的功能嘹履,將每個(gè)功能寫在一張卡片上
最后,將功能卡片貼到對(duì)應(yīng)的區(qū)域
產(chǎn)品分解之后债热,究竟該如何測(cè)試呢砾嫉?
(1)商業(yè)區(qū):用戶花錢買軟件就是因?yàn)檐浖奶匦允沟盟麄兊臉I(yè)務(wù)得以完成。商業(yè)區(qū)測(cè)試類型著重于測(cè)試軟件的主要特性窒篱,因此焕刮,需要頻繁地進(jìn)行回歸測(cè)試,以持續(xù)保證這些主要特性的可用性墙杯。由于具有很高的重復(fù)性配并,“商業(yè)區(qū)”的測(cè)試將是自動(dòng)化測(cè)試關(guān)注的重點(diǎn)
(1)旅游區(qū):對(duì)于軟件,有些特性對(duì)新用戶更有吸引力高镐。這一點(diǎn)也涉及到部分用戶權(quán)限的測(cè)試
(2)歷史區(qū):軟件也一樣具有前版本的歷史遺留代碼溉旋,這個(gè)區(qū)域的測(cè)試目的就是測(cè)試遺留代碼和遺留缺陷。這一點(diǎn)在遺留系統(tǒng)改造項(xiàng)目中體現(xiàn)的尤為明顯避消〉吞玻”新開發(fā)特性不影響原有特性”將成為測(cè)試重點(diǎn)
(3)旅館區(qū):當(dāng)軟件“休息”時(shí),它實(shí)際上還是非常忙碌的岩喷。旅館區(qū)模型關(guān)注的是一些輔助功能恕沫,比如軟件后臺(tái)運(yùn)行等
(4)娛樂區(qū):對(duì)于軟件,比如一個(gè)購(gòu)物網(wǎng)站纱意,商業(yè)區(qū)是搜索商品婶溯、加入購(gòu)物車、生成訂單、付款等迄委,而其娛樂區(qū)就是指漂亮美觀的UI褐筛、友好的用戶界面等。這就需要關(guān)注到用戶體驗(yàn)和兼容性測(cè)試
(5)破舊區(qū):不同于旅游叙身,軟件的破舊區(qū)可能存在嚴(yán)重的缺陷渔扎、安全及性能問題。這部分可能是軟件的重災(zāi)區(qū)信轿,需要關(guān)注異常測(cè)試晃痴、性能測(cè)試和安全測(cè)試
運(yùn)用探索性測(cè)試指導(dǎo)自動(dòng)化測(cè)試
自動(dòng)化測(cè)試,是指將人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化成機(jī)器财忽、工具或者代碼執(zhí)行的一種測(cè)試方法倘核。
我們通常將需求明確的、業(yè)務(wù)穩(wěn)定的即彪、需要重復(fù)回歸測(cè)試的部分用自動(dòng)化測(cè)試來(lái)實(shí)現(xiàn);而將需求不明確隶校、變動(dòng)頻繁的遭庶、無(wú)需重復(fù)測(cè)試的峦睡、或者需要日志等特殊形式驗(yàn)證結(jié)果的部分榨了,配合探索性測(cè)試思路龙屉,通過手工測(cè)試來(lái)完成转捕。
但自動(dòng)化測(cè)試與手工測(cè)試并不是相互割裂的五芝,而存在一個(gè)相互轉(zhuǎn)化的過程枢步。仍然以上面定制的馬克杯為例:
首先矾瑰,需求規(guī)格中明確提到的點(diǎn)往往是軟件的核心功能殴穴,需求明確推正、業(yè)務(wù)穩(wěn)定再沧、也需要通過反復(fù)測(cè)試來(lái)保證這些功能的可用性炒瘸,因此是自動(dòng)化測(cè)試的首選
其次顷扩,如上面講到的扎阶,在測(cè)試過程中东臀,我們有了新的發(fā)現(xiàn)惰赋,或者想到一些特殊場(chǎng)景。在最開始拒炎,我們并不清楚這些新學(xué)習(xí)到的點(diǎn)的實(shí)際結(jié)果會(huì)是怎么樣的枝冀,因此需要手工測(cè)試果漾,測(cè)試的步驟和期待結(jié)果都需要探索
接著吨凑,在手工執(zhí)行的過程中鸵钝,我們最終證實(shí)了一些用例恩商。比如,盛完茶的杯子粟矿,確定是能被刷干凈的。那么掏秩,我們就可以直接將這個(gè)已經(jīng)確定的點(diǎn)添加到自動(dòng)化測(cè)試腳本中
最后,有一些思考被證明的確是問題杆煞,但我們并不需要去解決它决乎,也無(wú)需再去關(guān)注构诚,直接舍棄就好了送膳。
02?精益測(cè)試
“精益測(cè)試”是ThoughtWorks 資深 QA 咨詢師林冰玉提出的概念,她曾專門寫過一篇博客《精益測(cè)試》碌补,也講過直播課程。
而我袜啃,不僅是知識(shí)的搬運(yùn)工,更希望闡述一些自己對(duì)于“精益測(cè)試”的理解。
如何理解精益測(cè)試
“精益測(cè)試”的理念是將“精益生產(chǎn)”與“測(cè)試”相結(jié)合。
精益生產(chǎn)來(lái)源于豐田的生產(chǎn)方式,其目標(biāo)是控制庫(kù)存量古劲,減少生產(chǎn)過程中的浪費(fèi);旨在按需生產(chǎn)闷堡、用最少工作,創(chuàng)造價(jià)值管钳。
測(cè)試要做到精益,就是要減少測(cè)試中的浪費(fèi)栽烂,不能一味的追求測(cè)試覆蓋率,大而全的測(cè)試覆蓋本身就是一種浪費(fèi)。因此,精益測(cè)試并不是一種具體的測(cè)試方法聊闯,而是一種思維,其價(jià)值主要是為了幫助團(tuán)隊(duì)制定合適的測(cè)試策略,讓測(cè)試更有效。
對(duì)于“精益測(cè)試”的定義,我們應(yīng)該這樣理解:
對(duì)能體現(xiàn)業(yè)務(wù)價(jià)值的點(diǎn),做到有效的測(cè)試覆蓋粥烁,減少浪費(fèi)芥永,從而以盡量少的成本交付高質(zhì)量的軟件奇瘦。
測(cè)試如何才能做到精益醇坝,如何才能避免浪費(fèi)呢砸琅?
這就不得不提到精益測(cè)試的核心原則,我們將其總結(jié)為TAT:適時(shí)(Time)嘁傀、適量(Amount)、精準(zhǔn)(Target)。
適時(shí)(Time):敏捷測(cè)試要求測(cè)試全程參與瓤狐,讓測(cè)試活動(dòng)發(fā)生在敏捷軟件開發(fā)生命周期的每個(gè)環(huán)節(jié)荧缘,而讓每種類型的測(cè)試發(fā)生在它最該發(fā)生的時(shí)刻绸罗。比如靡羡,開發(fā)人員在開始實(shí)現(xiàn)一個(gè)故事卡之前趟薄,召集BA和QA一起做Kick Off羡铲,以幫助各個(gè)角色對(duì)需求達(dá)成一致的理解蜂桶,避免在開始開發(fā)前就對(duì)需求產(chǎn)生誤解。而在完成一張需求卡的開發(fā)之后也切、提交測(cè)試之前扑媚,一起做Desk check,按照故事卡上的驗(yàn)收標(biāo)準(zhǔn)逐條演示雷恃,這樣就能避免問題要等到QA人員正式開始測(cè)試之后才被發(fā)現(xiàn)疆股。
適量(Amount):不再盲目地追求100%測(cè)試覆蓋,需要權(quán)衡利弊倒槐,把時(shí)間花在真正有價(jià)值的事情上旬痹,這也是精益的體現(xiàn)。我見過一些公司,將測(cè)試覆蓋率作為QA人員的KPI唱凯,要求達(dá)到100%覆蓋羡忘。最終花費(fèi)了太多精力去測(cè)試一些并不那么重要的模塊、或者花了更多精力在一些并不重要的自動(dòng)化測(cè)試腳本的維護(hù)上磕昼。這必然造成極大的浪費(fèi)卷雕。
精準(zhǔn)(Target):精準(zhǔn)測(cè)試通常是指根據(jù)代碼改動(dòng)所影響到的范圍去針對(duì)性的測(cè)試。比如票从,當(dāng)開發(fā)修復(fù)一個(gè)Bug之后漫雕,我們并不需要將整個(gè)系統(tǒng)重新測(cè)試一遍。正確的做法是峰鄙,精準(zhǔn)地分析出Bug本身浸间、及Bug的影響范圍,然后針對(duì)性地測(cè)試吟榴。其中魁蒜,Bug本身的回歸測(cè)試就是High level的測(cè)試,而影響范圍則是Medium的測(cè)試吩翻。
如何做到精益測(cè)試
林冰玉提到了兩個(gè)測(cè)試指導(dǎo)框架:測(cè)試四象限和測(cè)試分層兜看。在這里,我想重點(diǎn)闡述自己對(duì)測(cè)試分層的理解狭瞎。想要了解測(cè)試四象限细移,請(qǐng)閱讀林冰玉的原文。
要理解測(cè)試分層熊锭,首先要理解軟件分層弧轧。阮一峰在他的博客中介紹過O’Reilly 出版過一本免費(fèi)的小冊(cè)子《Software Architecture Patterns》,里面介紹了軟件分層架構(gòu)碗殷。
軟件分層架構(gòu)將軟件分成若干個(gè)水平層精绎,每一層都有清晰的分工,不需要知道其他層的細(xì)節(jié)锌妻。層與層之間通過接口通信代乃。
(1)表現(xiàn)層(Presentation Layer):用戶界面,負(fù)責(zé)視覺和用戶互動(dòng)
(2)業(yè)務(wù)層(Business Layer):實(shí)現(xiàn)業(yè)務(wù)邏輯
(3)持久層(Persistence Layer):提供數(shù)據(jù)从祝,SQL 語(yǔ)句就放在這一層
(4)數(shù)據(jù)庫(kù)(Database Layer) :保存數(shù)據(jù)
用戶的請(qǐng)求依次通過這四層的處理襟己,不能跳過其中任何一層引谜。
軟件分層架構(gòu)為軟件開發(fā)帶來(lái)一定的好處牍陌,比如,不同技能的程序員可以獨(dú)立分工员咽,負(fù)責(zé)不同層的開發(fā)毒涧,這就是為什么我們會(huì)有前端開發(fā)和后端開發(fā)等多種開發(fā)角色;開發(fā)順序也不受限制贝室、只需要在各個(gè)層完成獨(dú)立開發(fā)之后進(jìn)行集成契讲。
既然每一層可以獨(dú)立開發(fā)仿吞,就必然能夠獨(dú)立測(cè)試。其他層的接口如果已經(jīng)完成捡偏,可以直接與其集成進(jìn)行測(cè)試唤冈;如果尚未完成,也可以通過模擬來(lái)解決银伟,這就是測(cè)試分層你虹。
與軟件分層不同的是,在分析測(cè)試時(shí)彤避,我們將持久層和數(shù)據(jù)庫(kù)層統(tǒng)一稱為“數(shù)據(jù)層”傅物。
(1)表現(xiàn)層測(cè)試:關(guān)注用戶界面的互動(dòng)和視覺,我們將其稱為“UI測(cè)試”琉预。
UI測(cè)試常常需要一些工具來(lái)輔助測(cè)試董饰,比如,使用Galen進(jìn)行響應(yīng)式測(cè)試圆米,驗(yàn)證頁(yè)面是否能夠根據(jù)瀏覽器窗口或屏幕大小等作出響應(yīng)卒暂;使用一些圖片或像素對(duì)比工具來(lái)測(cè)試UI是否與設(shè)計(jì)一致
UI測(cè)試還需要及時(shí)獲得用戶的反饋,我們可以通過給用戶Showcase等形式榨咐,盡早地獲取用戶對(duì)于交互習(xí)慣的反饋
(2)業(yè)務(wù)層測(cè)試:關(guān)注業(yè)務(wù)邏輯的正常和異常情況介却。
通過接口測(cè)試來(lái)驗(yàn)證業(yè)務(wù)邏輯。接口通常分為功能性接口和數(shù)據(jù)性接口块茁,功能性接口主要為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)功能齿坷,接口背后都是獨(dú)立的業(yè)務(wù)邏輯塊,通常我們需要畫出模塊業(yè)務(wù)流程圖数焊,然后通過給接口配置多組不同的測(cè)試數(shù)據(jù)來(lái)覆蓋流程圖中的不同路徑永淌;而數(shù)據(jù)接口更多地是為了數(shù)據(jù)傳輸,測(cè)試需要關(guān)注數(shù)據(jù)傳輸中的正確性佩耳、完整性遂蛀、及加密等特殊場(chǎng)景
由于接口測(cè)試需要在整個(gè)業(yè)務(wù)邏輯完成之后才能進(jìn)行,因此干厚,建議提前引入“單元測(cè)試”李滴,即從一個(gè)方法、一個(gè)函數(shù)等程序中的最小可測(cè)單元開始測(cè)試
(3)數(shù)據(jù)層:數(shù)據(jù)層往往不需要單獨(dú)測(cè)試蛮瞄,而是與接口集成在一起測(cè)試所坯。舉個(gè)例子:系統(tǒng)有兩個(gè)接口,A用來(lái)創(chuàng)建表單挂捅,表單包含4個(gè)字段信息芹助。B用來(lái)查看表單,其中1個(gè)字段加密顯示。而在數(shù)據(jù)庫(kù)中状土,除了表單的4個(gè)字段之外无蜂,還有2個(gè)新字段作為業(yè)務(wù)邏輯的過程值。因此蒙谓,測(cè)試時(shí)斥季,首先,我們需要測(cè)試A接口的創(chuàng)建邏輯累驮,當(dāng)接口返回成功時(shí)泻肯,去數(shù)據(jù)庫(kù)查看存儲(chǔ)的4個(gè)數(shù)據(jù)是否與接口入?yún)⒁恢拢虚g值的2個(gè)字段是否與預(yù)期一致慰照。其次灶挟,測(cè)試B接口的查看邏輯,接口返回?cái)?shù)據(jù)時(shí)毒租,與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比較稚铣,以驗(yàn)證數(shù)據(jù)的邏輯處理效果。
除了對(duì)每一層單獨(dú)進(jìn)行測(cè)試墅垮,我們還需要測(cè)試各層之間的集成惕医,這被稱為端到端測(cè)試。
(1)基于UI的端到測(cè)試:模擬用戶在頁(yè)面進(jìn)行一次操作引發(fā)的請(qǐng)求算色,驗(yàn)證請(qǐng)求從表現(xiàn)層最終到達(dá)數(shù)據(jù)層的過程中抬伺,業(yè)務(wù)邏輯、數(shù)據(jù)傳輸與存儲(chǔ)的正確性灾梦。它更像一種前后端之間的集成測(cè)試峡钓。
(2)基于業(yè)務(wù)流程的端到端:測(cè)試用戶從某個(gè)業(yè)務(wù)起點(diǎn)到終點(diǎn)所引發(fā)的一系列請(qǐng)求,從表現(xiàn)層到數(shù)據(jù)層的處理過程邏輯及數(shù)據(jù)轉(zhuǎn)換
那么若河,在使用測(cè)試分層框架指導(dǎo)測(cè)試時(shí)能岩,如何才能做到適時(shí)、適量萧福、精準(zhǔn)呢拉鹃?
適時(shí):就是指我們?cè)谕瓿擅恳粚拥拇a開發(fā)之后,立即開始這一層的測(cè)試鲫忍,而在完成每一層的集成之后膏燕,立即開始集成測(cè)試或端到端測(cè)試
適量:從業(yè)務(wù)邏輯層到表現(xiàn)層,隨著測(cè)試的依賴越來(lái)越多悟民、邏輯和數(shù)據(jù)越來(lái)越復(fù)雜坝辫,測(cè)試的成本會(huì)逐漸增高,測(cè)試進(jìn)度也相對(duì)滯后逾雄,因此要盡可能對(duì)較細(xì)顆粒度的測(cè)試進(jìn)行更高程度的覆蓋阀溶,而不是每一層都追求100%覆蓋
精準(zhǔn):越往底層的測(cè)試越接近代碼,測(cè)試成本更低鸦泳、執(zhí)行速度更快银锻、定位問題也更準(zhǔn)確,但是不能突顯出完整的價(jià)值鏈做鹰;越往上層的測(cè)試越接近業(yè)務(wù)击纬,更能反應(yīng)業(yè)務(wù)價(jià)值,但有著不夠穩(wěn)定钾麸、執(zhí)行速度慢更振、問題定位難等不足。因此饭尝,要明確每一層的特點(diǎn)和測(cè)試目標(biāo)肯腕,避免各層之間對(duì)相同的點(diǎn)進(jìn)行重復(fù)測(cè)試,產(chǎn)生冗余钥平。比如实撒,一個(gè)用來(lái)做除法的功能,我們?cè)诮涌跍y(cè)試中進(jìn)行了分母為0的異常測(cè)試涉瘾,就沒有必要在基于UI的端到端測(cè)試中重新測(cè)試一遍
雖然理想情況下知态,我們希望分層測(cè)試的覆蓋情況呈金字塔結(jié)構(gòu),但隨著技術(shù)架構(gòu)立叛、系統(tǒng)特點(diǎn)负敏、質(zhì)量要求、團(tuán)隊(duì)技能水平等因素的不同秘蛇,每種測(cè)試的比例也不盡相同其做,它很有可能呈現(xiàn)出蜂巢等其它結(jié)構(gòu)。因此赁还,需要根據(jù)項(xiàng)目具體情況庶柿,來(lái)確定每層測(cè)試的比例。
03?總結(jié)
探索性測(cè)試和精益測(cè)試都可以被認(rèn)為是一種測(cè)試思想秽浇,而并非某一種具體的測(cè)試項(xiàng)目或測(cè)試技術(shù)浮庐。既然是思想,就完全可以被應(yīng)用于編寫測(cè)試策略柬焕、設(shè)計(jì)自動(dòng)化測(cè)試审残、或者進(jìn)行功能測(cè)試、性能測(cè)試斑举、兼容性測(cè)試等某一種具體的測(cè)試項(xiàng)中搅轿。
探索性測(cè)試幫助測(cè)試人員發(fā)散和拓展思路,發(fā)現(xiàn)更多關(guān)于產(chǎn)品的質(zhì)量問題富玷。而精益測(cè)試恰好幫助其進(jìn)行有效收斂璧坟,將測(cè)試做到適時(shí)既穆、適量和精準(zhǔn),讓測(cè)試做到恰到好處從而減少浪費(fèi)雀鹃。兩者相輔相成幻工、起到良好的杠桿作用。
在我看來(lái)黎茎,對(duì)于To B類型的產(chǎn)品囊颅,系統(tǒng)用戶只有幾個(gè)人,他們更關(guān)心的是產(chǎn)品能不能幫助他完成業(yè)務(wù)傅瞻、從而來(lái)帶利潤(rùn)踢代。他們對(duì)產(chǎn)品質(zhì)量的容忍性高、對(duì)系統(tǒng)易用性的訴求也不夠強(qiáng)烈嗅骄。因此胳挎,運(yùn)用精益測(cè)試,有助于更高效地交付產(chǎn)品溺森。
而對(duì)于To C類的產(chǎn)品串远,用戶往往千奇百怪,訴求也天馬行空儿惫,產(chǎn)品中任何一個(gè)不太好用的點(diǎn)都可能讓其失去一個(gè)用戶澡罚。因此,To C類產(chǎn)品就是探索性測(cè)試大展身手的時(shí)候了肾请。
對(duì)于探索性測(cè)試和精益測(cè)試留搔,你怎么看呢?歡迎留言給我铛铁!
延伸閱讀:
《“探索性測(cè)試”在敏捷項(xiàng)目中的運(yùn)用》
《精益測(cè)試》
《ThoughWorks敏捷測(cè)試第三講:精益測(cè)試》(https://app.ma.scrmtech.com/meetings-api/sapIndex/SapSourceData?pf_uid=7019_1254&sid=16238&source=2&pf_type=3&channel_id=779&channel_name=insights&tag_id=7066157a5b2dd0c0&appid=wx4bd00f95dd7c7ca1)
微信掃描以下二維碼隔显,關(guān)注七姑娘日記