這次我們仔細說說什么是敏捷測試?

發表于:2018-05-14來源:晨小菜作者:Rick Chen點擊數: 標簽:
埃森哲對敏捷測試的定義(與維基百科的定義基本一致)大概如此:敏捷測試是遵從敏捷軟件開發原則的一種測試實踐。敏捷開發模式把測試集成到了整個開發流程中而不再把它當成一

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

 

敏捷測試的定義

 

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

 

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

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

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

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

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

 

敏捷測試的特點

 

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

 

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

 

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

 

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


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

 

為什么要敏捷測試

 

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

 

縮短價值交付周期

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

 

更早發現測試風險

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

 

強調質量屬于大家

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

 

化繁為簡節省成本

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

 

敏捷測試VS. 傳統測試

 

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

 

傳統測試

敏捷測試

1. 測試發生在最后階段

1. 測試發生在每一個Sprint迭代里

2. 組與組之間的溝通是正式的

2. 組與組之間除了正式溝通外也有很多非正式溝通

3. 測試自動化是可選項

3. 測試自動化被高度推薦

4. 測試以需求文檔為準

4. 測試以最終用戶為準

5. 詳細的測試計劃

5. 精益化的測試計劃

6. 計劃是一次性活動

6. 計劃分為不同的級別

開始階段為粗粒度的計劃

Sprint 0及后續Sprint’Just-In-Time’ 式的計劃

7. 項目經理計劃整個團隊的工作

7. 團隊被授權和主動參與到計劃中

8. 開始階段要求詳細需求

8. 開始階段允許High-Level需求

9. 需求被定義后客戶有限的參與

9. 客戶參與貫穿到整個項目生命周期

  

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

 

1. 組織文化的轉變

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

 

2. 組織架構的調整

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

 

3. 人員培訓與指導

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

 

4. 輕流程

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

 

敏捷測試成功的關鍵要素

 

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

 

1. 領導層的大力支持

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

 

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

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

 

3. 要有勇于嘗試的信心

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

 

4. 與各方緊密協作

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

 

5. 自動化、自動化

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

 

參考資料

1.《敏捷軟件測試:測試人員與敏捷團隊的實踐指南》

2. 維基百科

3. 埃森哲敏捷測試方法論

4. 德勤《From Waterfall to Agile - Anorganization and culture change perspective

原文轉自:https://mp.weixin.qq.com/s/muwde7PsQkkJeZF4CIUDEQ

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97