天天看點

靈活模式下的團隊測試能力建構

随着靈活開發模式逐漸走入大衆視野,它開始逐漸取代了傳統的瀑布式開發模式,被越來越多的研發項目團隊采用。靈活開發采用快速疊代,快速釋出可用版本的方法,持續輸出、持續改進。不同于傳統的軟體開發模式,靈活開發模式有着自己鮮明的價值和方法。 但即使實踐了靈活,我們可能還會發現,Bug并沒有消失。

面對這些Bug的出現,團隊成員常常會産生這樣的疑惑:

  • 為什麼明明進行了很多輪的測試,但軟體正式上線還是會出現很多Bug?
  • 為什麼這麼明顯的Bug,上線之前就沒有測試出來?
  • 這些Bug,是不是因為測試人員工作不到位造成的?

但實際上,測試人員并不能決定軟體品質的好壞。尤其在團隊選擇靈活開發模式下,靈活測試部分也同以往的軟體測試流程有所不同。這對測試人員提出了新的要求,帶來了新的挑戰。那麼如何平衡靈活的快速疊代開發和解決Bug的沖突呢?

一、為團隊設立專職QA

靈活團隊中的靈活測試人員通常被稱為品質分析師、SET、測試工程師、QA Lead,在靈活團隊,大多數人也會把QA當作一個獨立的角色使之與其他團隊成員區分開來。那麼QA之間又有什麼不同呢?通常QA可以分為三類:業務側、技術側、DevOps側,這三者形成了QA的三個次元。靈活團隊中的QA可能具備其中的一個或者是這三類中所有的技能。

靈活模式下的團隊測試能力建構

大多數人也會把QA當作一個獨立的角色使之與其他團隊成員區分開來。我認為這是一個過時的概念。QA和開發人員的差別在于思維方式的不同。

業務側QA:他們幫助團隊更清晰地了解整個項目的業務問題。通過 QA把客戶需求轉化為驗收測試用例,幫助沒有技術背景的客戶和沒有業務視角的程式員打破次元不同的職業壁壘。在使用者故事開始之前,靈活團隊QA需要和程式員一起結對讨論使用者需求,幫助團隊了解更多的業務資訊。在此期間,他們會督促軟體開發工程師來寫驗收測試,以確定使用者故事能夠及時被測試。

技術側QA:通常在靈活團隊中,技術側QA都需要有過硬的專業技術,他們甚至和程式員沒有任何技術上的差距。他們可以利用豐富的自動化測試知識實作TDD,協助團隊為項目選擇合适的測試架構,為團隊提供一個良好的測試政策,確定産品品質。

DevOps側QA:在靈活團隊中,DevOps側QA需要根據疊代節奏和持續傳遞的原則,幫助團隊建構持續內建的測試流水線,以便每次出現問題後都能及時得到回報并解決。幫助團隊以良好的狀态高品質地完成持續傳遞。DevOps方向的QA會通過設定一些腳本來幫助團隊成員能夠更友善地在本地執行測試,例如代碼掃描、單元測試、元件測試和功能測試,并推進團隊實作自動化測試的開發與執行。

這三類QA的共同目标,都在于幫助團隊在靈活開發的每個疊代周期都能夠更加注重傳遞給客戶的有效價值,并且確定傳遞給客戶的産品品質。靈活團隊中的QA會扮演多種角色,但是他們最終的目的都是為了幫助團隊能夠實作更快更好的傳遞業務價值。

二、建構品質驅動型團隊

除了在靈活團隊中加入QA,把握三大不同的業務方向,在靈活過程中,有效的項目監管和控制是至關重要的。而軟體的品質也取決于每一個團隊成員,通過團隊間的充分合作,要做到團隊整體對品質負責。

靈活模式下的團隊測試能力建構

1、確定資訊透明

需要讓團隊成員知曉團隊的共同目标,每次傳遞産品的服務對象和使用者需求和品質目标是什麼。包括短期目标和長期目标,包括業務動态、發展戰略、使用者回報、工作中心、持續改進的狀态、項目進度、團隊壓力等各個方面,資訊透明能夠打破團隊成員間的業務邊界,更好地融入團隊,彼此協作,這是一個靈活團隊健康與否的重要标志之一。

2、建立及時回報機制

在靈活團隊中,軟體品質的基礎在于團隊是否能夠真正實作持續測試、持續傳遞、持續內建、及時回報。這就需要團隊建立一個健康向上的合作機制,并不斷優化回報管道,一個良好和諧的回報機制可以促進團隊的健康發展,有助于建構品質驅動型團隊。

3、認真對待Sprint回顧會議

Sprint回顧會議是靈活軟體開發中非常重要的一環,但有些團隊的回顧會議流于形式,并沒有帶來什麼效果。Sprint回顧會議是團隊檢視自身并建立下一個Sprint的機會。Sprint回顧會議的目的在于:

  • 回顧前一個Sprint中的情況;
  • 找出并加以排序做得好的和潛在需要改進的主要方面;
  • Scrum Master制定改進團隊工作方式的計劃。

在Sprint回顧會議中,最需要保持開放的氛圍,團隊成員彼此信任,并樂于接受新的想法、觀念,最終形成一個品質驅動的高效率團隊。

4、打造全員學習的團隊氛圍

靈活方法論并不能取代生産力,不同技術水準的開發人員,最終傳遞的軟體品質是不同的,因為我們沒有辦法讓開發人員完成他能力範圍之外的工作。靈活開發僅僅是一種開發模式,它不是銀彈,靈活不能解決問題,隻能讓問題暴露的更早。如果團隊不能解決技術問題。就不能完成持續的高品質傳遞。是以,建構學習型團隊,讓團隊成員養成不斷學習的習慣。這樣能夠幫助團隊從根本上提升研發水準,降低開發成本、提高開發效率并提升産品品質。

項目團隊整體對軟體品質負責是靈活開發的基本原則,但要真正做到這點,并非易事。需要我們在研發過程中,明确總體的品質目标,并且確定團隊所有成員了解清楚各自需要為哪部分的品質負責,在研發項目的全生命周期,需要引入專業的QA人員來站在更高次元對整體品質做把控,需要多職能角色的合作,取長補短,能力互補。同時也要注重團隊建設,組建學習型的健康團隊。

繼續閱讀