




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、前言 如果您已經(jīng)閱讀過(guò)敏捷測(cè)試系列文章的第一篇,敏捷的實(shí)質(zhì),您應(yīng)該已經(jīng)了解敏捷的定義,了解什么樣的團(tuán)隊(duì)是敏捷的團(tuán)隊(duì)了。而您也可能早已開(kāi)始思考,什么是敏捷測(cè)試的實(shí)質(zhì)?敏捷的測(cè)試團(tuán)隊(duì)又是如何形成自我管理、自我發(fā)展的組織呢?測(cè)試團(tuán)隊(duì)又是如何安排日常工作呢?敏捷測(cè)試活動(dòng)與傳統(tǒng)測(cè)試活動(dòng)有很大差異嗎?為了進(jìn)一步讓您了解如何將敏捷原則運(yùn)用到活生生的日常測(cè)試活動(dòng)中,我們?yōu)槟扑]敏捷測(cè)試系列文章的第二篇敏捷測(cè)試的實(shí)踐。 在敏捷活動(dòng)如火如荼的推廣運(yùn)
2、動(dòng)中,我們顯然無(wú)法預(yù)知如何在您的特定的復(fù)雜環(huán)境中您能否最后達(dá)成所愿,也無(wú)法為您預(yù)測(cè)出前進(jìn)道路的分岔口可能唯一的正確的線(xiàn)路,我們卻可以為您點(diǎn)起一盞明亮“街燈”,在這迷霧中驅(qū)除黑暗。我們將為您提供一個(gè)可以借鑒和可供參考的成功的敏捷測(cè)試實(shí)踐案例。我們將逐一向您介紹、分析這個(gè)案例中的敏捷團(tuán)隊(duì)的組織結(jié)構(gòu),主要的敏捷測(cè)試行為,迭代的測(cè)試模型和一套以四周為周期的敏捷測(cè)試活動(dòng)時(shí)間表。 請(qǐng)您運(yùn)用您已具備的敏捷實(shí)質(zhì)、敏捷原則的知識(shí),并結(jié)合您的獨(dú)特項(xiàng)目環(huán)境、帶著您的問(wèn)題,與筆者一起再度分析這個(gè)案例,希望您最終也能得到滿(mǎn)意的答案,并隨
3、后開(kāi)始實(shí)施部署敏捷測(cè)試。敏捷測(cè)試的實(shí)質(zhì) 測(cè)試不僅僅是測(cè)試軟件本身,還包括軟件測(cè)試的過(guò)程和模式。產(chǎn)品發(fā)布后才發(fā)現(xiàn)很多問(wèn)題,很可能是軟件開(kāi)發(fā)過(guò)程出了問(wèn)題。因此測(cè)試除了需要確保軟件的質(zhì)量,即軟件做了正確的事情,以及軟件做了應(yīng)該做的事情以外,敏捷的測(cè)試團(tuán)隊(duì)還要保證整個(gè)軟件開(kāi)發(fā)過(guò)程是正確的。 敏捷開(kāi)發(fā)的最大特點(diǎn)是高度迭代,有周期性,并且能夠及時(shí)、持續(xù)的響應(yīng)客戶(hù)的頻繁反饋。敏捷測(cè)試即是不斷修正質(zhì)量指標(biāo),正確建立測(cè)試策略,確認(rèn)客戶(hù)的有效需求得
4、以圓滿(mǎn)實(shí)現(xiàn)和確保整個(gè)生產(chǎn)的過(guò)程安全的、及時(shí)的發(fā)布最終產(chǎn)品。敏捷測(cè)試人員因而需要在活動(dòng)中關(guān)注產(chǎn)品需求,產(chǎn)品設(shè)計(jì),解讀源代碼;在獨(dú)立完成各項(xiàng)測(cè)試計(jì)劃、測(cè)試執(zhí)行工作的同時(shí),敏捷測(cè)試人員需要參與幾乎所有的團(tuán)隊(duì)討論,團(tuán)隊(duì)決策。作為一名優(yōu)秀的敏捷測(cè)試人員,他(她)需要在有限的時(shí)間內(nèi)完成更多的測(cè)試的準(zhǔn)備和執(zhí)行,并富有極強(qiáng)的責(zé)任心和領(lǐng)導(dǎo)力。更重要的是,優(yōu)秀的測(cè)試人員需要能夠擴(kuò)展開(kāi)來(lái)做更多的與測(cè)試或許無(wú)關(guān),但與團(tuán)隊(duì)共同目標(biāo)直接相關(guān)的工作。他(她)將幫助團(tuán)隊(duì)其他成員解決困難、幫助實(shí)現(xiàn)其預(yù)期目標(biāo),發(fā)揚(yáng)高度協(xié)作精神以幫助團(tuán)隊(duì)的最終獲取成功。需要指出的是,團(tuán)隊(duì)的高度協(xié)作既需要團(tuán)隊(duì)成員的勇敢,更需要團(tuán)隊(duì)成員的主動(dòng)配合和幫
5、助。對(duì)于測(cè)試人員如此,對(duì)于開(kāi)發(fā)、設(shè)計(jì)人員,其他成員也是如此。敏捷測(cè)試的方法與實(shí)踐 是的,敏捷測(cè)試也需要高度迭代工作、頻繁得到 STAKEHOLDER、客戶(hù)的反饋,需要?jiǎng)討B(tài)調(diào)整測(cè)試計(jì)劃、測(cè)試的執(zhí)行。并且,敏捷測(cè)試人員參與到了更多的敏捷生產(chǎn)活動(dòng)中,積極的影響了團(tuán)隊(duì)做出的決定和計(jì)劃。 是的,“人”才是敏捷的實(shí)體,敏捷測(cè)試也是以人為本的。不難理解,“敏捷”的一切都圍繞著人展開(kāi),如敏捷鼓勵(lì)直接,平行的溝通;敏捷需要持續(xù)的客戶(hù)反饋以及敏捷活
6、動(dòng)的設(shè)計(jì),方案和決策需要團(tuán)隊(duì)協(xié)同制定等等,敏捷測(cè)試需要一支非同尋常的團(tuán)隊(duì),不同于以往傳統(tǒng)開(kāi)發(fā)模式下的團(tuán)隊(duì)結(jié)構(gòu)。關(guān)于敏捷團(tuán)隊(duì)、敏捷測(cè)試團(tuán)隊(duì)的組成和介紹,將是我們講述敏捷測(cè)試實(shí)踐的第一步。 “人”是重心,方法、策略是輔。為了適應(yīng)不同的團(tuán)隊(duì)結(jié)構(gòu),不同的項(xiàng)目環(huán)境,敏捷項(xiàng)目和敏捷活動(dòng)的實(shí)踐也應(yīng)該因“人”而異,但是,并不是說(shuō)可以天馬行空,我行我素。一旦脫離了正確的敏捷方法、和敏捷原則的指導(dǎo),我們的敏捷活動(dòng)就好比摸黑前行了。 這正是我們需要學(xué)
7、習(xí)前輩和敏捷主義大師們的經(jīng)驗(yàn)意義所在了,筆者在過(guò)去的實(shí)踐中受益頗多的也正是前人的實(shí)踐經(jīng)驗(yàn)和方法。因此,學(xué)習(xí)前人的經(jīng)驗(yàn)和方法,并運(yùn)用這些最佳實(shí)踐來(lái)幫助敏捷開(kāi)發(fā)團(tuán)隊(duì),甚至是傳統(tǒng)團(tuán)隊(duì)來(lái)解決時(shí)下重要的問(wèn)題是十分有意義的事情。筆者不敢妄自尊大將自己的一般實(shí)踐納入經(jīng)典方法范疇,但經(jīng)歷了兩年的研究和改進(jìn),筆者提出的敏捷測(cè)試的原則也得到了業(yè)內(nèi)同僚和“大師”的普遍認(rèn)可。經(jīng)過(guò)多次和其他項(xiàng)目團(tuán)隊(duì)的經(jīng)驗(yàn)交流,我們也不斷的改進(jìn)著我們的原則、方法。因此,筆者要非常感謝參與討論的同僚們,沒(méi)有你們的熱情參與,也不會(huì)有今天的筆者信心百倍的執(zhí)筆了。正如筆者在借鑒了前人的成功案例中的經(jīng)驗(yàn)和方法之后定制了符合項(xiàng)目需求的測(cè)試原則一樣,
8、相信,讀者們?cè)陂喿x了筆者的敏捷測(cè)試原則和方法后,同樣也會(huì)有所收獲。而對(duì)筆者經(jīng)歷的敏捷實(shí)踐活動(dòng)中的方法和測(cè)試模型的講解將成為我們講述敏捷實(shí)踐的第二步,也是本文的重點(diǎn)。 綜上所述,筆者將運(yùn)用本文的主要篇幅為大家講解這個(gè)敏捷實(shí)踐。它們是: 敏捷團(tuán)隊(duì)組織構(gòu)成,敏捷測(cè)試團(tuán)隊(duì)的任務(wù)和使命; 敏捷開(kāi)發(fā)團(tuán)隊(duì)以測(cè)試為驅(qū)動(dòng)的開(kāi)發(fā)方式測(cè)試驅(qū)動(dòng)開(kāi)發(fā),這是種獨(dú)
9、特的測(cè)試?還是開(kāi)發(fā)? 遞增型的迭代測(cè)試,它首先是對(duì)敏捷測(cè)試過(guò)程活動(dòng)和生命周期模型的介紹,通過(guò)學(xué)習(xí)經(jīng)典的敏捷增量測(cè)試模型,我們將敏捷測(cè)試的各類(lèi)活動(dòng)有機(jī)的組合到了一起。在此之上,對(duì)定制后的獨(dú)特敏捷增量測(cè)試模型的分析和理解,幫助我們理解測(cè)試活動(dòng)的規(guī)劃和管理; 以及需要特別關(guān)注的遞增型迭代測(cè)試的關(guān)鍵活動(dòng)之一“靜態(tài)測(cè)試”;這也是筆者認(rèn)為的最高難度、最具影響力的敏捷測(cè)試活動(dòng)。它將測(cè)試團(tuán)隊(duì)最早的引入產(chǎn)品開(kāi)發(fā)環(huán)節(jié),測(cè)試人
10、員以第一用戶(hù)的角度判斷設(shè)計(jì)的有效性,此活動(dòng)較早的暴露了設(shè)計(jì)缺陷、避免了團(tuán)隊(duì)對(duì)目標(biāo)的不一致理解等,是測(cè)試活動(dòng)中最有創(chuàng)造性?xún)r(jià)值的部分; 最后,筆者將談?wù)劀y(cè)試活動(dòng)中的測(cè)試計(jì)劃和管理,即關(guān)于測(cè)試任務(wù)估計(jì),測(cè)試活動(dòng)計(jì)劃,各個(gè)重要測(cè)試活動(dòng)時(shí)間分配與安排的介紹。 然而,敏捷測(cè)試不是一蹴而就的,做到真正的敏捷,無(wú)論是從傳統(tǒng)測(cè)試模式向敏捷測(cè)試的過(guò)渡,還是組建全新的團(tuán)隊(duì)都是需要循序漸進(jìn)的,同時(shí)也需要團(tuán)隊(duì)成員的通力合作和不斷的
11、實(shí)踐來(lái)完善敏捷測(cè)試的實(shí)踐原則和方法。敏捷團(tuán)隊(duì) 考慮到敏捷團(tuán)隊(duì)的組織結(jié)構(gòu),讓我們以筆者親身經(jīng)歷的項(xiàng)目為例來(lái)說(shuō)明。筆者曾共事的整支產(chǎn)品開(kāi)發(fā)團(tuán)隊(duì)被劃分成 4 個(gè)相對(duì)獨(dú)立的敏捷開(kāi)發(fā)隊(duì)伍,而每支隊(duì)伍擁有相同配置的 7 名成員,他們分別具有不同的職能屬性。如圖 1 所示,每支敏捷隊(duì)伍組成成員角色包括 1 名 UCD(User Centered Designer),主要負(fù)責(zé)產(chǎn)品的主要設(shè)計(jì),其工作主要包括界面設(shè)計(jì)、用戶(hù)的用例設(shè)計(jì)等等; 1 名 Visual Designer,主要負(fù)責(zé)產(chǎn)品界面的色彩搭配、控件的外觀設(shè)計(jì)和 UCD
12、 界面設(shè)計(jì)方案的初步實(shí)現(xiàn)和美化;1 名 Information Developer,主要負(fù)責(zé)產(chǎn)品中信息的編輯和重要文檔的撰寫(xiě)工作; 3 名開(kāi)發(fā)人員,主要負(fù)責(zé)產(chǎn)品的實(shí)現(xiàn)。和 1 名 QA,主要負(fù)責(zé)產(chǎn)品質(zhì)量的保障。(更多的我們將 QA 定義為具有相比于測(cè)試人員擁有更多責(zé)任的一個(gè)職能,在本文中,為了簡(jiǎn)便起見(jiàn),我們?nèi)苑Q(chēng)之測(cè)試人員)。4 支敏捷的隊(duì)伍擁有相同的 SCRUM MASTER STAKEHOLDER。通常會(huì)在同一時(shí)間進(jìn)入一個(gè)迭代周期,制定各自的敏捷計(jì)劃,并在同一時(shí)間退出,發(fā)布各自功能實(shí)現(xiàn)。而 4 支隊(duì)伍的勞動(dòng)果實(shí)被集成到一起就形成了可發(fā)布的產(chǎn)品了。圖 1. 敏捷開(kāi)發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu) &
13、#160; 因?yàn)槊艚輬F(tuán)隊(duì)中只有 1 名測(cè)試人員,因此需要一臂承擔(dān)測(cè)試策略的制定,測(cè)試計(jì)劃,測(cè)試腳本,測(cè)試用例設(shè)計(jì)以及測(cè)試的執(zhí)行,幫助團(tuán)隊(duì)發(fā)現(xiàn)潛在問(wèn)題,并協(xié)助解決問(wèn)題的工作。敏捷團(tuán)隊(duì)的敏捷原則也是測(cè)試人員敏捷活動(dòng)的規(guī)范,測(cè)試也需要擁有和團(tuán)隊(duì)的良好溝通,高度迭代的活動(dòng)和不斷的獲得 STAKEHOLDER 的反饋。那團(tuán)隊(duì)的結(jié)構(gòu)與敏捷本身有什么直接關(guān)系呢?與敏捷測(cè)試又有多少關(guān)聯(lián)呢? 談到這里,想起曾經(jīng)有朋友向我咨詢(xún)有關(guān)敏捷團(tuán)隊(duì)的某些職能的人力配備的問(wèn)題。其實(shí),
14、筆者也無(wú)意論證 7 個(gè)人為什么是最佳組合,為什么不是 17 個(gè),20 個(gè)人的組合。但是,敏捷原則告訴我們敏捷團(tuán)隊(duì)是高度協(xié)同、民主和平等的團(tuán)隊(duì),為了讓團(tuán)隊(duì)中每個(gè)人充分高效的工作。相同職能下的組員至多不好超過(guò) 3 名,最佳配置也是不同職能下配置 1 個(gè)人頭。因此、在這樣一個(gè)小型、平行的組織結(jié)構(gòu)里,溝通更加易于建立,溝通復(fù)雜度也相對(duì)較低,相比 17、20 人的團(tuán)隊(duì)組織,溝通的代價(jià)也小很多。相反,很難想象在一個(gè)敏捷團(tuán)隊(duì)中會(huì)擁有諸多不同風(fēng)格的執(zhí)行者,決策者將是個(gè)怎樣的混亂情況。 此外,經(jīng)歷過(guò)敏捷測(cè)試的體驗(yàn),我們發(fā)現(xiàn)一個(gè)單
15、一的敏捷團(tuán)隊(duì)最好保持較小的“尺寸”。這是因?yàn)閾碛泻芏鄿y(cè)試人員的敏捷團(tuán)隊(duì)通常不但需要更大的實(shí)際工作量來(lái)匹配龐大的機(jī)體而導(dǎo)致團(tuán)隊(duì)任務(wù)量更巨大,更復(fù)雜,失去自我管理的信心,而每個(gè)測(cè)試人員也將要花費(fèi)大量精力和時(shí)間投入到內(nèi)部溝通,和可能因?yàn)閮?nèi)部缺乏一致而導(dǎo)致的更加頻繁的反復(fù)溝通中。 每名敏捷的測(cè)試人員需要和其他敏捷團(tuán)隊(duì)成員保持頻繁而必要的溝通以保證對(duì)目標(biāo),需求、設(shè)計(jì)的充分正確的理解,對(duì)需求變化能夠迅速的做出反應(yīng)。另外,還需要與職能隊(duì)伍中的其他測(cè)試成員保持一致性。如此一來(lái),溝通代價(jià)激增了,它將占到測(cè)試人員的工作中的較大比例
16、。而這種內(nèi)部溝通、協(xié)調(diào),卻不能定義為敏捷的 Backlog 項(xiàng)目來(lái)計(jì)入團(tuán)隊(duì)整體的工作輸出。因此,整體的測(cè)試效率并不一定隨著人力資源的投入而遞增。非但沒(méi)有實(shí)現(xiàn)敏捷原則,而恐怕因?yàn)閳F(tuán)隊(duì)的組織結(jié)構(gòu)變得更加龐雜。所謂的“自我管理、自我發(fā)展”的團(tuán)隊(duì)只能因而依靠傳統(tǒng)的管理和規(guī)劃了。筆者認(rèn)為,除了因?yàn)樘厥怆A段,特殊時(shí)期,敏捷團(tuán)隊(duì)需要“聚合”更多資源來(lái)一并解決存在的高優(yōu)先級(jí)的體力型問(wèn)題外,敏捷的團(tuán)隊(duì)?wèi)?yīng)該盡量保持著較小的“尺寸”。 果真項(xiàng)目投入了很多的人力資源,無(wú)論設(shè)計(jì)還是實(shí)現(xiàn)、測(cè)試團(tuán)隊(duì)擁有較大的人數(shù),那么我們應(yīng)該考慮將這樣的團(tuán)
17、隊(duì)可以分得更小些,工作量也相應(yīng)分得更精細(xì)些,直至接近我們建議的最佳組合。至少我們認(rèn)為要做好敏捷測(cè)試,就要確保敏捷團(tuán)隊(duì)中的每一個(gè)職能擁有足夠清晰的職責(zé)范圍和一定程度下自由空間和在這個(gè)空間內(nèi)的充分授權(quán)。因此,但從人數(shù)和職能構(gòu)成上,敏捷團(tuán)隊(duì)的構(gòu)成一定是不可忽略的重點(diǎn)。 正像我們前面提到的,確認(rèn)軟件開(kāi)發(fā)過(guò)程的正確性也尤為重要,因此作為敏捷的測(cè)試人員,更要了解敏捷的過(guò)程,比如說(shuō),測(cè)試人員需要幫助 UCD 和開(kāi)發(fā)人員確定需求的可行性,測(cè)試人員要督促開(kāi)發(fā)人員及時(shí)發(fā)布 build,以保障迭代結(jié)果最終能夠在通過(guò)足夠的測(cè)試后成功發(fā)
18、布等。在 build 發(fā)布后,測(cè)試人員要首先驗(yàn)證當(dāng)前迭代的任務(wù)是否已經(jīng)完成,其次才是驗(yàn)證產(chǎn)品功能的正確性。也為了能夠在日后重復(fù)性和體力型勞動(dòng)中解放出寶貴的時(shí)間去覆蓋測(cè)試更加緊要的內(nèi)容,如可用性,全球化等,測(cè)試人員需要自動(dòng)化一部分測(cè)試,創(chuàng)新的、靈活的工作。 敏捷團(tuán)隊(duì)是自我管理的團(tuán)隊(duì),高度協(xié)作的團(tuán)隊(duì),質(zhì)量目標(biāo)即是測(cè)試團(tuán)隊(duì)也是整個(gè)開(kāi)發(fā)團(tuán)隊(duì)追求的目標(biāo),因此開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)將做好單元測(cè)試,設(shè)計(jì)團(tuán)隊(duì)將幫助測(cè)試團(tuán)隊(duì)設(shè)計(jì)好測(cè)試用例作為計(jì)劃內(nèi)的一項(xiàng)工作。這里我們推廣、建議開(kāi)發(fā)人員采用、普及測(cè)試驅(qū)動(dòng)開(kāi)發(fā)模式。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
19、160; 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)表現(xiàn)出迭代開(kāi)發(fā)的最核心的就是開(kāi)發(fā)人員自己能夠第一時(shí)間確認(rèn)其需求得到了正確實(shí)現(xiàn),而當(dāng)單元測(cè)試覆蓋了更多的內(nèi)容,代碼質(zhì)量也將得到提高。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的指導(dǎo)思想就是讓開(kāi)發(fā)人員在編寫(xiě)功能代碼之前,先根據(jù)需求編寫(xiě)測(cè)試代碼。先思考如何對(duì)將要實(shí)現(xiàn)的功能進(jìn)行驗(yàn)證,并完成單元測(cè)試腳本的編寫(xiě),然后編寫(xiě)足夠,僅僅足夠的功能代碼滿(mǎn)足這些測(cè)試用例,直至通過(guò)測(cè)試。按照這個(gè)方法,遞增的在迭代中增加新功能的單元測(cè)試和功能代碼編寫(xiě),直到完成全部功能的開(kāi)發(fā)。 在單元測(cè)
20、試活動(dòng)中,測(cè)試人員也被鼓勵(lì)參與到單元測(cè)試的設(shè)計(jì)中來(lái),不但可以幫助開(kāi)發(fā)人員構(gòu)思出更多的單元測(cè)試用例來(lái)擴(kuò)大單元測(cè)試的覆蓋率,還可通過(guò)學(xué)習(xí)如何使用單元測(cè)試,如何復(fù)用單元測(cè)試用例到回歸測(cè)試和功能測(cè)試,以達(dá)到最大化利用有效的資源(如下圖)和節(jié)約成本的作用。同時(shí),在回歸測(cè)試和用戶(hù)接收測(cè)試(User Acceptance Test)中如能將單元測(cè)試腳本有機(jī)的關(guān)聯(lián)起來(lái),并自動(dòng)化其執(zhí)行,更能夠進(jìn)一步提高測(cè)試的成效并降低測(cè)試成本。 單元測(cè)試腳本因隨需求、設(shè)計(jì)的變化隨時(shí)更新。需要開(kāi)發(fā)人員站在全局的立場(chǎng),開(kāi)發(fā)始終堅(jiān)持先修改測(cè)試腳本,再
21、修改產(chǎn)品原代碼。此時(shí),也建議測(cè)試人員參與單元測(cè)試腳本的改進(jìn),幫助開(kāi)發(fā)人員合理的變更單元測(cè)試腳本,同時(shí)著手修改測(cè)試計(jì)劃和測(cè)試策略。圖 2. 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)遞增的迭代測(cè)試 測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的原則應(yīng)該運(yùn)用于每一迭代周期的開(kāi)發(fā)中。但是,測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的單元測(cè)試仍然是以開(kāi)發(fā)為目的的活動(dòng),雖然自動(dòng)化測(cè)試,回歸測(cè)試和用戶(hù)的接收測(cè)試(User Acceptance Test)可以通過(guò)復(fù)用單元測(cè)試腳本提高以后的測(cè)試工作的效率,但單元測(cè)試不是我們敏捷測(cè)試討論的重點(diǎn)。 &
22、#160; 敏捷測(cè)試活動(dòng)的主要承載者還是敏捷測(cè)試人員。測(cè)試人員如何運(yùn)用敏捷原則指導(dǎo)測(cè)試活動(dòng)還是筆者在敏捷測(cè)試實(shí)踐一文中要講述的重點(diǎn)。以下,筆者將通過(guò)兩個(gè)迭代測(cè)試模型來(lái)幫助了解測(cè)試人員如何結(jié)合敏捷原則實(shí)踐敏捷的測(cè)試活動(dòng)。經(jīng)典敏捷增量測(cè)試模型 測(cè)試是敏捷開(kāi)發(fā)過(guò)程重要的環(huán)節(jié),自始自終測(cè)試貫穿于每個(gè)迭代。Scott W. Ambler 認(rèn)為就整個(gè)產(chǎn)品的敏捷開(kāi)發(fā)生命周期可以分為 4 個(gè)階段,即初始階段,項(xiàng)目的建設(shè)階段,產(chǎn)品發(fā)布階段和產(chǎn)品的維護(hù)階段,在關(guān)鍵的項(xiàng)目建設(shè)階段中,測(cè)試被分成兩個(gè)部分,Confirmatory 測(cè)試
23、和 Investigative 測(cè)試。 1 下面,我們來(lái)講講迭代的測(cè)試的這兩個(gè)方面。圖 3. 敏捷測(cè)試生命周期 Confirmative 測(cè)試就是對(duì) build 的有效性和關(guān)鍵的功能是否正確進(jìn)行驗(yàn)證,測(cè)試人員依據(jù)測(cè)試用例和測(cè)試腳本的完整測(cè)試是工作的重心。原文中的 Confirmative 測(cè)試包含了開(kāi)發(fā)人員的單元測(cè)試(必不可少的重要開(kāi)發(fā)活動(dòng))和被稱(chēng)之為 Agile Acceptance Testing 的測(cè)試部分,這段時(shí)間的測(cè)試任務(wù)用來(lái)保障迭代的必須輸出的質(zhì)量?;镜墓δ堋⒎枪δ艿娜蝿?wù),但凡是在迭代開(kāi)始時(shí)制定的
24、計(jì)劃中承諾的高優(yōu)先級(jí)需求,哪怕是很繁瑣的細(xì)節(jié)工作都要被充分的測(cè)試和驗(yàn)證。 Investigative 測(cè)試是對(duì) Confirmative 測(cè)試的補(bǔ)充和是更廣泛的測(cè)試活動(dòng),測(cè)試團(tuán)隊(duì)在完成 Confirmative 測(cè)試后的時(shí)間用來(lái)做這部分測(cè)試,它包含功能測(cè)試,文檔測(cè)試和系統(tǒng)測(cè)試以及和其他產(chǎn)品、環(huán)境之間產(chǎn)生的必然的 Integration 測(cè)試,還有個(gè)非常有趣的測(cè)試活動(dòng)叫做 Exploratory 測(cè)試,筆者認(rèn)為這部分測(cè)試是測(cè)試人員創(chuàng)造性的采用多種不同途徑去嘗試測(cè)試產(chǎn)品。就好比“猴子敲鍵盤(pán)”一樣,測(cè)試員使用各種手段
25、來(lái)考驗(yàn) build 和產(chǎn)品的穩(wěn)定和正確性等。圖 4. 敏捷測(cè)試的 Incremental Testing自定制的敏捷增量測(cè)試模型 我們?cè)诿艚蓓?xiàng)目開(kāi)發(fā)的過(guò)程中使用了定制的測(cè)試流程,我們同樣有相同的兩部分測(cè)試,即 Confirmative 和 Investigative 兩部分。不同的是,我們?cè)瓌t的將這兩部分測(cè)試都放在當(dāng)前迭代的計(jì)劃內(nèi)完成。原因是,敏捷測(cè)試團(tuán)隊(duì)針對(duì)當(dāng)前迭代的任務(wù)計(jì)劃本應(yīng)服務(wù)于當(dāng)前的產(chǎn)品,過(guò)去的迭代產(chǎn)物,或者因?yàn)樾枨笞兏辉龠m用,又或者因?yàn)槲唇鉀Q的質(zhì)量缺陷使得實(shí)際測(cè)試效果不佳。而同時(shí),因?yàn)?Produ
26、ct Owner 和 STAKEHOLDER 的期望是團(tuán)隊(duì)能夠高效的完成當(dāng)前迭代的任務(wù),完成更高優(yōu)先級(jí)的工作,每個(gè)迭代的考核亦非常清晰。為了完成服從當(dāng)前的高優(yōu)先級(jí)任務(wù),計(jì)劃,也為了 STAKEHOLDER 更好的關(guān)注和幫助當(dāng)前問(wèn)題的及時(shí)解決,測(cè)試人員對(duì)以往 Build 的測(cè)試應(yīng)應(yīng)合理的計(jì)入先前迭代的任務(wù)而不是當(dāng)前迭代計(jì)劃。倘若真要測(cè)試以往的產(chǎn)品而不是最新的,敏捷測(cè)試的管理也將變得有些困難,同時(shí)測(cè)試團(tuán)隊(duì)所關(guān)注的問(wèn)題也只能是過(guò)時(shí)的,只能成為團(tuán)隊(duì)的低優(yōu)先級(jí)的問(wèn)題。這不是與團(tuán)隊(duì)整體的目標(biāo)背離嗎?因此,我們建議測(cè)試團(tuán)隊(duì)使用我們改進(jìn)后的敏捷增量測(cè)試模型,即在當(dāng)前迭代僅僅完成當(dāng)前迭代的計(jì)劃,而所有測(cè)試都需要
27、圍繞最新的產(chǎn)品 Build 進(jìn)行。圖 5. 定制的 Incremental Testing 在我們新的增量測(cè)試模型中 Confirmative 測(cè)試包含對(duì)需求的靜態(tài)測(cè)試,開(kāi)發(fā)人員做的單元測(cè)試,以及 Build 驗(yàn)證測(cè)試,功能測(cè)試(僅限于對(duì)當(dāng)前迭代功能)和重要的其他類(lèi)型測(cè)試。通過(guò)了 Confirmative 測(cè)試的產(chǎn)品 Build 就可以作為在迭代結(jié)束時(shí)發(fā)布了。而為了產(chǎn)品擁有更好的質(zhì)量,也為了完成對(duì)那些較低優(yōu)先級(jí)的質(zhì)量驗(yàn)證的需求得以確保成功的實(shí)現(xiàn),我們需要針對(duì)性的做系統(tǒng)測(cè)試,壓力,并發(fā),安全甚至全球化的測(cè)試,這部
28、分我們把它叫做 Investigative 測(cè)試。還需要強(qiáng)調(diào)的是,為了保障產(chǎn)品的最終穩(wěn)定,為了產(chǎn)品不會(huì)出現(xiàn)在代碼重構(gòu)后的質(zhì)量回歸現(xiàn)象,我們將回歸測(cè)試(Regression Test)放在這個(gè)階段,用以涵蓋對(duì)以往關(guān)鍵功能的再度驗(yàn)證。靜態(tài)測(cè)試 在筆者的測(cè)試模型里,confirmative 測(cè)試增加了“靜態(tài)測(cè)試”,本人認(rèn)為這部分測(cè)試是對(duì)測(cè)試人員最具挑戰(zhàn)的部分。一個(gè)好的測(cè)試人員能夠第一時(shí)間找到需求分析、設(shè)計(jì)中的模棱兩可,遺漏,錯(cuò)誤的地方,能夠促進(jìn)團(tuán)隊(duì)前期工作的高效完成,將很大程度降低將來(lái)產(chǎn)品的質(zhì)量缺陷的數(shù)量,積極影響了
29、敏捷開(kāi)發(fā)的最終輸出。這部分工作是測(cè)試團(tuán)隊(duì),開(kāi)發(fā)、設(shè)計(jì)團(tuán)隊(duì)最默契合作的階段,交流非常頻繁,正是通過(guò)積極的溝通和及時(shí)的修正與團(tuán)隊(duì)目標(biāo)“誤差”使得團(tuán)隊(duì)更加明確其方向,更有凝聚力和也得以發(fā)揮了團(tuán)隊(duì)的最佳戰(zhàn)斗力。在筆者的項(xiàng)目經(jīng)歷中,往往這個(gè)階段會(huì)需要一個(gè)迭代周期 1/4 左右的時(shí)間。這同時(shí)也說(shuō)明了靜態(tài)測(cè)試在敏捷測(cè)試類(lèi)型中的重要性。 在敏捷開(kāi)發(fā)過(guò)程的靜態(tài)測(cè)試即項(xiàng)目迭代開(kāi)發(fā)前期測(cè)試人員的最主要工作。值得再次強(qiáng)調(diào)的是,在這段時(shí)期測(cè)試人員的工作重心是認(rèn)真了解需求和用例設(shè)計(jì),并針對(duì)設(shè)計(jì)的可行性,可用性進(jìn)行驗(yàn)證,確認(rèn)設(shè)計(jì)是對(duì)需求的準(zhǔn)
30、確實(shí)現(xiàn),最佳實(shí)現(xiàn)。圖 6. 靜態(tài)測(cè)試需要的 Strategy Thinking 對(duì)于靜態(tài)測(cè)試的方法,我們?cè)谶@里需要推廣 RUP 的 Use Case,這是個(gè)很好的分析需求的方法,也是測(cè)試人員作為靜態(tài)測(cè)試的使用的方法之一。對(duì)產(chǎn)品長(zhǎng)期戰(zhàn)略和業(yè)務(wù)的熟悉可以幫助測(cè)試人員更好的理解團(tuán)隊(duì)的用例設(shè)計(jì),視圖、模塊等,也能夠通過(guò)對(duì)比分析,直接找出某些設(shè)計(jì)中的缺陷,以提高設(shè)計(jì)的質(zhì)量。項(xiàng)目的開(kāi)發(fā)前期階段,設(shè)計(jì)是占有非常重要的比例,而設(shè)計(jì)是直接影響產(chǎn)品質(zhì)量的環(huán)節(jié),因而確保這一階段的質(zhì)量對(duì)產(chǎn)品的品質(zhì)提高起到?jīng)Q定性作用。針對(duì)開(kāi)發(fā)出來(lái)的用例
31、,設(shè)計(jì)者對(duì)用例的描述通常故事情節(jié)比較簡(jiǎn)單,缺乏完備和邏輯的縝密。而開(kāi)發(fā)和測(cè)試需要的是詳細(xì)的設(shè)計(jì),這個(gè)用例設(shè)計(jì)和各種輔助的邏輯應(yīng)該將用例定義的清晰和明確,例如邊界條件,例外條件,數(shù)據(jù)的格式和其他性能指標(biāo)的界定等等都需要涵蓋。因此,測(cè)試人員應(yīng)該領(lǐng)導(dǎo)團(tuán)隊(duì)幫助明確出用例更多的細(xì)節(jié)。比如,在一次設(shè)計(jì)用例討論中,設(shè)計(jì)者提出“我需要一個(gè) Overlayer”。那么測(cè)試人員應(yīng)該要問(wèn):“如何打開(kāi)這樣一個(gè) Overlayer,如何關(guān)閉?”“這個(gè) Overlayer 需要多大平面尺寸,是否支持調(diào)整,是否支持對(duì)屏幕大小的自動(dòng)適應(yīng)”,“Overlayer 的打開(kāi)和關(guān)閉是否需要有動(dòng)態(tài)漸變的效果?”,“Overlayer
32、的是否需要滾動(dòng)條?”,等等。 這個(gè)過(guò)程能夠幫助團(tuán)隊(duì)發(fā)現(xiàn)早期的設(shè)計(jì)缺陷,通過(guò)發(fā)現(xiàn)問(wèn)題,并定制新的設(shè)計(jì)方案,團(tuán)隊(duì)也通過(guò)這個(gè)過(guò)程,更好的了解了測(cè)試的重要性,也摒除了可能存在的對(duì)需求的種種“假設(shè)”,因而更加明確了團(tuán)隊(duì)的目標(biāo)和方向。這是個(gè)非常關(guān)鍵的過(guò)程。尤其是對(duì)測(cè)試人員而言,任何“假設(shè)“都是有害的,所以一定需要把不清楚和模棱兩可的問(wèn)題從一開(kāi)始就理清楚。敏捷測(cè)試的計(jì)劃與管理 做好了測(cè)試的思想準(zhǔn)備,并了解如何從需求開(kāi)發(fā)出測(cè)試用例,敏捷測(cè)試人員
33、接著需要做的就是參考產(chǎn)品需求和團(tuán)隊(duì)的設(shè)計(jì)制定和計(jì)劃測(cè)試任務(wù)和各種測(cè)試活動(dòng),即測(cè)試策略和測(cè)試計(jì)劃的制定。每個(gè)迭代敏捷開(kāi)發(fā)都將關(guān)系產(chǎn)品的功能點(diǎn)和非功能點(diǎn)的需求作為產(chǎn)品的 Backlog 編入待開(kāi)發(fā)的序列,敏捷團(tuán)隊(duì)從中會(huì)選擇適量的 Backlog 項(xiàng)目來(lái)作為當(dāng)前迭代的 Backlog 去實(shí)現(xiàn)。測(cè)試人員同樣根據(jù)需要制定出相應(yīng)的測(cè)試工作,并羅列于團(tuán)隊(duì)的 Backlog 項(xiàng)目中,承諾了在迭代結(jié)束時(shí)可以做好的足夠的測(cè)試工作。 對(duì)于測(cè)試計(jì)劃中的 confirmative 測(cè)試,這部分必須做到高質(zhì)量的按時(shí)完成。而對(duì)于 Inves
34、tigative 部分,我們應(yīng)該適量的計(jì)劃到當(dāng)前迭代中,切忌不要做 over commit。圖 7. 計(jì)劃測(cè)試 Backlog 項(xiàng)目 接著,測(cè)試人員需要撰寫(xiě)測(cè)試用例和測(cè)試腳本了。測(cè)試用例的撰寫(xiě)和傳統(tǒng)測(cè)試基本沒(méi)什么差異,按照已有的模式撰寫(xiě)就好了。筆者的測(cè)試團(tuán)隊(duì),使用了 XML 文件格式保存所有測(cè)試用例,原因主要是沿用了測(cè)試團(tuán)隊(duì)原有的習(xí)慣,而同時(shí)也因?yàn)?XML 測(cè)試用例能夠更好的匹配自動(dòng)化測(cè)試的需要,并且便于更新。測(cè)試腳本是自動(dòng)化測(cè)試的產(chǎn)物,敏捷開(kāi)發(fā)周期短,變化多,很難拿到一個(gè)穩(wěn)定的產(chǎn)品再開(kāi)始做自動(dòng)化。而自動(dòng)化腳本
35、的設(shè)計(jì)自然要避免去測(cè)試不穩(wěn)定部分,開(kāi)始的迭代周期幾乎百?gòu)U待興,自動(dòng)化作用不大,到了中期,筆者的團(tuán)隊(duì)自動(dòng)化測(cè)試才稍成氣候。 測(cè)試人員需要的是在根據(jù)測(cè)試策略開(kāi)發(fā)出這相應(yīng)腳本和用例,需要把握測(cè)試范圍,與計(jì)劃和測(cè)試策略一致,測(cè)試也要量力而行,做到足夠的測(cè)試,保障迭代的正常退出就很好了。圖 8. 依據(jù) Business Scenario 制定測(cè)試策略敏捷測(cè)試的活動(dòng)時(shí)間表 通過(guò)實(shí)施上述的敏捷測(cè)試原則,測(cè)試團(tuán)隊(duì)可以逐漸形成符合自身特點(diǎn)的敏捷測(cè)
36、試流程、敏捷測(cè)試最佳實(shí)踐,久而久之形成獨(dú)立的敏捷團(tuán)隊(duì)文化。以筆者所在團(tuán)隊(duì)為例,歷時(shí) 1 年,經(jīng)歷 12 個(gè)迭代后,我們逐漸形成了一套可以遵循測(cè)試活動(dòng)時(shí)間表。我將他放到文章的最后,這張表包含了敏捷測(cè)試團(tuán)隊(duì)的各項(xiàng)活動(dòng)安排和必要的前提與進(jìn)入條件。在這張表中,測(cè)試團(tuán)隊(duì)較早的涉入,較早的開(kāi)展測(cè)試,以及各項(xiàng)相關(guān)工作,并與設(shè)計(jì)和開(kāi)發(fā)人員緊密的合作,它確保了測(cè)試團(tuán)隊(duì)乃至整個(gè)敏捷團(tuán)隊(duì)的工作的按期完成,是值得向大家推薦一種最佳實(shí)踐。因?yàn)槠P(guān)系,這里僅對(duì)其做簡(jiǎn)單的描述。圖 9. 敏捷測(cè)試 Work Flow 最佳實(shí)踐 第一周的工作如先前所講,做靜態(tài)測(cè)試,確定測(cè)試策略和制定可行的測(cè)試計(jì)劃,劃定測(cè)試范圍。這個(gè)階段的前提是敏捷團(tuán)隊(duì)確定了當(dāng)下迭代周期內(nèi)需要完成的 Backlog 項(xiàng)目。 第二周的工作是準(zhǔn)備開(kāi)始測(cè)試的執(zhí)行,因此要準(zhǔn)備好測(cè)試用例和測(cè)試環(huán)境。特別的是,測(cè)試人員是根據(jù)需求和團(tuán)隊(duì)討論、設(shè)計(jì)出的用例來(lái)開(kāi)發(fā)測(cè)試用例的。雖然測(cè)試用例的細(xì)節(jié)程度不能與傳統(tǒng)開(kāi)發(fā)中針對(duì)已經(jīng)開(kāi)發(fā)完的產(chǎn)品、產(chǎn)品開(kāi)發(fā)文檔開(kāi)發(fā)的測(cè)試用例相比,相反,許多細(xì)節(jié),尤其是還未由團(tuán)隊(duì)最終確定的內(nèi)容仍是待定狀態(tài);但是,這些細(xì)節(jié)并非影響測(cè)試的用例設(shè)計(jì),相反它不但簡(jiǎn)潔、易懂,也擁有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 望舌苔試題及答案
- 網(wǎng)絡(luò)員考試試題及答案
- 土木識(shí)圖試題及答案
- 2025年機(jī)械設(shè)備維護(hù)與保養(yǎng)協(xié)議書(shū)
- 規(guī)避環(huán)保問(wèn)題對(duì)企業(yè)運(yùn)營(yíng)的影響
- 2025年合作方分手協(xié)議書(shū)范文
- 事業(yè)單位房屋管理的現(xiàn)狀及總體形勢(shì)
- 推進(jìn)綠色發(fā)展助力經(jīng)開(kāi)區(qū)可持續(xù)發(fā)展
- 土壤改良對(duì)油菜產(chǎn)量的影響
- 贛州市章貢區(qū)三年級(jí)2024-2025學(xué)年上學(xué)期英語(yǔ)期末試卷:詞匯拼寫(xiě)與語(yǔ)法綜合能力挑戰(zhàn)2025
- 《冠狀動(dòng)脈造影》課件
- 腰椎間盤(pán)突出癥護(hù)理查房
- 林業(yè)工程整改方案
- 國(guó)開(kāi)電大專(zhuān)科《人文英語(yǔ)1》一平臺(tái)機(jī)考總題庫(kù)(珍藏版)
- 腦洞大開(kāi)背后的創(chuàng)新思維學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 產(chǎn)品設(shè)計(jì)和開(kāi)發(fā)控制程序文件
- 醫(yī)學(xué)影像診斷學(xué)智慧樹(shù)知到答案2024年溫州醫(yī)科大學(xué)
- 吸痰法《經(jīng)口鼻腔氣管插管吸痰法》
- 圍術(shù)期下肢深靜脈血栓預(yù)防的術(shù)中護(hù)理
- 2025年安徽省合肥市蜀山區(qū)重點(diǎn)中學(xué)中考模擬調(diào)研卷生物試題(一)含解析
- 金融糾紛和解協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論