到底什么是敏捷測試?

隨著這幾年敏捷概念和方法的流行,越來越多的組織和項目選擇了敏捷開發(fā)模式。那么對于測試人員來說,究竟敏捷測試與傳統(tǒng)測試有什么區(qū)別?測試人員在一個敏捷項目中需要如何轉(zhuǎn)變才能適應(yīng)當前這種流行的測試模式呢?請看下文介紹。
● 敏捷測試的定義 ●
首先敏捷測試(Agile testing)是測試的一種,原有測試定義中通過執(zhí)行被測系統(tǒng)發(fā)現(xiàn)問題,通過測試這種活動能夠提供對被測系統(tǒng)提供度量等概念還是適用的。
敏捷測試是遵循敏捷宣言的一種測試實踐:
①強調(diào)從客戶的角度,即從使用系統(tǒng)的用戶角度,來測試系統(tǒng)。
②重點關(guān)注持續(xù)迭代地測試新開發(fā)的功能,而不再強調(diào)傳統(tǒng)測試過程中嚴格的測試階段。
③建議盡早開始測試,一旦系統(tǒng)某個層面可測,比如提供了模塊功能,就要開始模塊層面的單元測試,同時隨著測試深入,持續(xù)進行回歸測試保證之前測試過內(nèi)容的正確性。
● 敏捷測試的特點●
既然敏捷測試屬于一種新的測試實踐,那么到底它有什么的特點呢?我用“四個更”來歸納:
①更強的協(xié)作
敏捷開發(fā)人員和測試人員工作得更加緊密,喜歡更直接的溝通方式而不是通過郵件文檔這種一來一回反反復(fù)復(fù)的溝通模式;
②更短的周期
需求驗證或測試的時間不再是按月來計算,而是按天甚至按小時計算。用戶驗收測試在每個sprint的結(jié)尾都會進行;
③更靈活的計劃
敏捷測試也需要擁抱變化,測試計劃不再是一成不變的文檔,而會根據(jù)業(yè)務(wù)價值交付的順序進行靈活的調(diào)整;
④更高效的自動化
相比傳統(tǒng)測試,自動化在敏捷測試中扮演了極其重要的角色。它是實現(xiàn)快速交付確保質(zhì)量的一種非常有效的手段
● 為什么要敏捷測試 ●
一個很直接的原因是如果整個項目都在采用敏捷開發(fā)模式,比如兩周一個迭代,你還在跟項目談傳統(tǒng)的各個測試階段,就好像兩個不同轉(zhuǎn)速的齒輪,根本無法結(jié)合。試問,兩周時間能完成得了所有的測試階段嗎?所以必須要有新的測試實踐來取代原有的模式,才能更好的適應(yīng)敏捷小步快跑的特點。當然,除了適應(yīng)開發(fā)的節(jié)奏外,敏捷測試還是有其特有的價值:
①縮短價值交付周期
通過采用敏捷測試這種模式,可以契合整個敏捷開發(fā)周期,使得整個敏捷開發(fā)按照相同而快速的迭代速率和周期交付,讓最終用戶盡快獲取到業(yè)務(wù)價值;
②更早發(fā)現(xiàn)測試風(fēng)險
敏捷測試使得測試人員盡早開始進行測試,盡早的發(fā)現(xiàn)系統(tǒng)缺陷或存在的問題,避免所有的問題都堆積在最后的測試階段形成“Big-bang”的結(jié)果,降低整體系統(tǒng)風(fēng)險;
③強調(diào)質(zhì)量屬于大家
質(zhì)量是構(gòu)建出來的,而不是測出來的。敏捷測試一直強調(diào)質(zhì)量屬于每一個人的責(zé)任,除了測試之外,開發(fā)、產(chǎn)品經(jīng)理等都有義務(wù)對自己的交付件質(zhì)量負責(zé),這樣才能確保項目的整體質(zhì)量;
④化繁為簡節(jié)省成本
敏捷測試沒有要求需要詳細的測試計劃和測試文檔,也沒有定義繁復(fù)的測試流程及缺陷流程,這種輕量級的管理模式為測試人員減少不必要的負擔,節(jié)省了工作量及成本。
● 敏捷測試VS傳統(tǒng)測試●
那么敏捷測試和我們熟悉的傳統(tǒng)測試比,他們到底有什么樣的區(qū)別呢?我整理了如下對比表:
敏捷測試將會變得越來越重要,屆時,測試人員如何在敏捷體系下自處可能是很多人都在憂慮的一個問題。在2周一次甚至更短時間的迭代中,測試人員應(yīng)該如何準備測試,保證質(zhì)量是一個擺在我們眼前的“大山”,該如何跨過它
● 傳統(tǒng)測試如何遷移到敏捷測試●
①組織文化的轉(zhuǎn)變
德勤在介紹敏捷開發(fā)相關(guān)文章中提到,組織文化是一個被用在覆蓋組織方方面面的術(shù)語——從基本的認識、態(tài)度和價值觀到組織特定的語言、知識和技術(shù)等。在敏捷文化中,相比于流程,敏捷更關(guān)注人,所以敏捷測試組織是應(yīng)該是以人為導(dǎo)向、自組織、協(xié)作式的一種文化氛圍。但是據(jù)筆者觀察,不少敏捷項目仍然缺乏這樣的文化基因。比如在站會的時候,還是會看到所謂的TeamLead站在“C位”主持和領(lǐng)導(dǎo)著會議,團隊都站在后面等待匯報工作。
②組織架構(gòu)的調(diào)整
從項目特點來看,敏捷是屬于“強項目型”管理的方式,所以如果以前是屬于職能型的組織架構(gòu),比如開發(fā)人員隸屬開發(fā)部門,測試人員隸屬測試部門,那么在敏捷項目中需要進行調(diào)整。開發(fā)和測試同屬一個項目一個團隊,大家的目標是一致的,就是要保證項目的成功。所以測試人員可能會幫開發(fā)人員評審代碼,開發(fā)人員也會幫測試人員進行測試,人員角色的職能變得模糊化。
③ 人員培訓(xùn)與指導(dǎo)
任何新的方法如果沒有進行相關(guān)培訓(xùn)和了解,會讓具體執(zhí)行人覺得不安而沒有底氣。同樣,敏捷項目中測試人員在進行測試前也需要接受敏捷知識的培訓(xùn)。如果可能的話,最好是由具有豐富經(jīng)驗的敏捷教練幫忙進行導(dǎo)入,在教練的幫助下進行成長,避免走錯方向。
④輕流程
傳統(tǒng)項目的開發(fā)管理方法體系比如CMMI相對來說比較重流程,要求的交付件也非常多。而敏捷強調(diào)輕流程,盡量減少不必要的文檔,使得整個開發(fā)模式變得輕快。所以在設(shè)計流程和交付件時,需要充分考慮這個特點,盡量簡化。當然,少文檔不是代表不用寫任何文檔,一些必要的文檔還是需要有的。
●敏捷測試成功的關(guān)鍵要素●
Lisa Crispin在《敏捷軟件測試:測試人員與敏捷團隊的實踐指南》中總結(jié)了敏捷測試成功的七大關(guān)鍵要素,我覺得可以精簡為下面五大關(guān)鍵要素:
① 領(lǐng)導(dǎo)層的大力支持
任何一個改變要想實施成功,都離不開領(lǐng)導(dǎo)層的大力支持。從領(lǐng)導(dǎo)層的角度需要提供一個寬松的環(huán)境,讓整個敏捷測試團隊能夠形成自組織的模式。當遇到問題時不是進行追責(zé),而是給予足夠的信任和支持,幫助團隊度過難關(guān),陪伴團隊的成長。
②測試人員具備敏捷思維
測試人員需要了解敏捷,掌握敏捷的基本知識和原則,從而才能在整個敏捷體系中更快的融入到敏捷環(huán)境中,從而更好的開展整個測試工作。
③要有勇于嘗試的信心
相比傳統(tǒng)測試來說,敏捷測試比較新。很多測試人員對于新的事物不敢去嘗試,做事畏畏縮縮、裹足不前。因此需要測試人員有敢于嘗試的決心,不怕做不好,就怕不去做。只有做了,才知道哪里行哪里不行。然后再根據(jù)不足進行優(yōu)化,從而最終取得成功。
④與各方緊密協(xié)作
在敏捷項目中,測試人員與其他方的直接溝通會非常頻繁。測試人員不僅需要和開發(fā)人員緊密協(xié)作,還需要和產(chǎn)品經(jīng)理甚至是最終用戶保持頻繁的溝通,使得整個測試更有效率。
⑤ 自動化、自動化
自動化是敏捷測試非常重要的元素。在敏捷開發(fā)這種極短的交付周期內(nèi),如果僅僅靠手工測試,則非常難以滿足快速發(fā)布要求的。所以自動化測試是必不可少的一種手段。另外這里談到的自動化不僅僅只是指單純的自動化測試,還包括自動化測試如何集成在整個交付管道中,縮減整個交付時間,實現(xiàn)持續(xù)集成甚至是DevOps,最終給項目帶來價值。
-------- THE END --------
