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

用于生成目標對象的測試值的方法和裝置的制作方法

文檔序號:6575259閱讀:205來源:國知局
專利名稱:用于生成目標對象的測試值的方法和裝置的制作方法
技術領域
本發(fā)明涉及軟件測試,尤其涉及一種用于生成目標對象的測試值的方法和裝置。
背景技術
通常,軟件可以包括有函數(shù)(function)、模塊(module)、組件(component)和/或 程序包(package)。一般情況下,軟件所包括的函數(shù)、模塊、組件和程序包以及軟件本身都是 接收一個或多個輸入并且根據(jù)所接收的一個或多個輸入來執(zhí)行特定的功能。在本文中,把 軟件所包括的函數(shù)、模塊、組件和程序包以及軟件本身都稱作程序代碼對象。一個程序代碼對象的輸入可以來自其它程序代碼對象和/或用戶。通常,在程序 代碼對象之間和程序代碼對象與用戶之間使用通信協(xié)議來相互之間傳送信息。通信協(xié)議 一般通過各種消息來實現(xiàn),每一種消息一般包括一個或者多個信息單元(也稱為域或者字 段),其中,每個信息單元攜帶一個作為接收該消息的程序代碼對象的一個輸入的信息?,F(xiàn)在,在軟件正式使用之前,通常都會先對軟件進行測試,其中,常用的自動化軟 件測試方法稱作模糊測試(fuzz testing)。模糊測試通常在程序代碼對象的輸入的各種測 試值下來執(zhí)行程序代碼對象,以觀察程序代碼對象針對每個輸入的每種測試值的實際執(zhí)行 結果是否與對應于該測試值的期望結果一致,從而發(fā)現(xiàn)程序代碼對象中存在的各種錯誤并 改正這些錯誤。在進行模糊測試時,既可以通過直接生成程序代碼對象的輸入的測試值來 測試程序代碼對象,也可以生成程序代碼對象所使用的通信協(xié)議的消息的信息單元的測試 值來測試程序代碼對象。也就是說,被生成測試值的目標對象可以是程序代碼對象的輸入 和程序代碼對象所使用的通信協(xié)議的消息的信息單元。目前,在進行模糊測試時,通常采用正則表達式(regularexpression)來生成 目標對象(程序代碼對象的輸入或程序代碼對象所使用的通信協(xié)議的消息的信息單元) 的測試值。然而,采用正則表達式來生成測試值會產(chǎn)生大量的等效測試值(equivalent input)。例如,以程序代碼對象的一個輸入為例,如果對于該輸入的兩個測試值“aaaaa”和 “bbbbb”,該程序代碼對象的執(zhí)行結果是一樣的,則“aaaaa”和“bbbbb”對于該程序代碼對 象來說就是等效測試值。大量的等效測試值會增加測試用例的數(shù)目,增大測試空間,從而導 致測試時間和測試成本的增加。

發(fā)明內(nèi)容
考慮到現(xiàn)有技術的上述問題,本發(fā)明的實施例提供一種用于生成目標對象的測試 值的方法和裝置,利用該方法和裝置,可以在生成目標對象的測試值時不出現(xiàn)等效測試值。按照本發(fā)明的一種用于生成目標對象的測試值的方法,包括步驟生成一個隨機 過程;對所述生成的隨機過程的預定數(shù)目的樣本函數(shù)分別進行采樣,得到多組采樣值,其 中,對所述預定數(shù)目的樣本函數(shù)中的每一個樣本函數(shù)進行采樣得到的多個采樣值形成所述 多組采樣值的其中一組采樣值;圓整所述多組采樣值中的各個采樣值,以便所述多組采樣 值中的各個采樣值都是整數(shù);以及,根據(jù)基本字符集中的各個基本字符的標識碼,將所述圓整后的多組采樣值映射為多個字符串,作為所述目標對象的測試值。按照本發(fā)明的一種用于生成目標對象的測試值的裝置,包括生成模塊,用于生成 一個隨機過程;采樣模塊,用于對所述生成的隨機過程的預定數(shù)目的樣本函數(shù)分別進行多 次采樣,得到多組采樣值,其中,對所述預定數(shù)目的樣本函數(shù)中的每一個樣本函數(shù)進行多次 采樣得到的多個采樣值形成所述多組采樣值的其中一組采樣值;圓整模塊,用于圓整所述 多組采樣值中的各個采樣值,以便所述多組采樣值中的各個采樣值都是整數(shù);以及,映射模 塊,用于根據(jù)基本字符集中的各個基本字符的標識碼,將所述圓整后的多組采樣值映射為 多個字符串,作為所述目標對象的測試值。


