敏捷測試關鍵成功因素

Tynam.Yang發表於2018-06-28

參考《敏捷軟體測試》第21章 關鍵成功要素
為了幫助測試人員在敏捷團隊中成功並幫助敏捷團隊成功地釋出高質量產品,現總結出具有敏捷思想的測試人員如何應用敏捷實踐和提高工作質量。

1、團隊整體參與
  當整個開發團隊負責測試和質量問題,會發現學到不同的技能集合和經驗等級來處理測試可能發生的問題。在團隊中要注重1+1>2。任何人都參與測試任務,團隊才會設計出非常完美的可測試case。將測試人員真正成為開發團隊的一部分意味著測試人員需要掌握更多的新技能來和開發和客戶團隊緊密協作。
管理一個敏捷團隊,記住敏捷開發和測試的目的是產品質量,不是速度。使用者的滿意才是對產品和團隊的肯定。團隊需要產品人員幫助客戶理清需求,測試人員進行質量驗證,確保測試人員能夠把技能和長處應用到專案中,使測試不侷限一種角色。
  作為一個測人人員,應該站在使用者的角度思考問題,積極和團隊其他成員交流,謹慎地提供反饋並幫助客戶提供示例,讓自己的問題成為團隊的問題,讓團隊的問題成為自己的問題,一起解決。

2、採用敏捷測試思維
  在敏捷團隊中,開發人員參與測試,測試人員可以做任何事情以幫助團隊生產最優秀的產品。曾經和某公司leader聊天過程中,他指出測試人員不應是對產品的一種簡單測試,而是不斷的探索新的方法或工具,使產品的測試工作更有效率的完成,也使開發在自我驗證的時候更便捷。敏捷測試態度是前瞻性的、創造性的、歡迎新思想、樂於承擔任何任務。敏捷測試人員不斷磨練自己的技能,隨時準備協作,相信直覺,幫助團隊和業務成功。在敏捷團隊中在注重團隊的目標的同時也應該注重團隊的每一個成員,使每一個人都有提升,這樣才能更好的服務團隊。
  使用敏捷準測和價值觀。不斷嘗試最簡單的方法滿足測試需求。需求幫助和實驗新想法。關注產生價值,多溝通,靈活應對變化,享受工作。
  不斷探索新方法改進工作。成功的敏捷測試人員會持續地磨練技能,讀好書、部落格和文章以獲得新想法和技能。實驗新的實踐、工具和技術。鼓勵團隊嘗試新方法。端粒迭代非常適合。

3、自動化迴歸測試
  測試自動化是團隊的工作 ,在開始時很艱苦,需要克服很大的痛苦。如果管理開發或者測試團隊,應確保在時間、培訓和激勵上提供足夠的支援。
  自動化迴歸測試是團隊的工作。整個團隊應該選擇適合自己測試的工具。提前考慮測試將幫助開發人員為了便於測試自動化來設計程式碼。可使用敏捷測試象限和測試自動化金字塔來幫助自動化各種型別的測試。從簡單的入手,會發現一些基本的自動化冒煙測試或者自動化單元測試會發生很大作用。

4、提供並獲取反饋
  反饋時敏捷的核心價值,敏捷的短期迭代可以提供持續的反饋以幫助團隊正常運轉。測試人員通過自動化測試結果、探索性測試的發現和系統實際使用者的觀察結果的形式幫助提供反饋。敏捷開發的價值不是更快,而是快速的產生足夠的價值以幫助業務增長和成功。測試人員在提供反饋達到目標過程中扮演著重要的角色。測試人員應該詢問開發人員是否得到了足夠的資訊以理解需求並且是否能夠指導編碼。詢問客戶是否理解質量標準。花時間參與迭代集合會議和回顧會議以討論這些問題並提出改進方案。

5、構建核心實踐的基礎
  a、持續整合
    每一個團隊都需要程式碼管理和持續整合。如果不知道自己在測試什麼,就無法有效的測試。所有團隊成員需要至少每天一次匯入自己的工作。每一整合必須通過自動化構建驗證。其中包括提供軟體態度快速反饋的測試。
