欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法與流程

文檔序號(hào):12665582閱讀:263來源:國知局
一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法與流程

本發(fā)明涉及一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法。



背景技術(shù):

隨著嵌入式軟件的規(guī)模和復(fù)雜性的日益增長,嵌入式軟件質(zhì)量在整個(gè)嵌入式系統(tǒng)質(zhì)量中所占的比重也越來越大,越來越多的行業(yè)內(nèi)廠商對(duì)嵌入式軟件測試的重要性也是有共識(shí)的。但由于嵌入式系統(tǒng)具有實(shí)時(shí)性強(qiáng),存儲(chǔ)、計(jì)算等資源有限,與硬件緊密相關(guān)等特點(diǎn),使得傳統(tǒng)軟件測試?yán)碚撝苯佑糜谇度胧杰浖y試時(shí),效果未必就好。比如,傳統(tǒng)測試?yán)碚撝斜蛔C實(shí)有效的壓力測試等系統(tǒng)測試方法應(yīng)用于嵌入式軟件測試時(shí),往往會(huì)出現(xiàn)測試時(shí)間周期較長、測試效率較低、測試費(fèi)用(如,人力成本)高等問題,于是,在嵌入式軟件測試業(yè)界,一種新的測試方法出現(xiàn)了,它就是“模塊交叉測試(也有稱為“模塊組合測試”的,英文叫cross-test。以下簡稱為“交叉測試”)”。相比于壓力測試,交叉測試具有高測試效率(若存在相關(guān)BUG,則交叉測試所運(yùn)行的次數(shù)比壓力測試少得多,時(shí)間也短得多)、高BUG檢出效果(在模塊存在資源共享或復(fù)用的情況下,單純的壓力測試往往發(fā)現(xiàn)不了模塊間關(guān)聯(lián)的問題,而交叉測試卻可以輕易檢出)的特點(diǎn),非常適合在集成測試(即,單個(gè)模塊集成到系統(tǒng)的過程)或系統(tǒng)測試階段使用,可以很有效地發(fā)現(xiàn)模塊間相互干擾影響等問題。

雖然大家都同意“交叉測試方法是一種可以“又快又好”地發(fā)現(xiàn)BUG的手段”的觀點(diǎn),但在實(shí)際使用中,我們發(fā)現(xiàn)實(shí)際效果卻未必理想。究其根本,主要原因是不良的交叉測試設(shè)計(jì)限制了這種方法所能發(fā)揮的最大威力,效果受限。具體原因有兩點(diǎn):一、不良的交叉測試設(shè)計(jì)(主要指“過度設(shè)計(jì)”)不加分析地進(jìn)行了過多的交叉組合設(shè)計(jì),而使得用例數(shù)激增,具體測試實(shí)施的工作量大,使得交叉測試“快”不起來;二、不良的交叉測試設(shè)計(jì)(主要指“隨意設(shè)計(jì)”)又很可能遺漏了重要的交叉組合,而使得用例設(shè)計(jì)得不完整,之后雖投入工作量進(jìn)行了相應(yīng)的測試執(zhí)行,卻未能發(fā)現(xiàn)本可發(fā)現(xiàn)的BUG,使得交叉測試在BUG檢出方面看上去,不那么“好”,不那么有效。

鑒于現(xiàn)行交叉測試設(shè)計(jì)存在“過度設(shè)計(jì)”和“隨意設(shè)計(jì)”而使得交叉測試的最終效果大打折扣的情況,本發(fā)明方法將給出一種新思路新方法,以一種系統(tǒng)化的科學(xué)思維來進(jìn)行嵌入式模塊的交叉測試設(shè)計(jì),既不“過度”,也不“隨意”,設(shè)計(jì)方法系統(tǒng)化且有章可循。應(yīng)用本發(fā)明的系統(tǒng)化設(shè)計(jì)方法可以使得交叉測試在檢出模塊關(guān)聯(lián)問題方面的“快”與“好”的優(yōu)勢(shì)得到最充分的體現(xiàn),交叉測試得到最大的收益。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法,該方法良好的系統(tǒng)化的測試設(shè)計(jì)保障了下一階段具體測試實(shí)現(xiàn)的質(zhì)量,也減少了最終測試實(shí)施的工作量,使得交叉測試的“又快又好”優(yōu)勢(shì)得以體現(xiàn)。

為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法,包括如下步驟,

S1:對(duì)嵌入式系統(tǒng)中所有模塊進(jìn)行分類或歸類,建立完整的模塊間交叉關(guān)聯(lián)矩陣;

S2:按照第一步交叉測試用例縮減策略,分析并確定參與兩兩交叉的模塊類別及具體模塊,得到原始的交叉測試用例集;

S3:按照第二步交叉測試用例縮減策略,對(duì)原始的交叉測試用例集進(jìn)行分析和進(jìn)一步縮減,得到初步的交叉測試用例集;

S4:對(duì)初步的交叉測試用例集的各交叉測試用例的交叉深度和強(qiáng)度進(jìn)行分析與選擇,得到最終的交叉測試用例集。

在本發(fā)明一實(shí)施例中,所述步驟S1中,是將嵌入式系統(tǒng)中的三個(gè)模塊以上的復(fù)雜的交叉測試分解為若干組兩個(gè)模塊間的交叉測試,從而使得嵌入式系統(tǒng)中所有模塊的交叉測試,均分解為兩兩交叉的交叉測試的組合,而后依據(jù)關(guān)聯(lián)矩陣工具,建立完整的模塊間交叉關(guān)聯(lián)矩陣。

