敏捷方法在测试计划中的应用
在 Agile Testing Days 2015大會(huì)上,Eddy Bruin和 Ray Oei解釋了如何在不編寫大型測(cè)試計(jì)劃的情況下,滿足干系人對(duì)測(cè)試用例、測(cè)試計(jì)劃和其它測(cè)試工件的需求。\
InfoQ就測(cè)試計(jì)劃在敏捷中的應(yīng)用、如何讓干系人意識(shí)到他們能夠影響質(zhì)量,以及他們推薦的敏捷測(cè)試實(shí)踐問(wèn)題對(duì) Bruin和 Oei進(jìn)行了采訪。\
InfoQ:在瀑布或者敏捷項(xiàng)目中您覺(jué)得測(cè)試計(jì)劃有什么問(wèn)題?這些問(wèn)題相似或者不同嗎?\
\Eddy Bruin:我記得我對(duì)我編寫的第一個(gè)主測(cè)試計(jì)劃非常滿意。我覺(jué)得一切都一目了然。編寫這份測(cè)試計(jì)劃花費(fèi)了我一個(gè)月的時(shí)間,但我發(fā)現(xiàn)沒(méi)有人詳細(xì)閱讀這份計(jì)劃,我仍然需要為計(jì)劃中的許多內(nèi)容點(diǎn)爭(zhēng)論。如果當(dāng)時(shí)我花費(fèi)一個(gè)月的時(shí)間跟大家交流,邊測(cè)試邊解釋,那么我會(huì)更加的成功。就是那個(gè)時(shí)候我意識(shí)到編寫如此一個(gè)計(jì)劃非常的浪費(fèi)時(shí)間。\
從那時(shí)以來(lái),我收到過(guò)數(shù)份測(cè)試計(jì)劃并閱讀了它們。我的結(jié)論是大多數(shù)計(jì)劃包含的信息都是不相關(guān)和過(guò)時(shí)的,對(duì)產(chǎn)品質(zhì)量或者測(cè)試流程沒(méi)有幫助。它們太不靈活且費(fèi)時(shí)費(fèi)力。\
我發(fā)現(xiàn)敏捷中的測(cè)試計(jì)劃有個(gè)不同,他們會(huì)再一次解釋 Scrum的規(guī)則,然后嘗試以瀑布的方式在測(cè)試中進(jìn)行壓縮。在我看來(lái),它們都是一流的計(jì)劃,但是用在了錯(cuò)誤的敏捷過(guò)程中。\
Ray Oei:在我的定義里,測(cè)試計(jì)劃就是一份冗長(zhǎng)的文檔,遵循一些標(biāo)準(zhǔn)或模板。這些測(cè)試計(jì)劃的通病是花費(fèi)太長(zhǎng)的時(shí)間編寫,并且在大部分情況下,幾乎沒(méi)人閱讀。它更多的是一個(gè)過(guò)程工件而不是測(cè)試工件。許多我遇到的測(cè)試人員在嘗試遵循計(jì)劃時(shí)總是會(huì)遇到問(wèn)題,并受到“為了測(cè)試我需要做什么?”的困擾。并且某些時(shí)候你可能發(fā)現(xiàn)所有計(jì)劃的內(nèi)容或多或少相同,并不能真正幫助需要測(cè)試的內(nèi)容。因此,你試圖忽略它們。\
當(dāng)所謂的敏捷項(xiàng)目需要測(cè)試計(jì)劃時(shí),并且它已經(jīng)在我身上發(fā)生過(guò),這種情況有個(gè)明確的跡象是它不是敏捷環(huán)境。在這些案例中我曾遇到的一個(gè)問(wèn)題是有些人將工作方式強(qiáng)加給測(cè)試人員,首先因?yàn)闇y(cè)試階段的描述,所以他們將測(cè)試人員與團(tuán)隊(duì)隔離;其次與團(tuán)隊(duì)的努力建設(shè)沒(méi)有一點(diǎn)聯(lián)系。這不利于團(tuán)隊(duì)精神。
\InfoQ:在 Agile Testing Days大會(huì)上,您把您的演講叫做“Placebo Test Management”。您能解釋一下它的含義嗎?\
\Ray Oei:它描述的是由于我們交付的內(nèi)容與預(yù)期提供的解決方案相比,或多或少具有欺騙性(fake)所造成的影響。像在醫(yī)學(xué)方面,通常很有效果。它能造成控制錯(cuò)覺(jué)(illusion of control),這種錯(cuò)覺(jué)滿足了很多人。當(dāng)然,它也會(huì)引發(fā)一些反應(yīng)。我們不想欺騙或者僅僅讓管理者滿意。通常,在我們能夠以他們想要的方式交付價(jià)值之前,我們需要先建立一個(gè)共同的基礎(chǔ),使得看上去似乎在做預(yù)期的事情。展示有價(jià)值的結(jié)果才是關(guān)鍵,這樣有助于說(shuō)服人們相信事情能夠以與他們預(yù)期不同的方式完成。然而,這在流程-饑餓(process-hungry)環(huán)境中是一個(gè)很大的挑戰(zhàn)。\
Eddy Bruin:一年前當(dāng) Ray和我討論測(cè)試計(jì)劃的時(shí)候,我們得出結(jié)論,我們傾向于擁有解釋為什么、如何測(cè)試和測(cè)試什么的替代方案。然而,在某些情況下我們被告知需要基于公司模板交付一份測(cè)試計(jì)劃或者測(cè)試報(bào)告,“因?yàn)榱鞒虖?qiáng)迫我們這么做”。\
因?yàn)槲覀冋J(rèn)為這是一個(gè)錯(cuò)誤的觀點(diǎn),所以我和其他測(cè)試人員開始敷衍測(cè)試計(jì)劃。我們寄出無(wú)意義的測(cè)試計(jì)劃,僅僅交付無(wú)意義的模板,或者提交復(fù)活節(jié)彩蛋,目的是為了表明測(cè)試計(jì)劃不能用來(lái)提高測(cè)試或者測(cè)試未被合理解釋。然而這些行為確實(shí)能夠取悅負(fù)責(zé)監(jiān)護(hù)流程的管理者:項(xiàng)目經(jīng)理或者質(zhì)量流程管理者(很高興)看到流程被遵守。\
流程規(guī)定必須編寫測(cè)試計(jì)劃。如果管理者看到帶有“測(cè)試計(jì)劃”附件的郵件,他們會(huì)選中復(fù)選框。即使文檔中沒(méi)有內(nèi)容,流程遵循者也高興。很不幸在某些情況下會(huì)發(fā)生這種情況。我們意識(shí)到這些具有欺騙性的測(cè)試計(jì)劃觸發(fā)了安慰劑效應(yīng)。我們就是這么杜撰“安慰劑測(cè)試管理(placebo test management)”短語(yǔ)的。
\InfoQ:您覺(jué)得在敏捷中還需要測(cè)試計(jì)劃嗎?它們能起到什么作用?\
\Eddy Bruin:計(jì)劃對(duì)測(cè)試而言其本身是一個(gè)有用的工件。它能夠塑造上下文,能夠?qū)ξ覀冏约汉推渌私忉屛覀儗⑷绾螌?shí)施測(cè)試。我的問(wèn)題是編寫的計(jì)劃所包含的信息已經(jīng)可以獲取并且不斷變化,因此編寫這么一份計(jì)劃是低效率的。像在哪種測(cè)試環(huán)境下測(cè)試和覆蓋哪種風(fēng)險(xiǎn)這種實(shí)用性值得擁有和溝通。同樣協(xié)議中的測(cè)試范圍(比如我們對(duì)哪種瀏覽器進(jìn)行測(cè)試)很容易寫下來(lái)。\
然而,Scrum框架已經(jīng)為此提供了一個(gè)有用的工件:完成的定義(DoD)。這份文檔會(huì)發(fā)生變化,更重要的是它是溝通的象征(token of conversation)。“溝通的象征”的意思是 DoD僅僅是伴隨故事的一種結(jié)果,一種陳述。只有在溝通中我們才能描述故事,而不僅僅是給每個(gè)人發(fā)送一份 DoD副本。也就是說(shuō),我確實(shí)喜歡擁有合適的測(cè)試遠(yuǎn)景文檔。它可以是一份 PPT或者思維圖。測(cè)試文檔跟 DoD一樣會(huì)發(fā)生變化。例如保持團(tuán)隊(duì)敏捷從而允許在回顧中改變文檔。\
Ray Oei:這取決于你對(duì)測(cè)試計(jì)劃的定義。在傳統(tǒng)形式下,我會(huì)說(shuō)不需要。\
在我看來(lái),完成的定義包含了一部分計(jì)劃。在一定程度上用戶故事本身由業(yè)務(wù)所描述:為用戶故事定義的驗(yàn)收標(biāo)準(zhǔn),可能存在的整體約束,產(chǎn)品需要的工作環(huán)境,終端用戶等等。我們可以找到許多方式在團(tuán)隊(duì)內(nèi),與PO和干系人進(jìn)行溝通。例如,我自己就喜歡思維圖,但是 BDD也非常的有用。最后,這取決于具體環(huán)境。沒(méi)有明確的針對(duì)所有事情的解決方案。在這方面,與我們不同的“醫(yī)學(xué)(medicines)”概念始終是正確的:你必須尋找能夠在具體環(huán)境下起作用的東西。反復(fù)試驗(yàn),檢查并調(diào)整。這不就是敏捷嗎?
\InfoQ:您能詳細(xì)說(shuō)明如何和敏捷一起使用測(cè)試管理方法(TMap)類型的測(cè)試計(jì)劃?\
\Ray Oei:正如我在我的演講中解釋的,它更多的是一種木馬病毒而不是安慰劑。在我的案例中,外部項(xiàng)目組織堅(jiān)持需要文檔。但是文檔內(nèi)容經(jīng)過(guò)定制以支持開發(fā)團(tuán)隊(duì)正在探索的敏捷倡議。因此,我描述了啟發(fā)式測(cè)試策略模型(來(lái)自 James Bach),用來(lái)解釋我們將生成測(cè)試用例的方法和基于會(huì)話的測(cè)試管理(來(lái)自 Joh Bach)——管理者尤其“鐘愛(ài)”“管理(management)”一詞,此外還用此來(lái)描述我們將組織測(cè)試的方法。當(dāng)然,整個(gè)過(guò)程就是著名的 Scrum循環(huán)圖。它被大眾接受。并且當(dāng)我被問(wèn)到什么時(shí)候測(cè)試用例可以準(zhǔn)備妥當(dāng)?shù)臅r(shí)候,我可以指著商定的方案并解釋說(shuō)所有的事情都在按部就班的前進(jìn)。
\InfoQ:您有哪些案例可以說(shuō)明您是如何讓干系人意識(shí)到他們能夠影響質(zhì)量的?\
\Eddy Bruin:在這方面關(guān)鍵在于參與。幾年前,一個(gè)業(yè)務(wù)經(jīng)理告訴我“我們需要更多的測(cè)試用例!請(qǐng)您把它們寫進(jìn)測(cè)試計(jì)劃。”我回復(fù)到,請(qǐng)問(wèn)您需要更多測(cè)試用例的原因是什么。“否則我們?nèi)绾瘟私庀到y(tǒng)的質(zhì)量?另外我需要維護(hù)軟件。我想知道它的反應(yīng)。”\
很明顯,業(yè)務(wù)經(jīng)理和他的團(tuán)隊(duì)需要兩件事:1)對(duì)產(chǎn)品質(zhì)量的自信和 2)了解產(chǎn)品是如何運(yùn)作的。從那時(shí)起,我邀請(qǐng)他的團(tuán)隊(duì)參加 Sprint評(píng)審,評(píng)審后用一個(gè)小時(shí)的時(shí)間和他們一起測(cè)試。事實(shí)證明他們都是非常優(yōu)秀的測(cè)試人員,自從我引導(dǎo)他們學(xué)習(xí)系統(tǒng)后,我再也沒(méi)有收到編寫測(cè)試用例的請(qǐng)求。除此之外,在 Sprint評(píng)審期間他們提供了更多的反饋,這些反饋著實(shí)提高了質(zhì)量。在我目前的工作中,我們非常重視 Sprint評(píng)審,我們認(rèn)真準(zhǔn)備評(píng)審,這樣人們可以自己操作產(chǎn)品,在迭代中針對(duì)固定領(lǐng)域提供反饋。\
Sprint評(píng)審的幾點(diǎn)思路:\
- 創(chuàng)建活動(dòng)掛圖,參與者可以在上面留下自己的反饋。也可以是積極的反饋!(在演講中你可以看到一個(gè)類似的活動(dòng)掛圖的案例。) \
- 準(zhǔn)備測(cè)試數(shù)據(jù),并打印出來(lái)。 \
- 有多個(gè)可用的設(shè)備和工作站,這樣人們可以檢查你的產(chǎn)品 \
- 邀請(qǐng)人們自己操作應(yīng)用(不要僅僅展示)
Ray Oei:與干系人交流,要有耐心不要害怕重復(fù)。不是每個(gè)干系人都希望或者覺(jué)得有參與的必要,他們僅僅想要一個(gè)可工作的產(chǎn)品。通常有幫助的是演示,更多的是演示之后的討論。讓干系人體驗(yàn)到他們的投入得到了使用和欣賞非常的重要。給他們機(jī)會(huì)分享他們的假設(shè)、期望和需求。如果可能給他們?nèi)旌虻漠a(chǎn)品訪問(wèn)權(quán)限。讓他們測(cè)試。當(dāng)然這也是有風(fēng)險(xiǎn)的。如果產(chǎn)品過(guò)分不穩(wěn)定,你可能不會(huì)獲得干系人的信任;結(jié)果可能與預(yù)期相反。不幸的是,在干系人參與都成問(wèn)題的情況下,通常最終結(jié)果也會(huì)讓他們失望。
\InfoQ:您有案例說(shuō)明如何在敏捷中計(jì)劃測(cè)試嗎?\
\Eddy Bruin:如果你的工作環(huán)境是 Scrum,所有測(cè)試最好在開發(fā)軟件的迭代過(guò)程中完成。我發(fā)現(xiàn)現(xiàn)實(shí)往往相反。向敏捷過(guò)渡的企業(yè)其很多的測(cè)試階段并沒(méi)有簡(jiǎn)單的消失。端到端測(cè)試和性能測(cè)試通常在 Sprint之后實(shí)施。我所追求的是不斷地讓測(cè)試負(fù)責(zé)人參與進(jìn)來(lái),并向他們展示如何可以更早地執(zhí)行這些測(cè)試。歸根結(jié)底都是為了盡可能快地縮短反饋環(huán)。如果我們的軟件在市場(chǎng)上有助于實(shí)現(xiàn)業(yè)務(wù)目標(biāo),那么軟件就應(yīng)該視為一個(gè)解決方案,因此我們?cè)皆缬锌晒ぷ鞯能浖?#xff0c;就越早可以測(cè)試。\
業(yè)務(wù)經(jīng)理要求在測(cè)試計(jì)劃中體現(xiàn)更多測(cè)試用例(后期反饋)的故事與業(yè)務(wù)經(jīng)理參與每?jī)芍芤淮蔚?Sprint評(píng)審兩者之間的對(duì)比就是縮短反饋環(huán)的案例。另一個(gè)案例是不要等到演示的時(shí)候才去展示產(chǎn)品。一個(gè)可替代的方案是每做完一些測(cè)試,就向團(tuán)隊(duì)或者產(chǎn)品負(fù)責(zé)人詢問(wèn)結(jié)果。\
Ray Oei:我試圖圍繞一個(gè)故事、期望的產(chǎn)品或者任何看上去重要的東西發(fā)現(xiàn)盡可能多的問(wèn)題。創(chuàng)建一個(gè)我們正在構(gòu)建產(chǎn)品的模型,和思維圖有助于我組織測(cè)試。提出問(wèn)題。如果可能的話調(diào)查研究。我發(fā)現(xiàn)當(dāng)我聽到程序員討論事情的時(shí)候,我經(jīng)常想起一些需要測(cè)試的內(nèi)容。我會(huì)遍歷代碼。當(dāng)有人告訴我,我不需要因?yàn)橐恍┎幻髟驒z查代碼時(shí),那么我肯定會(huì)看一眼代碼。那是一個(gè)“計(jì)劃”嗎?如果你認(rèn)為計(jì)劃是開始測(cè)試前對(duì)某個(gè)時(shí)期的設(shè)想,那么它就不是的。但是我又有測(cè)試的想法,并且我在努力嘗試執(zhí)行這些想法。而且說(shuō)實(shí)話,事情的發(fā)展并不總是跟我預(yù)料的一樣。有時(shí)在我有時(shí)間組織它們之前,我的一些想法已經(jīng)過(guò)時(shí)了。我認(rèn)為我的主要指導(dǎo)計(jì)劃就一個(gè)問(wèn)題:“現(xiàn)在或者未來(lái),這重要嗎?”。
\InfoQ:有沒(méi)有一些您想推薦的具體的敏捷測(cè)試實(shí)踐?\
\Eddy Bruin:有一大堆的敏捷測(cè)試實(shí)踐:結(jié)對(duì)編程、實(shí)例化需求(ATDD/BDD)、TDD、大量的啟發(fā)式測(cè)試等等。對(duì)我而言總是非常優(yōu)秀的一個(gè)實(shí)踐是在所有測(cè)試活動(dòng)中進(jìn)行溝通。當(dāng)規(guī)劃測(cè)試、匯報(bào)測(cè)試和解決bug,甚至是當(dāng)展示我們實(shí)際意圖構(gòu)建的產(chǎn)品和應(yīng)該給公司帶來(lái)什么產(chǎn)品時(shí),我總是努力盡可能地透明化。為此我最常用的策略是擁有盡可能多的信息輻射體。墻上的活動(dòng)掛圖、白板和便利貼越多,開始溝通就越容易。\
Ray Oei:不是具體的敏捷測(cè)試實(shí)踐。我認(rèn)為關(guān)鍵是溝通:交談與傾聽。或者更好的是:提出問(wèn)題,并花時(shí)間傾聽和理解。了解相關(guān)的領(lǐng)域和業(yè)務(wù),和使用的技術(shù)。了解你共事的成員。同樣發(fā)現(xiàn)你自己在那的角色和行為。我們傾向著眼于別人,認(rèn)為他們應(yīng)該/可以/必須完成的更好——但是你自己呢?\
展示你正在做什么,已經(jīng)做了什么。甚至如果需要,展示你犯錯(cuò)的地方。這有助于建立信任。這方面并不是航天器學(xué),沒(méi)那么復(fù)雜。雖然,作為技術(shù)人員,我認(rèn)為航天器學(xué)比人文科學(xué)更加容易。
\關(guān)于受訪者
\從2008年開始 Eddy Bruin 一直充當(dāng)測(cè)試顧問(wèn)的角色。他熱衷于敏捷、測(cè)試、易用性和移動(dòng)領(lǐng)域。他幫助組織實(shí)現(xiàn)反饋環(huán)從而交付更好的產(chǎn)品。作為敏捷測(cè)試教練,Eddy喜歡提供敏捷測(cè)試培訓(xùn),喝著特制啤酒討論話題。目前 Eddy是一家國(guó)際速遞的測(cè)試技術(shù)總監(jiān)。\
Ray Oei 是一名經(jīng)驗(yàn)豐富的敏捷教練和有扎實(shí)編程技術(shù)的測(cè)試員。他能夠從不斷學(xué)習(xí)新事物中獲得能量,包括但不限于軟件測(cè)試行業(yè)。Ray是 DEWT(Dutch Exploratory Workshop on Testing)的創(chuàng)辦成員,軟件測(cè)試協(xié)會(huì)(AST)成員,AST BBST課程的首席教官,TestNet工作組培訓(xùn)\u0026amp;教練成員。他是 AVG創(chuàng)新實(shí)驗(yàn)室的 QA團(tuán)隊(duì)主管。
\查看英文原文:Agile Approaches in Test Planning
總結(jié)
以上是生活随笔為你收集整理的敏捷方法在测试计划中的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [Bootstrap]全局样式(四)
- 下一篇: 调试U-Boot笔记(三)