李彥威
摘要:敏捷開發(fā)倡導(dǎo)的就是迭代式和增量式的開發(fā)模式,并且強(qiáng)調(diào)測試在開發(fā)過程中的重要性。主要是圍繞以用戶為中心,以客戶需求為導(dǎo)向的開發(fā)過程,這個(gè)過程有一個(gè)特點(diǎn)就是“隨時(shí)有變化”。雖然敏捷開發(fā)引入了靈活性,但其中的重點(diǎn)還是在于客戶滿意度。客戶是敏捷過程的關(guān)鍵環(huán)節(jié)。如果,客戶能夠有所參與,并且客戶了解到開發(fā)對于他們參與的歡迎,那么有助于增加客戶對最終產(chǎn)品和開發(fā)team的信心和滿意度。如果客戶由于其他原因不愿意參與進(jìn)來,那么選擇傳統(tǒng)的開發(fā)流程更好。敏捷開發(fā)有三個(gè)比較明顯的特征:依賴客戶完成,測試驅(qū)動(dòng)和緊湊的開發(fā)周期。
關(guān)鍵詞:敏捷開發(fā);軟件測試;軟件開發(fā);敏捷測試
前言:
敏捷開發(fā)是針對傳統(tǒng)的瀑布開發(fā)模式的弊端而產(chǎn)生的一種新的開發(fā)模式,目標(biāo)是提高開發(fā)效率和響應(yīng)能力。敏捷開發(fā)過程中,很多時(shí)候測試人員就時(shí)常被當(dāng)成項(xiàng)目無法加快的阻力,一下這邊出一個(gè)bug,那邊有個(gè)缺陷,所以項(xiàng)目經(jīng)理痛恨測試,程序員們也巴不得測試快快放行,讓程序好好上線,但我們都知道沒有通過測試的軟件是不能硬上線的,測試是把守項(xiàng)目上線最后一關(guān)的,若把關(guān)不到位,可能隨時(shí)會(huì)導(dǎo)致項(xiàng)目延遲。
一、敏捷開發(fā)的概念及價(jià)值觀
(一)什么是敏捷開發(fā)
敏捷開發(fā)以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā)。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個(gè)子項(xiàng)目,各個(gè)子項(xiàng)目的成果都經(jīng)過測試,具備可視、可集成和可以運(yùn)行使用的特征。換言之,就是把一個(gè)大項(xiàng)目分為多個(gè)相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。
(二)敏捷開發(fā)的價(jià)值觀
敏捷其實(shí)就是一伙程序員被繁重的過程模型所束縛,為了能跳出來,而聚到一起發(fā)表的一份宣言。其實(shí)敏捷開發(fā)就是這一份宣言中強(qiáng)調(diào)的四條價(jià)值觀:
(1)個(gè)體與交流比流程和工具更有價(jià)值
(2)可用的軟件比冗長的文檔更有價(jià)值
(3)與客戶的協(xié)作比合同談判更有價(jià)值
(4)對變化的響應(yīng)比遵循計(jì)劃更有價(jià)值
我們要正確認(rèn)識(shí)敏捷,就要從這四條價(jià)值觀觸發(fā)。切忌把敏捷當(dāng)作一種超越了瀑布、V&V;等傳統(tǒng)模型的新模型,只要照著它的流程做就可以。
二、敏捷測試的概念及特點(diǎn)
(一)敏捷測試的概念
敏捷測試就是敏捷開發(fā)中的測試,屬于協(xié)同測試的一種。敏捷測試要求每一個(gè)人都要參與到測試的設(shè)計(jì),實(shí)現(xiàn)和執(zhí)行中,客戶通過定義用例以及程序樹形參與到定義驗(yàn)收測試的設(shè)計(jì)中來。開發(fā)和測試合作打造可以進(jìn)行功能自動(dòng)化的測試配件。敏捷測試需要每一個(gè)人的參與,所以對溝通和協(xié)作要求比較高。敏捷測試依賴于自動(dòng)化測試,因?yàn)闇y試的周期短,時(shí)間寶貴,自動(dòng)化測試比人工測試更可靠。而測試者不僅僅發(fā)現(xiàn)問題并反饋給相應(yīng)的開發(fā),更重要的是通過持續(xù)的測試反饋推動(dòng)項(xiàng)目前行,幫助開發(fā)修改bug,改變需求設(shè)計(jì)以及其他的一般性質(zhì)量提升。
(二)敏捷測試的特點(diǎn)
1強(qiáng)調(diào)從客戶角度進(jìn)行測試
2重點(diǎn)關(guān)注迭代測試新功能,不強(qiáng)調(diào)測試階段,不強(qiáng)調(diào)單元測試,系統(tǒng)測等測試階段的劃分
3強(qiáng)調(diào)盡早測試,不間斷測試,具備相應(yīng)的條件就開始測試
4強(qiáng)調(diào)持續(xù)反饋,測試發(fā)現(xiàn)的問題,狀況等反應(yīng)給相關(guān)的同事
5預(yù)防缺陷重于發(fā)現(xiàn)缺陷
6開發(fā)和測試是緊密合作的,大家都對軟件有責(zé)任
7計(jì)劃隨著進(jìn)展時(shí)常調(diào)整
8所有階段都需要自動(dòng)化的參與,每個(gè)人都需要做,是項(xiàng)目集成的一部分
9團(tuán)隊(duì)合作是無縫合作,沒有嚴(yán)格區(qū)分開發(fā)團(tuán)隊(duì)和測試團(tuán)隊(duì)。團(tuán)隊(duì)的相關(guān)角色及時(shí)知曉研發(fā)的現(xiàn)狀并及時(shí)改正
三、測試人員應(yīng)該如何參與敏捷
敏捷開發(fā)本身沒有對測試人員有明確的定位,從用戶故事、結(jié)對編程、測試驅(qū)動(dòng)開發(fā)、持續(xù)集成、迭代驗(yàn)收這些實(shí)踐來看,測試人員可以參與用戶故事中關(guān)于定義完成的部分,為了能夠做到持續(xù)集成,測試人員在開發(fā)進(jìn)行編程的同時(shí),可以進(jìn)行自動(dòng)化測試用例的設(shè)計(jì)和實(shí)現(xiàn),如果有一定編程能力,也可以參與結(jié)對編程。最后也可以主持迭代驗(yàn)收。但是不管從什么角度講,測試人員要參與敏捷,都需要有比較過硬的技術(shù)才行。
舉個(gè)例子,敏捷開發(fā)的迭代節(jié)奏非常快,而且持續(xù)集成要求測試必須可以反復(fù)的執(zhí)行,所以測試自動(dòng)化的要求訴求非常大,但是在敏捷開發(fā)過程中,我們不能采用錄制回放的方式進(jìn)行自動(dòng)化測試,錄制回放是回歸測試的做法,必須等待可測軟件編碼已完成,但這種做法對快節(jié)奏的迭代來說太沒效率了,會(huì)拖長迭代周期。測試的自動(dòng)化用例實(shí)現(xiàn)必須和被測軟件編碼是同步進(jìn)行的,這樣才能在持續(xù)集成中每天都有新集成,每天都有測試。不能依賴錄制回放,必須完全手工編程來實(shí)現(xiàn)自動(dòng)化用例,這就需要測試人員有非常好的編碼能力。
綜上所述,測試在項(xiàng)目的早期就必須參加,熟悉需求,并從測試角度提出各種問題,確保產(chǎn)品經(jīng)理、開發(fā)、測試的等角色的關(guān)注點(diǎn)都有備考量到,而測試也會(huì)從早期就開始撰寫測試用例,在撰寫過程中如果有發(fā)現(xiàn)任何問題也趁早反饋給產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理,趁早把問題給理清,這樣做測試才能把自己的角色提升到為質(zhì)量負(fù)責(zé)的角色
參考文獻(xiàn):
[1]楊駿等.關(guān)于敏捷開發(fā)項(xiàng)目中軟件測試方法的研究[J].工程技術(shù),2011,02(05):70-71.
[2]宋易欣.基于看板管理方法的敏捷軟件開發(fā)研究[D].北京郵電大學(xué),2013