實際持續整合過程應該是軟體開發團隊中優先順序最高的事情。如果團隊沒有每日構建驗證的版本,就應停止手上的工作,開始構建。
  b、測試環境
    沒有可控的測試環境就無法有效地進行測試。需要制定部署什麼版本、使用的資料庫模式是什麼、其他人是不是正在更新模式、其他程式是否執行在那臺計算機上。
    硬體總是越來越便宜,開源軟體會越來也多。團隊必須投資以有效地執行自動化和手動探索性測試。遇到問題,提出來團隊一起解決。
  c、管理技術債務
    即使優秀的軟體團隊在感覺時間壓力之後,也會忽視重構或者快速解決問題修補缺陷。隨著程式碼越來越混亂和難以維護,會出現更多的缺陷。團隊必須不斷地評估技術債務的數量,並努力減少和避免技術債務。業務需要團隊保持持續的生產力。這就要求必須保證足夠的時間來進行良好的、測試規範的程式碼設計和優秀實踐。
    自動化迴歸測試的良好覆蓋率是最小化技術債務的關鍵。如果缺少,那就在每個迭代中拿出時間來構建自動化測試,規劃一個“重構迭代”以升級或新增必要的工具。在每個迭代中花時間通過 測試指導程式碼,重構必要的程式碼,新增丟失的自動化測試。
  d、增量工作
    敏捷團隊能夠生產高質量程式碼的一個原因是他們小規模的工作。故事代表了幾天的工作量,每個故事被分解成小增量,按步構建。測試可以針對一小塊,並且隨著功能聚集再增量測試。
  e、編碼與測試
    測試人員必須貫穿整個迭代,整個開發過程,否則就是失敗。
    測試人員基於需求提供的示例編寫測試,幫助開發人員理解故事並開始程式設計。測試和示例提供了一種通用語言使所有人都參與到軟體理解中。開發人員向測試人員展示編寫能力,測試人員向開發人員展示發現的異常行為。測試人員隨著編碼進行編寫更多的測試,開發人員通過測試,使其瞭解是否生產了正確的價值。每一次迭代包含了若干持續、快速、增量的測試。
    當編碼一直由測試指導,編碼的同時進行測試,更有可能達到客戶預期的行為,提供客戶所需的價值。測試是團隊的職責。
  f、實踐之間的協作
    單個敏捷開發實踐能夠發揮作用,但是多個敏捷實踐的組合比各個比分相加要更大。測試驅動設計、共有程式碼所有權和持續整合一起促進快速反饋、持續改進程式碼設計和快速產生業務價值。
    敏捷實踐是互補的。應花時間理解各個實踐的目的,利用全部優勢作出對團隊有用的決定。

6、與客戶合作
  測試人員對敏捷團隊的最大貢獻之一是幫助客戶理清需求並設定優先順序,通過預期行為和使用者場景的具體示例描繪需求,並把這些示例轉換為可執行的測試。測試人員使用業務的領域語言和開發團隊的技術語言,擔任優秀的輔助者和翻譯。
  多鼓勵交流,當需求模糊,客戶、開發、測試一起解決問題。

7、保持大局觀
  團隊的每一個人很容易只關注手邊的一個任務或者故事,這是一次只做一塊功能的缺點。幫助團隊評估當前的故事如何負責業務的大局。不斷問自己如何才能更好的產生真正的價值。
  大局觀對團隊貢獻巨大。測試驅動開發,使用敏捷測試象限作為綱領來幫助規劃測試覆蓋所有範圍。使用測試金字塔思想確保測試自動化的良好投資回報率。要勤於重新構建一個生產環境類似的場景。

總結
  測試和質量時整體團隊的職責,但是測試人員擁有獨特的視角和技能。最為一名測試人員,對釋出客戶滿意產品的追求會幫助自己克服遇到的挫折。成為持續改進的代理人。讓敏捷準則和價值指引自己與客戶和開發團隊一同工作,在每個迭代中生產價值。

相關文章