《計算機論文:基于因果圖分析法軟件測試用例的設計》由會員分享,可在線閱讀,更多相關《計算機論文:基于因果圖分析法軟件測試用例的設計(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、計算機論文:基于因果圖分析法軟件測試用例的設計
摘要:軟件測試是發(fā)現(xiàn)軟件缺陷和提高軟件質量的重要手段。在系統(tǒng)功能測試過程中,對于輸入條件組合的復雜情況,因果圖分析法是行之有效的測試用例設計方案。以注冊問題為例,對用戶輸入條件、系統(tǒng)預期輸出及其兩者的關系進行了深入分析,并完成了因果圖模型的創(chuàng)建,為后續(xù)完備、準確的生成判定表和設計測試用例提供了有力的依據(jù)。
關鍵詞:軟件測試; 黑盒測試; 因果圖分析;
軟件測試是軟件開發(fā)過程中的重要組成環(huán)節(jié),是發(fā)現(xiàn)軟件缺陷和提高軟件質量的重要舉措。其中,在系統(tǒng)功能測試過程中,通常以用戶需求為側重點完成對
2、系統(tǒng)功能的確認和驗證,因此需采用黑盒測試技術完成測試用例的設計任務。
等價類劃分法和邊界值分析法是應用最為普遍的黑盒測試方法,分別可以實現(xiàn)“合理分類、精心挑選”,兩者雙劍合璧,可以達到較好的測試效果。但是這兩種方法通常只適用于輸入條件相互獨立的情況,如果輸入條件之間存在聯(lián)系,則很難描述,即使描述出來,其測試效果也難以保障。
因果圖分析法給出了行之有效的解決方案,該方法可以通過簡單、直觀的圖形化符號,完整準確的確定輸入條件組合和輸出結果之間的邏輯關系,進而依據(jù)一定的規(guī)則推導并設計出判定表和測試用例,從而實現(xiàn)對輸入條件組合等復雜情況的完備
3、測試。
本文以某系統(tǒng)的注冊問題為例,展示因果圖分析法的一般過程和設計要點。
1 測試需求描述
注冊問題的測試需求描述如下:
(1)用戶名為必填項;
(2)密碼長度大于4位小于8位,可以由純字母、純數(shù)字或者字母加數(shù)字組成;
(3)確認密碼必須與密碼完全一致。
系統(tǒng)依次判斷,如果輸入均有效,則給出“注冊成功”的提示。如果輸入有誤,則系統(tǒng)分別給出“請輸入用戶名”、“密碼輸入有誤”和“確認密碼輸
4、入有誤”的錯誤提示信息。
從上述需求描述可以看出,注冊問題中的多個輸入條件組合能夠產生不同的輸出結果,并且輸入條件間存在依賴關系,并非完全獨立,因此根據(jù)應用場景,需選擇因果圖分析法和判定表驅動法完成測試用例的設計。
2 確定原因和結果
2.1 分析需求描述
因果圖中的原因是指輸入條件的有效等價類,即用戶對該系統(tǒng)能夠輸入或者執(zhí)行的操作所需滿足的一般規(guī)則。
(1)如果輸入條件為簡單條件,比如用戶名為必填項,則選擇其有效等價類“用戶名填寫”作為原因即可
5、。
(2)如果輸入條件為復合條件,則為了確保測試的充分性,必須將輸入條件拆分為簡單條件,比如密碼長度大于4位小于8位,則拆分為兩個原因,即“密碼長度大于4位”和“密碼長度小于8位”。
因果圖中的結果是預期輸出或者輸出的有效等價類,即系統(tǒng)對用戶輸入所能產生的所有響應,一般為界面的切換、系統(tǒng)的錯誤提示等。結果的分析相對較為簡單,大部分情況可以從測試需求中直接獲取,比如給出“密碼輸入有誤”的錯誤提示。只有當預期輸出為海量數(shù)據(jù)時,才需要從系統(tǒng)給出的所有響應中提取共性,分析預期輸出的有效等價類。
2.2 原因的拆分
6、
由于因果圖最擅長處理輸入條件和預期輸出均為邏輯值的情況,因此提供的原因和結果間的關系是傳統(tǒng)意義上的邏輯關系。
原因和結果間一對一的關系只包括兩種情況,即恒等和非,所有輸入情況的分析是“非真即假”的。也就是說,對于一個輸入條件只能劃分出一個符合輸入條件的有效等價類和一個違反輸入條件的無效等價類。顯然這種處理方法對于復合條件而言是欠妥當?shù)?,比如輸入條件為密碼長度大于4位小于8位,取非后表示為“密碼長度小于等于4位或者大于等于8位”,在判定表中通過0值表示,最后階段也只能選取“小于等于4位”或者“大于等于8位”中的一種情況來設計測試用例,
7、顯然該測試方案出現(xiàn)了關鍵信息的遺漏,無法保證測試的完備性。
而將復合條件拆分后,每個原因都被描述為簡單條件,大部分情況下是一個關系表達式,采用“非真即假”的設計方案,不存在上述遺漏現(xiàn)象,可以保證測試的完備性。
針對此類問題,等價類劃分法的處理更為靈活一些。該方法不會假定輸入條件為邏輯值,有效等價類和無效等價類之間也不是“非真即假”的關系,會根據(jù)不同的應用場景選擇不同的等價類設計方案,即使不做拆分,測試的完備性也能得到保證。
2.3 列出原因和結果
由于因果圖分析法和判定表驅動
8、法最擅長處理邏輯值的情況,因此在分析問題時,應盡可能將原因和結果描述為條件表達式或邏輯表達式的形式。
通過分析,注冊問題的原因描述如下:
C1-用戶名填寫;C2-密碼長度大于4位;C3-密碼長度小于8位;C4-密碼由純字母組成;C5-密碼由純數(shù)字組成;C6-密碼由字母和數(shù)字組成;C7-確認密碼與密碼完全一致。
注冊問題的結果描述如下:
E1-請輸入用戶名;E2-密碼輸入有誤;E3-確認密碼輸入有誤;E4-注冊成功。
3 繪制因果圖
9、
3.1 確定原因和結果間的邏輯關系
在完成對原因和結果的標識與描述后,需深入分析軟件規(guī)格說明中的語義,找出原因與結果之間、原因與原因之間對應的關系,并根據(jù)這些關系畫出因果圖[1]。
(1)因果圖分析法分析問題的一般方式為,從每個結果入手,分析其如何產生,即結果與原因間存在怎樣的關系;
(2)如果結果間沒有遞進關系,通常選擇從最簡單的結果開始分析,也可隨意選擇分析順序;如果結果間存在遞進、嵌套等依賴關系,則必須按照一定的輸入順序進行分析。
注冊問題中系統(tǒng)依次對用
10、戶輸入進行判斷,一旦用戶名輸入無效,則密碼和確認密碼沒有機會得到驗證,因此需按順序進行分析,并在因果圖繪制過程中,將用戶名輸入有效作為密碼和確認密碼驗證的基礎要求和前提條件。
3.2 中間結果的確定
中間結果的確定通常是因果圖繪制的一大難點,對于一個描述明確的測試需求而言,通常原因和結果是確定的,而中間結果則相對較為模糊,需要花費大量時間進行深入分析。
通常情況下,如果在分析原因和結果的過程中,為了保證測試的充分性,將一個復合輸入條件拆分成了多個簡單條件,則繪制因果圖時,需反其道而行之,通過增加中間結果將
11、其合并起來,為后續(xù)分析的順利進行做好準備工作。
比如對于原因“密碼長度大于4位”和“密碼長度小于8位”,需創(chuàng)建一個中間結果“密碼長度有效”,通過與關系將兩者合并起來。對于原因“密碼由純字母組成”、“密碼由純數(shù)字組成”和“密碼由字母和數(shù)字組成”,需創(chuàng)建一個中間結果“密碼字符類型有效”,通過或關系將三者合并起來。
除此之外,以下情況也可創(chuàng)建中間結果:
(1)多個輸入條件間存在更為緊密的依賴關系,考慮增加中間結果;
(2)一個結果與多個原因間存在關系,但并非純粹的與/或關系,需要增
12、加中間結果;
(3)多個輸入條件間存在遞進關系,或者某個輸出以某個輸入作為前提條件,必須增加中間結果。
因果圖繪制過程中,原因和結果必須是完備的,而中間結果的確定并無唯一的標準答案:
(1)為了后續(xù)分析的順利進行,以及減少不必要的交叉線,可以適當增加中間結果,甚至允許出現(xiàn)多層嵌套的中間結果;
(2)如果去除中間結果后,繪制出的因果圖無任何歧義或錯誤,整張圖美觀、易于閱讀,且與測試需求描述完全一致,則中間結果可有可無。
3.3 確定約束
13、
在因果圖分析過程中,不僅要考慮輸入和輸出之間的邏輯關系,還需考慮輸入因素之間或輸出結果之間的互相制約及依賴關系。由于語法或環(huán)境的限制,有些原因和結果的組合情況是不合理或不存在的,因此繪制因果圖的最后一步需分析這種特殊情況,并通過標準的符號標明約束條件。
輸入條件的約束主要包括以下三類[2]:
(1)E(Exclusive)互斥關系:表示多個輸入條件至多有一個成立。
(2)I(Inclusive)包含關系:表示多個輸入條件至少有一個成立。
(3)O(Only One)唯一關系:表示多個輸入條件有且只有一個成立。
對于“密碼由純字母組成”、“密碼由純數(shù)字組成”和“密碼由字母和數(shù)字組成”三個與密碼字符類型有關的原因而言,不可能有兩個或以上的條件同時成立。但從用戶輸入角度出發(fā),若三者同時不成立,則表示密碼包括非字母非數(shù)字符號,為密碼不合法的情況,因此三個原因間應建立互斥約束。