組合軟件測試模型方法
發表于:2009-07-02來源:作者:點擊數:
標簽:軟件測試模型
1基本信息 好的測試都是基于模型的。 由于軟件輸入空間的無限性,使得 測試人員 不可能遍歷軟件的所有輸入。其實,遍歷軟件的所有輸入一般也是沒有必要的。優秀的測試設計,往往能夠從繁多的 測試用例 中挑選出有效的用例,用盡可能少的測試輸入,覆蓋盡可能
1 基本信息
好的測試都是基于模型的。
由于軟件輸入空間的無限性,使得
測試人員不可能遍歷軟件的所有輸入。其實,遍歷軟件的所有輸入一般也是沒有必要的。優秀的
測試設計,往往能夠從繁多的
測試用例中挑選出有效的用例,用盡可能少的測試輸入,覆蓋盡可能多的軟件
需求,這離不開合適的測試模型的支持。
所謂測試模型(Test Model),是測試和測試對象的基本特征、基本關系的抽象。它是測試理論家們根據大量的實際測試應用總結出來的,能夠代表某一類應用的內在規律,并對應于適合此類應用的一組
測試框架性的東西。
2 組合測試模型
一種相對簡單,并且應用十分廣泛的模型是組合模型,具有如下特點:
1)、輸出是由輸入變量之間的邏輯關系決定的。
2)、輸出結果不依賴于變量的先后順序。這一特點是我們理解組合模型的關鍵。
對于符合組合模型的輸入而言,測試
用例設計時要注意:
1)、考慮輸入變量的不同取值以及這些取值之間的不同組合。
2)、從應用系統中抽象出正確的邏輯表達式,不要遺漏任何一種邏輯組合關系。
在組合模型中最常用的兩種
測試技術分別為正交設計技術和組合覆蓋測試技術。
2.1 正交設計技術介紹:
正交實驗設計方法:依據Galois理論,從大量的(實驗)數據(測試例)中挑選適量的、有代表性的點(例),從而合理地安排實驗(測試)的一種科學實驗設計方法。
采用正交設計法設計測試用例主要包括以下步驟:
確定影響因素。這里的影響因素指對軟件運行結果有影響的軟件運行條件,一般情況下是指軟件的輸入以及其它軟件運行的環境。這些因素可以通過對軟件需求規格、軟件概要設計、軟件詳細設計等文檔分析而獲得。
確定因素的取值范圍或集合。因素的取值范圍指軟件輸入的取值范圍或集合以及可用的硬件資源。同樣,要通過分析軟件需求規格等文檔獲取這些信息。
確定每個因素的水平。根據因素的取值范圍或集合,采用等價類劃分、邊界值分析等
軟件測試技術,在每個因素的取值范圍或集合里挑選出有效等價類、無效等價類、正好等于、剛剛大于或剛剛小于邊界值等有代表性的測試點。例如:對于用下拉框進行輸入的字段,下拉框的所有取值都構成了該因素的水平集合。
選擇正交表。根據確定的因素和水平,選擇合適的正交表。如果沒有合適的正交表可用或需要的測試用例個數太多,則要對因素和水平進行調整。 [Page]
設計測試用例。
2.2 組合覆蓋測試技術介紹:
組合覆蓋測試技術是一種設計測試用例的方法,它利用組合產生能夠覆蓋規定組合的測試用例。根據覆蓋程度的不同,可以分為單因素覆蓋、成對組合覆蓋、三三組合覆蓋等。這種方法力求用盡可能少的測試用例,覆蓋盡可能多的影響因素。
下面重點討論成對組合覆蓋測試用例的生成方法。
基本用例選擇方法:首先確定出1個基本測試用例,基本用例由每個因素中最重要的水平值組合而成。根據預先定義的標準,如最常用的、最簡單的、最小的、最可能使用的等找出最重要的水平值。
成對組合(Pair-Wise),又稱兩兩組合、對對組合,它是將所有因素的水平按照兩兩組合的原則而產生的。成對組合覆蓋的概念是Mandl于1985年在測試Ada編譯程序時提出的。Cohen等人應用成對覆蓋測試技術對
Unix中的“sort”命令進行了測試,測試結果:模塊覆蓋率93.5%,判斷覆蓋率為83%。由此可見,運用成對組合覆蓋技術設計出的測試用例具有經濟有效的特點。
假設某功能有3個因素(或者叫輸入項),每個因素(輸入項)有2個不同的取值,分別為
【A1,A2】、 【B1,B2】 、 【C1,C2】
引入成對組合的概念之后,我們可以用成對組合集合來表示通常的測試用例集。對于某個給定的測試用例,它能覆蓋一定數量的成對組合元素。例如:
測試用例(A1,B1,C1)覆蓋了(A1,B1),(A1,C1),(B1,C1)3個成對組合元素。
測試用例(A1,B1,C2)覆蓋了(A1,B1),(A1,C2),(B1,C2)3個成對組合元素。
所謂測試設計,,就是設計出一組測試用例以依之對軟件進行測試;顯然,不同的測試用例集所覆蓋的成對組合元素數量是不同的。在同樣大小的測試用例集條件下,覆蓋的成對組合元素數量越多,表明該測試用例集的測試效果越好。因此,如何選擇測試用例集是一個值得研究的問題。對于上例,有8個成對組合元素需要覆蓋,如何從8個候選測試用例中挑選出最少的測試用例,達到100%的成對組合覆蓋,選擇方案如下:
【A1,B1,C2】、【A1,B2,C1】、【A2,B1,C1】、【A2,B2,C2】
通過上面的論述和舉例,相信大家已經對這兩種模型有了一定的認識,并對每種模型適合什么樣的測試需求也有了初步了解。
原文轉自:http://www.kjueaiud.com