在本發(fā)明一實(shí)施例中,所述步驟S2,具體實(shí)現(xiàn)如下,

設(shè)模塊間交叉關(guān)聯(lián)矩陣在橫縱方向上分別有n個(gè)模塊,則需要分析的交叉測試情況有n*n種;根據(jù)第一步交叉測試用例縮減策略,考慮模塊間交叉關(guān)聯(lián)矩陣對(duì)角線及模塊間交叉關(guān)聯(lián)矩陣交叉組合依對(duì)角線對(duì)稱的情況,將需要分析的n*n種交叉測試情況縮減為n*(n-1)/2種情況;而后將嵌入式系統(tǒng)中屬于純軟件類及基礎(chǔ)模塊類的模塊剔除,對(duì)交叉測試情況進(jìn)一步縮減,得到原始的交叉測試用例集。

在本發(fā)明一實(shí)施例中,所述步驟S3,具體實(shí)現(xiàn)如下,

根據(jù)步驟S2得到的原始的交叉測試用例集,按照第二步交叉測試用例縮減策略,剔除嵌入式系統(tǒng)中包括過時(shí)的、基本不用的、不可能交叉使用的、存在上下層關(guān)系的、對(duì)外表現(xiàn)為同一接口的、通過純軟件類及基礎(chǔ)模塊類功能實(shí)現(xiàn)的模塊,從而對(duì)原始的交叉測試用例集進(jìn)一步縮減,得到初步的交叉測試用例集。

在本發(fā)明一實(shí)施例中,按照第二步交叉測試用例縮減策略,還需考慮包括有外設(shè)硬件模塊或芯片的軟件模塊、存在硬件復(fù)用或軟件復(fù)用的模塊、硬件上存在包括光、電、磁、溫度、射線信號(hào)干擾的模塊、歷史上出現(xiàn)過模塊間交叉問題的模塊,來對(duì)原始的交叉測試用例集進(jìn)行縮減。

相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:

本發(fā)明設(shè)計(jì)方法系統(tǒng)化且有章可循:按照科學(xué)的思維、工具、法則以及合理的步驟來進(jìn)行交叉測試的設(shè)計(jì);保障了下一階段具體測試(腳本或用例)實(shí)現(xiàn)的質(zhì)量,也減少了最終測試實(shí)施的工作量,使得交叉測試的“又快又好”優(yōu)勢(shì)得以體現(xiàn);

保證交叉測試用例集是正確的:既強(qiáng)調(diào)了交叉測試的交叉深度要以“深度交叉”優(yōu)先,也強(qiáng)調(diào)了交叉測試要保證一定的交叉強(qiáng)度;

保證交叉測試用例集是完備的:系統(tǒng)中全部模塊都會(huì)被列到關(guān)聯(lián)矩陣中,同時(shí),在借助模塊間交叉關(guān)聯(lián)矩陣來找出某個(gè)模塊與其它模塊的交叉組合結(jié)果時(shí),會(huì)在矩陣的橫縱2個(gè)方向上把所有相關(guān)組合都做一遍YesOrNo的分析判斷,確保了不會(huì)造成測試設(shè)計(jì)的遺漏,保證了測試設(shè)計(jì)的完備性;

保證交叉測試用例集是最小化的/最簡的;

可擴(kuò)展性:本發(fā)明方法充分考慮到了當(dāng)系統(tǒng)擴(kuò)展、模塊新增時(shí)的情況,基于已有交叉測試設(shè)計(jì)(模塊關(guān)聯(lián)矩陣)的基礎(chǔ)上,可以輕松地分析并設(shè)計(jì)出相應(yīng)的交叉測試用例。

附圖說明

圖1為本發(fā)明方法總體框圖。

圖2為以POS機(jī)為例的關(guān)聯(lián)矩陣部分圖。

圖3為本發(fā)明方法在情況一的應(yīng)用框圖。

圖4為本發(fā)明情況二中的矩陣圖一。

圖5為本發(fā)明情況二中的矩陣圖二。

圖6為本發(fā)明情況二中的矩陣圖三。

具體實(shí)施方式

下面結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案進(jìn)行具體說明。

如圖1所示,本發(fā)明的一種嵌入式模塊交叉測試的系統(tǒng)化設(shè)計(jì)方法,包括如下步驟,

S1:對(duì)嵌入式系統(tǒng)中所有模塊進(jìn)行分類或歸類,建立完整的模塊間交叉關(guān)聯(lián)矩陣;

S2:按照第一步交叉測試用例縮減策略,分析并確定參與兩兩交叉的模塊類別及具體模塊,得到原始的交叉測試用例集;

S3:按照第二步交叉測試用例縮減策略,對(duì)原始的交叉測試用例集進(jìn)行分析和進(jìn)一步縮減,得到初步的交叉測試用例集;

S4:對(duì)初步的交叉測試用例集的各交叉測試用例的交叉深度和強(qiáng)度進(jìn)行分析與選擇,得到最終的交叉測試用例集。

