測試左移——測試策略探討

測試左移——測試策略探討

測試及早介入原則

根據統計表明,在軟件開發生命週期早期引入的錯誤佔軟件過程中出現所有錯誤(包括最終的缺陷)數量的50%~60%。 此外,IBM的份研究結果表明, 缺陷存在放大趨勢,如需求階段的一個錯誤可能會導致N個設計錯誤。越是測試後期,為修復缺陷所付出的價就會越大,因此,軟件測試人員要儘早地且不斷地進行軟件測試,以提高軟件質量,降低軟件開發成本。

測試左移概念

測試左移——測試策略探討

簡單的講就是更早於傳統的測試介入階段(提測後)之前介入測試工作,不侷限於軟件提測後再介入測試,使得測試與開發活動結合的更加緊密,測試左移的思想可以從兩個角度去考慮:

1.功能測試左移,比如測試人員在需求評審、分析階段介入,可以理解為測試流程的左移,也可理解為測試重心的左移(在需求分析、測試設計階段加大投入);

2.(接口)自動化測試左移,即不再侷限於功能趨於穩定再介入自動化測試,而取決於自動化測試技術應用結果的易用性、可擴展性、可維護性的發展程度;

測試左移下的開發測試流程

如圖所示,我們將軟件生命週期簡單劃分為概念階段、設計階段、開發階段、驗證階段、發佈階段以及明確開發與測試在各階段的工作內容,圖中標註了測試左移、自動化左移、測試右移對應的測試階段及測試活動。

測試左移——測試策略探討

功能測試左移

功能測試左移的主要思想,就是在研發人員進行需求評審、分析階段,測試人員同步參與整個評審、分析過程,瞭解需求背景、場景的同時對需求的完善性、鍥合度等方面進行評審;研發人員在功能設計、實現階段,測試人員同步進行測試分析、用例設計、評審工作。同時加大了對測試需求分析的投入力度。其核心是對 :

部分測試人員對需求的初始認知已經建立在需求正確的基礎之上的,因此缺少對需求的正確性判斷,對需求的的背景、場景等都不瞭解,如果是這樣那隻能對已有功能進行正確性校驗,無法或者不能考慮其必要性,是否真正的滿足用戶訴求等等。所以我們首先要了解需求,然後才能對其進行評審,才能結合功能需求產出對應的測試需求,才能結合用戶數據對需求的價值進行客觀的評估。一般需求分為業務需求、用戶需求、功能需求。

  • 業務需求:業務需求描述了組織為什麼要開發一個系統, 即組織希望達到的目標。業務需求通常來自項目投資人,購買產品的客戶實際用戶的管理者、市場營銷部門或產品集劃部門。使用前置和範圍文檔來記錄業務需求,這份文檔有時也被稱作項目輪廓圖或市場需求文檔。
  • 用戶需求:用戶需求描述的是用戶的目標或用戶要求系統必須能完成的任務。比如軟件的界面是否好看、功能使用是否便捷等都屬於用戶需求。用戶需求可以認為是對業務需求的一個具體目標。比如業務需求提出了這個系統具有語音功能,那麼用戶需求可能就包含了語音具備的功能,比如,可以喊劉德華的電影去搜電影等。
  • 功能需求:功能需求規定開發人員必須在產品中實現的軟件功能,用戶利用這個功能來完成任務,滿足業務需求。功能需求有時也被稱作行為需求功能需求是去解決業務需求、用戶需求的具體的解決方案,也就是我們通常說的需求說明書。對用戶需求做具體的分析、提出實施方法(需求說明書通常是由軟件開發方編寫比如產品經理。使得用戶和軟件開發方都對軟件的初始規定有個共同的理解,是整個開發的基礎)。同時,開發方需要對需求說明書進行評估,比如這個需求能不能做,耗費的成本是不是小於帶來的收益,還有風險評估等。
測試左移——測試策略探討

自動化測試左移

測試左移——測試策略探討

接口自動化測試

自動化測試左移是在類敏捷、DevOps開發模式催化下的一種測試思想,隨著持續的頻繁迭代,對測試效應效率提出了更高的要求,傳統的自動化測試准入原則(功能相對穩定)已經不再適應。

我們嘗試在用例設計階段產出手工用例的同時,依據功能設計(接口設計文檔)產出自動化測試用例,在研發提測後進手工執行為進行自動化測試覆蓋的用例,提高測試活動的敏捷性和持續性。

目前我們通過基於測試庫架構、數據驅動架構、關鍵字架構利用Python語言構建了接口自動化測試平臺,通過將接口測試要素提取為各關鍵字並完成設計、開發,以滿足各場景下的接口測試需求,為手工測試人員進行自動化用例覆蓋提供了更為高效、易用的測試策略。

當接口自動化測試變得足夠簡單,維護成本足夠低的時候,功能需求改動引入的自動化維護成本也將變得可以接受,因此自動化測試左移得以實現,不再侷限於功能相對穩定的約束條件之下。

總之無論是測試左移和測試右移其核心目的都是圍繞著產品質量提供測試服務。

測試左移——測試策略探討


分享到:


相關文章: