最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種過濾測試用例的方法及裝置的制作方法

文檔序號:6578545閱讀:378來源:國知局
專利名稱:一種過濾測試用例的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件安全性測試技術(shù)領(lǐng)域,特別涉及一種過濾測試用例的方法及裝置。
背景技術(shù)
軟件(包括應(yīng)用程序、協(xié)議等)的安全性測試實際上是在軟件輸入空間中的一種 探測。軟件的輸入空間由該軟件的所有可能的輸入、或所有可能的輸入的組合構(gòu)成。窮舉是 驗證軟件行為正確性的一種最極端的方法,然而,窮舉對大部分案例來說不具備可操作性, 因為通常情況下,軟件程序的輸入空間非常巨大,甚至可能是無窮大。相比于窮舉的方法來 說,模糊測試(Fuzz Testing)作為一種隨機樣本方法,是一種更具可行性的黑盒測試方法。模糊測試是一種軟件測試技術(shù),該技術(shù)構(gòu)造一些隨機或半隨機的數(shù)據(jù)(稱為 fuzz)作為被測試軟件程序的輸入,并觀察被測試軟件程序的工作狀況。作為一種黑盒測試 工具,模糊測試通常用于大型軟件開發(fā)項目。模糊測試被認為能夠提高軟件的安全性,這是 因為模糊測試總是能檢測出一些測試人員未能發(fā)現(xiàn)的缺陷,這些缺陷往往會被軟件測試 工程師所忽略。目前,最常用的模糊測試是基于字符的,基于字符的模糊測試提供隨機數(shù)據(jù)流 (從文件或其它數(shù)據(jù)流中提供,例如從套接字中提供)作為被測軟件程序的輸入,基于字 符的模糊測試正廣泛應(yīng)用于協(xié)議或網(wǎng)絡(luò)服務(wù)器的安全性測試。模糊測試的優(yōu)勢在于進行測試的成本相對較低、且完全可以自動實現(xiàn);并且,模 糊測試經(jīng)常能找出比較嚴重、且可被利用的缺陷(bug),這些bug可被攻擊者加以利用。本質(zhì)上來說,模糊測試是采用在被測軟件程序的輸入空間中隨機分布的大量的測 試用例進行測試的。參與測試的測試用例越多,測試就越徹底。但是,采用大量測試用例對 被測軟件程序進行測試將耗費較長時間;并且,由于大量相近似或等價的測試用例的存在 使得所找出的大部分安全漏洞是重復(fù)的,導(dǎo)致現(xiàn)有模糊測試比較浪費時間、且效率低下。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種過濾測試用例的方法,以提高模糊測 試的效率。本發(fā)明的另一個目的在于提供一種過濾測試用例的裝置,以提高模糊測試的效率。為達到上述目的,本發(fā)明提供了一種過濾測試用例的方法,該方法包括確定各個測試用例的安全特征;根據(jù)所述確定的各個測試用例的安全特征對測試用例進行過濾,將安全特征相同 的測試用例僅保留一個。較佳地,所述測試用例的安全特征可以采用安全特征向量表示,所述安全特征向 量可以包括長度特性分量和內(nèi)容特性分量;
所述確定各個測試用例的安全特征可以包括根據(jù)各個測試用例的長度確定各個 測試用例的長度特性分量,根據(jù)各個測試用例的內(nèi)容確定各個測試用例的內(nèi)容特性分量。進一步地,所述安全特征向量的內(nèi)容特性分量中可以包括時間特性分量和特殊 字符分量;所述根據(jù)各個測試用例的內(nèi)容確定各個測試用例的內(nèi)容特性分量可以包括根據(jù) 各個測試用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計特性確定各個測試用例的時間特性分量,根 據(jù)各個測試用例的內(nèi)容中所包含的特殊字符確定各個測試用例的特殊字符分量。較佳地,所述根據(jù)各個測試用例的長度確定各個測試用例的長度特性分量可以 為將測試用例的比特數(shù)或字節(jié)數(shù)確定為所述測試用例的長度特性分量的取值。較佳地,所述根據(jù)各個測試用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計特性確定各個測 試用例的時間特性分量可以為將測試用例作為離散序列,計算所述離散序列的頻率特性, 將所述頻率特性確定為所述測試用例的時間特性分量的取值;或統(tǒng)計測試用例中特殊字符 重復(fù)出現(xiàn)的時間特性,將所述時間特性確定為所述測試用例的時間特性分量的取值。較佳地,所述根據(jù)各個測試用例的內(nèi)容中所包含的特殊字符確定各個測試用例的 特殊字符分量可以為將測試用例中所包含的特殊字符以及對應(yīng)的子串確定為所述測試用 例的特殊字符分量的取值。較佳地,判斷兩個測試用例的安全特征是否相同的方式可以為判斷所述兩個測 試用例的安全特征向量是否長度特性分量的取值相等、時間特性分量的取值相等、且特殊 字符分量的取值相等,如果是,則判定所述兩個測試用例的安全特征相同。本發(fā)明還提供了一種過濾測試用例的裝置,該裝置包括安全特征計算模塊210,用于確定各個測試用例的安全特征;過濾模塊220,用于根據(jù)安全特征計算模塊210所確定的各個測試用例的安全特 征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個。較佳地,所述測試用例的安全特征可以采用安全特征向量表示,所述安全特征向 量可以包括長度特性分量和內(nèi)容特性分量;所述安全特征計算模塊210中可以進一步包括長度特性計算子模塊211和內(nèi)容 特性計算子模塊212;所述長度特性計算子模塊211,可以用于根據(jù)各個測試用例的長度確定各個測試 用例的長度特性分量;所述內(nèi)容特性計算子模塊212,可以用于根據(jù)各個測試用例的內(nèi)容確定各個測試 用例的內(nèi)容特性分量。進一步地,所述安全特征向量的內(nèi)容特性分量中可以包括時間特性分量和特殊 字符分量;所述內(nèi)容特性計算子模塊212中可以進一步包括時間特性計算單元213和特殊 字符計算單元214;所述時間特性計算單元213,可以用于根據(jù)各個測試用例的內(nèi)容的周期性、重復(fù)性 或統(tǒng)計特性確定各個測試用例的時間特性分量;所述特殊字符計算單元214,可以用于根據(jù)各個測試用例的內(nèi)容中所包含的特殊 字符確定各個測試用例的特殊字符分量。
較佳地,所述長度特性計算子模塊211,可以用于將測試用例的比特數(shù)或字節(jié)數(shù)確 定為所述測試用例的長度特性分量的取值。較佳地,所述時間特性計算單元213,可以用于將測試用例作為離散序列,計算所 述離散序列的頻率特性,將所述頻率特性確定為所述測試用例的時間特性分量的取值;或 用于統(tǒng)計測試用例中特殊字符重復(fù)出現(xiàn)的時間特性,將所述時間特性確定為所述測試用例 的時間特性分量的取值。較佳地,所述特殊字符計算單元214,可以用于將測試用例中所包含的特殊字符以 及對應(yīng)的子串確定為所述測試用例的特殊字符分量的取值。較佳地,所述過濾模塊220,可以于將測試用例兩兩進行比較,在兩個測試用例的 安全特征向量的長度特性分量的取值、時間特性分量的取值和特殊字符分量的取值均相等 時,判定所述兩個測試用例的安全特征相同。由上述技術(shù)方案可見,本發(fā)明通過計算各個測試用例的安全特征,并根據(jù)各個測 試用例的安全特征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個,從而避 免了對大量相近似或等價的測試用例進行測試,節(jié)約了進行測試的時間,大大提高了模糊 測試的效率。


