天天看點

測試過程需不需要踐行靈活?測試過程有沒有必要性?如何讓測試過程變得靈活起來?

測試過程在瀑布式開發中作為開發流程中的一個環節,隻能在實作軟體基礎後開始運作,這種模式很大程度上導緻了人力資源的浪費。而在靈活開發模式中,為了解決人力資源浪費的問題,團隊的開發過程需要踐行靈活,同樣,測試階段也要踐行靈活。

測試過程有沒有必要性?

測試人員如同食品生産的質檢員,能夠依據傳遞成果檢驗産品的完成标準,并對産品判定“合格”與否。也就是說,測試人員需要測試産品的各功能點,對出現BUG的部分進行彙總分析,最終送出到開發人員手上。

假若産品的傳遞并未經過測試這一步驟,那麼我們就無法保證傳遞成果是符合使用者需求的。換句話說,面對一輛并未經過質檢的剛出廠的車,你敢開嗎?

如何讓測試過程變得靈活起來?

1.提高開發過程中的品質

在靈活開發過程中,測試不再隻是在某一特定階段内進行,而是貫穿于整個開發流程中去。也就是提高産品開發的内建品質——團隊中各職能成員都要對最終傳遞的産品品質負責,測試人員當然也不例外。

  • 适當減少在一個疊代中的工作量

在一個疊代過程中,如果産品需要做的功能點太多,就導緻團隊成員的任務量過滿:開發人員會由于趕進度而忽視了代碼的規範性要求;測試人員會因為測試出的BUG太多而不斷進行“開發—測試”的返工,進而增加人力成本。

是以,适當減少一個疊代周期中的工作量,才能讓開發、測試人員将更多的精力投入到提高代碼品質、提高測試效率中去。

測試過程需不需要踐行靈活?測試過程有沒有必要性?如何讓測試過程變得靈活起來?
  • 達到測試的完成标準

産品完成的定義(Definition of Done)主要從兩方面來說:

首先,測試用例針對每個已經完成的使用者故事。這意味着測試人員需要熟悉每一個使用者故事,并能夠針對使用者故事建構相對應的測試用例。測試用例可以分為正面測試用例和反面測試用例,以便更好地佐證其标準的準确性。

其次,執行并通過全部測試用例。測試人員在建構完整的測試用例後,還需要不斷地更新、修改。客戶需求的變動也應該在第一時間在告知測試人員,以便測試人員及時更改測試用例。執行并通過全部的測試用例後,産品負責人将産品傳遞客戶。

  • 測試人員的多職能

靈活團隊要求測試人員必須是多職能的。傳統項目中,從業人員職能單一,是以無法實作技能互通,這大大降低了各環節的生産效率。靈活團隊中最重要的一個特征就是“跨職能”:團隊成員擁有多種技能,當某一環節需要更多的人手時,其他成員可以暫代這一位置。當然,跨職能是指成員要掌握多種技能,但并非團隊成員都需要精通各種技能。

是以,靈活團隊中測試人員也需要是多職能的。這就意味着,測試人員不僅需要精通測試,還要掌握其他環節所需的技能。

  • 代碼集體所有權 

代碼集體所有權意味着代碼歸整個開發團隊所有,并非單獨所有。當測試環節發現問題的時候,其他測試或開發人員可以看到并修改代碼的任意部分。代碼集體所有權能夠有效地提高團隊開發效率,降低BUG風險。

  • 結對程式設計

結對程式設計通常是由兩個開發人員一起,而測試人員與開發人員一起進行結對程式設計主要展現在建構自動化測試程式中。在這種情況下,測試人員主要負責測試架構的合理性以及簡單的代碼編寫,而開發人員則需要保證代碼的高品質。開發人員與測試人員進行結對程式設計不僅會提高開發人員的測試意識,還會提高測試人員的代碼編寫能力,更有助于靈活團隊的形成。

測試過程需不需要踐行靈活?測試過程有沒有必要性?如何讓測試過程變得靈活起來?

2. 提高測試的效率

手動測試是一件十分枯燥、乏味的工作,當然,也是一件效率低下的工作。那麼,如何提高測試的效率呢?

  • 優先級排序

測試任務同開發任務一樣,都需要進行優先級的排序。先進行優先級高的測試任務,能夠在無法保證測試周期的前提下,影響不到整體開發進度。

  • 自動化測試

提高測試效率,首先會想到的就是進行自動化測試。自動化測試較大的優勢是能夠讓程式進行一些大量的機械操作,以便減少測試人員消耗在手工測試上的時間,提高測試效率。提高測試的效率,能夠加快測試周期,在較短的周期内運作更多的測試。

測試過程需不需要踐行靈活?測試過程有沒有必要性?如何讓測試過程變得靈活起來?

關于測試過程需不需要踐行靈活這一問題,答案當然是:需要。首先,讓測試過程變得靈活起來,能夠解決團隊中隻有開發人員踐行靈活的弱點。其次,通過測試過程靈活化,也能夠更好地提升整個靈活團隊的工作效率。