本發(fā)明涉及計算機領(lǐng)域,特別涉及一種黑盒軟件系統(tǒng)回歸測試的方法及裝置。
背景技術(shù):
近些年,軟件的功能越來越豐富,復雜度也越來越高。隨之,黑盒系統(tǒng)測試的測試用例數(shù)成倍增長,執(zhí)行一次全集回歸測試的時間大幅度增加,已經(jīng)成為影響產(chǎn)品快速發(fā)布的重要因素之一。尤其在升級維護項目中,需求一般來源于客戶,存在需求變化快、時間要求緊、絕大部分代碼屬于繼承等特點,原有的窮舉所有測試用例的測試策略存在的周期長、效率低的問題愈加凸顯。憑經(jīng)驗選擇部分子集進行回歸,雖然可以大幅度的減少測試時間,但測試質(zhì)量無法保證,存在很大的漏測風險。
回歸測試優(yōu)化技術(shù)的重點是如何選擇有效的回歸測試包來保證測試有效性并提高測試效率。如何平衡成本與風險,業(yè)內(nèi)進行了眾多優(yōu)化技術(shù)研究,大部分都集中在對每一個測試需求對應的多個測試用例約簡技術(shù)和測試用例優(yōu)先級技術(shù)上,對測試范圍優(yōu)化技術(shù)鮮有涉獵。測試用例集約簡技術(shù)是回歸測試時仍要覆蓋每一個測試需求,例如粒子群優(yōu)化(PSO)算法、啟發(fā)式算法、遺傳算法、基于數(shù)據(jù)依賴及控制依賴的用例選擇方法等。
但上述測試方法及裝置存在兩點問題:一是,對系統(tǒng)測試者的能力要求很高,或者需要掌握用戶會如何的全部場景,或者需要對被測軟件的設(shè)計非常了解,清楚了解每個測試用例在代碼中的執(zhí)行路徑,這是大多數(shù)系統(tǒng)測試人員都無法掌握的。二是,對測試環(huán)境和測試資源的要求較高。尤其是嵌入式系統(tǒng),測試資源緊張、測試手段匱乏,很難實施。
綜上,需要尋求并設(shè)計一種效率更高、對測試者能力和測試資源要求都較低的黑盒軟件系統(tǒng)回歸測試裝置。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種快速軟件系統(tǒng)回歸測試的方法及裝置,用以解決目前軟件系統(tǒng)回歸測試效率不高,不全面的問題。方法的關(guān)鍵是分析變化部分的代碼與系統(tǒng)用戶接口的關(guān)系,從而確定回歸測試用例范圍和優(yōu)先級順序。通過本方法可以大幅度裁剪測試用例,同時精確圈定測試用例集,避免漏測。
本發(fā)明實施例提供的一種快速軟件系統(tǒng)回歸測試的方法包括:
步驟(1)根據(jù)代碼差異以及使用關(guān)系,獲得全部變化影響的用戶接口全集,確定系統(tǒng)回歸測試黑盒測試用例范圍;
步驟(2)根據(jù)變化單元的復雜度及用戶接口單元使用變化單元的情況,計算用戶接口的優(yōu)先級,確定黑盒測試用例的執(zhí)行順序;
步驟(3)依據(jù)上述測試范圍和優(yōu)先級順序?qū)嵤y試。
本發(fā)明實施例提供的一種快速軟件系統(tǒng)回歸測試的裝置包括:
模塊(1)代碼變化分析模塊,用于分離出代碼發(fā)生變化的單元。結(jié)果輸出給全集測試用例篩選裝置和復雜度分析模塊。
模塊(2)使用關(guān)系分析模塊,用于分析代碼中所有單元之間的使用關(guān)系。結(jié)果輸出給全集測試用例篩選裝置和測試用例優(yōu)先級排序模塊。
模塊(3)復雜度分析模塊,用于分析發(fā)生變化的單元的復雜度。結(jié)果輸出給測試用例優(yōu)先級排序模塊。
模塊(4)全集黑盒系統(tǒng)測試用例篩選模塊,用于從全集黑盒系統(tǒng)測試用例集中篩選出應用于測試的測試用例。結(jié)果輸出給測試用例優(yōu)先級排序模塊和測試用例執(zhí)行模塊。
模塊(5)測試用例優(yōu)先級排序模塊,用于對測試用例集中的測試用例進行優(yōu)先級排序。結(jié)果輸出給測試用例執(zhí)行模塊。
模塊(6)測試用例執(zhí)行模塊,用于測試用例的執(zhí)行。
附圖說明
為了更清楚地說明本發(fā)明的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種快速軟件系統(tǒng)回歸測試的方法示意圖;
圖2為本發(fā)明實施例提供的一種快速軟件系統(tǒng)回歸測試的裝置的模塊關(guān)系示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明的一種快速軟件系統(tǒng)回歸測試的方法與裝置的具體實施方式作進一步詳細描述。
本發(fā)明實施例提供了一種快速軟件系統(tǒng)回歸測試的方法及裝置,用以解決目前軟件系統(tǒng)回歸測試效率不高,不全面的問題。通過本方法可以大幅度裁剪測試用例,同時精確圈定測試用例集,避免漏測。
如圖1所示,所述方法包括:
步驟(1)根據(jù)代碼差異以及使用關(guān)系,獲得全部變化影響的用戶接口全集,確定系統(tǒng)回歸測試黑盒測試用例范圍;
步驟(2)根據(jù)變化單元的復雜度及用戶接口單元使用變化單元的情況,計算用戶接口的優(yōu)先級,確定黑盒測試用例的執(zhí)行順序;
步驟(3)依據(jù)上述測試范圍和優(yōu)先級順序?qū)嵤y試。
較佳的,步驟(1)中根據(jù)代碼差異以及使用關(guān)系,獲得全部變化影響的用戶接口全集,包括:
分析代碼差異,分離出代碼發(fā)生變化的單元;
分析代碼中所有單元之間的使用關(guān)系,分析出每個單元被哪些單元直接使用,以及直接使用了哪些函數(shù);
分析代碼發(fā)生變化的單元被哪些用戶接口單元使用。
較佳的,步驟(2)根據(jù)變化單元的復雜度及用戶接口單元使用變化單元的情況,計算用戶接口的優(yōu)先級,包括:
評估每個變化單元的復雜度;
依據(jù)復雜度評估值對變化單元進行排序,分配順序號;
分析每個用戶接口使用的代碼發(fā)生變化的單元;
將使用的代碼發(fā)生變化的單元的順序號進行累加,得到每個用戶接口的優(yōu)先級評估值;
根據(jù)每個用戶接口的優(yōu)先級評估值,對用戶接口的優(yōu)先級進行排序。
如圖2所示,所述裝置包括:
模塊(1)代碼變化分析模塊,用于分離出代碼發(fā)生變化的單元。結(jié)果輸出給全集測試用例篩選裝置和復雜度分析模塊。
模塊(2)使用關(guān)系分析模塊,用于分析代碼中所有單元之間的使用關(guān)系。結(jié)果輸出給全集測試用例篩選裝置和測試用例優(yōu)先級排序模塊。
模塊(3)復雜度分析模塊,用于分析發(fā)生變化的單元的復雜度。結(jié)果輸出給測試用例優(yōu)先級排序模塊。
模塊(4)全集黑盒系統(tǒng)測試用例篩選模塊,用于從全集黑盒系統(tǒng)測試用例集中篩選出應用于測試的測試用例。結(jié)果輸出給測試用例優(yōu)先級排序模塊和測試用例執(zhí)行模塊。
模塊(5)測試用例優(yōu)先級排序模塊,用于對測試用例集中的測試用例進行優(yōu)先級排序。結(jié)果輸出給測試用例執(zhí)行模塊。
模塊(6)測試用例執(zhí)行模塊,用于測試用例的執(zhí)行。
較佳的,模塊(2)使用關(guān)系分析模塊,包括:
以單元為單位,分析出每個單元被哪些單元直接使用,以及直接使用了哪些單元。
較佳的,模塊(4)全集黑盒系統(tǒng)測試用例篩選模塊,包括:
分析代碼發(fā)生變化的單元被哪些用戶接口單元使用;
從全集黑盒系統(tǒng)測試用例集中篩選出上述用戶接口單元對應的黑盒系統(tǒng)測試用例集。
較佳的,模塊(5)測試用例優(yōu)先級排序模塊,包括:
依據(jù)復雜度評估值對變化單元進行排序,分配順序號;
分析每個用戶接口單元使用的代碼發(fā)生變化的單元;
將使用的代碼發(fā)生變化的單元的順序號進行累加,得到每個用戶接口的優(yōu)先級評估值;
根據(jù)每個用戶接口的優(yōu)先級評估值,對用戶接口的優(yōu)先級進行排序。
經(jīng)實踐證明本發(fā)明提供的這種快速軟件系統(tǒng)回歸測試的方法及裝置,簡單可行,能夠以更高的效率、更全面的覆蓋率的完成軟件系統(tǒng)回歸測試。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。