大話敏捷測(cè)試
說到敏捷,大家一定聽過不少相關(guān)的演講,看到不少相關(guān)的書籍,不過不管有什么新的技術(shù),新的流程,歸根結(jié)底都是遵循著敏捷宣言并以敏捷原則作為根本。就像Scrum開拓了一套敏捷項(xiàng)目管理的框架,XP指導(dǎo)著敏捷開發(fā)中的工程實(shí)踐一樣,敏捷測(cè)試也就是一組指引測(cè)試工作在敏捷團(tuán)隊(duì)中的一些最佳實(shí)踐。
首先,敏捷測(cè)試非常強(qiáng)調(diào)和多方的合作。在瀑布開發(fā)模式下,測(cè)試人員一般是根據(jù)需求文檔和設(shè)計(jì)文檔來設(shè)計(jì)測(cè)試用例,然后等功能開發(fā)完成,軟件交付到測(cè)試人員手上才開始正式的測(cè)試工作,這樣對(duì)于測(cè)試的所有輸入就都是文檔。而敏捷測(cè)試讓測(cè)試人員在軟件開發(fā)的最初就加入團(tuán)隊(duì),為的就是使測(cè)試人員更加地靠近產(chǎn)品本身,對(duì)于產(chǎn)品經(jīng)理的需求和開發(fā)人員的設(shè)計(jì)有深入的理解,甚至能和后續(xù)的部署和運(yùn)維團(tuán)隊(duì)盡早地接觸,了解到產(chǎn)品的全方位。
再次,盡早地使產(chǎn)品可以測(cè)試起來,越早越好。測(cè)試工作不再是軟件開發(fā)中的某一個(gè)環(huán)節(jié),而是時(shí)時(shí)刻刻貫穿于軟件開發(fā)中。實(shí)現(xiàn)這一點(diǎn)的基礎(chǔ)就是軟件的可測(cè)性,而可測(cè)性又包括至少兩點(diǎn)
有較為明確的需求指標(biāo)(這里使用了“較為”兩個(gè)字是因?yàn)橛行┓枪δ苌系闹笜?biāo)前期可能的確不太明了,但是隨著產(chǎn)品開發(fā)的進(jìn)行,最終還是會(huì)慢慢清晰的),這樣才能對(duì)測(cè)試結(jié)果進(jìn)行判定
有適合測(cè)試的接口,這樣才能方便的設(shè)計(jì)和執(zhí)行測(cè)試用例,并能最大規(guī)模地發(fā)揮測(cè)試自動(dòng)化的優(yōu)勢(shì)
之后,使團(tuán)隊(duì)一起加入測(cè)試。千萬不要孤軍奮斗,軟件測(cè)試是一件極其需要團(tuán)隊(duì)力量的過程,讓策劃/開發(fā)/運(yùn)維甚至是產(chǎn)品經(jīng)理一起加入。
開發(fā)需要為自己的代碼負(fù)責(zé),單元測(cè)試是必不可少的
編寫用戶驗(yàn)收測(cè)試用例的時(shí)候要邀請(qǐng)策劃和產(chǎn)品經(jīng)理,避免對(duì)于需求的理解錯(cuò)誤
請(qǐng)運(yùn)維一起加入產(chǎn)品的部署測(cè)試,他們有著更多的生產(chǎn)環(huán)境的實(shí)際操作經(jīng)驗(yàn)
當(dāng)然每個(gè)角色對(duì)于加入的方式可能會(huì)不太相同,但是重要的一點(diǎn)就是把所有的測(cè)試環(huán)節(jié)都對(duì)團(tuán)隊(duì)成員透明,讓他們知道產(chǎn)品會(huì)進(jìn)行哪些測(cè)試,已經(jīng)進(jìn)行了哪些測(cè)試,當(dāng)前的測(cè)試結(jié)果怎么樣。
在測(cè)試可以跑起來之后,盡量頻繁地測(cè)試。說到這個(gè),測(cè)試自動(dòng)化很自然地被提上了日程。注意,這里用的是“測(cè)試自動(dòng)化”,而不是“自動(dòng)化測(cè)試”。個(gè)人認(rèn)為測(cè)試自動(dòng)化不僅僅是把測(cè)試用例通過編寫代碼腳本化并通過機(jī)器運(yùn)行起來,而是包含了一套對(duì)于測(cè)試過程的自動(dòng)化,包括測(cè)試環(huán)境的自動(dòng)部署,測(cè)試數(shù)據(jù)的自動(dòng)生成,測(cè)試腳本的自動(dòng)執(zhí)行和測(cè)試結(jié)果的自動(dòng)報(bào)告等等。好了,回到“頻繁地測(cè)試”這個(gè)話題,我們需要多頻繁呢?越頻繁越好!
每一次的代碼(產(chǎn)品代碼或是測(cè)試代碼)提交或是每一次的配置更新都有潛在破壞軟件的可能性,都是需要測(cè)試的
產(chǎn)品在不同部署環(huán)境中的表現(xiàn)往往是不可預(yù)料的,盡可能多的對(duì)可能的部署環(huán)境進(jìn)行驗(yàn)證
即使部署環(huán)境和產(chǎn)品都沒有變化,也需要重復(fù)測(cè)試。這個(gè)可能會(huì)有些疑問,既然什么都沒變,已經(jīng)跑過通過的測(cè)試還有必要重復(fù)執(zhí)行嗎?答案是“有必要”
· 產(chǎn)品在剛啟動(dòng)時(shí)和運(yùn)行了一段時(shí)間之后的表現(xiàn)是完全不同的,看似重復(fù)執(zhí)行的測(cè)試其實(shí)已經(jīng)是運(yùn)行在不同狀態(tài)下的
· 測(cè)試的執(zhí)行往往是按照一定順序的,依據(jù)“殺蟲劑”原理,系統(tǒng)是會(huì)有一定“抵抗力”的,這時(shí)可以不采取簡(jiǎn)單的重復(fù)測(cè)試,而是打亂測(cè)試順序(雖然測(cè)試用例的設(shè)計(jì)在原則上是獨(dú)立的,但是在實(shí)際中對(duì)于軟件產(chǎn)品的內(nèi)部狀態(tài)變化是不可預(yù)知的)
上面這些只是敏捷測(cè)試個(gè)人的一些理解,其中并沒有涉及到具體技術(shù)層面的東西,更多的是一種思想層面對(duì)于軟件測(cè)試的轉(zhuǎn)變
· 軟件測(cè)試是軟件開發(fā)的一部分
· 軟件測(cè)試是團(tuán)隊(duì)成員的職責(zé)
· 軟件測(cè)試需要盡早,自動(dòng),頻繁的執(zhí)行
也正是因?yàn)橛辛诉@些需求,TDD/ATDD/CI才會(huì)被團(tuán)隊(duì)所接受,慢慢變成了一種標(biāo)配
posted on 2014-05-08 16:34 順其自然EVO 閱讀(159) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