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