下面將通過參照附圖詳細描述本發(fā)明的示例性實施例,使本領(lǐng)域的普通技術(shù)人員 更清楚本發(fā)明的上述及其他特征和優(yōu)點,附圖中圖1為本發(fā)明過濾測試用例的方法的流程示意圖;圖2為本發(fā)明過濾測試用例的裝置的組成結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對 本發(fā)明進一步詳細說明。參與測試的測試用例之間的差異越大,能夠找出的安全漏洞越多,因此,如何評估 測試用例之間的相似度成為提高模糊測試效率的關(guān)鍵。本發(fā)明的主要思想是提出安全特征的概念,通過計算測試用例的安全特征,并據(jù) 此將測試用例劃分成不同的安全等價類;由于屬于同一安全等價類的測試用例是等價的, 因此,在進行模糊測試時從每一個安全等價類中只選擇一個測試用例進行測試,從而避免 了對每一個安全等價類中的每一個測試用例進行測試,達到大大提高模糊測試效率的目 的。圖1為本發(fā)明過濾測試用例的方法的流程示意圖。參見圖1,該方法包括步驟101 確定各個測試用例的安全特征。這里,首先需要定義測試用例的安全特征,該安全特征可用于將測試用例分成不 同的安全等價類。屬于同一安全等價類的測試用例對被測目標系統(tǒng)進行測試,將導(dǎo)致相同 的結(jié)果,因此,某一測試用例是否屬于某一安全等價類取決于安全特征如何定義和計算。盡管模糊測試是一種黑盒安全測試,它沒有任何機會獲取到被測軟件程序的設(shè)計 文檔或執(zhí)行文件(源代碼)以用于安全測試,但是,關(guān)于如何挖掘出安全漏洞的知識在決定哪些安全特征需要被納入安全等價類的分類過程時確仍然非常有用。目前,主要有如下四類安全漏洞攻擊方法,這些安全漏洞攻擊可能從不同途徑危 及系統(tǒng)的安全1、緩沖區(qū)溢出攻擊這是當某個進程試圖在超出定長緩存邊界的區(qū)域存儲數(shù)據(jù)時 發(fā)生的一種異常情況,其結(jié)果是額外的數(shù)據(jù)覆蓋鄰近內(nèi)存區(qū)域中的數(shù)據(jù)。被覆蓋的數(shù)據(jù)可 能是其它緩存中的數(shù)據(jù)、變量或程序流數(shù)據(jù),因此,該覆蓋可能引發(fā)程序行為異常、內(nèi)存拒 絕訪問、程序終止(崩潰)或結(jié)果錯誤等。尤其是如果該覆蓋是由惡意用戶惡意實施的,可 能破壞系統(tǒng)的安全性。特意設(shè)置的用于執(zhí)行惡意代碼的輸入或令軟件程序無意識地執(zhí)行的 輸入均可引發(fā)緩沖區(qū)溢出。因此,緩沖區(qū)溢出引發(fā)許多軟件漏洞,并成為許多漏洞濫用工具 的基礎(chǔ)。2、代碼注入攻擊它是對計算機bug的一種探測,這是由處理無效數(shù)據(jù)引起的。代 碼注入攻擊可被攻擊者用以向軟件程序中引入(或注入)代碼,從而改變軟件程序的執(zhí)行 過程。代碼注入攻擊的結(jié)果可能非常嚴重,例如代碼注入攻擊曾被一些計算機蠕蟲用于傳 播病毒,SQL注入攻擊是另一種聲名狼藉的代碼注入,其攻擊目標是數(shù)據(jù)庫。3、格式化字符串攻擊格式化字符串攻擊可導(dǎo)致軟件程序崩潰或執(zhí)行有害代碼。 在執(zhí)行格式化操作的某些C函數(shù)中,例如在printfO函數(shù)中,將未進行過濾的用戶輸入用 作格式化字符串參數(shù)可以引發(fā)格式化字符串攻擊。惡意用戶可能利用% 8和% 1格式化標 記,從堆?;騼?nèi)存的其它位置中打印數(shù)據(jù)。惡意用戶也可能采用% η格式化標記向任意的 位置寫入任意的數(shù)據(jù),這樣就可以利用printfO函數(shù)或其它具備類似功能的函數(shù)將一定 數(shù)目的格式化字節(jié)寫入堆棧中的某個地址。4、特權(quán)升級攻擊特權(quán)升級攻擊是利用軟件程序中的bug或設(shè)計錯誤,獲取對被 保護、不允許普通應(yīng)用程序或用戶訪問的資源的訪問權(quán)限。其結(jié)果是軟件程序以比軟件程 序開發(fā)人員或系統(tǒng)管理員意欲給予的更高的特權(quán)實施操作。在某些情況下,高特權(quán)軟件程 序假定凡是提供給它的輸入都是符合其接口標準的輸入,而不對其輸入進行驗證。此時,攻 擊者就可能探測是否存在這種缺陷,使未被授權(quán)的代碼利用該軟件程序的特權(quán)運行?;趯ι鲜鏊姆N安全漏洞機制的深入分析,可將這四種類型的安全漏洞分為兩 組,這兩組分別與軟件程序的輸入的兩種不同的特性相關(guān)。1)與長度相關(guān)的安全漏洞,例如緩存區(qū)溢出攻擊。2)與內(nèi)容相關(guān)的安全漏洞,包括代碼注入攻擊、格式化字符串攻擊和特權(quán)升級 攻擊。基于上述分類,本發(fā)明引入如⑴式所示的安全特征向量V來表示測試用例的安 全特征。該安全特征向量V用于表征和計算被測目標系統(tǒng)的輸入數(shù)據(jù)(即測試用例)的 長度和內(nèi)容特性。V = (L, C)(1)(1)式中,L表示測試用例的長度特性分量。在具體計算時,可以根據(jù)測試用例的 長度確定該長度特性分量的取值,例如將測試用例的比特數(shù)或字節(jié)數(shù)作為該測試用例的 長度特征分量的取值。C表示測試用例的內(nèi)容特性分量。與長度特性分量不同的是,測試用例的內(nèi)容特 性分量描述起來非常復(fù)雜。本申請的發(fā)明人通過分析與輸入數(shù)據(jù)的內(nèi)容特性相關(guān)的安全漏
7洞,例如代碼注入攻擊、格式化字符串攻擊和特權(quán)升級攻擊,發(fā)現(xiàn)這些攻擊的共性是它 們都包含特殊字符(即除字母與數(shù)字之外的字符)。例如輸入串“cat/etc/password” 曾在代碼注入攻擊中被用作輸入,用以獲取Unix、Linux等系統(tǒng)中的用戶信息。這里,注入 的輸入中包含特殊字符‘/’。對于其它的與內(nèi)容相關(guān)的安全漏洞,用于攻擊的輸入數(shù)據(jù)可能 包含其它特殊字符,例如‘%’、‘\’等。原因在于幾乎所有的系統(tǒng)均對某些特殊字符賦予 一定的語義,用以觸發(fā)一些操作,因此,通過這些特殊字符注入輸入更易于找出并利用目標 系統(tǒng)中潛在的安全漏洞。此外,采用隨機的方法、基于預(yù)定義或類型的方法所產(chǎn)生測試用例可看作是由字 符組成的時間序列,那么,反映這些測試用例的周期性、重復(fù)性或統(tǒng)計特性的時間特性也可 以用于描述它的內(nèi)容特性。這里,時間特性可以是頻率、自相關(guān)參數(shù)等?;谏鲜龇治?,本發(fā)明將內(nèi)容特性參數(shù)C表示為如(2)式所示的2元組C = (f, S)(2)(2)式中,f表示測試用例的內(nèi)容的時間特性分量。它的計算方法可以是將 測試用例看作一個由字符構(gòu)成的離散序列,并采用離散傅立葉變換(DFT =Discrete FourierTransform)計算其頻率特性,將該頻率特性作為時間特性分量的取值;或者統(tǒng)計 特殊字符重復(fù)出現(xiàn)的時間特性,例如特殊字符‘/’出現(xiàn)了多少次、出現(xiàn)了多長時間等,將 該時間特性確定為該測試用例的時間特性分量的取值。如果兩個測試用例的f相等,那么, 它們的時間特性分量相同。S為特殊字符分量,用于描述測試用例中包含哪個/哪些特殊字符以及對應(yīng)的子 串。如果兩個測試用例的s相等(包含相同的特殊字符和/或彼此之間對應(yīng)的子串相同), 那么,它們的s特性相同。步驟102 根據(jù)所確定的各個測試用例的安全特征對測試用例進行過濾,將安全 特征相同的測試用例僅保留一個。通過步驟101,各個測試用例的安全特征得以確定,如果兩個測試用例的安全特征 相同,表明這兩個測試用例是等價的測試用例,擇一進行模糊測試即可,因此,本步驟中,將 根據(jù)各個測試用例的安全特征對測試用例進行過濾,對于安全特征相同的測試用例僅保留 一個。在具體實現(xiàn)時,可以按照如下步驟進行第1步設(shè)置有效測試集S,該有效測試集S用于存儲所有經(jīng)過處理的測試用例 (即屬于不同安全等價類的測試用例),以及這些測試用例的安全特征向量,初始狀態(tài)下, 有效測試集S為空。第2步對于每一個測試用例T,將該測試用例的安全特征向量V與有效測試集S 中每一個測試用例的安全特征向量V’進行比較如果存在V’ = V,即長度特性分量L的取值、時間特性分量f的取值、且特殊字 符分量s的取值均相等,那么,表示V對應(yīng)的測試用例T與V’對應(yīng)的測試用例T’屬于相同 的安全等價類,例如它們對于探測目標系統(tǒng)的安全漏洞來說是等效的。由于T’已經(jīng)處于 有效測試集S中,那么,T對于模糊測試來說就是冗余的,應(yīng)當予以排除。如果不存在V’ =V,那么,表示測試用例T屬于一個新的安全等價類,需要將該測 試用例T加入有效測試集S。執(zhí)行上述操作之后完成了一個安全等價類分類處理,此時,有效測試集S中的每一個測試用例分別屬于不同的安全等價類,具有相同安全特性的同一安全等價類中只選擇 出一個測試用例,那些冗余或等價的測試用例被過濾掉,因此,有效測試集S可用于進行有 效的模糊測試。至此,結(jié)束本發(fā)明過濾測試用例的方法。本發(fā)明提出了一種過濾測試用例的方法,該方法通過計算測試用例的安全特征, 并據(jù)此排除冗余或等價的測試用例,從而確保了每個安全等價類中僅有一個測試用例被用 于進行模糊測試,而避免了采用相同安全等價類中的多個測試用例進行測試,從而大大提 高了模糊測試的效率。對應(yīng)于上述過濾測試用例的方法,本發(fā)明還提出了一種過濾測試用例的裝置,如 圖2所示。圖2中的過濾測試用例的裝置包括安全特征計算模塊210,用于確定各個測試用例的安全特征;過濾模塊220,用于根據(jù)安全特征計算模塊210所確定的各個測試用例的安全特 征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個。較佳地,測試用例的安全特征可以采用安全特征向量表示,該安全特征向量包括 長度特性分量和內(nèi)容特性分量;此時,圖2所示裝置中的安全特征計算模塊210中進一步包 括長度特性計算子模塊211和內(nèi)容特性計算子模塊212 ;其中長度特性計算子模塊211,用于根據(jù)各個測試用例的長度確定各個測試用例的長 度特性分量;內(nèi)容特性計算子模塊212,用于根據(jù)各個測試用例的內(nèi)容確定各個測試用例的內(nèi) 容特性分量。較佳地,安全特征向量的內(nèi)容特性分量中可以進一步包括時間特性分量和特殊 字符分量;此時,圖2所示裝置中的內(nèi)容特性計算子模塊212中可以進一步包括時間特性 計算單元213和特殊字符計算單元214 ;其中時間特性計算單元213,用于根據(jù)各個測試用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計特 性確定各個測試用例的時間特性分量;特殊字符計算單元214,用于根據(jù)各個測試用例的內(nèi)容中所包含的特殊字符確定 各個測試用例的特殊字符分量。較佳地,圖2所示裝置中的長度特性計算子模塊211,用于將測試用例的比特數(shù)或 字節(jié)數(shù)確定為該測試用例的長度特性分量的取值。較佳地,圖2所示裝置中的時間特性計算單元213,用于將測試用例作為離散序 列,計算該離散序列的頻率特性,將該頻率特性確定為該測試用例的時間特性分量的取值; 或用于統(tǒng)計測試用例中特殊字符重復(fù)出現(xiàn)的時間特性,將該時間特性確定為該測試用例的 時間特性分量的取值。較佳地,圖2所示裝置中的特殊字符計算單元214,用于將測試用例中所包含的特 殊字符以及對應(yīng)的子串確定為該測試用例的特殊字符分量的取值。較佳地,圖2所示裝置中的過濾模塊220,用于將測試用例兩兩進行比較,在兩個 測試用例的安全特征向量的長度特性分量的取值、時間特性分量的取值和特殊字符分量的 取值均相等時,判定這兩個測試用例的安全特征相同。以下通過一個具體實施例對本發(fā)明進行詳細說明
本實施例中以字符串型的測試用例為例,詳細介紹本發(fā)明過濾測試用例的方法。 頻率被當作測試用例的時間特性分量。本實施例中過濾測試用例的方法按照如下步驟進 行第1步使用一個列表存儲有效測試集S,該列表中包含屬于不同安全等價類的 測試用例、以及這些測試用例的安全特征向量。初始狀態(tài)下,有效測試集S為空。第2步在模糊測試中,將采用隨機的方法、基于預(yù)定義的方法、或基于類型的方 法產(chǎn)生大量測試用例。對于每一個測試用例T,本實施例將按照如下(a) (d)計算其安全 特征向量V:(a)根據(jù)測試用例中包含的字符數(shù)確定測試用例T的長度,將該長度作為該測試 用例的安全特征向量V中的長度特性分量L。(b)在頻域計算測試用例的時間特性。本實施例以頻域為例,在實際應(yīng)用中,也可 以采用其它時間特性,或者特殊字符的時域特性。將T表示為T = T
T[1]...T[1]...T[L-1]其中T[1]表示測試用例T中的第1個字符,0 ^ 1 ^ L-I0然后利用離散傅立葉變換計算字符序列T的頻域特性,如(3)式所示
L-\ Jkf{k] = DFT[T[l]\ = Σ T[1]Wl,0 彡 k 彡 L-I(3)
1=0(3)式中,『f = ~jkl~I。采用快速傅立葉變換可以加速上述計算的實施。在進行頻域變換計算之后,包含測試用例T的頻域特性的f[k]就是測試用例T的 內(nèi)容特性分量C的時間特性分量f。由于f與T的長度相等,可能需要大量存儲空間來存儲有效測試集S中所有測試 用例的f。為了節(jié)省存儲空間,可以采用壓縮或采樣的方法進行處理。以下舉兩個例子進行 說明第一個例子首先將每m個f[k]進行累加,如(4)式所示
m /’[y] = Σ/L/ X W + /], 0 彡 j 彡 n-l(4)
/=1(4)式中…=「丄/ ^,1"為根據(jù)實際應(yīng)用的需要由用戶設(shè)置的值。令f,=f,[j](5)將f ’作為測試用例T的時間參數(shù)f進行保存。第二個例子僅采用f的高頻部分作為樣本,如(6)式所示ι' = f[m], f[m+l],…,f[L_l](6)同樣地,(6)式中的m也是根據(jù)實際應(yīng)用的需要由用戶進行設(shè)置。(c)計算與特殊字符相關(guān)的內(nèi)容特性分量S。根據(jù)頻率特性f,可以獲取在T中重 復(fù)出現(xiàn)的子串,將特殊字符在該子串中的位置記錄為S。另一種方法是直接使用測試用例T 中存在的特殊字符,以及它出現(xiàn)的位置作為S。
(d)通過計算L、f、s,確定當前測試用例T的安全特征向量V = (L,C)以及C = (f,s)。然后將V與有效測試集S中的每一個測試用例對應(yīng)的特征向量V’進行比較。如果 存在一個V’ = V,那么,T對于模糊測試來說就是冗余的,應(yīng)當予以排除。如果不存在V’ = V,那么,表示測試用例T屬于一個新的安全等價類,需要將該測試用例T加入有效測試集S。重復(fù)上述第2步中的操作直至過濾完所有測試用例。由上述實施例可見,本發(fā)明通過計算各個測試用例的安全特征,并根據(jù)各個測試 用例的安全特征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個,從而避免 了對大量相近似或等價的測試用例進行測試,節(jié)約了進行測試的時間,大大提高了模糊測 試的效率。以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范 圍之內(nèi)。
權(quán)利要求
一種過濾測試用例的方法,其特征在于,包括確定各個測試用例的安全特征;根據(jù)所述確定的各個測試用例的安全特征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述測試用例的安全特征采用安全特征向量表示,所述安全特征向量包括長度特性 分量和內(nèi)容特性分量;所述確定各個測試用例的安全特征包括根據(jù)各個測試用例的長度確定各個測試用例 的長度特性分量,根據(jù)各個測試用例的內(nèi)容確定各個測試用例的內(nèi)容特性分量。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于所述安全特征向量的內(nèi)容特性分量中進一步包括時間特性分量和特殊字符分量;所述根據(jù)各個測試用例的內(nèi)容確定各個測試用例的內(nèi)容特性分量包括根據(jù)各個測試 用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計特性確定各個測試用例的時間特性分量,根據(jù)各個測 試用例的內(nèi)容中所包含的特殊字符確定各個測試用例的特殊字符分量。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述根據(jù)各個測試用例的長度確定各個測試用例的長度特性分量為將測試用例的比 特數(shù)或字節(jié)數(shù)確定為所述測試用例的長度特性分量的取值。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于所述根據(jù)各個測試用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計特性確定各個測試用例的時間 特性分量為將測試用例作為離散序列,計算所述離散序列的頻率特性,將所述頻率特性確 定為所述測試用例的時間特性分量的取值;或統(tǒng)計測試用例中特殊字符重復(fù)出現(xiàn)的時間特 性,將所述時間特性確定為所述測試用例的時間特性分量的取值。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于所述根據(jù)各個測試用例的內(nèi)容中所包含的特殊字符確定各個測試用例的特殊字符分 量為將測試用例中所包含的特殊字符以及對應(yīng)的子串確定為所述測試用例的特殊字符分 量的取值。
7.根據(jù)權(quán)利要求3至6任一項所述的方法,其特征在于,判斷兩個測試用例的安全特征 是否相同的方式為判斷所述兩個測試用例的安全特征向量是否長度特性分量的取值相等、時間特性分量 的取值相等、且特殊字符分量的取值相等,如果是,則判定所述兩個測試用例的安全特征相 同。
8.—種過濾測試用例的裝置,其特征在于,包括安全特征計算模塊(210),用于確定各個測試用例的安全特征;過濾模塊(220),用于根據(jù)安全特征計算模塊(210)所確定的各個測試用例的安全特 征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于所述測試用例的安全特征采用安全特征向量表示,所述安全特征向量包括長度特性 分量和內(nèi)容特性分量;所述安全特征計算模塊(210)中進一步包括長度特性計算子模塊(211)和內(nèi)容特性計算子模塊(212);所述長度特性計算子模塊(211),用于根據(jù)各個測試用例的長度確定各個測試用例的 長度特性分量;所述內(nèi)容特性計算子模塊(212),用于根據(jù)各個測試用例的內(nèi)容確定各個測試用例的 內(nèi)容特性分量。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于所述安全特征向量的內(nèi)容特性分量中進一步包括時間特性分量和特殊字符分量;所述內(nèi)容特性計算子模塊(212)中進一步包括時間特性計算單元(213)和特殊字符 計算單元(214);所述時間特性計算單元(213),用于根據(jù)各個測試用例的內(nèi)容的周期性、重復(fù)性或統(tǒng)計 特性確定各個測試用例的時間特性分量;所述特殊字符計算單元(214),用于根據(jù)各個測試用例的內(nèi)容中所包含的特殊字符確 定各個測試用例的特殊字符分量。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于所述長度特性計算子模塊(211),用于將測試用例的比特數(shù)或字節(jié)數(shù)確定為所述測試 用例的長度特性分量的取值。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于所述時間特性計算單元(213),用于將測試用例作為離散序列,計算所述離散序列的頻 率特性,將所述頻率特性確定為所述測試用例的時間特性分量的取值;或用于統(tǒng)計測試用 例中特殊字符重復(fù)出現(xiàn)的時間特性,將所述時間特性確定為所述測試用例的時間特性分量 的取值。
13.根據(jù)權(quán)利要求10所述的裝置,其特征在于所述特殊字符計算單元(214),用于將測試用例中所包含的特殊字符以及對應(yīng)的子串 確定為所述測試用例的特殊字符分量的取值。
14.根據(jù)權(quán)利要求10至13任一項所述的裝置,其特征在于所述過濾模塊(220),用于將測試用例兩兩進行比較,在兩個測試用例的安全特征向量 的長度特性分量的取值、時間特性分量的取值和特殊字符分量的取值均相等時,判定所述 兩個測試用例的安全特征相同。
全文摘要
本發(fā)明公開了一種過濾測試用例的方法,該方法首先確定各個測試用例的安全特征;然后根據(jù)所述確定的各個測試用例的安全特征對測試用例進行過濾,將安全特征相同的測試用例僅保留一個。本發(fā)明還公開了一種過濾測試用例的裝置。應(yīng)用本發(fā)明能夠大大提高模糊測試的效率。
文檔編號G06F11/36GK101901183SQ20091014382
公開日2010年12月1日 申請日期2009年5月31日 優(yōu)先權(quán)日2009年5月31日
發(fā)明者唐文 申請人:西門子(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1