1.一種測(cè)試用例生成方法,其特征在于,用于生成針對(duì)Modbus協(xié)議的測(cè)試用例,所述方法包括:
在預(yù)存的若干個(gè)功能碼中選取一個(gè)作為目標(biāo)功能碼;其中,所述若干個(gè)功能碼,為Modbus協(xié)議規(guī)定的執(zhí)行不同功能操作的數(shù)據(jù)包所對(duì)應(yīng)的若干個(gè)功能碼;
根據(jù)Modbus協(xié)議規(guī)定,獲取與所述目標(biāo)功能碼對(duì)應(yīng)的數(shù)據(jù)包中各個(gè)字段的定義;
選取功能碼字段以及各個(gè)字段中用于控制測(cè)試用例通信功能的字段作為不可變字段,將其余字段作為可變字段;將所述不可變字段設(shè)置為預(yù)設(shè)值,以使所述測(cè)試用例支持基于Modbus協(xié)議進(jìn)行通信;對(duì)所述可變字段中的至少一個(gè)字段進(jìn)行隨機(jī)變異,以生成與所述至少一個(gè)字段的定義不符或數(shù)據(jù)設(shè)置不符的測(cè)試用例。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述可變字段中的至少一個(gè)字段進(jìn)行隨機(jī)變異,以生成與所述至少一個(gè)字段的定義不符或數(shù)據(jù)設(shè)置不符的測(cè)試用例的步驟,包括:
對(duì)所有可變字段的數(shù)據(jù)進(jìn)行隨機(jī)變異,以生成與所述可變字段數(shù)據(jù)的定義不符的測(cè)試用例。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述可變字段中的至少一個(gè)字段進(jìn)行隨機(jī)變異,以生成與所述至少一個(gè)字段的定義不符或數(shù)據(jù)設(shè)置不符的測(cè)試用例的步驟,包括:
將所述可變字段中的一部分字段的數(shù)據(jù)逐一地或組合地設(shè)置為預(yù)設(shè)值,所述預(yù)設(shè)值包括所述字段定義的取值范圍內(nèi)的最大值、最小值或中間值;
對(duì)所述可變字段中的另一部分字段的數(shù)據(jù)進(jìn)行隨機(jī)取值變異,以生成與所述另一部分字段數(shù)據(jù)的定義不符的測(cè)試用例。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述可變字段中的至少一個(gè)字段進(jìn)行隨機(jī)變異,以生成與所述至少一個(gè)字段的定義不符或數(shù)據(jù)設(shè)置不符的測(cè)試用例的步驟,包括:
將所述可變字段中用于表示單元標(biāo)識(shí)符字段、功能碼字段以及數(shù)據(jù)域長(zhǎng)度的長(zhǎng)度字段設(shè)置為預(yù)設(shè)值,對(duì)所述單元標(biāo)識(shí)符字段、功能碼字段以及數(shù)據(jù)域中的任一項(xiàng)或其組合進(jìn)行變異而加長(zhǎng)或者壓縮實(shí)際長(zhǎng)度,以生成實(shí)際長(zhǎng)度與所述長(zhǎng)度字段的預(yù)設(shè)值不匹配的測(cè)試用例。
5.根據(jù)權(quán)利要求1-4任一所述的方法,其特征在于,所述隨機(jī)變異包括數(shù)據(jù)元素刪除變異,數(shù)據(jù)元素重復(fù)變異,有效值變異,或在各字段定義的數(shù)值范圍內(nèi)的數(shù)值邊界變異。
6.一種測(cè)試用例生成裝置,其特征在于,用于生成針對(duì)Modbus協(xié)議的測(cè)試用例,所述裝置包括:
功能碼選擇單元,用于在預(yù)存的若干個(gè)功能碼中選取一個(gè)作為目標(biāo)功能碼;其中,所述若干個(gè)功能碼,為Modbus協(xié)議規(guī)定的執(zhí)行不同功能操作的數(shù)據(jù)包所對(duì)應(yīng)的若干個(gè)功能碼;
獲取單元,用于根據(jù)Modbus協(xié)議規(guī)定,獲取與所述目標(biāo)功能碼對(duì)應(yīng)的數(shù)據(jù)包中各個(gè)字段的定義;
字段選擇變異單元,用于選取功能碼字段以及各個(gè)字段中用于控制測(cè)試用例通信功能的字段作為不可變字段,將其余字段作為可變字段;將所述不可變字段設(shè)置為預(yù)設(shè)值,以使所述測(cè)試用例支持基于Modbus協(xié)議進(jìn)行通信;對(duì)所述可變字段中的至少一個(gè)字段進(jìn)行隨機(jī)變異,以生成與所述至少一個(gè)字段的定義不符或數(shù)據(jù)設(shè)置不符的測(cè)試用例。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,
所述字段選擇變異單元,還用于對(duì)所有可變字段的數(shù)據(jù)進(jìn)行隨機(jī)變異,以生成與所述可變字段數(shù)據(jù)的定義不符的測(cè)試用例。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述字段選擇變異單元,還用于:
將所述可變字段中的一部分字段的數(shù)據(jù)逐一地或組合地設(shè)置為預(yù)設(shè)值,所述預(yù)設(shè)值包括所述字段定義的取值范圍內(nèi)的最大值、最小值或中間值;
對(duì)所述可變字段中的另一部分字段的數(shù)據(jù)進(jìn)行隨機(jī)取值變異,以生成與所述另一部分字段數(shù)據(jù)的定義不符的測(cè)試用例。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述字段選擇變異單元,還用于:
將所述可變字段中用于表示單元標(biāo)識(shí)符字段、功能碼字段以及數(shù)據(jù)域長(zhǎng)度的長(zhǎng)度字段設(shè)置為預(yù)設(shè)值,對(duì)所述單元標(biāo)識(shí)符字段、功能碼字段以及數(shù)據(jù)域中的任一項(xiàng)或其組合進(jìn)行變異而加長(zhǎng)或者壓縮實(shí)際長(zhǎng)度,以生成實(shí)際長(zhǎng)度與所述長(zhǎng)度字段的預(yù)設(shè)值不匹配的測(cè)試用例。
10.根據(jù)權(quán)利要求6-9任一所述的裝置,其特征在于,所述隨機(jī)變異包括數(shù)據(jù)元素刪除變異,數(shù)據(jù)元素重復(fù)變異,有效值變異,或在各字段定義的數(shù)值范圍內(nèi)的數(shù)值邊界變異。