本發(fā)明的特點、特征和優(yōu)點通過以下結合附圖的詳細描述將變得更加顯而易見。 其中圖1是示出按照本發(fā)明第一實施例的用于生成程序代碼對象所使用的通信協(xié)議 的消息的信息單元的測試值的方法的流程圖;以及圖2是示出按照本發(fā)明第二實施例的用于生成程序代碼對象所使用的通信協(xié)議 的消息的信息單元的測試值的方法的流程圖。
具體實施例方式下面,結合附圖詳細說明本發(fā)明的各個實施例。首先,以程序代碼對象所使用的通信協(xié)議的消息的信息單元作為被生成測試值的 目標對象來說明本發(fā)明的各個實施例。圖1是示出按照本發(fā)明第一實施例的用于生成程序代碼對象所使用的通信協(xié)議 的消息的信息單元的測試值的方法的流程圖。如圖1所示,首先,把基本字符集中的各個 基本字符逐一編號,以便為基本字符集中的每一個基本字符分配一個唯一的標識碼(步驟 S100)。例如,以ASCII基本表作為基本字符集為例,ASCII基本表包括128個基本字符,其 中,該128個基本字符包括33個非打印字符和94個可打印字符,該94個可打印字符進一 步包括26個大寫字母、26個小寫字母、10個數(shù)字和32個特殊字符。把ASCII基本表中的 128個基本字符按照從1到128的順序逐一編號,從而ASCII基本表中的每一個基本字符都 被分配一個唯一的范圍在1-128內(nèi)的標識碼。然后,生成一個高斯白噪聲隨機過程(步驟Sl 10)。在這里,可以利用諸如Central Limit Theorem方法和Βοχ-Muller方法等這樣的方法來生成高斯白噪聲隨機過程。接著,對所生成的高斯白噪聲隨機過程所包括的各個樣本函數(shù)分別進行采樣,得 到多組樣本值(步驟S120)。在這里,對每一個樣本函數(shù)進行采樣得到的多個樣本值,形成 該多組樣本值的其中一組樣本值。接下來,圓整該多組樣本值中的各個樣本值,以便該多組樣本值中的各個樣本值 都是整數(shù)(步驟S130)。在這里,圓整該多組樣本值中的各個樣本值可以采用四舍五入的方 法來圓整或者采用直接去掉樣本值中的小數(shù)部分的方法來圓整。最后,根據(jù)基本字符集中的各個基本字符的標識碼,將該圓整后的多組樣本值映 射成多個字符串,作為程序代碼對象所使用的通信協(xié)議的消息的信息單元的測試值(步驟S140)。在這里,把圓整后的多組樣本值中的每一組樣本值映射成一個字符串。例如,假設 其中一組樣本值為[1,23,67,130],基本字符“a”的標識碼為1,基本字符“S”的標識碼為 23,基本字符“P”的標識碼為67,以及基本字符“9”的標識碼為130,則該組樣本值[1,23, 67,130]所映射的字符串為“asP9”。根據(jù)隨機過程理論可以知道,高斯白噪聲隨機過程所包括的各個樣本函數(shù)相互之 間都是獨立的,從而高斯白噪聲隨機過程所包括的各個樣本函數(shù)分別采樣得到的各組樣本 值所映射的各個字符串相互之間也是獨立的,由此,把高斯白噪聲隨機過程所包括的各個 樣本函數(shù)分別采樣得到的各組樣本值所映射的各個字符串作為程序代碼對象所使用的通 信協(xié)議的消息的信息單元的測試值,不會出現(xiàn)等效測試值的情況。因此,采用本實施例的隨 機的方式來獲取程序代碼對象所使用的通信協(xié)議的消息的信息單元的測試值,能夠避免出 現(xiàn)等效輸測試入值,從而減少測試用例的數(shù)目和測試空間,相應地減少測試時間和測試成 本。圖2是示出按照本發(fā)明第二實施例的用于生成程序代碼對象所使用的通信協(xié)議 的消息的信息單元的測試值的方法的流程圖。如圖2所示,首先,按照基本字符集中的各個 基本字符在編程時具有的不同作用,把基本字符集分成多個子集(步驟S200)。其中,每一 個子集所包括的各個基本字符在編程時具有相同的作用。例如,將整個基本字符集標記為 C,由整個基本字符集中的各個特殊基本字符組成的子集標記為Cs,由整個基本字符集中的 各個普通基本字符組成的子集標記為Cx,其中,子集Cs和Cx還可以分別進一步分成多個子 集。以ASCII基本表作為基本字符集和使用C編程語言來編制程序代碼對象為例,可以把 ASCII字符集分為由各個普通基本字符(ASCII字符集中的字母和數(shù)字)組成的子集Cx和 由各個特殊基本字符(ASCII字符集中除了字母和數(shù)字之外的字符)組成的子集Cs,其中, 子集Cx進一步分成Ca子集(包括ASCII字符集中的26個大寫字母和26個小寫字母)和 Cn子集(包括ASCII字符集的各個數(shù)字),以及子集Cs進一步分成Csc子集(包括ASCII 字符集中C編程語言專門使用的特殊字符,例如/t、/n等)、Csf子集(包括ASCII字符集 中的其它特殊字符,例如@、#、$等)以及Csp子集(包括程序代碼對象所使用的通信協(xié)議 使用的特殊字符)。然后,步驟S210-S250被執(zhí)行,以把高斯白噪聲隨機過程所包括的各個樣本函數(shù) 分別采樣得到的多組樣本值映射成多個字符串。本實施例的步驟S210-250分別對應于第 一實施例中的步驟S100-S 140。由于第一實施例已經(jīng)詳細描述了步驟S100-S140,所以在 這里省略對步驟S210-250的描述。接著,利用從由各個普通基本字符組成的子集Cx中選取的代表字符和由各個特 殊基本字符組成的子集Cs,使用正則表達式來生成字符串(步驟S260),其中,該正則表達 式應包含用于生成程序代碼對象所使用的通信協(xié)議的消息的信息單元的邊界值條件的正 則表達式。例如,假設用于生成程序代碼對象所使用的通信協(xié)議的消息的信息單元的邊界 值條件的正則表達式是“j8\Csc\Csf”,其中,正則表達式中的“j”和“8”分別是從由普通基 本字符組成的子集Cx中的子集Ca和子集Cn提取的代表字符,正則表達式中的“\Csc”和 “\Csf”分別表示Csc子字符集中的任一字符和Csf子字符集中的任一字符,則就可以利用 子集Cx中的代表字符“j”和“8”以及子集Cs中的Csc和Csf,使用該正則表達式來生成字 符串。
最后,把步驟S210-S250所得到的字符串和步驟S260所生成的字符串作為程序代 碼對象所使用的通信協(xié)議的消息的信息單元的測試值(步驟S270)。由前一實施例的描述可知,把高斯白噪聲隨機過程所包括的各個樣本函數(shù)分別采 樣得到的各組樣本值所映射的各個字符串作為程序代碼對象所使用的通信協(xié)議的消息的 信息單元的測試值,即采用隨機的方式來獲取程序代碼對象所使用的通信協(xié)議的消息的信 息單元的測試值,能夠避免出現(xiàn)等效測試值,從而減少測試案例的數(shù)目和測試空間,相應地 減少測試時間和測試成本。此外,采用正則表達式能夠生成使用隨機的方式不能獲取的程 序代碼對象所使用的通信協(xié)議的消息的信息單元的邊界條件測試值。因此,在本實施例中, 通過采用隨機的方式和正則表達式的方式來獲取程序代碼對象所使用的通信協(xié)議的消息 的信息單元的測試值,能夠避免出現(xiàn)等效測試值,減少測試空間,同時能夠保證測試空間的 完備性。其它變形本領域技術人員應當理解,雖然在上面的各個實施例中,對高斯白噪聲隨機過程 所包括的所有樣本函數(shù)分別進行采樣來獲取多組樣本值,然而,本發(fā)明并不局限于此。在本 發(fā)明的其它一些實施例中,也可以只對高斯白噪聲隨機過程所包括的所有樣本函數(shù)中的部 分樣本函數(shù)分別進行采樣來獲取多組樣本值。本領域技術人員應當理解,雖然在上面的各個實施例中,生成的是高斯白噪聲隨 機過程,然而,本發(fā)明并不局限于此。在本發(fā)明的其它一些實施例中,也可以生成其它類型 的隨機過程,只要該生成的隨機過程所包括的各個樣本函數(shù)相互獨立即可。本領域技術人員應當理解,雖然在上面的第二實施例中,用于把基本字符集分成 多個子集的步驟S200發(fā)生在所有其它步驟之前,然而,本發(fā)明并不局限于此。在本發(fā)明的 其它一些實施例中,用于把基本字符集分成多個子集的步驟可以發(fā)生在步驟S260之前的 任何一個時刻。本領域技術人員應當理解,本發(fā)明的基本字符集既可以是ASCII基本表,也可以 是其它類型的基本字符集。本領域技術人員應當理解,雖然上面的各個實施例所公開的方法所針對的目標對 象是程序代碼對象所使用的通信協(xié)議的消息的信息單元,然而,本發(fā)明并不局限于此。事實 上,上面的各個實施例所公開的方法所針對的目標對象也可以是程序代碼對象的輸入。本領域技術人員應當理解,本發(fā)明各個實施例所公開的各個步驟,可以利用軟件、 硬件或者軟硬件的方式來實現(xiàn)。本領域技術人員應當理解,本發(fā)明的各個實施例可以在沒有偏離發(fā)明實質(zhì)的情況 下做出各種變形和修改,并且這些變形和修改都應當位于本發(fā)明的保護范圍之內(nèi)。因此,本 發(fā)明的保護范圍由所附的權利要求書來定義。
權利要求
一種用于生成目標對象的測試值的方法,包括步驟生成一個隨機過程;對所述生成的隨機過程的預定數(shù)目的樣本函數(shù)分別進行采樣,得到多組采樣值,其中,對所述預定數(shù)目的樣本函數(shù)中的每一個樣本函數(shù)進行采樣得到的多個采樣值形成所述多組采樣值的其中一組采樣值;圓整所述多組采樣值中的各個采樣值,以便所述多組采樣值中的各個采樣值都是整數(shù);以及根據(jù)基本字符集中的各個基本字符的標識碼,將所述圓整后的多組采樣值映射為多個字符串,作為所述目標對象的測試值。
2.如權利要求1所述的方法,其中,還包括步驟利用從由所述基本字符集中的各個普通基本字符組成的子集中選取的代表字符和由 所述基本字符集中的各個特殊基本字符組成的子集,使用用于生成所述目標對象的邊界值 條件的正則表達式來生成字符串,作為所述目標對象的測試值。
3.如權利要求1所述的方法,其中,所述隨機過程是高斯白噪聲隨機過程。
4.如權利要求1所述的方法,其中,所述預定數(shù)目的樣本函數(shù)是所述生成的隨機過程 的所有樣本函數(shù)或部分樣本函數(shù)。
5.如權利要求1所述的方法,其中,所述基本字符集合是ASCII基本表。
6.如權利要求1所述的方法,其中,所述目標對象是程序代碼對象的輸入或者程序代 碼對象所使用的通信協(xié)議的消息的信息單元。
7.一種用于生成目標對象的測試值的裝置,包括生成模塊,用于生成一個隨機過程;采樣模塊,用于對所述生成的隨機過程的預定數(shù)目的樣本函數(shù)分別進行多次采樣,得 到多組采樣值,其中,對所述預定數(shù)目的樣本函數(shù)中的每一個樣本函數(shù)進行多次采樣得到 的多個采樣值形成所述多組采樣值的其中一組采樣值;圓整模塊,用于圓整所述多組采樣值中的各個采樣值,以便所述多組采樣值中的各個 采樣值都是整數(shù);以及映射模塊,用于根據(jù)基本字符集中的各個基本字符的標識碼,將所述圓整后的多組采 樣值映射為多個字符串,作為所述目標對象的測試值。
8.如權利要求7所述的裝置,其中,還包括產(chǎn)生模塊,用于利用從由所述基本字符集中的各個普通基本字符組成的子集中選取的 代表字符和由所述基本字符集中的各個特殊基本字符組成的子集,使用用于生成所述目標 對象的邊界值條件的正則表達式來生成字符串,作為所述目標對象的測試值。
9.如權利要求7所述的裝置,其中,所述隨機過程是高斯白噪聲隨機過程。
10.如權利要求7所述的裝置,其中,所述預定數(shù)目的樣本函數(shù)是所述生成的隨機過程 的所有樣本函數(shù)或部分樣本函數(shù)。
11.如權利要求7所述的裝置,其中,所述基本字符集合是ASCII基本表。
12.如權利要求7所述的裝置,其中,所述目標對象是程序代碼對象的輸入或者程序代 碼對象所使用的通信協(xié)議的消息的信息單元。
13.一種機器可讀介質(zhì),其上存儲有程序指令,當所述程序指令被執(zhí)行時,使機器執(zhí)行權利要求1-6中任意一個權利要求所記載的步驟。
全文摘要
本發(fā)明涉及一種用于生成目標對象的測試值的方法和裝置,其中,該方法包括步驟生成一個隨機過程;對所述生成的隨機過程的預定數(shù)目的樣本函數(shù)分別進行采樣,得到多組采樣值,其中,對所述預定數(shù)目的樣本函數(shù)中的每一個樣本函數(shù)進行采樣得到的多個采樣值形成所述多組采樣值的其中一組采樣值;圓整所述多組采樣值中的各個采樣值,以便所述多組采樣值中的各個采樣值都是整數(shù);以及,根據(jù)基本字符集中的各個基本字符的標識碼,將所述圓整后的多組采樣值映射為多個字符串,作為所述目標對象的測試值。利用該方法和裝置,可以在生成目標對象的測試值時不出現(xiàn)等效測試值。
文檔編號G06F11/36GK101989224SQ20091009010
公開日2011年3月23日 申請日期2009年7月31日 優(yōu)先權日2009年7月31日
發(fā)明者郭代飛, 隋愛芬 申請人:西門子(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
肇源县| 略阳县| 贵定县| 石嘴山市| 新竹县| 文山县| 称多县| 天柱县| 德保县| 多伦县| 遂平县| 德昌县| 尚义县| 温泉县| 广宗县| 会宁县| 顺义区| 施秉县| 祁门县| 七台河市| 商河县| 高雄市| 南川市| 吉安市| 谷城县| 怀安县| 鄂州市| 霍山县| 鄢陵县| 长垣县| 鄄城县| 汝州市| 宜兰市| 杭锦后旗| 襄樊市| 拉孜县| 哈巴河县| 威海市| 巴彦县| 朝阳区| 金沙县|