所述步驟S1中,是將嵌入式系統(tǒng)中的三個(gè)模塊以上的復(fù)雜的交叉測試分解為若干組兩個(gè)模塊間的交叉測試,從而使得嵌入式系統(tǒng)中所有模塊的交叉測試,均分解為兩兩交叉的交叉測試的組合,而后依據(jù)關(guān)聯(lián)矩陣工具,建立完整的模塊間交叉關(guān)聯(lián)矩陣。

所述步驟S2,具體實(shí)現(xiàn)如下,

設(shè)模塊間交叉關(guān)聯(lián)矩陣在橫縱方向上分別有n個(gè)模塊,則需要分析的交叉測試情況有n*n種;根據(jù)第一步交叉測試用例縮減策略,考慮模塊間交叉關(guān)聯(lián)矩陣對(duì)角線及模塊間交叉關(guān)聯(lián)矩陣交叉組合依對(duì)角線對(duì)稱的情況,將需要分析的n*n種交叉測試情況縮減為n*(n-1)/2種情況;而后將嵌入式系統(tǒng)中屬于純軟件類及基礎(chǔ)模塊類的模塊剔除,對(duì)交叉測試情況進(jìn)一步縮減,得到原始的交叉測試用例集。

所述步驟S3,具體實(shí)現(xiàn)如下,

根據(jù)步驟S2得到的原始的交叉測試用例集,按照第二步交叉測試用例縮減策略,剔除嵌入式系統(tǒng)中包括過時(shí)的、基本不用的、不可能交叉使用的、存在上下層關(guān)系的、對(duì)外表現(xiàn)為同一接口的、通過純軟件類及基礎(chǔ)模塊類功能實(shí)現(xiàn)的模塊,從而對(duì)原始的交叉測試用例集進(jìn)一步縮減,得到初步的交叉測試用例集。按照第二步交叉測試用例縮減策略,還需考慮包括有外設(shè)硬件模塊或芯片的軟件模塊、存在硬件復(fù)用或軟件復(fù)用的模塊、硬件上存在包括光、電、磁、溫度、射線信號(hào)干擾的模塊、歷史上出現(xiàn)過模塊間交叉問題的模塊,來對(duì)原始的交叉測試用例集進(jìn)行縮減。

以下為本發(fā)明的具體實(shí)施過程。

本發(fā)明方法主要給出了一種系統(tǒng)化地進(jìn)行嵌入式模塊間交叉測試的設(shè)計(jì)思路和方法,并最終總結(jié)成具備實(shí)際可行性的套路步驟。

本發(fā)明方法在交叉測試設(shè)計(jì)時(shí)的依次有4個(gè)步驟:對(duì)系統(tǒng)中所有模塊進(jìn)行分類或歸類,建立完整的交叉關(guān)聯(lián)矩陣→按照交叉測試用例縮減策略1,分析并確定參與兩兩交叉的模塊類別及具體模塊,得到原始的交叉測試用例集→按照交叉測試用例縮減策略2,對(duì)原始的交叉測試用例集進(jìn)行分析和進(jìn)一步縮減,得到初步的交叉測試用例集→對(duì)初步的交叉測試用例集的各交叉測試用例的交叉深度和強(qiáng)度策略進(jìn)行分析與選擇,得到最終的交叉測試用例集。在設(shè)計(jì)過程中,會(huì)用到“關(guān)聯(lián)矩陣”工具以及相應(yīng)的用例縮減策略來幫助完成測試設(shè)計(jì)。在實(shí)際使用中,依這里的步驟進(jìn)行系統(tǒng)化的交叉測試設(shè)計(jì)即可。用流程圖來表達(dá)本發(fā)明方法的總體使用步驟就類似圖1。

通過以上系統(tǒng)化的測試設(shè)計(jì)方法,我們就會(huì)得到正確的、完備的、最小化的/最簡的交叉測試用例集。當(dāng)然,在具體應(yīng)用本發(fā)明方法時(shí),具體作法會(huì)依是否是首次進(jìn)行交叉關(guān)聯(lián)的系統(tǒng)化分析設(shè)計(jì),而在具體實(shí)施的步驟細(xì)節(jié)上略有不同,具體如下。

