讓測試敏捷起來吧

發表于:2014-03-03來源:豆瓣作者:@行知-追尋技術之美點擊數: 標簽:敏捷測試
在敏捷開發紅遍大江南北的同時,敏捷測試的相關討論而相對遜色很多。對于敏捷測試,大多數人都存在這樣或那樣的疑問,”什么是敏捷測試?”,”敏捷測試中,測試人員做什么?”, 在揭開這個謎題之前,我們還是先了解一下敏捷宣言吧。

  在敏捷開發紅遍大江南北的同時,敏捷測試的相關討論而相對遜色很多。對于敏捷測試,大多數人都存在這樣或那樣的疑問,”什么是敏捷測試?”,”敏捷測試中,測試人員做什么?”, 在揭開這個謎題之前,我們還是先了解一下敏捷宣言吧。

  個體與交互 重于 過程和工具

  可用的軟件 重于 完備的文檔

  客戶協作 重于 合同談判

  響應變化 重于 遵循計劃

  敏捷測試繼承了上述的敏捷宣言和其準則,而且,在關于敏捷測試最早的PPT中,定義了敏捷測試的兩個主要特點:遵循敏捷宣言的測試實踐,將開發當成是測試的客戶”(Testing practice that follows the agile manifesto, treating development as the customer of testing),以及“在使用敏捷技術的項目中的測試實踐”(Testing practice for projects using agile methodologies)。

  What is it?

  那么到底什么是敏捷測試呢?這里的確很難給出一個明確的定義,但是可以借鑒一下網絡上流傳的一種定義,”在敏捷開發的軟件過程中的測試就是敏捷測試”。而且,敏捷測試更多的是一種理念,而不是一種過程。對敏捷測試的理解不能與傳統的測試流程相混淆。

  實行敏捷測試的過程不是一個獨立的過程,它應該是和開發緊密相連的,在產品的生命周期中,處處都應該存在它的影子。所以,敏捷測試應該是一個integration的任務,在不同的層面(UNIT Test,function test,E2E…),都需要按照敏捷的方式組織測試,目的就是符合敏捷測試方法的價值觀。至于敏捷測試這個敏捷開發的同源產物,自然也會繼承其中的“目標驅動”而不是“過程驅動”的特性。

  敏捷測試與傳統測試的不同點在于:

  敏捷測試并不傾向于嚴格區分開發和測試角色,全體工程師對于質量具有同等的責任,測試任務由開發和測試工程師共同完成,只是側重點不一樣;

  敏捷測試的迭代周期很短,為了在很短的迭代周期中完成測試任務,要求建立“足夠好”的驗收測試,建立足夠的自動化測試;

  敏捷測試不嚴格依賴于文檔(需求,設計等),測試角色必須和其他成員以及客戶有良好的溝通,以保證建立的質量標準符合用戶的需求,以及能夠使用項目中的相關知識建立合理的測試框架;

  關于底層測試和關于代碼質量是敏捷測試中的一個非常好的實踐。

  How We Do it?

  實際上,敏捷過程中與測試相關的任務很多,概括說來有如下一些:

  建立不同級別的測試驗收標準,包括單元測試、集成測試、系統測試等各個層面的驗收標準;

  推動整個團隊的質量文化,保證整個團隊的成員在質量責任與目標方面達成一致;

  通過技術或是管理的手段,保證產品、代碼具有良好的可測試性;

  通過自動化測試手段縮短每個產品發布周期中測試所需的時間;

  確認出可接受的軟件質量標準,并建立針對此標準的驗收測試;

  深入了解應用系統和業務需求,通過探索性測試方法設計有效的測試用例,發現產品中的缺陷;

  建立對整個團隊可見的質量度量體系,保證整個團隊能夠隨時看到產品的質量度量值。

  鑒于,我們當前的項目比較大,而且要求公司全面做出改動是沒有希望的,但是我們可以改變我們平時工作中的一些理念,讓測試工作開展起來更具有效力。

  1. Conversational Tests Creation

  測試活動不僅僅只是測試人員的事情,我們需要與dev,pm多溝通,多交流,這樣可以減少文檔更新不及時造成的信息不匹配等問題。

  2. Coaching Tests

  a. 開發之前,思考并提出可測試性需求,不要在開發完成后才發現測試起來有難度。

  b. 測試案例的開發需要多與開發和PM交流,這樣對案例的質量的提升有很大的幫助。

  c. 測試之前,我們需要準備做到以下幾點要求:

  1. 有明確的質量目標和測試指導說明規范。

  2. 要具備快速的反饋能力,對新feature和改動能夠及時獲取到并做出相應的響應。

  3. 測試進度是可以被測量的,這就需要有合理的計劃安排和可視的進度安排。

  d. 測試過程中,要有明確的測試規范:

  1. 測試案例要足夠清晰,并能讓開發人員讀懂。

  2. Bug的描敘要清晰明確,能夠幫助開發人員快速定位。

  3. 有完善的測試框架方便開發測試案例,并執行案例。

  4. 測試的結果報告一定要易懂。

  3. 測試的交互模型

clip_image002

  經過上面的一些介紹,我覺得作為測試工程師,我們應該具備的技能就應該有以下幾個方面:

  良好的溝通和協作能力;

  良好的設計和代碼能力,至少可以和開發工程師在同一水平上討論具體的設計和代碼實現;

  快速學習和總結的能力;

  對自動化測試有深刻的理解(至少要能清楚的認識到自動化測試不等于UI自動化測試,也不等于用自動化測試工具進行錄制和回放);

  快速的風險分析和判斷能力(在許多情況下都不會有足夠的時間開展full regression,如何判斷風險和決定相應的對策至關重要)。

原文轉自:http://www.wangyuxiong.com/archives/51308

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