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