在《漫談軟體系統測試——問題解決》一文中,文章借鑑控制疫情的四大策略,總結了軟體系統質量保障的四大策略。那麼在日常工作中,我們應該如何理解測試策略呢?
測試策略是描述軟體開發週期的測試方法的概述。測試策略的目的是從組織的高階目標到實際的測試活動提供合理的推論,以從質量保證的角度實現這些目標。
對於一個完整的系統,其測試策略內容一般包含測試範圍、測試角色、測試方法、測試工具、測試層級、測試型別、驗證環境、風險和處理方案、測試指標和測試可交付成果等內容。如何來理解這些內容呢?我們可以將其簡化為四個問題:測什麼?由誰測?什麼時候測?怎麼測?
如果按測試範圍劃分,如果需求是新增獨立模組,其測試範圍可以只關注新內容。如果需求是舊版本的迭代或者與其他模組存在關聯,我們除了關注新增的需求內容,還需要關注舊版本內容和關聯模組。
如果按測試型別劃分,測試內容除了功能測試,我們還需要開展效能測試、相容測試和安全測試等工作,這些內容在日常的功能測試中涉及比較少,但是如果從整個產品質量角度考慮,我們還是需要關注的。
如果按測試層級劃分,測試內容可以包含單元測試、整合測試、系統測試和驗收測試。
只有測試人員可以參與測試麼?當然不是。在專案中,負責測試的角色其實還可以包含產品人員、設計人員、開發人員和使用者。單元測試主要由開發人員編輯測試程式碼,同時,開發在需求提交測試前需要完成自測工作。整合測試和系統測試主要由測試人員完成,產品人員和設計人員需要在需求釋出前進行驗收測試。當然,使用者也可以參加測試,例如在正式全量釋出前,部分使用者可以被邀請參加內測。
除了測試角色,雖然還有其他角色也會參與到測試工作中,但是其測試內容是有限的。在專案開展過程中,需求的質量保障工作主要還是需要由我們測試工程師把控,同時可以引導其他角色的人員對質量保障起到輔助的作用。
在軟體開發生命週期中,開展測試工作階段主要包含需求開發、需求測試和需求釋出階段。
在需求開發階段,可以開展單元測試工作。在需求測試階段,可以開展整合測試和系統測試工作。在需求釋出階段,可以開展驗收測試工作。
在不同階段,對應的測試環境可以包含:開發環境、測試環境、預釋出環境和生產環境。其中單元測試主要在開發環境和測試環境進行,整合測試和系統測試主要在測試環境和預釋出環境進行,驗收測試可以在測試環境,也可以在預釋出環境或者是生產環境進行。
測試的方法一般包括黑箱測試、灰盒測試和白盒測試。
黑箱測試方法有等價類劃分、邊界值分析、錯誤推測法、因果圖測試法和場景法等。灰盒測試方法有矩陣測試、迴歸測試、模式測試和正交陣列測試等。白盒測試方法有程式碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法和基本路徑測試法等。
工欲善其事,必先利其器。除了掌握測試方法,我們還需要了解相關測試工具,從而降低測試成本,提高測試效率。常見的測試工具型別包括:UI測試工具、介面測試工具、效能測試工具和安全測試工具等。當我們需要採用某種測試方法開展測試工作時,可以結合對應型別的測試工具,幫助測試工作能夠降本提效。
除了掌握常規流程的測試方法,對於當前不可測或者未知的風險,我們一方面需要研究其測試方法,另一方面也需要有合理的風險預案,當風險發生時,我們能夠有有效的措施去規避或者最小化影響面。
什麼是測試策略?本文將其概括為測什麼?由誰測?什麼時候測?怎麼測?
在瞭解了測試策略之後,我們就需要在測試工作中運用測試策略開展工作。這時候我們就需要考慮資源和質量的平衡,在有限的資源前提下,我們需要學會採用最合適的測試策略來保障專案的質量。至於如何權衡,大家可以在工作中不斷積累經驗。
作者簡介:Chaofan,愛測角成員之一,專注探索和分享軟體質量保障。
原文地址:《漫談測試成長之探索——測試策略》
相關引文:《漫談軟體系統測試——問題解決》
更多測試成長探索系列文章:
《漫談測試成長之探索——測試檔案》
《漫談測試成長之探索——測試排期》
《漫談測試成長之探索——缺陷分析》
《漫談測試成長之探索——測試用例評審》