一種自適應調整缺陷檢測率的組合測試方法
【技術領域】
[0001] 本發明屬于軟件測試領域,具體涉及一種針對待測軟件各維度的缺陷檢測率進行 自適應調整的自適應調整缺陷檢測率的組合測試方法。
【背景技術】
[0002] 在軟件的功能測試中,傳統的測試方法是通過檢查系統所有參數的所有取值的組 合來進行充分的測試,但隨著系統參數個數和參數取值的增加,總的測試用例個數呈爆炸 式增長,如何從中選擇一個規模較小的子集作為測試用例集是測試用例生成中一個很重要 的問題。
[0003] 組合測試是在系統測試的性能和測試的代價上的一個折衷的方法,它將被測試軟 件抽象為一個受到多個因素影響的系統,其中每個因素的取值是離散且有限的。根據覆蓋 程度的不同,組合覆蓋方法可以分為單因素覆蓋、兩因素(Pairwise)組合覆蓋、多因素組 合覆蓋,其中兩因素組合測試可以生成一組測試用例集,覆蓋任意兩個因素取值的所有組 合,在理論上可以暴露所有由兩個因素共同作用而引發的缺陷。多因素(N-way,N>2)組合 測試生成的測試用例集,可以覆蓋任意N個因素取值的所有組合,在理論上可以發現由N個 因素共同作用引發的所有缺陷。但是,隨著組合維度的提高,測試用例數將呈爆炸式增長, 根據觀察,對于大多應用程序來說,軟件系統中的缺陷都是由少數幾個參數的相互作用導 致的。Kuhn和Reilly分析了Mozilla瀏覽器的錯誤報告記錄,結果顯示超過70%左右的 缺陷是由2個參數相互作用引起的,超過90 %的缺陷是由3個以內的參數互相作用而引發 的,而4個參數相互作用引起的軟件缺陷只占不到百分之十,甚至更少。所以目前兩因素 組合測試得到廣泛研究并且已經在軟件測試領域得到了成功的應用,但是軟件中往往會有 4個以上的參數相互作用引起缺陷,這些難以檢測的缺陷,有些組合測試方法并不會對其進 行檢測。尤其現在對軟件的質量要求越來越高,那些難以檢測的缺陷需要被檢測出來,這樣 就產生了一些能夠產生更高維度覆蓋的測試用例生成算法。本專利所提出的一種自適應調 整缺陷檢測率的組合測試算法就是一種能夠產生高維度覆蓋的測試用例生成算法。由于傳 統的組合測試算法對于各維度的缺陷檢測率只能根據經驗進行猜測,這將導致測試的結果 很大程度依賴于測試人員的水平,而本專利提出的一種自適應調整缺陷檢測率的組合測試 算法根據當前測試結果動態調整各維度的缺陷檢測率使其不斷接近真實的缺陷檢測率,使 得通過缺陷檢測率選擇出的測試用例檢測缺陷的能力更強,測試更加精確,提高測試效率。
【發明內容】
[0004] 本發明的目的在于利用實時計算并更新各維度缺陷檢測率這種測試手段,提供一 種自適應調整各維度缺陷檢測率的自適應調整缺陷檢測率的組合測試方法。
[0005] 本發明的目的是這樣實現的:
[0006] 一種自適應調整缺陷檢測率的組合測試方法,包括如下步驟:
[0007] (1)生成候選測試用例集:隨機生成候選測試用例集的容量值M;
[0008] (2)采用隨機方法從軟件模型中選擇M個候選測試用例加入到候選測試用例集 中;
[0009] (3)選擇最優測試用例:將候選測試用例集中的測試用例中的各維元素組合與已 用測試用例集進行比較,得出各維度新增元素組合,并根據各維度組合的缺陷檢測率進行 計算預測出該測試用例可測出的各個維度缺陷的期望,然后得出各維缺陷累加和即該測試 用例可測出總缺陷期望,選擇期望最大的測試用例最為最優測試用例來進行本次測試;
[0010] (4)執行測試:我們將選好的最優測試用例進行測試,檢驗其是否能夠發現軟件 系統當中的缺陷;
[0011] (5)動態調整各維度的檢測率:根據本次測試用例檢測出的各個維度的缺陷數目 和該測試用例結束之后新增的各個維度的組合個數,重新計算該維度檢測率;
[0012] (6)判斷是否滿足算法結束條件,如果不滿足則繼續執行以上流程,直到滿足算法 的結束條件。
[0013] 發明的有益效果在于:
[0014] 自適應控制可以看作是一個能根據當前系統變化智能調節自身特性的反饋控制 系統,以便系統能按照一些設定的標準工作在最優狀態。我們所用的自適應調整針對軟件 模型當中各個維度缺陷檢測率的調整正是基于自適應控制的思想,通過當前測試用例各個 維度的缺陷檢測率對軟件模型進行反饋,進一步調節軟件模型中各個維度的缺陷檢測率, 以便其更加接近真實值。
【附圖說明】
[0015] 圖1是本發明的執行流程示意圖。
[0016] 圖2是本發明的實驗結果圖。
[0017] 圖3是本發明的實驗結果圖的局部放大圖。
[0018] 圖4是4-way缺陷檢測率變化過程圖。
[0019] 圖5是4-way缺陷檢測率變化過程圖的局部放大圖。
[0020] 圖6是6-way缺陷檢測率變化過程圖。
[0021] 圖7是6-way缺陷檢測率變化過程圖的局部放大圖。
【具體實施方式】
[0022] 下面結合附圖對本發明做進一步描述。
[0023] 本發明利用動態計算每輪測試過程后各維度的缺陷檢測率技術,實時更新各維度 缺陷檢測率以提供給下一輪測試使用的方法。進而選擇測試過程中所需的最優測試用例, 也就是檢錯能力最強的測試用例。這個目的可以按照以下步驟實現(如圖1所示)
[0024] 第一步:確定候選測試用例集容量值M
[0025] 采用隨機的方式確定候選測試用例集合容量值M的大小(例如:M= 5,M= 20,M =40)。
[0026] 第二步:選擇M條測試用例
[0027] 根據我們確定的候選測試用例集合容量值M的大小,用隨機的方法從軟件模型中 選擇M條測試用例,將其放入候選測試用例集合中,作為候選測試用例。
[0028] 第三步:選擇最優測試用例
[0029] 我們通過當前的缺陷檢測率對候選測試用例集合中的每一條候選測試用例進行 缺陷檢測能力的預估,根據我們預估的結果,將缺陷檢測能力最強的測試用例作為最優測 試用例。
[0030] 第四步:執行測試
[0031] 我們將選好的最優測試用例進行測試,檢驗其是否能夠發現缺陷。
[0032] 第五步:更新缺陷檢測率
[0033] 測試結束后算法將根據測試用例各個維度新覆蓋的組合個數以及該測試用例檢 測出的各個維度的缺陷個數,重新計算并更新各維度的缺陷檢測率,更新后的缺陷檢測率 將用于下一次選擇最優測試用例過程中。
[0034] 第六步:算法結束條件
[0035] 如果滿足結束條件算法終止,如果不滿足算法結束條件,我們將當前測試用例新 覆蓋的組合存入集合Cover中,集合Cover是專門用來存放已經覆蓋過的組合的集合,我們 稱其為已覆蓋集合Cover,然后跳轉執行第二步,繼續執行直到滿足算法結束條件。
[0036] 選擇一次測試過程最優測試用例方法。首先,一個軟件模型的各維度缺陷檢測率 是由測試人員根據經驗給出,P1,PfPt分別代表1維缺陷檢測率至t維缺陷檢測率。根據 候選測試用例與已用測試用例集的比較得出本測試用例的各個維度組合個數新增情況,其 中St代表該測試用例t維新增組合數,再根據各個維度缺陷檢測率的概念我們可以估計出 Pt*St就是該測試用例能夠檢測出的t維的缺陷數,
【主權項】
1. 一種自適應調整缺陷檢測率的組合測試方法,其特征是,包括如下步驟: (1) 生成候選測試用例集;隨機生成候選測試用例集的容量值M ; (2) 采用隨機方法從軟件模型中選擇M個候選測試用例加入到候選測試用例集中; (3) 選擇最優測試用例;將候選測試用例集中的測試用例中的各維元素組合與已用測 試用例集進行比較,得出各維度新增元素組合,并根據各維度組合的缺陷檢測率進行計算 預測出該測試用例可測出的各個維度缺陷的期望,然后得出各維缺陷累加和即該測試用例 可測出總缺陷期望,選擇期望最大的測試用例最為最優測試用例來進行本次測試; (4) 執行測試:我們將選好的最優測試用例進行測試,檢驗其是否能夠發現軟件系統 當中的缺陷; (5) 動態調整各維度的檢測率;根據本次測試用例檢測出的各個維度的缺陷數目和該 測試用例結束之后新增的各個維度的組合個數,重新計算該維度檢測率; (6) 判斷是否滿足算法結束條件,如果不滿足則繼續執行W上流程,直到滿足算法的結 束條件。
【專利摘要】本發明屬于軟件測試領域,具體涉及一種針對待測軟件各維度的缺陷檢測率進行自適應調整的自適應調整缺陷檢測率的組合測試方法。本發明包括:生成候選測試用例集:隨機生成候選測試用例集的容量值M;采用隨機方法從軟件模型中選擇M個候選測試用例加入到候選測試用例集中;選擇最優測試用例;執行測試;動態調整各維度的檢測率;判斷是否滿足算法結束條件,如果不滿足則繼續執行以上流程,直到滿足算法的結束條件。所用的自適應調整針對軟件模型當中各個維度缺陷檢測率的調整正是基于自適應控制的思想,通過當前測試用例各個維度的缺陷檢測率對軟件模型進行反饋,進一步調節軟件模型中各個維度的缺陷檢測率,以便其更加接近真實值。
【IPC分類】G06F11-36
【公開號】CN104679656
【申請號】CN201510109637
【發明人】趙靖, 王延斌, 張磊
【申請人】哈爾濱工程大學
【公開日】2015年6月3日
【申請日】2015年3月13日