|
在與不少測(cè)試從業(yè)人員討論到敏捷的時(shí)候,被問(wèn)得最多的大約是兩個(gè)問(wèn)題:“到底什么是敏捷軟件測(cè)試?”,“敏捷軟件開(kāi)發(fā)還需要測(cè)試工程師嗎?”。前一個(gè)問(wèn)題是對(duì)于敏捷測(cè)試本身定義的疑問(wèn),第二個(gè)問(wèn)題則是對(duì)敏捷開(kāi)發(fā)將測(cè)試工程師排除在外的擔(dān)心。其實(shí),在探尋這兩個(gè)問(wèn)題答案的過(guò)程中,我們可以更清晰的了解敏捷軟件開(kāi)發(fā)中測(cè)試的工作定義,測(cè)試價(jià)值觀,以及敏捷開(kāi)發(fā)中開(kāi)發(fā)與測(cè)試工程師的配合。鑒于這兩個(gè)問(wèn)題的意義,在本敏捷測(cè)試專(zhuān)欄的第一篇文章中,本人嘗試從自己的實(shí)踐出發(fā),盡可能清楚的回答這兩個(gè)問(wèn)題。
確實(shí),相對(duì)于敏捷開(kāi)發(fā)紅遍大江南北的狀況而言,對(duì)敏捷測(cè)試的討論則低調(diào)得多。敏捷聯(lián)盟定義了敏捷的4個(gè)價(jià)值聲明,以及伴隨的12條支持原則,這12條原則中沒(méi)有一條單獨(dú)提到測(cè)試。這是不是意味著測(cè)試在敏捷開(kāi)發(fā)中并不重要呢?實(shí)際上,如果仔細(xì)研讀敏捷的12個(gè)原則,以及各種不同的敏捷實(shí)踐,就會(huì)發(fā)現(xiàn),測(cè)試在敏捷開(kāi)發(fā)中占有非常重要的地位。無(wú)論是原則中的“頻繁交付”,還是對(duì)“可工作的軟件”的度量,或是敏捷開(kāi)發(fā)實(shí)踐中的“測(cè)試驅(qū)動(dòng)開(kāi)發(fā)”,“行為驅(qū)動(dòng)開(kāi)發(fā)”,都離不開(kāi)測(cè)試的支持。在本人看來(lái),敏捷開(kāi)發(fā)中不把測(cè)試單獨(dú)拿出來(lái)描述的原因,恰恰是因?yàn)樵诿艚蓍_(kāi)發(fā)中,測(cè)試不再是一個(gè)單獨(dú)的、和開(kāi)發(fā)獨(dú)立的過(guò)程,而是變成了驅(qū)動(dòng)開(kāi)發(fā)、衡量產(chǎn)出的主要的手段,成為了敏捷開(kāi)發(fā)中所有工程師在工作時(shí)必須時(shí)刻考慮和實(shí)踐的一個(gè)部分。簡(jiǎn)而言之,敏捷軟件測(cè)試更多的是一種理念,而非過(guò)程。
既然是這樣,為什么我們還要在這個(gè)專(zhuān)欄中專(zhuān)門(mén)來(lái)討論“敏捷軟件測(cè)試”?本人接觸過(guò)不少軟件開(kāi)發(fā)和測(cè)試工程師,他們所處的組織有的正在努力向敏捷開(kāi)發(fā)轉(zhuǎn)型,有的已經(jīng)實(shí)踐了一段實(shí)踐的敏捷開(kāi)發(fā),但由于由來(lái)已久的工作習(xí)慣,他們中的絕大多數(shù)并不能自覺(jué)的認(rèn)識(shí)到測(cè)試在敏捷開(kāi)發(fā)中的關(guān)鍵作用,而是有意無(wú)意的將測(cè)試仍然看作是與開(kāi)發(fā)截然分開(kāi)的“下一個(gè)階段”,導(dǎo)致在實(shí)踐敏捷開(kāi)發(fā)的過(guò)程中遇到種種問(wèn)題:要么是忽略了代碼質(zhì)量,導(dǎo)致在頻繁的迭代過(guò)程中,每一個(gè)迭代的問(wèn)題層出不窮;或是沿用原有的方法安排對(duì)系統(tǒng)的系統(tǒng)測(cè)試,導(dǎo)致測(cè)試團(tuán)隊(duì)疲于奔命,卻總也趕不上開(kāi)發(fā)所要求的進(jìn)度。在這種情況下,專(zhuān)門(mén)來(lái)討論敏捷軟件開(kāi)發(fā)中的測(cè)試,也就是敏捷軟件測(cè)試的話(huà)題,對(duì)這些工程師應(yīng)該會(huì)有一些幫助。
那么,到底什么是敏捷軟件測(cè)試?很難給敏捷測(cè)試下一個(gè)精確、完善的定義,在本人看來(lái),接納了敏捷的核心價(jià)值觀(溝通,簡(jiǎn)單,反饋,勇氣,尊重),在敏捷軟件開(kāi)發(fā)過(guò)程中開(kāi)展的測(cè)試就可以被稱(chēng)作是敏捷軟件測(cè)試。因此,敏捷軟件測(cè)試并不是一個(gè)與敏捷軟件開(kāi)發(fā)同一層次的劃分,而是敏捷軟件開(kāi)發(fā)中的一部分,與傳統(tǒng)的測(cè)試不同,敏捷軟件測(cè)試并不是一個(gè)獨(dú)立的過(guò)程,相反,它與整個(gè)敏捷開(kāi)發(fā)中的其他活動(dòng)交織在一起,處處都能看到它的影子。由于敏捷軟件測(cè)試并不傾向于一個(gè)單獨(dú)的過(guò)程定義,本人擬從敏捷軟件測(cè)試與傳統(tǒng)測(cè)試觀點(diǎn)的比較、敏捷軟件測(cè)試中采用的方法、測(cè)試工程師在敏捷軟件測(cè)試過(guò)程中的工作等方面來(lái)闡述之。在這篇文章中,我們主要從宏觀的角度來(lái)描述敏捷軟件測(cè)試,而在本專(zhuān)欄的后續(xù)文章中,我們將對(duì)敏捷軟件測(cè)試中采用的方法、工程師在敏捷軟件測(cè)試中的工作內(nèi)容等進(jìn)行進(jìn)一步的描述。
敏捷軟件測(cè)試是建立在敏捷核心價(jià)值觀的基礎(chǔ)上,為了更生動(dòng)的描述其與傳統(tǒng)軟件測(cè)試的區(qū)別,本人從自己的實(shí)踐經(jīng)驗(yàn)出發(fā),嘗試給出包含了本人認(rèn)為包含了敏捷測(cè)試關(guān)鍵要素的“敏捷測(cè)試檢查表”:
項(xiàng)目 | 檢查點(diǎn) | 注釋 |
團(tuán)隊(duì) |
|
|
反饋 |
|
|
質(zhì)量文化 |
|
|
開(kāi)發(fā)測(cè)試 |
|
|
檢查表提到了“團(tuán)隊(duì)”、“反饋”、“質(zhì)量文化”和“開(kāi)發(fā)測(cè)試”四個(gè)方面的內(nèi)容,在本人看來(lái),這四個(gè)方面體現(xiàn)的就是敏捷軟件測(cè)試與傳統(tǒng)軟件測(cè)試的最大的不同。傳統(tǒng)軟件測(cè)試關(guān)注的是通過(guò)盡可能完備的“覆蓋”去發(fā)現(xiàn)盡可能多的問(wèn)題,把測(cè)試和開(kāi)發(fā)當(dāng)成是兩個(gè)獨(dú)立的過(guò)程,測(cè)試是對(duì)開(kāi)發(fā)階段產(chǎn)生成果的驗(yàn)證。而敏捷軟件測(cè)試則建立了一種不同的質(zhì)量文化:測(cè)試的目的是為了保證產(chǎn)品快速發(fā)布,也就是對(duì)生產(chǎn)率本身的提高。基于“驗(yàn)證”的出發(fā)點(diǎn)必然會(huì)要求測(cè)試與開(kāi)發(fā)的獨(dú)立,以及盡可能“客觀”和“完備”的度量產(chǎn)品質(zhì)量;而基于“生產(chǎn)率”的出發(fā)點(diǎn)則要求建立敏捷的團(tuán)隊(duì),要求測(cè)試與開(kāi)發(fā)盡可能緊密,要求建立具有高度可測(cè)試性的軟件,以及基于這些的高度自動(dòng)化測(cè)試。
在檢查表列出的所有項(xiàng)目中,“質(zhì)量文化”是基礎(chǔ),“團(tuán)隊(duì)”是敏捷軟件測(cè)試得以實(shí)施的條件,“反饋”和“開(kāi)發(fā)測(cè)試”則是敏捷軟件測(cè)試的具體方法。當(dāng)然,你可以可以從敏捷的核心價(jià)值觀來(lái)階段這些項(xiàng)目:“團(tuán)隊(duì)”關(guān)注的是溝通與尊重;“反饋”直接對(duì)應(yīng)于反饋;“質(zhì)量文化”基于勇氣(承擔(dān)質(zhì)量責(zé)任的勇氣)與尊重;而“開(kāi)發(fā)測(cè)試”則是反饋與簡(jiǎn)單的具體體現(xiàn)。
另一個(gè)在本文最初提出來(lái)的問(wèn)題是:“敏捷軟件開(kāi)發(fā)還需要測(cè)試工程師嗎?”,對(duì)這個(gè)問(wèn)題,業(yè)界有不同的觀點(diǎn)。有人認(rèn)為需要,因?yàn)榭傆幸恍┦切枰獪y(cè)試工程師的技能完成的工作;當(dāng)然,也有人認(rèn)為不需要,因?yàn)槊艚蓍_(kāi)發(fā)中的測(cè)試注重開(kāi)發(fā)測(cè)試與自動(dòng)化測(cè)試,開(kāi)發(fā)工程師就可以自己搞定與測(cè)試相關(guān)的工作。在實(shí)踐中,那些大規(guī)模實(shí)踐敏捷開(kāi)發(fā)的公司(例如Google),傾向于在組織中設(shè)置數(shù)量較少的測(cè)試工程師,在項(xiàng)目中分配較少的測(cè)試資源,甚至對(duì)某些項(xiàng)目,完全不使用測(cè)試工程師。
就我的個(gè)人實(shí)踐經(jīng)驗(yàn),對(duì)大部分的項(xiàng)目,尤其是為明確的客戶(hù)開(kāi)發(fā)的項(xiàng)目,需要在敏捷開(kāi)發(fā)團(tuán)隊(duì)中設(shè)置專(zhuān)職的測(cè)試工程師,因?yàn)椋?/p>
- 測(cè)試與開(kāi)發(fā)具有不同的思維方式:測(cè)試更注重全面的驗(yàn)證和檢查一個(gè)系統(tǒng),而開(kāi)發(fā)工程師往往很難在大的范圍內(nèi)建立這樣的思維方式。因此,無(wú)論是從系統(tǒng)的層面驗(yàn)證產(chǎn)品,或是從應(yīng)用系統(tǒng)的角度發(fā)現(xiàn)值得測(cè)試和驗(yàn)證的點(diǎn)(access point),專(zhuān)職的測(cè)試工程師都更有效。
- 專(zhuān)職的測(cè)試工程師能夠更關(guān)注于測(cè)試基礎(chǔ),建立測(cè)試需要的基礎(chǔ)架構(gòu):由于測(cè)試工程師具有更好的對(duì)測(cè)試的理解,通常他們能夠更多的考慮測(cè)試的需求而開(kāi)發(fā)適合項(xiàng)目的測(cè)試基礎(chǔ)架構(gòu)(自動(dòng)化測(cè)試框架),而開(kāi)發(fā)工程師可以使用這些框架來(lái)建立面向功能或代碼的測(cè)試。
但是,不得不說(shuō)的是,敏捷開(kāi)發(fā)對(duì)開(kāi)發(fā)和測(cè)試工程師都提出了更要的要求,尤其是對(duì)測(cè)試工程師而言,傳統(tǒng)的只能“精確模擬用戶(hù)操作”的測(cè)試工程師,因?yàn)椴荒転楫a(chǎn)品帶來(lái)生產(chǎn)率的提升,在敏捷開(kāi)發(fā)的團(tuán)隊(duì)中,很難有所作為。在本專(zhuān)欄的后續(xù)文章中,我們會(huì)進(jìn)一步討論測(cè)試工程師在敏捷軟件開(kāi)發(fā)中的工作和任務(wù)。
關(guān)于作者
段念:Google中國(guó)高級(jí)測(cè)試經(jīng)理,畢業(yè)于華中科技大學(xué),先后在通訊、嵌入式軟件、互聯(lián)網(wǎng)等多個(gè)行業(yè)的國(guó)內(nèi)外知名公司中從事軟件開(kāi)發(fā)與測(cè)試工作。對(duì)軟件測(cè)試中的技術(shù)和管理工作有獨(dú)到見(jiàn)解,對(duì)軟件測(cè)試團(tuán)隊(duì)管理、自動(dòng)化測(cè)試、性能測(cè)試與開(kāi)發(fā)測(cè)試有較多研究。
it知識(shí)庫(kù):什么是敏捷軟件測(cè)試,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。