軟件測(cè)試向敏捷要什么?
敏捷軟件開發(fā)與其他軟件開發(fā)方法學(xué)最大的區(qū)別,在于敏捷是承認(rèn)并擁抱變化的。為了這樣的變化,敏捷的不同方法,比如極限編程、Scrum引入不同的技術(shù)實(shí)踐和流程,像持續(xù)集成、測(cè)試驅(qū)動(dòng)開發(fā)以及短迭代周期等,來確保即使在需求的快速變化下,也能保證交付的軟件總是滿足用戶的需求,是高質(zhì)量的價(jià)值交付。
從敏捷軟件開發(fā)宣言來看,并沒有涉及測(cè)試的內(nèi)容,更不用提為QA即測(cè)試人員提供指導(dǎo)性的建議。就是以極限編程的14個(gè)推薦實(shí)踐來看,表面上對(duì)于測(cè)試的提及也只是驗(yàn)收測(cè)試,甚至沒有敏捷測(cè)試這個(gè)概念。這樣讓很多人一度認(rèn)為敏捷軟件開發(fā)是不是之以程序開發(fā)為導(dǎo)向的,是不是我們測(cè)試人員能從敏捷獲得的直接支持少之又少,我們是不是被遺忘的一個(gè)種群?
答案必然是否定的。還以極限編程為例,除了驗(yàn)收測(cè)試以外,極限編程提及的完整團(tuán)隊(duì)、用戶故事、短交付周期、持續(xù)集成等實(shí)踐,都在從不同的維度對(duì)于測(cè)試工作的流程和方式甚至對(duì)它思考的角度提出了變化的要求。
完整團(tuán)隊(duì)從文化氛圍和組織結(jié)構(gòu)上明顯區(qū)別與過往的測(cè)試人員參與感,測(cè)試人員不再是對(duì)軟件系統(tǒng)質(zhì)量負(fù)責(zé)的唯一角色,對(duì)質(zhì)量負(fù)責(zé)的是全體團(tuán)隊(duì)成員的職責(zé)。用戶故事改變以前對(duì)于軟件系統(tǒng)功能和模塊的劃分,而是從交付的獨(dú)立價(jià)值出發(fā),改變了測(cè)試人員對(duì)于測(cè)試案例準(zhǔn)備和驗(yàn)收的方法。短交付周期,無論是兩周還是四周,都給整個(gè)團(tuán)隊(duì)帶來了巨大的變化,開發(fā)和測(cè)試不再是獨(dú)立而又順序的過程,開發(fā)和測(cè)試互相穿插,成為一個(gè)快速反饋的過程。持續(xù)集成是軟件系統(tǒng)開發(fā)過程的晴雨表,其中價(jià)值相當(dāng)大的自動(dòng)化測(cè)試仍然和我們的測(cè)試工作脫不了干系。
可見,敏捷和它的方法,雖然沒有顯式地給測(cè)試工作以指導(dǎo)建議,但隱式地要求了我們測(cè)試人員仔細(xì)思考測(cè)試本身在敏捷項(xiàng)目中所需要發(fā)生的變化,我們測(cè)試人員的職責(zé)和工作范疇發(fā)生了哪些變化。
與敏捷開發(fā)一樣,敏捷測(cè)試針對(duì)不同的項(xiàng)目上下文和不同的團(tuán)隊(duì)組成和背景,有不同的適配模式。跟敏捷軟件開發(fā)的宣言類似,敏捷測(cè)試也有一系列可以恪守的原則。經(jīng)過不斷實(shí)踐和經(jīng)驗(yàn),ThoughtWorks的同事同樣提出了《敏捷測(cè)試宣言》:
1、Collaborative ownership over detached objectivity
2、Targeted automation over widespread anti-regression
3、Defect prevention over defect reporting
4、Exploratory testing over predetermined scripting
第一點(diǎn)與完整團(tuán)隊(duì)有關(guān)。雖然獨(dú)立的測(cè)試團(tuán)隊(duì)可以從外部視角觀察軟件質(zhì)量,但真正的軟件質(zhì)量來自測(cè)試人員屬于一部分的完整團(tuán)隊(duì),不再區(qū)分彼此的開發(fā)團(tuán)隊(duì)和測(cè)試團(tuán)隊(duì),不再有彼此分離的目標(biāo)。整個(gè)團(tuán)隊(duì)為軟件質(zhì)量和客戶價(jià)值共同負(fù)責(zé)。
第二點(diǎn)針對(duì)性自動(dòng)化測(cè)試勝過廣泛的回歸測(cè)試。隨著軟件系統(tǒng)開發(fā)的進(jìn)展,后期引入的新功能和缺陷都會(huì)帶來大量和重復(fù)的回歸測(cè)試,自動(dòng)化測(cè)試是代替人工繁瑣而無聊的回歸測(cè)試的唯一辦法。
第三點(diǎn)提到的如何對(duì)待缺陷恐怕是時(shí)下各個(gè)測(cè)試團(tuán)隊(duì)最為糾結(jié)的內(nèi)容了。預(yù)防缺陷勝過報(bào)告缺陷,預(yù)防缺陷才是測(cè)試工作最大的價(jià)值所在。敏捷測(cè)試會(huì)盡早介入軟件系統(tǒng)的開發(fā)過程,和業(yè)務(wù)分析師、客戶分析需求和價(jià)值所在,以用戶故事和驗(yàn)收條件來驅(qū)動(dòng)開發(fā),以短周期迭代和持續(xù)集成為反饋,可以盡早發(fā)現(xiàn)存在的缺陷,從而極大降低后期才報(bào)告以及修復(fù)缺陷所帶來的高額成本。在我的團(tuán)隊(duì),測(cè)試人員甚至可以和開發(fā)人員結(jié)對(duì),共同確認(rèn)缺陷根源,修復(fù)缺陷,并添加自動(dòng)化測(cè)試確保缺陷不會(huì)再次發(fā)生。
第四點(diǎn)的探索性測(cè)試的重要性沒有人會(huì)懷疑,測(cè)試人員可以憑借自己的經(jīng)驗(yàn)積極、自由地發(fā)現(xiàn)質(zhì)量問題,而不僅僅是反復(fù)運(yùn)行已經(jīng)定義好的測(cè)試。這樣可以證明軟件不僅僅做了它該做的事情,還證明軟件沒有做它不該做的事情。
posted on 2012-07-23 10:00 順其自然EVO 閱讀(200) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