獨立的,并且排錯過程中不會引入新的錯誤。對測試用例進行執(zhí)行效果標識是在測試用例 執(zhí)行過程中逐個完成的。當軟件輸入不能引起軟件失效時,同等價類的輸入不會引起軟件 失效;當軟件輸入引起軟件失效時,在軟件缺陷被修改后,同等價類的輸入也不會引起軟件 失效。
[0141] 當進行軟件可靠性增長測試時,步驟五中的軟件輸入與軟件失效之間的映射關 系,會隨著軟件缺陷的修改而發(fā)生變化。結合測試用例執(zhí)行順序以及隨著軟件缺陷的修改 而發(fā)生變化的軟件輸入與軟件失效之間的映射關系,對測試用例執(zhí)行效果進行判斷與標 識。
[0142] 具體實施過程,包括:
[0143] 步驟6 01、在對每個測試用例的每一步輸入內容完成失效信息或正常信息的標 識后,按照基礎測試用例集合中的編號順序開始執(zhí)行第一條測試用例,進行軟件可靠性測 試;
[0144] 步驟602、在測試用例執(zhí)行過程中,對測試用例的每一步輸入內容,參考軟件輸入 與軟件失效之間的映射關系,判斷軟件當前輸入能否引起GUI軟件失效,并且對測試用例 中所標識的失效信息與正常信息進行處理;
[0145] 在測試人員對當前的軟件狀態(tài)進行驗證后,如果測試用例的當前輸入內容不能引 起GUI軟件失效,則在基礎測試用例集合中,同等價類輸入內容所對應的失效信息便不存 在;
[0146] 如果測試用例當前的輸入內容引起軟件失效,則在當前的測試用例輸入內容所在 的位置保留標識的失效信息,同時對該測試用例不再繼續(xù)執(zhí)行可靠性測試;在基礎測試用 例集合的后續(xù)測試用例中,將屬于同等價類的測試用例輸入內容所對應的位置標識的失效 信息全部刪除;
[0147] 比如:某條測試用例的"密碼"中輸入數值為8,屬于"密碼1類",引起軟件失效, 則在當前測試用例執(zhí)行位置保留失效信息;當下一條測試用例"密碼"中的輸入值為7,屬 于"密碼1類"時,由于在軟件缺陷被修改后,屬于同等價類的軟件輸入不會再引起軟件失 效,則將測試用例中對"密碼1類"所標識的失效信息刪除。
[0148] 步驟603、判斷當前測試用例中是否存在失效信息;如果"是",則將其執(zhí)行效果標 識為"失效",進入步驟605 ;否則,將其執(zhí)行效果標識為"正常",進入步驟604 ;
[0149] 測試用例的篩選與執(zhí)行過程是同時進行的,所要篩選并執(zhí)行的測試用例就是每一 類用例集合中執(zhí)行效果標識為"失效"與第一個執(zhí)行效果標識為"正常"的測試用例,并且 記錄所篩選用例的執(zhí)行時間。
[0150] 步驟604、判斷當前的測試用例是否為某類測試用例集合中第一個執(zhí)行效果標識 為"正常"的測試用例。如果"是",該類測試用例中的后續(xù)用例不執(zhí)行測試,將后續(xù)用例的 執(zhí)行效果都標識為"正常"。否則,進入步驟605 ;
[0151] 步驟605、判斷當前所執(zhí)行的用例是否為基礎測試用例集合中的最后一個用例。如 果"是",則完成對基礎測試用例集合的用例執(zhí)行效果標識;否則,返回步驟602按序執(zhí)行基 礎測試用例集合中的下一條測試用例。
[0152] 步驟七:對執(zhí)行效果為"失效"的測試用例,累加相鄰失效間隔之間測試用例的執(zhí) 行時間,作為失效間隔數據進行軟件可靠性評估。
[0153] 將基礎測試用例集合中的測試用例依序在時間軸上排開,將執(zhí)行效果為"失效"的 測試用例序號標出,將相鄰失效間隔之間測試用例的執(zhí)行時間作為失效間隔數據,進行軟 件可靠性評估。
[0154] 相鄰失效間隔之間測試用例的執(zhí)行時間計算方法為:在同類測試用例集合中,使 用第一個執(zhí)行效果標識為"正常"的測試用例的執(zhí)行時間,替換同類中后續(xù)測試用例的執(zhí)行 時間;第一個執(zhí)行效果為"失效"的測試用例的執(zhí)行時間,加上中間執(zhí)行效果為"正常"的測 試用例的執(zhí)行時間和第二個執(zhí)行效果為"失效"的測試用例的執(zhí)行時間。
[0155] 加速測試方法實施效果分析:
[0156] 對加速效率從用例執(zhí)行測試數目和執(zhí)行測試時間兩方面,綜合常規(guī)可靠性測試與 可靠性加速測試兩種情況,來對加速效率進行分析:
[0157] (1)、從測試用例執(zhí)行數目的角度
[0158] 在對基礎測試用例集合進行分類后,篩選并執(zhí)行的測試用例Nni共有
[0159]
[0160] D表示對基礎測試用例集合進行劃分后的類別數,M表示執(zhí)行效果標識為"失效" 的用例數;
[0161] 則基于分類方法進行軟件可靠性加速測試,測試效率En提高了
[0162]
<2:>
[0163] 其中,N表示基礎測試用例集合中的測試用例數目。
[0164] (2)、從測試用例執(zhí)行時間的角度
[0165] 根據失效數據收集方法,常規(guī)可靠性增長測試執(zhí)行過程的測試時間1;為
[0166]
(3)
[0167] &表示第i個用例的執(zhí)行時間;N為整數。
[0168] 基于分類的軟件可靠性加速測試執(zhí)行過程的測試時間1;為
[0169]
[0170] 其中,V表示各類用例集合中第一個執(zhí)行效果標識為"正常"的用例編號集合,S表 示執(zhí)行效果標識為"失效"的用例編號集合。
[0171] 從而,基于分類方法進行可靠性加速測試的測試效率提高了
[0172]
(5)
[0173] 常規(guī)可靠性增長測試情況下,進行可靠性評估后得到被測軟件可靠性參數Ka;基 于分類的軟件可靠性加速測試方法,進行可靠性評估后得到被測軟件的可靠性參數數K b。
[0174] 為了保證測試加速方法的有效性,應設定閾值α,使兩種情況下的可靠性參數是 否滿足以下關系,來驗證加速情況下評估結果的有效性:
[0175] 實施例:
[0176] 本實施例來源于某系統(tǒng)中的指揮調度管理軟件,屬于GUI類型軟件。根據被測的 指揮調度管理軟件在系統(tǒng)中的交聯(lián)關系,搭建測試環(huán)境并執(zhí)行測試。在前期的軟件開發(fā)與 測試過程中,共發(fā)現(xiàn)22個軟件失效,并且總結了引起軟件失效的軟件輸入以及修改軟件缺 陷的方法,并且軟件缺陷被修改過程中不會影響其他的軟件缺陷存在。
[0177] 使用軟件可靠性剖面構造技術,借助剖面構造工具構建被測軟件的使用剖面,生 成1000個XML格式的測試用例文檔。在常規(guī)的軟件可靠性測試情況下,當按序執(zhí)行測試用 例,在執(zhí)行到第498個用例時,發(fā)生第22個失效。
[0178] 1、確定基礎測試用例集合。
[0179] 在此假設在第498個用例執(zhí)行后再無失效發(fā)生,將前498個用例確定為可靠性加 速測試情況下的基礎測試用例集合。
[0180] 2、完成基礎測試用例集合的劃分。
[0181] 通過使用剖面以及軟件的需求規(guī)格說明和設計說明可以看出,軟件的功能最后都 要具體到一組輸入操作,軟件的很多使用(操作)都是通過在特定的頁面中錄入信息來實 現(xiàn)的。對于被測軟件,用于生成其可靠性測試用例的頂層使用剖面,如圖6所示。由圖中可 以看出,一次完整的使用可以理解為軟件一組功能組合按照某些特定的順序的實現(xiàn),如果 將頂層使用剖面中的包(package)進一步展開,就得到更加細化的功能展開,而且各個功 能相對獨立。頂層使用剖面的包(package)中的每條使用路徑代表了該模塊每種使用方 式,將使用路徑中的每步操作定義為標識詞,則可得到各使用路徑的標識詞鏈,按照一定的 順序進行組合后便形成用例的標識詞鏈。
[0182] 對軟件界面中所要錄入的信息,結合其輸入范圍、數據類型,根據等價類劃分方法 進行等價類劃分,并保證同等價類的輸入對應相同的輸出結果。根據軟件使用剖面,明確被 測軟件的操作路徑并提取標識詞鏈與特征集合,根據特征所對應的被測軟件界面元素,對 界面元素中的輸入數據進行等價類劃分。
[0183] 例如,在"身份驗證"軟件界面中,賓語特征包括"用戶名、密碼、確定按鈕、取消按 鈕",則分別對"用戶名"、"密碼"、"確定"按鈕、"取消"按鈕中的輸入內容,結合輸入范圍與 數據類型進行等價類劃分,并保證同等價類的輸入對應相同的輸出結果。以此類推,對其他 軟件功能界面中的界面元素中的輸入數據進行等價類劃分。
[0184] 最終,將這498個XML格式的用例文檔經過劃分后,形成219個類。
[0185] 3、測試用例完成由輸入信息到失效信息的轉化。
[0186] 根據在軟件前期的開發(fā)與測試過程中總結的信息,找到引起軟件失效的軟件輸入 以及所要修改的軟件缺陷,建立軟件輸入、軟件缺陷、軟件失效的映射關系。首先,結合軟件 輸入等價類劃分結果,判斷用例的每步輸入信息所屬的等價類;然后,根據映射關系將用例 的輸入內容由輸入信息轉化為失效信息。
[0187] 4、在測試執(zhí)行過程中,標識測試用例的執(zhí)行效果并篩選需要被執(zhí)行的測試用例。
[0188] 按照測試用例執(zhí)行效果標識方法并且參考常規(guī)的軟件可靠性測試過程中的用例 執(zhí)行結果,篩選每類用例集合中發(fā)生失效的測試用例與第一個執(zhí)行效果為"正常"的測試用 例,共241個。
[0189] 5、收集失效數據并進行軟件可靠性評估。
[0190] 在同類用例中,使用第一個執(zhí)行效果標識為"正常"的測試用例替換同類用例中后 續(xù)用例的執(zhí)行時間。
[0191] 常規(guī)的軟件可靠性測試情況下失效間隔時間數據如表1。
[0192] 表1常規(guī)可靠性增長測試情況下的失效間隔時間數據表
[0193] υ?Ν 丄 乙 ? λ ^ 丄 o/id
[0194] 基于分類的軟件可靠性加速測試情況下失效間隔時間數據如表2。
[0195] 表2可靠性增長加速測試情況下的失效間隔時間數據表