介紹
在軟件生命周期中,軟件經常發生變化,軟件開發人員任何代碼改動都會有引入故障的風險)。
![]()
為了消除或減小這種風險,在軟件迭代開發模式下,回歸測試扮演著重要的角色:它能夠幫助測試人員驗證新增的功能或故障修復后的程序是否滿足期望。
目前,常見的具有代表性的回歸測試策略主要有兩種:
一是重試所有策略,即選擇所有已有用例進行測試;
二是最小選擇策略,即選取具有代表性的測試用例進行測試。
重試所有策略最大限度地擴大了測試覆蓋范圍,可以保證在程序修改后原來正確工作的代碼不會產生新的錯誤。但是,隨著軟件功能的豐富、開發代碼的增加,測試用例也隨之增多。
當測試用例積累非常多時(比如成千上萬條),此時一個新功能開發或故障修復完成后進行回歸測試,則會對時間和資源的需求量提出巨大的要求。由于測試資源和時間的限制,如果運行全部存量測試用例和開發新的測試用例進行回歸測試,顯得不太可取。
最小選擇策略可以縮減測試用例集的大小,測試成本較小,但是檢錯代碼錯誤的能力相對于重試所有策略則削弱很多。最小選擇策略的檢測錯誤能力不夠完善,但其低成本優越性,使得無數人員爭相研究和推進,它已經成為回歸測試中最常用的測試策略。
回歸上述提及的回歸測試策略不難發現,在回歸測試活動中,測試用例的選擇往往著重于已有測試用例的選擇,對于新增功能或功能變動引起的新增測試用例并未提及,而這一部分在回歸測試中也占據著重要地位。因此,在有限的時間和資源條件下,如何篩選存量測試用例和設計新增用例,快速地完成回歸測試成為了大多數測試人員思考的問題。
本文旨在提出一種快速回歸測試用例選擇方法,幫助測試人員能夠快速地完成回歸測試。
該策略主要涉及兩個環節:
·存量測試用例的篩選
· 新增用例的設計方法
在存量測試用例篩選環節引入相關性判斷,考慮測試用例與功能的相關性、測試用例執行通過率、測試用例的穩定性、測試用例的發現的故障數、測試用例的自動化率等幾個方面。
在新增用例設計環節,引入探索式測試方法(包括局部探索式方法和全局探索式方法)設計新增用例。
相關工作
回歸測試可被分為兩類:遞進型回歸測試和修正型回歸測試。
遞進型回歸測試是指對原有測試用例進行修改,以適配測試修改后的程序(如新需求引入導致的模塊或功能增刪)。
修正型回歸測試與遞進型回歸測試相反,主要特點在于原有測試用例不做任何修改。修正型回歸測試主要用于修正程序設計錯誤或缺陷修復后的測試,其目的在于驗證程序嚴格按照測試用例的輸入輸出描述運行。
在軟件開發周期內,遞進型回歸測試和修正型回歸測試活動往往是一起進行的。隨著軟件開發的深入、功能的不斷增多,測試用例數量也會不斷增大。此時,在成百上千或上萬條測試用例的情況下,在某個開發周期內進行遞進型回歸測試和修正型回歸測試,存量測試用例的選擇、新功能測試用例的設計和開發都會成為有限時間和資源下快速完成回歸測試的瓶頸。
傳統的全部運行存量測試用例進行回歸測試的方法,雖然可以保證測試的高覆蓋率,但是會消耗大量的時間和資源,尤其是手工用例居多的時候。鑒于此種情形,如何使用最小選擇策略去除回歸測試用例冗余性,獲取代表性用例進行回歸測試,成為了很多學者探討的問題。
最小測試用例集的選擇方法有如:基于數據挖掘技術的測試用例選擇方法、基于優先級排序的測試用例選擇方法、基于啟發式模型的測試用例選擇方法等等。這些技術為回歸測試存量測試用例的選擇提供了有效的指導方法,但是它們有的僅是從設計過程選擇用例或從執行結果選擇用例,未充分考量選取測試用例的全面性。且針對迭代周期內當新增功能或代碼變更時,并未提及如何設計新增用例并將新增用例納入回歸測試范圍。
本文提出的快速回歸測試策略重點在于存量測試用例的選取和新增測試用例的設計環節。
考慮到回歸測試類型的差異性:
針對遞進型回歸測試,測試用例主要為新增測試用例,新增測試用例的設計方法采用探索性測試方法;
針對修正型回歸測試,測試用例包含存量測用例和新增測試用例。
在存量測試用例選擇時,從用例設計過程和執行結果兩個方面出發進行聯合篩選。
從用例設計過程出發,考量用例與功能的相關性(直接相關、間接相關),選擇相關性強的用例;
從用例執行結果出發,選擇穩定性差、通過率低、故障率低和自動化率低的測試用例。
最后:在我的V :atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
![]()
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.