在具體實(shí)施第1步(即“對(duì)參與兩兩交叉的模塊進(jìn)行分析、確定與歸類”)之前,我們需要先回答一個(gè)問題,即“在交叉測試設(shè)計(jì)中,為何只需要考慮兩兩交叉的簡單組合情況,而不用考慮其它復(fù)雜的組合情況”。這是因?yàn)閺?fù)雜的多于兩個(gè)模塊的交叉組合情況(比如,完成一個(gè)業(yè)務(wù)功能會(huì)調(diào)到多個(gè)功能模塊)總是可以分解為幾組兩個(gè)模塊的交叉組合情況。比如,在某個(gè)業(yè)務(wù)場景中,會(huì)同時(shí)用到A、B、C三個(gè)基礎(chǔ)模塊,但我們總能在時(shí)間軸上找出僅有其中兩個(gè)模塊同時(shí)存在或起作用的時(shí)候或時(shí)間段。那么,我們將三個(gè)模塊劃分為化簡為3個(gè)兩兩組合的作法就存在了合理性。縱使在實(shí)際場景中,三個(gè)模塊確實(shí)是同時(shí)起作用的,我們也可以通過幾個(gè)兩兩用例的依次運(yùn)行來等效模擬出來,如,依次執(zhí)行AB和BC或BC和AC等兩兩交叉用例的組合,都可以模擬出ABC同時(shí)使用的情況。當(dāng)然,應(yīng)認(rèn)識(shí)到:在幾種用例組合情況中,僅會(huì)有幾種組合情況最為接近實(shí)際ABC同時(shí)使用的情況,這看上去會(huì)使得“找出最接近實(shí)際情況的兩兩交叉用例的組合”成為一個(gè)新問題,但實(shí)際操作起來,這并不是一個(gè)問題,因?yàn)榻徊鏈y試集作為集成測試和系統(tǒng)測試階段的必測項(xiàng)目,所有的交叉測試用例都會(huì)得到執(zhí)行,相應(yīng)地,用例間不同的組合情況也會(huì)被全部執(zhí)行過,既然有條件全部執(zhí)行相關(guān)用例來驗(yàn)證所有可能情況,那么,上面的“找出最接近實(shí)際情況的兩兩交叉用例的組合”的問題就不再是個(gè)問題。以上的分析是基于三個(gè)模塊的情況,但分析思路在三個(gè)以上模塊的更復(fù)雜情況卻同樣適用,即可以直接推廣到三個(gè)以上模塊的情況。

總之,正是因?yàn)椤叭齻€(gè)模塊以上的復(fù)雜的交叉測試總可以分解為幾組兩個(gè)模塊間的交叉測試,復(fù)雜的交叉情況本質(zhì)上都可以化簡為兩兩交叉的簡單情況,反過來,用簡單的兩兩交叉及它們的組合情況又可以組合出或近似等效于復(fù)雜的三個(gè)模塊以上的交叉情況”,所以,我們?cè)谶M(jìn)行交叉測試設(shè)計(jì)時(shí),只需要考慮兩兩交叉這一種簡單情況。

基于上述“化繁為簡”理論分析,在之后的交叉測試設(shè)計(jì)中,我們就只會(huì)僅考慮兩兩交叉簡單情況而不再考慮其它的復(fù)雜交叉情況。這是沒有問題的,不會(huì)導(dǎo)致交叉測試設(shè)計(jì)的不完整。在后續(xù)具體實(shí)施和使用本發(fā)明方法時(shí),我們不會(huì)也不必每次都證明一次上述理論分析的正確性(本分析步驟也不會(huì)出現(xiàn)在使用流程圖中),而是直接使用該結(jié)論進(jìn)行模塊間兩兩交叉的測試設(shè)計(jì)即可。

在具體使用本發(fā)明方法思路來進(jìn)行嵌入式模塊的交叉測試設(shè)計(jì)時(shí),又依是否是首次進(jìn)行交叉關(guān)聯(lián)的系統(tǒng)化分析設(shè)計(jì),可以分成主要有如下2種情況:

情況1:首次進(jìn)行交叉關(guān)聯(lián)的系統(tǒng)化分析設(shè)計(jì)

因?yàn)樵谑状芜M(jìn)行系統(tǒng)化分析之前,相應(yīng)表格的分析工具尚不存在,模塊間的關(guān)聯(lián)未全面分析過,也未使用過一定的縮減策略和原則對(duì)初步的交叉用例集做縮減,也沒有為每一個(gè)交叉用例進(jìn)行交叉深度和強(qiáng)度的策略選擇,所以,在情況1下,需要從0開始進(jìn)行兩兩交叉的測試設(shè)計(jì),具體步驟如下:

1、對(duì)系統(tǒng)中所有模塊進(jìn)行分類,使用關(guān)聯(lián)矩陣這一工具來建立完整的《模塊間交叉關(guān)聯(lián)矩陣》。

1.1、將眾多的模塊進(jìn)行更高層次的抽象與分類有利于簡化后續(xù)的設(shè)計(jì)分析,以便于我們從中分析并發(fā)現(xiàn)一些普適的規(guī)律,如,某類模塊與另一類模塊通常需要考慮進(jìn)行交叉測試的設(shè)計(jì)、某類模塊與其它類模塊通常都不需要考慮進(jìn)行交叉測試的設(shè)計(jì)等。同時(shí),因?yàn)橥悇e的模塊往往具備一些共性,于是,可以以“模塊類別”這種大顆粒度的視角進(jìn)行與其它“模塊類別”的交叉測試設(shè)計(jì),有利于交叉測試用例數(shù)量的縮減,提高了測試設(shè)計(jì)與測試用例的復(fù)用度。這里,我們以POS機(jī)這種嵌入式產(chǎn)品為實(shí)例來說明上述過程。我們對(duì)POS現(xiàn)有功能模塊進(jìn)行更高層次的抽象和分類,把模塊分成“識(shí)別類”、“通訊類”、“未歸類”、“基礎(chǔ)模塊”、“純軟件類(算法、協(xié)議等)”。這樣一來,我們從“識(shí)別類”和“通訊類”的各模塊中將功能接近的接口抽象為更高層次的接口,就構(gòu)建出“識(shí)別類”和“通訊類”的大類之間的交叉測試用例。在使用時(shí),通過相應(yīng)的配置函數(shù)將“識(shí)別類”和“通訊類”配置成具體的功能模塊,就可以實(shí)現(xiàn)識(shí)別類具體模塊和通訊類具體模塊之間的多個(gè)具體的交叉測試,達(dá)到了“設(shè)計(jì)一個(gè)測試用例,卻可以復(fù)用多種具體場景的交叉測試”的目的,減少了用例數(shù)量,提高了用例的復(fù)用度。

