歷史的車輪滾滾向前,科技的創新生生不息,大數據、虛擬現實、智能汽車、區塊鏈等爲代表的新技術和新應用層出不窮,它們都與軟件息息相關,而軟件的質量保證離不開軟件測試,軟件測試要在成本、範圍、進度、資源等因素的制約下取得最佳產出,就離不開測試策略的制訂和實施。

假如我們要測試微信app,測試涉及的範圍很大,即使撇開非功能特性,也有不少功能要測試,不僅要測聊天、通訊錄、朋友圈、錢包/支付、購物/遊戲等衆多接口...而且還要在不同的平臺(Android、iOS)和不同型號的手機上進行測試。其測試的工作量不小,如果公司希望這個版本趕在某個好日子上線,原來測試時間可能被進一步壓縮,測試就更是捉襟見肘,怎麼辦?這時就需要測試策略,設法通過分析受影響的區域縮簡測試範圍,或找到更有效的測試方式(如探索式測試)或方法(E2E方法)減少測試工作量等。

一、什麼是軟件測試策略?

簡單地說,軟件測試策略就是在測試質量和測試效率之間的一種平衡藝術(Leverage Test)。更明確地說,測試策略是爲了以最低的成本最大程度地揭示(/降低)產品的質量風險或儘早地完成測試所選擇(或制定的)的最合理/合適的方式、方法、過程等。

詳細描述如下:

最低的成本是指完成測試所需的資源、時間等最少,“最”是相對的,即基於目前的認識或能力所能做到的;

完成測試,即達到特定的測試目標,如達到測試覆蓋率的某個值、發現儘可能多的缺陷、完成所有主要功能特性的驗證,這也依賴於對“軟件測試”是如何理解的,或測試目標是如何定義的;

方式,包括手工方式、自動化方式;探索式測試或基於腳本的傳統測試;自己團隊測試還是衆測、外包;

方法,包括基於需求的、基於數據流、基於控制流、組合測試、形式化等方法、技術、工具等

過程:先測什麼、後測試什麼;對測試階段的不同劃分等。

二、測試策略應用現狀

在軟件項目的實施的過程中,很多項目團隊對測試策略的認識不夠、應用不足,造成了一些測試無用功和資源浪費,主要有如下幾個現狀:

1.對測試策略的重視不夠

有些軟件項目管理層本身對測試策略重視不夠。在軟件測試階段中, 更多的是跟隨開發做測試執行, 容易忽略測試策略的設計。在實際工作中,受項目版本迭代較快,測試管理層受項目進度、範圍等影響,導致對測試策略重視程度不夠。

2.對測試策略的宣講不夠

有些測試管理者認爲測試策略是測試管理層所要了解的事,測試工程師主要安心測試,完成測試就可以了,對測試工程師宣講不夠。事實上,測試工程師是制定測試用例和執行測試用例並發現問題和驗證問題等的主要實踐者,測試工程師瞭解測試策略會更加明晰階段測試的工作重點,有的放矢,更專注於自己測試任務,增加測試工作的全局觀,對於完成測試工作起到提綱挈領作用。

3.對測試策略組合運用不夠

測試管理者都知道測試實施需要做好測試需求分析,編寫並評審好測試用例,劃分好測試階段,然後按階段計劃執行用例、提交缺陷、提交測試報告。但是要在規定的進度、質量、範圍等條件約束下,如何規劃各階段的測試重點、如何規劃測試階段間的銜接、如何規避無效的測試、如何適應需求的變化、如何控制高頻率的測試版本提交、如何選擇合理的迴歸測試範圍等等問題,考慮不全,究其原因就是對測試策略的組合設計還做得不夠。

4.對測試策略理論體系建設不夠

測試策略理論體系需要持續優化。由於測試行業發展較快,有些測試策略理論不能適應新的系統項目,需要進一步完善。同時,面對不同的測試階段、不同類型的測試項目,如何進行“裁剪”也需要具體問題具體分析。現實中很少有測試團隊在測試策略理論和體系上做研究和優化。

三、軟件測試策略的制定過程

(1)輸入

需要的軟硬件資源的詳細說明;

針對測試和進度約束而需要的人力資源的角色和職責;

測試方法、測試標準和完成標準;

目標系統的功能性和技術性需求;

系統侷限(即系統不能夠提供的需求)等等。

(2)輸出

已批准和簽署的測試策略文檔、測試用例、測試計劃;

需要解決方案的測試項目;

(3)過程

1)確定測試的需求

2)評估風險並確定測試優先級

3)確定測試策略

四、測試策略的方法

軟件測試的策略、方法和技術是多種多樣的。對於軟件測試技術,可以從不同的角度加以分類:從是否需要執行被測軟件的角度,可分爲靜態測試和動態測試,從測試是否針對系統的內部結構和具體實現算法的角度來看,可分爲白盒測試和黑盒測試。

靜態方法與動態方法

所謂靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的文法、結構、過程、接口等來檢查程序的正確性。靜態方法通過程序靜態特性的分析,找出 欠缺和可疑之處,例如不匹配的參數、不適當的循環嵌套和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑的計算等。靜態測試結果可用於進一步 的查錯,併爲測試用例選取提供指導。

動態方法是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率和健壯性等性能,這種方法由三部分組成:構造測試實例、執行程序、分析程序的輸出結果。

五、總結與展望

最佳的測試策略是用較小資源投入覆蓋更精確的測試範圍,在較短的測試周期內發現更多潛在問題,完成質量保障任務。測試策略的研究是一個逐步探索的過程,需要持續優化,以提升測試交付質量,提升企業產品的質量,提升企業的競爭力。

查看原文 >>
相關文章