敏捷測試是什麼?

wetester效能測試發表於2018-05-02

敏捷測試是什麼?

隨著這幾年敏捷概念和方法的流行,越來越多的組織和專案選擇了敏捷開發模式。那麼對於測試人員來說,究竟敏捷測試與傳統測試有什麼區別?測試人員在一個敏捷專案中需要如何轉變才能適應當前這種流行的測試模式呢?請看下文介紹。

敏捷測試的定義

埃森哲對敏捷測試的定義(與維基百科的定義基本一致)大概如此:敏捷測試是遵從敏捷軟體開發原則的一種測試實踐。敏捷開發模式把測試整合到了整個開發流程中而不再把它當成一個獨立的階段。因此測試變成了整個軟體開發過程中非常重要的環節。敏捷測試包含了具備專業技能測試人員在內的跨職能團隊,這使得這種組合式的團隊能更好的交付價值,滿足專案的業務、質量和進度目標。

從定義中可以看出敏捷測試主要的核心內涵有三個:

1. 是遵從敏捷開發的原則(強調遵守)

2. 測試被包含在整體開發流程中(強調融合)

3. 跨職能團隊(強調協作)

除此之外,敏捷測試用到的基本測試方法和技術與傳統測試是一樣的。

敏捷測試的特點

既然敏捷測試屬於一種新的測試實踐,那麼到底它有什麼的特點呢?我用“四個更”來歸納:

更強的協作:敏捷開發人員和測試人員工作得更加緊密,喜歡更直接的溝通方式而不是通過郵件文件這種一來一回反反覆覆的溝通模式;

更短的週期:需求驗證或測試的時間不再是按月來計算,而是按天甚至按小時計算。使用者驗收測試在每個sprint的結尾都會進行;

更靈活的計劃:敏捷測試也需要擁抱變化,測試計劃不再是一成不變的文件,而會根據業務價值交付的順序進行靈活的調整;

更高效的自動化:相比傳統測試,自動化在敏捷測試中扮演了極其重要的角色。它是實現快速交付確保質量的一種非常有效的手段

為什麼要敏捷測試

一個很直接的原因是如果整個專案都在採用敏捷開發模式,比如兩週一個迭代,你還在跟專案談傳統的各個測試階段,就好像兩個不同轉速的齒輪,根本無法結合。試問,兩週時間能完成得了所有的測試階段嗎?所以必須要有新的測試實踐來取代原有的模式,才能更好的適應敏捷小步快跑的特點。當然,除了適應開發的節奏外,敏捷測試還是有其特有的價值:

縮短價值交付週期

通過採用敏捷測試這種模式,可以契合整個敏捷開發週期,使得整個敏捷開發按照相同而快速的迭代速率和週期交付,讓終端使用者儘快獲取到業務價值;

更早發現測試風險

敏捷測試使得測試人員儘早開始進行測試,儘早的發現系統缺陷或存在的問題,避免所有的問題都堆積在最後的測試階段形成“Big-bang”的結果,降低整體系統風險;

強調質量屬於大家

質量是構建出來的,而不是測出來的。敏捷測試一直強調質量屬於每一個人的責任,除了測試之外,開發、產品經理等都有義務對自己的交付件質量負責,這樣才能確保專案的整體質量;

化繁為簡節省成本

敏捷測試沒有要求需要詳細的測試計劃和測試文件,也沒有定義繁複的測試流程及缺陷流程,這種輕量級的管理模式為測試人員減少不必要的負擔,節省了工作量及成本。

敏捷測試VS. 傳統測試

那麼敏捷測試和我們熟悉的傳統測試比,他們到底有什麼樣的區別呢?我整理了如下對比表:


敏捷測試是什麼?


敏捷測試將會變得越來越重要,屆時,測試人員如何在敏捷體系下自處可能是很多人都在憂慮的一個問題。在2週一次甚至更短時間的迭代中,測試人員應該如何準備測試,保證質量是一個擺在我們眼前的“大山”,該如何跨過它,可以加群680748947瞭解更多關於敏捷測試的知識。