1.2、交叉測試設(shè)計(jì)中的關(guān)聯(lián)矩陣稱為“交叉關(guān)聯(lián)矩陣”,我們?cè)跈M縱方向上都建立所有“模塊類別+該類下具體模塊”的軸線,就得到了該完整的所有模塊的交叉關(guān)聯(lián)矩陣(可借助excel表格工具來建矩陣)。仍以POS機(jī)為例,可以得到類似的關(guān)聯(lián)矩陣圖,如圖2所示:

2、《模塊間交叉關(guān)聯(lián)矩陣》中,按照交叉測試用例縮減策略1,分析并確定參與兩兩交叉的模塊類別及具體模塊,得到原始的交叉測試用例集。

2.1、交叉測試用例縮減策略1,如下(以下為了描述方便,我們均假設(shè)系統(tǒng)中有n個(gè)不同的模塊):

2.1.1、從關(guān)聯(lián)矩陣角度說,在橫縱方向上分別有n個(gè)模塊時(shí),需要分析的情況數(shù)共有n*n,但矩陣對(duì)角線上的兩兩模塊實(shí)際為某個(gè)模塊與自身的“交叉”,并非真正的“模塊兩兩交叉”,故矩陣對(duì)角線不予考慮。同時(shí),還注意到矩陣平面上(N,M)的交叉組合情況實(shí)際上與(M,N)的情況依對(duì)角線對(duì)稱,因?yàn)槲覀兛紤]的是不講究順序的“組合”情況,而不是講究順序的“排列”情況,故視(N,M)和(M,N)為同一種交叉組合。所以,我們使用關(guān)聯(lián)矩陣來做交叉測試設(shè)計(jì)時(shí),不要去分析對(duì)角線及下三角(或上三角)的情況。即,經(jīng)過這里的策略分析,可以將原矩陣中n*n種兩兩組合情況縮減為n*(n-1)/2種情況(由排列組合公式n!/((n-2)!*2!)也可化簡到這個(gè)結(jié)論),縮減率達(dá)(n+1)/2n(即50%以上)。

到此,我們似乎還需要為系統(tǒng)中大約n*n/2種組合情況來做交叉測試設(shè)計(jì),但事實(shí)上,我們?nèi)钥梢宰鲞M(jìn)一步縮減。

2.1.2.特別在嵌入式系統(tǒng)中,根據(jù)嵌入式系統(tǒng)與硬件緊密相關(guān)等特點(diǎn),交叉測試設(shè)計(jì)一般多考慮可能存在相互干擾影響的外設(shè)模塊,而不考慮獨(dú)立的純軟件模塊(如,算法、協(xié)議等),即對(duì)于在步驟1中我們對(duì)模塊分出的“純軟件類”,我們一般不會(huì)考慮它們與其它模塊的交叉測試,而由其它測試方法(如,模塊級(jí)單元測試、壓力測試、性能測試等)去保證它們的質(zhì)量就夠了。從上面的完整關(guān)聯(lián)矩陣圖可以看出,純軟件類內(nèi)部各模塊之間以及該類與其它模塊類之間,矩陣上相應(yīng)關(guān)聯(lián)位置都被標(biāo)上X的記號(hào)(表示不考慮交叉測試的設(shè)計(jì))。

2.1.3.類似地,“基礎(chǔ)模塊類”也是不必太多地考慮它們與其它模塊類的交叉使用的。這類模塊由于在日常使用中,使用得非常頻繁(不論是顯式使用還是隱式使用),它們是整個(gè)系統(tǒng)的基礎(chǔ),在其它類模塊工作時(shí),事實(shí)上,它們也在工作著,于是對(duì)其它類模塊進(jìn)行單獨(dú)使用的情況就可以視為是其它類模塊與“基礎(chǔ)模塊類”共同工作的情況,于是也就不必再專門考慮其它模塊類與“基礎(chǔ)模塊類”之間進(jìn)行顯式的交叉測試設(shè)計(jì)了。如,液顯、鍵盤、串口、文件系統(tǒng)、(文件型)軟FRAM、(文件型)軟ESAM、rtc等,這些可視為基礎(chǔ)模塊。從上面的完整關(guān)聯(lián)矩陣圖可以看出,基礎(chǔ)模塊類內(nèi)部各模塊之間以及該類與其它模塊類之間,矩陣上相應(yīng)關(guān)聯(lián)位置絕大多數(shù)都被標(biāo)上X的記號(hào)(表示不考慮交叉測試的設(shè)計(jì))。在步驟3給的策略中,我們到時(shí)還會(huì)對(duì)本步驟縮減的用例集做分析、調(diào)整、修正,對(duì)少部分需要考慮交叉使用的情況再標(biāo)上√(表示需要考慮交叉測試的設(shè)計(jì))。

