本發(fā)明涉及計算機技術(shù)領(lǐng)域,更為具體而言,涉及生成測試用例的方法及系統(tǒng)。
背景技術(shù):
軟件的功能測試是通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只是檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。測試用例是為某個特殊目標(biāo)而編制的一組測試數(shù)據(jù)以及預(yù)期結(jié)果的文檔。
現(xiàn)有的測試用例是由測試人員根據(jù)需求規(guī)則手動設(shè)計,造成了測試用例的產(chǎn)出效率低,設(shè)計人員的工作負(fù)擔(dān)重,設(shè)計的過程和痕跡不易保留,以及,測試用例的設(shè)計和執(zhí)行較難由不同的人員分開操作等問題。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供一種生成測試用例的方法及系統(tǒng)。
一方面,本發(fā)明的實施方式提供了一種生成測試用例的方法,所述方法包括:
接收要素關(guān)系表;
根據(jù)所述要素關(guān)系表生成測試用例。
另一方面,本發(fā)明實施方式提供了一種生成測試用例的系統(tǒng),所述系統(tǒng)包括:
接收模塊,用于接收要素關(guān)系表;
生成模塊,用于根據(jù)所述要素關(guān)系表生成測試用例。
本發(fā)明創(chuàng)造性地提出“要素關(guān)系表”的概念,將需求規(guī)則轉(zhuǎn)化為“要素與關(guān)系”,以標(biāo)準(zhǔn)而清晰的形式將測試用例的設(shè)計要點保留下來,使得測試知識可以較為方便的交接與傳承,也便于分開操作測試用例的設(shè)計與執(zhí)行過程;同時,根據(jù)“要素關(guān)系表”自動生成測試用例,能夠提高測試用例產(chǎn)出的效率,減輕測試人員的負(fù)擔(dān)。
附圖說明
圖1是根據(jù)本發(fā)明實施方式的生成測試用例的方法的流程圖;
圖2是根據(jù)本發(fā)明實施方式的要素關(guān)系表的示意圖;
圖3示出了圖1所示的處理S2的一種實施方式;
圖4是根據(jù)本發(fā)明實施方式的測試數(shù)據(jù)的示意圖;
圖5示出了圖1所示的處理S2的另一種實施方式;
圖6是根據(jù)本發(fā)明實施方式的生成測試用例的系統(tǒng)的結(jié)構(gòu)示意圖;
圖7示出了圖6所示的生成模塊2的一種實施方式;
圖8示出了圖6所示的生成模塊2的另一種實施方式。
具體實施方式
以下結(jié)合附圖和具體實施方式對本發(fā)明的各個方面進(jìn)行詳細(xì)闡述。其中,眾所周知的模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細(xì)說明。并且,所描述的特征、架構(gòu)或功能可在一個或一個以上實施方式中以任何方式組合。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護(hù)范圍。還可以容易理解,本文所述和附圖所示的各實施方式中的模塊或單元或步驟可以按各種不同配置進(jìn)行組合和設(shè)計。
對于未在本說明書中進(jìn)行具體說明的技術(shù)術(shù)語,除非另有特定說明,都應(yīng)以本領(lǐng)域最寬泛的意思進(jìn)行解釋。
【方法實施方式1】
圖1是根據(jù)本發(fā)明實施方式的一種生成測試用例的方法的流程圖。參見圖1,所述方法包括:
S1:接收要素關(guān)系表。
S2:根據(jù)接收的要素關(guān)系表生成測試用例。
在本發(fā)明實施方式中,如圖2所示,所述要素關(guān)系表可以包括,但不限于:測試要素(系統(tǒng)功能的基本單元)以及要素間的關(guān)聯(lián)關(guān)系(描述多個要素之間的關(guān)聯(lián)性)。其中,要素之間的關(guān)聯(lián)關(guān)系可以包括約束關(guān)系以及組合關(guān)系。約束關(guān)系描述一個要素集合(單個要素或者多個要素)的等價類取值對另一個要素集合(單個要素或者多個要素)的等價類取值產(chǎn)生影響的關(guān)系,一般具有確定性,可以通過業(yè)務(wù)規(guī)則顯性描述;組合關(guān)系描述需要測試的不同要素的等價類取值的組合,一般在業(yè)務(wù)規(guī)則中無顯性描述,需通過分析確定。
如圖2所示,要素關(guān)系表中的要素部分包括要素名值對(要素名稱和要素取值),其中,要素的取值包括有效取值和無效取值。要素關(guān)系表中的規(guī)則部分包括要素之間的關(guān)系規(guī)則。例如,圖2中的REL1“C:憑單憑單”為一條約束規(guī)則,表示在交易類別為憑單時,憑單印標(biāo)志只能為憑單;圖2中的REL3“憑單協(xié)議+牌告+浮動”為一條組合規(guī)則,表示在交易類別為憑單時,利率信息可以選取協(xié)議或者牌告或者浮動。
【方法實施方式2】
本實施方式所提供的方法包括圖1中的處理S1至S2,在此不再贅述。如圖3所示,在本實施方式中,處理S2通過下述方式實現(xiàn):
S21:從接收的要素關(guān)系表中解析出要素關(guān)系規(guī)則。
S22:生成用于測試解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)。
S23:基于生成的測試數(shù)據(jù)生成測試用例。
具體而言,處理S23可以通過下述方式實現(xiàn):將生成的測試數(shù)據(jù)進(jìn)行整合和去重處理,添加測試數(shù)據(jù)的編號、測試目的、測試步驟等信息以生成測試用例。
在本發(fā)明的可選實施方式中,解析出的要素關(guān)系規(guī)則可包括:組合關(guān)系規(guī)則。相應(yīng)地,用于測試解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)包括:用于覆蓋解析出的組合關(guān)系規(guī)則所限定的所有要素名值對組的正測試數(shù)據(jù)。
以圖2所示的要素關(guān)系表為例,用于覆蓋解析出的組合關(guān)系規(guī)則(例如,圖2中的REL3)所限定的所有要素名值對組(例如,“憑單協(xié)議”、“憑單牌告”、以及“憑單浮動”)的正測試數(shù)據(jù)例如包括圖4中的TestCase_1、TestCase_2、以及TestCase_3。
在本發(fā)明的另一可選實施方式中,解析出的要素關(guān)系規(guī)則可包括:約束關(guān)系規(guī)則。相應(yīng)地,用于測試解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)包括:用于覆蓋解析出的約束關(guān)系規(guī)則所限定的所有要素名值對組的正測試數(shù)據(jù),和,用于覆蓋解析出的約束關(guān)系規(guī)則的違規(guī)要素名值對組的反測試數(shù)據(jù)。
以圖2所示的要素關(guān)系表為例,用于覆蓋解析出的約束關(guān)系規(guī)則(例如,圖2中的REL1和REL2)所限定的所有要素名值對組(例如,“憑單憑單”以及“不通兌開戶機構(gòu)”)的正測試數(shù)據(jù)例如包括圖4中的TestCase_4和TestCase_6;用于覆蓋解析出的約束關(guān)系規(guī)則的違規(guī)要素名值對組(例如,“憑單憑印”以及“不通兌一級行內(nèi)非開”)的反測試數(shù)據(jù)例如包括圖4中的TestCase_5和TestCase_7。
優(yōu)選地,在解析出的約束關(guān)系規(guī)則為多個的情形下,不同的約束關(guān)系規(guī)則的違規(guī)要素名值對組被覆蓋到不同的反測試數(shù)據(jù)中。例如,REL1的違規(guī)要素名值對組(“憑單憑印”)被覆蓋到TestCase_5中,REL2的違規(guī)要素名值對組(“不通兌一級行內(nèi)非開”)被覆蓋到TestCase_7中。
其中,正測試數(shù)據(jù)是指為了驗證軟件產(chǎn)品可以正常地完成某項功能而不會報錯的測試數(shù)據(jù);反測試數(shù)據(jù)是指為了驗證軟件產(chǎn)品在遇到某種預(yù)先設(shè)定好的不合規(guī)則的場景時,做出錯誤提示并不再進(jìn)行后續(xù)處理的測試數(shù)據(jù);違規(guī)要素名值對組是指不符合相應(yīng)的約束關(guān)系規(guī)則的要素名值對組,例如,圖2中的REL1(C:憑單憑單)的一個違規(guī)要素名值對組為(“憑單憑印”)。
【方法實施方式3】
本實施方式所提供的方法包括圖1中的處理S1至S2,在此不再贅述。如圖5所示,在本實施方式中,處理S2通過下述方式實現(xiàn):
S21’至S22’同S21至S22,在此不再贅述。
S23’:識別接收的要素關(guān)系表中是否存在未被通過執(zhí)行處理S22’而生成的測試數(shù)據(jù)覆蓋的要素名值對,若是,則執(zhí)行S24’,若否,則執(zhí)行S25’。
S24’:生成用于測試未被覆蓋的要素名值對的測試數(shù)據(jù)。
S25’:基于生成的測試數(shù)據(jù)生成測試用例。
以圖2所示的要素關(guān)系表為例,該要素關(guān)系表中存在未被通過執(zhí)行處理S22’而生成的測試數(shù)據(jù)覆蓋的要素名值對,例如,(交易類別:不憑單)、(憑單印標(biāo)志:憑單印)、(憑單印標(biāo)志:憑印)、以及(憑單印標(biāo)志:空)。因此,還需要再生成用于測試未被覆蓋的要素名值對的測試數(shù)據(jù),例如,圖4中的TestCase_8、TestCase_9、TestCase_10、以及TestCase_11。
【系統(tǒng)實施方式1】
圖6是根據(jù)本發(fā)明實施方式的生成測試用例的系統(tǒng)的結(jié)構(gòu)示意圖。參見圖6,所述系統(tǒng)10包括:接收模塊1以及生成模塊2,具體地:
接收模塊1用于接收要素關(guān)系表。
生成模塊2用于根據(jù)接收模塊1接收的要素關(guān)系表生成測試用例。
【系統(tǒng)實施方式2】
本實施方式所提供的系統(tǒng)包括了圖6所示的全部模塊,在此不再贅述。如圖7所示,在本實施方式中,生成模塊2包括:解析單元21、第一測試數(shù)據(jù)生成單元22、測試用例生成單元23,具體地:
解析單元21用于從接收模塊1接收的要素關(guān)系表中解析出要素關(guān)系規(guī)則。
第一測試數(shù)據(jù)生成單元22用于生成用于測試解析單元21解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)。
測試用例生成單元23用于基于第一測試數(shù)據(jù)生成單元22生成的測試數(shù)據(jù)生成測試用例。
在本發(fā)明的一些實施方式中,解析單元21解析出的要素關(guān)系規(guī)則包括:組合關(guān)系規(guī)則,相應(yīng)地,用于測試解析單元21解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)包括:用于覆蓋解析出的組合關(guān)系規(guī)則所限定的所有要素名值對組的正測試數(shù)據(jù)。
在本發(fā)明的一些實施方式中,解析單元21解析出的要素關(guān)系規(guī)則包括:約束關(guān)系規(guī)則,相應(yīng)地,用于測試解析單元21解析出的要素關(guān)系規(guī)則的測試數(shù)據(jù)包括:用于覆蓋解析出的約束關(guān)系規(guī)則所限定的所有要素名值對組的正測試數(shù)據(jù),和用于覆蓋解析出的約束關(guān)系規(guī)則的違規(guī)要素名值對組的反測試數(shù)據(jù)。
優(yōu)選地,在約束關(guān)系規(guī)則為多個的情形下,不同的約束關(guān)系規(guī)則的違規(guī)要素名值對組被覆蓋到不同的反測試數(shù)據(jù)中。
【系統(tǒng)實施方式3】
本實施方式所提供的系統(tǒng)包括了圖6所示的全部模塊,在此不再贅述。如圖8所示,在本實施方式中,生成模塊2包括:解析單元21’、第一測試數(shù)據(jù)生成單元22’、識別單元23’、第二測試數(shù)據(jù)生成單元24’、測試用例生成單元25’,具體地:
解析單元21’和第一測試數(shù)據(jù)生成單元22’分別同解析單元21和第一測試數(shù)據(jù)生成單元22,在此不再贅述。
識別單元23’用于識別接收模塊1接收的要素關(guān)系表中是否存在未被第一測試數(shù)據(jù)生成單元22’生成的測試數(shù)據(jù)覆蓋的要素名值對。
第二測試數(shù)據(jù)生成單元24’用于在識別單元23’識別出存在未被覆蓋的要素名值對的情形下,生成用于測試未被覆蓋的要素名值對的測試數(shù)據(jù)。
測試用例生成單元25’用于基于第一測試數(shù)據(jù)生成單元22’和第二測試數(shù)據(jù)生成單元24’生成的測試數(shù)據(jù)生成測試用例。
本發(fā)明創(chuàng)造性地提出“要素關(guān)系表”的概念,將需求規(guī)則轉(zhuǎn)化為“要素與關(guān)系”,以標(biāo)準(zhǔn)而清晰的形式將測試用例的設(shè)計要點保留下來,使得測試知識可以較為方便的交接與傳承,也便于分開操作測試用例的設(shè)計與執(zhí)行過程;同時,根據(jù)“要素關(guān)系表”自動生成測試用例,能夠提高測試用例產(chǎn)出的效率,減輕測試人員的負(fù)擔(dān)。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案對背景技術(shù)做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,智能手機或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細(xì)節(jié)可進(jìn)行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應(yīng)按最寬泛合理的意思進(jìn)行理解。