傳統測試如何遷移到敏捷測試


1. 組織文化的轉變

德勤在介紹敏捷開發相關文章中提到,組織文化是一個被用在覆蓋組織方方面面的術語——從基本的認識、態度和價值觀到組織特定的語言、知識和技術等。在敏捷文化中,相比於流程,敏捷更關注人,所以敏捷測試組織是應該是以人為導向、自組織、協作式的一種文化氛圍。但是據筆者觀察,不少敏捷專案仍然缺乏這樣的文化基因。比如在站會的時候,還是會看到所謂的TeamLead站在“C位”主持和領導著會議,團隊都站在後面等待彙報工作。

2. 組織架構的調整

從專案特點來看,敏捷是屬於“強專案型”管理的方式,所以如果以前是屬於職能型的組織架構,比如開發人員隸屬開發部門,測試人員隸屬測試部門,那麼在敏捷專案中需要進行調整。開發和測試同屬一個專案一個團隊,大家的目標是一致的,就是要保證專案的成功。所以測試人員可能會幫開發人員評審程式碼,開發人員也會幫測試人員進行測試,人員角色的職能變得模糊化。

3. 人員培訓與指導

任何新的方法如果沒有進行相關培訓和了解,會讓具體執行人覺得不安而沒有底氣。同樣,敏捷專案中測試人員在進行測試前也需要接受敏捷知識的培訓。如果可能的話,最好是由具有豐富經驗的敏捷教練幫忙進行匯入,在教練的幫助下進行成長,避免走錯方向。

4. 輕流程

傳統專案的開發管理方法體系比如CMMI相對來說比較重流程,要求的交付件也非常多。而敏捷強調輕流程,儘量減少不必要的文件,使得整個開發模式變得輕快。所以在設計流程和交付件時,需要充分考慮這個特點,儘量簡化。當然,少文件不是代表不用寫任何文件,一些必要的文件還是需要有的。


敏捷測試成功的關鍵要素

Lisa Crispin在《敏捷軟體測試:測試人員與敏捷團隊的實踐指南》中總結了敏捷測試成功的七大關鍵要素,我覺得可以精簡為下面五大關鍵要素:

1. 領導層的大力支援

任何一個改變要想實施成功,都離不開領導層的大力支援。從領導層的角度需要提供一個寬鬆的環境,讓整個敏捷測試團隊能夠形成自組織的模式。當遇到問題時不是進行追責,而是給予足夠的信任和支援,幫助團隊度過難關,陪伴團隊的成長。

2. 測試人員具備敏捷思維

測試人員需要了解敏捷,掌握敏捷的基本知識和原則,從而才能在整個敏捷體系中更快的融入到敏捷環境中,從而更好的開展整個測試工作。

3. 要有勇於嘗試的信心

相比傳統測試來說,敏捷測試比較新。很多測試人員對於新的事物不敢去嘗試,做事畏畏縮縮、裹足不前。因此需要測試人員有敢於嘗試的決心,不怕做不好,就怕不去做。只有做了,才知道哪裡行哪裡不行。然後再根據不足進行優化,從而最終取得成功。

4. 與各方緊密協作

在敏捷專案中,測試人員與其他方的直接溝通會非常頻繁。測試人員不僅需要和開發人員緊密協作,還需要和產品經理甚至是終端使用者保持頻繁的溝通,使得整個測試更有效率。

5. 自動化、自動化

自動化是敏捷測試非常重要的元素。在敏捷開發這種極短的交付週期內,如果僅僅靠手工測試,則非常難以滿足快速釋出要求的。所以自動化測試是必不可少的一種手段。另外這裡談到的自動化不僅僅只是指單純的自動化測試,還包括自動化測試如何整合在整個交付管道中,縮減整個交付時間,實現持續整合甚至是DevOps,最終給專案帶來價值。


敏捷測試是什麼?


相關文章