正是因?yàn)椴襟E2.1.2和2.1.3所提及的“純軟件類”和“基礎(chǔ)模塊類”的存在以及我們處置它們的策略,使得交叉用例集在步驟2.1.1基礎(chǔ)上進(jìn)一步大大地縮減了??s減的效果可以從上面的完整關(guān)聯(lián)矩陣圖可以看出:在整個(gè)矩陣中,因?yàn)椤凹冘浖悺焙汀盎A(chǔ)模塊類”的標(biāo)黃(表示通常無需考慮它們與其它模塊的交叉測試設(shè)計(jì)),使得矩陣中標(biāo)X的地方(表示不考慮交叉測試的設(shè)計(jì))的數(shù)量大大提高了。

3、在《模塊間交叉關(guān)聯(lián)矩陣》中,按照交叉測試用例縮減策略2,對(duì)原始的交叉測試用例集進(jìn)行分析和進(jìn)一步縮減,得到初步的交叉測試用例集。

在經(jīng)過了步驟2的縮減后,雖然交叉測試用例已被大幅地縮減了,但隨著新模塊加入到系統(tǒng)中,系統(tǒng)總模塊數(shù)n會(huì)變大,矩陣也會(huì)向橫縱向膨脹。以步驟2.1.1推出的“從理論上說,n種不同的模塊就需要進(jìn)行n!/((n-2)!*2!)種交叉測試(即n*(n-1)/2)”結(jié)論為基準(zhǔn),n每加1,交叉測試的用例量將會(huì)以“n的平方”進(jìn)行增長(即n每加1,實(shí)際增加的最大用例數(shù)可達(dá)n個(gè)(n為增加1個(gè)新模塊前的系統(tǒng)模塊總數(shù)))??梢姡S著新模塊的加入,交叉用例數(shù)將快速地增長,加大了交叉測試設(shè)計(jì)的工作量,加重了相關(guān)用例管理的負(fù)擔(dān)。所以,在步驟2基礎(chǔ)上,我們?nèi)杂斜匾M(jìn)行更精細(xì)化的縮減。

3.1.交叉測試用例縮減策略2,具體規(guī)則如下(以該策略在POS上交叉測試設(shè)計(jì)為實(shí)例):

3.1.1.過時(shí)的或基本不用的模塊可以不考慮與其它模塊的交叉測試設(shè)計(jì),如log、memory卡;

3.1.2.在實(shí)際應(yīng)用場景中,兩個(gè)模塊存在交叉使用的情況,就有必要進(jìn)行交叉測試設(shè)計(jì)。在實(shí)際應(yīng)用場景中,不可能出現(xiàn)交叉使用的兩兩模塊組合不考慮交叉測試設(shè)計(jì);

3.1.3.若兩個(gè)模塊存在上下層的關(guān)系,那么該兩個(gè)模塊也不考慮交叉測試設(shè)計(jì)。比如,上層模塊的功能是通過下層模塊的功能來實(shí)現(xiàn),那么,對(duì)上層模塊進(jìn)行壓力測試等其它系統(tǒng)測試,就必然會(huì)交叉地用到上層模塊和下層模塊,所以,對(duì)它們的組合不考慮交叉測試設(shè)計(jì);

3.1.4.對(duì)外表現(xiàn)為同一接口的兩個(gè)模塊(如,同步MODEM和異步MODEM都可以歸納為MODEM,而二者對(duì)外的接口是一樣的),它們之間不考慮交叉測試設(shè)計(jì)。同理,對(duì)于各種無線廣域網(wǎng)通訊模塊、各種機(jī)制的socket模塊,也不考慮交叉測試設(shè)計(jì),只要在單個(gè)模塊的系統(tǒng)測試中分別配置各方式或機(jī)制后進(jìn)行系統(tǒng)測試,即可模擬依次使用多種方式或機(jī)制的交叉組合情況;

3.1.5.鑒于“步驟2.1.交叉測試用例縮減策略1”中所提及的“純軟件類”與“基礎(chǔ)模塊類”是不考慮它們與其它模塊類或模塊進(jìn)行交叉測試設(shè)計(jì)的,所以,通過這2個(gè)類的功能來實(shí)現(xiàn)的模塊也不考慮交叉測試設(shè)計(jì);

3.1.6.有外設(shè)硬件模塊或芯片的軟件模塊,一般應(yīng)該考慮模塊間交叉測試設(shè)計(jì)(也間接地對(duì)硬件切換做了驗(yàn)證),若不考慮,需要給出理由并通過相關(guān)評(píng)審;

3.1.7.已明確知道存在硬件復(fù)用(如:復(fù)用了相同的I/O、硬件引腳、其它介質(zhì)等)或軟件復(fù)用(如:存在硬件寄存器、狀態(tài)變量、全局變量、信號(hào)量、中斷、內(nèi)存、文件等其它共享形式)的模塊必須考慮交叉測試設(shè)計(jì);

3.1.8.已明確知道硬件上存在光、電(壓、流、場)、磁(場)、溫度、射線等信號(hào)干擾的模塊必須考慮交叉測試設(shè)計(jì)(即,雖然不存在共享,但是卻對(duì)其它模塊進(jìn)行了干擾破壞的情況)

3.1.9.已知?dú)v史上出現(xiàn)過的模塊間交叉問題,則相關(guān)兩兩模塊必須考慮交叉測試設(shè)計(jì)。若能給出該歷史問題在以后的產(chǎn)品中不會(huì)出現(xiàn)的理由(需通過相關(guān)評(píng)審),可以不考慮交叉測試設(shè)計(jì)

3.1.10.根據(jù)歷史問題數(shù)據(jù)分析,一般地,通訊類模塊、識(shí)別類模塊、打印模塊之間必須考慮交叉測試設(shè)計(jì)。即當(dāng)新增模塊屬于這三者之一時(shí),必須考慮與另兩個(gè)模塊類別的交叉測試設(shè)計(jì),以及與本類其它模塊的交叉測試設(shè)計(jì);

3.1.11.除上述明確規(guī)則外,若不需要進(jìn)行交叉測試,則需要給出相應(yīng)的理由,并通過相關(guān)評(píng)審;

3.1.12.理論上,雖然模塊A、B有交叉使用的可能,但實(shí)際中實(shí)在不存在模塊交叉使用的情況,則可不進(jìn)行交叉測試設(shè)計(jì),但需要給出相應(yīng)的理由,并通過相關(guān)評(píng)審;

只要我們依據(jù)上述的交叉測試用例縮減策略2,對(duì)在《模塊間交叉關(guān)聯(lián)矩陣》中的兩兩交叉用例是否需要進(jìn)行交叉測試設(shè)計(jì)做分析,交叉測試用例集就會(huì)在步驟2的基礎(chǔ)上得到進(jìn)一步的縮減,最終得到初步的交叉測試用例集。

4、對(duì)初步的交叉測試用例集的各交叉測試用例的交叉深度和強(qiáng)度進(jìn)行分析與選擇,得到最終的交叉測試用例集。

若沒有選對(duì)交叉深度和強(qiáng)度,則交叉測試可能仍無法發(fā)現(xiàn)問題。總的一句話,“通常,交叉測試要盡可能做到深度交叉,同時(shí)要保證一定的強(qiáng)度,才能檢出模塊間可能存在的干擾影響問題?!?/p>

4.1.交叉測試的“深度交叉”是指如果A、B兩個(gè)模塊進(jìn)行交叉使用,其中,A模塊的完整功能由A1、A2、A3等動(dòng)作完成,B模塊的完整功能由B1、B2、B3等動(dòng)作完成,則依次調(diào)用A1、B1、A2、B2、A3、B3…就是“深度交叉”,它保證了在使用某個(gè)模塊時(shí),另一個(gè)模塊處于待調(diào)用態(tài)(功能也是打開的)。所以,“深度交叉”擅長于發(fā)現(xiàn)有關(guān)聯(lián)的模塊進(jìn)行并發(fā)使用時(shí),對(duì)共享資源的切換使用是否正常,同時(shí),它也能發(fā)現(xiàn)在前一個(gè)模塊使用完畢完全退出后,對(duì)之前占用的資源是否釋放得完全,是否釋放得及時(shí),是否釋放得恰當(dāng)?shù)鹊惹闆r。相應(yīng)地,依次調(diào)用A1、A2、A3…B1、B2、B3…就是“淺度交叉”,因?yàn)锽模塊是在A模塊使用完畢完全退出后,才開始進(jìn)行使用。所以,“淺度交叉”只能發(fā)現(xiàn)在前一個(gè)模塊使用完畢完全退出后,對(duì)其它也共享相關(guān)資源的模塊是否有影響。正是因?yàn)椤吧疃冉徊妗笨梢员取皽\度交叉”發(fā)現(xiàn)更多的BUG,所以,在交叉測試設(shè)計(jì)上只要有條件,應(yīng)盡可能采用“深度交叉”策略,只有在相關(guān)模塊已顯式聲稱不支持“深度交叉”的使用方式的情況下,才采用 “淺度交叉”策略。

4.2.交叉測試的強(qiáng)度設(shè)計(jì)參考一般性壓力測試的強(qiáng)度設(shè)計(jì)即可。由于模塊間可能存在的干擾影響問題未必通過一次的交叉使用就暴露出來,所以,強(qiáng)調(diào)交叉測試也要有一定的強(qiáng)度,但這個(gè)強(qiáng)度要求也遠(yuǎn)小于一般性壓力測試的強(qiáng)度要求,實(shí)際經(jīng)驗(yàn)顯示:如果某模塊存在一些深層次的問題,那么,通過壓力測試的方法,可能需要運(yùn)行1000次才能暴露出來(也可能因?yàn)閴毫?qiáng)度不夠而暴露不了);通過交叉測試的方法,一般只需要運(yùn)行10次就能暴露出來。這表明交叉測試在檢錯(cuò)效率和效果方面優(yōu)于壓力測試。

我們將情況1上述操作的主要步驟用流程圖3來表達(dá)。

情況2、非首次進(jìn)行交叉關(guān)聯(lián)的系統(tǒng)化分析設(shè)計(jì)

因?yàn)槭欠鞘状芜M(jìn)行交叉關(guān)聯(lián)的系統(tǒng)化分析,所以,使用交叉測試用例縮減策略1&2縮減過的用例集矩陣已存在了。故在這種情況下,如果有新增模塊,我們可以在之前分析設(shè)計(jì)的基礎(chǔ)上進(jìn)行增量式的兩兩交叉測試設(shè)計(jì),具體步驟如下:

1、將新增模塊歸為某一類,加到現(xiàn)有的《模塊間交叉關(guān)聯(lián)矩陣》的橫縱軸上,就會(huì)得到類似圖4的矩陣(圖中假設(shè)新增模塊歸屬于“識(shí)別類”):

2、使用情況1中步驟2所述的“交叉測試用例縮減策略1”對(duì)上面的矩陣進(jìn)行“去對(duì)角線”和“去下三角”的處理,就得到了圖5的矩陣:

3、使用情況1中步驟3所述的“交叉測試用例縮減策略2”,逐一分析新增模塊與現(xiàn)存模塊的關(guān)系,并將“是否要進(jìn)行交叉測試設(shè)計(jì)”的結(jié)果標(biāo)記在上圖中淺綠底的空白格子上,就得到了圖6的矩陣:

圖6(部分的關(guān)聯(lián)矩陣,而非完整的)所示的效果顯示:新增模塊與無線模塊需要考慮交叉測試設(shè)計(jì),而與其它之間不考慮交叉測試設(shè)計(jì)。

4、至于因新增模塊而產(chǎn)生的新的交叉測試用例的交叉深度和強(qiáng)度的設(shè)計(jì)與情況1中步驟4的作法是一樣的,參照那里的作法即可。

綜上本發(fā)明方法具有以下優(yōu)點(diǎn):

設(shè)計(jì)方法系統(tǒng)化且有章可循:本發(fā)明方法是一種系統(tǒng)化方法,按照科學(xué)的思維、工具、法則以及合理的步驟來進(jìn)行交叉測試的設(shè)計(jì)。既避免了“隨意設(shè)計(jì)”帶來的“想到哪就寫到哪,在系統(tǒng)模塊數(shù)上升,模塊組合數(shù)爆炸式地增長時(shí),難免出現(xiàn)遺漏或冗余”的情況,也避免了“過度設(shè)計(jì)”帶來的“全部排列組合都測試,雖然測試完全,在實(shí)際中卻往往因?yàn)闆]有那么多測試時(shí)間而欠可行性,在某種程度上,不加分析地“窮舉”也是一種測試?yán)速M(fèi)”等問題。良好的系統(tǒng)化的測試設(shè)計(jì)保障了下一階段具體測試(腳本或用例)實(shí)現(xiàn)的質(zhì)量,也減少了最終測試實(shí)施的工作量,使得交叉測試的“又快又好”優(yōu)勢(shì)得以體現(xiàn);

保證交叉測試用例集是正確的:本發(fā)明的設(shè)計(jì)方法既強(qiáng)調(diào)了交叉測試的交叉深度要以“深度交叉”優(yōu)先,也強(qiáng)調(diào)了交叉測試要保證一定的交叉強(qiáng)度。這一設(shè)計(jì)原則保證了所設(shè)計(jì)出的交叉用例是有效的、正確的;

保證交叉測試用例集是完備的:系統(tǒng)中全部模塊都會(huì)被列到關(guān)聯(lián)矩陣中,同時(shí),在借助《模塊間交叉關(guān)聯(lián)矩陣》來找出某個(gè)模塊與其它模塊的交叉組合結(jié)果時(shí),會(huì)在矩陣的橫縱2個(gè)方向上把所有相關(guān)組合都做一遍YesOrNo(√或X)的分析判斷,確保了不會(huì)造成測試設(shè)計(jì)的遺漏,保證了測試設(shè)計(jì)的完備性;

保證交叉測試用例集是最小化的/最簡的:不論從情況1還是情況2所列舉的實(shí)例及數(shù)據(jù)來看,本發(fā)明的設(shè)計(jì)方法在交叉用例縮減方面的效果是很顯著的。上述情況1中的1.2所展示的交叉關(guān)聯(lián)矩陣為例(n=36,即36個(gè)模塊),全矩陣有36*36=1296種兩兩組合情況,經(jīng)過“交叉測試用例縮減策略1”的縮減,得到原始的交叉測試用例數(shù)為36*35/2=630種兩兩不重復(fù)組合情況,經(jīng)過“交叉測試用例縮減策略2”的縮減,得到初步的/最終的交叉測試用例數(shù)為67種,即用例縮減率達(dá)(630-67)/630*100%=89.37%。若在交叉測試用例的具體實(shí)現(xiàn)階段,使用了抽象與復(fù)用等技術(shù)(不在本文中提及),則最終的用例縮減率甚至可達(dá)95%左右。可見,本發(fā)明方法設(shè)計(jì)出的交叉測試用例集是最小的/最簡的;

可擴(kuò)展性:本發(fā)明方法充分考慮到了當(dāng)系統(tǒng)擴(kuò)展、模塊新增時(shí)的情況,基于已有交叉測試設(shè)計(jì)(模塊關(guān)聯(lián)矩陣)的基礎(chǔ)上,可以輕松地分析并設(shè)計(jì)出相應(yīng)的交叉測試用例。

以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
象山县| 行唐县| 永城市| 雅江县| 陇南市| 泽州县| 万盛区| 新竹县| 五河县| 扎囊县| 石景山区| 南宁市| 文昌市| 蕉岭县| 栖霞市| 永春县| 屯昌县| 连城县| 嫩江县| 太保市| 景洪市| 安顺市| 淳安县| 大同市| 成安县| 英山县| 北宁市| 惠安县| 昆山市| 朝阳市| 岳普湖县| 扬州市| 登封市| 广丰县| 绥化市| 会同县| 博乐市| 弋阳县| 定安县| 忻城县| 青海省|