[發(fā)明專利]測試用例自動生成方法和系統(tǒng)有效
| 申請?zhí)枺?/td> | 201110273838.4 | 申請日: | 2011-09-15 |
| 公開(公告)號: | CN102999320A | 公開(公告)日: | 2013-03-27 |
| 發(fā)明(設(shè)計)人: | 易棉生 | 申請(專利權(quán))人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44;G06F11/36 |
| 代理公司: | 北京潤澤恒知識產(chǎn)權(quán)代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 測試 自動 生成 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本申請涉及計算機測試技術(shù)領(lǐng)域,特別是涉及一種測試用例自動生成方法及系統(tǒng)。
背景技術(shù)
計算機產(chǎn)品在投入使用前通常需要進行測試,例如,根據(jù)已知產(chǎn)品的功能設(shè)計規(guī)格對產(chǎn)品進行測試,以驗證產(chǎn)品的每個功能是否符合要求,或者根據(jù)以及產(chǎn)品的內(nèi)部工作過程對產(chǎn)品進行測試,以驗證產(chǎn)品的每個內(nèi)部操作是否符合設(shè)計規(guī)格要求等等。
其中,自動化測試通常根據(jù)測試用例編寫測試代碼來實現(xiàn),測試用例指為特定目標而開發(fā)的一組測試輸入、執(zhí)行條件和預(yù)期結(jié)果。在進行測試時通常是程序員根據(jù)測試用例來編寫測試代碼。因為對于某一計算機產(chǎn)品來說,會有較多的測試用例和測試代碼,人工編寫無疑會增加編寫時間,從而增加測試成本。另外,在測試用例較多的情況下,如果全部人工編寫會增加整個測試時間,而選擇部分則會導(dǎo)致測試用例和代碼的覆蓋率降低,無法保證產(chǎn)品被充分測試。
發(fā)明內(nèi)容
本申請所要解決的技術(shù)問題是提供一種測試用例自動生成方法和系統(tǒng),能夠解決測試用例編寫耗時和覆蓋率低的問題。
為了解決上述問題,本申請公開了一種測試用例自動生成方法,包括以下步驟:
步驟101,獲取預(yù)設(shè)模型的測試參數(shù)的數(shù)據(jù)和參數(shù)組合策略,并根據(jù)參數(shù)組合策略生成多組測試數(shù)據(jù);
步驟102,選取一組測試數(shù)據(jù),依據(jù)預(yù)設(shè)模型確定各測試動作的輸入?yún)?shù)以及期待輸出結(jié)果;
步驟103,基于所確定的各測試動作的輸入?yún)?shù)以及期待輸出結(jié)果,依據(jù)預(yù)設(shè)模型調(diào)用測試動作的順序創(chuàng)建動態(tài)測試路徑,所述動態(tài)測試路徑為有序存放測試動作、校驗動作的數(shù)組容器;
步驟104,根據(jù)設(shè)定計算機語言的語法輸出動態(tài)測試路徑,得到一組測試用例;所述測試用例包括與所設(shè)語法相應(yīng)的語言的測試代碼。
進一步地,通過以下步驟創(chuàng)建動態(tài)測試路徑:
基于預(yù)設(shè)模型,若一測試動作被調(diào)用,記住調(diào)用參數(shù),返回關(guān)聯(lián)該測試動作的動態(tài)結(jié)果,并將測試動作加入到動態(tài)測試路徑;
基于預(yù)設(shè)模型,當一校驗動作被調(diào)用時,若被校驗值的類型為動態(tài)結(jié)果,則將前述步驟獲取的對測試動作的期待輸出結(jié)果賦值給該動態(tài)結(jié)果。
進一步地,
所述動態(tài)測試路徑還包括:有序存放的日志信息;
則,所述創(chuàng)建動態(tài)測試路徑的步驟還包括:
基于預(yù)設(shè)模型,當一日志動作被調(diào)用時,將日志動作及相關(guān)信息加入動態(tài)測試路徑。
進一步地,
針對不同的測試場景,建立相應(yīng)的預(yù)設(shè)模型;
所述預(yù)設(shè)模型包括:
對應(yīng)API或功能接口的測試動作;
由多個測試動作有序組成的測試步驟;所述多個測試步驟組成一個測試場景;
用于校驗兩個對象是否相等的校驗動作;
包括日志類別和內(nèi)容的日志動作。
進一步地,所述預(yù)先定義的數(shù)據(jù)組合策略包括:
按照笛卡爾乘積展開測試參數(shù);或
按照每次只變更一類參數(shù)的原則展開測試參數(shù)。
進一步地,所述動態(tài)結(jié)果的取值操作包括:
取Map或者數(shù)組中的元素;或
取屬性,從最初始的動態(tài)結(jié)果到最后的動態(tài)結(jié)果是一條取值路徑。
為了解決上述問題,本申請還公開了一種測試用例生成系統(tǒng),包括:
測試數(shù)據(jù)生成模塊,用于獲取預(yù)設(shè)模型的測試參數(shù)數(shù)據(jù)與數(shù)據(jù)組合策略,并根據(jù)數(shù)據(jù)組合策略生成多組測試數(shù)據(jù);
期待輸出結(jié)果獲取模塊,用于選取一組測試數(shù)據(jù),獲取該組測試數(shù)據(jù)執(zhí)行測試模型時測試動作的期待輸出結(jié)果;
動態(tài)測試路徑創(chuàng)建模塊,用于基于所確定的各測試動作的輸入?yún)?shù)以及期待輸出結(jié)果,依據(jù)預(yù)設(shè)模型創(chuàng)建動態(tài)測試路徑,所述動態(tài)測試路徑為有序存放測試動作、校驗動作與日志信息的數(shù)組容器;
測試用例生成模塊,根據(jù)設(shè)定的計算機語言的語法輸出動態(tài)測試路徑,得到一組測試用例,直到所有測試數(shù)據(jù)都生成測試用例;所述測試用例包括與所設(shè)語法相應(yīng)的語言的測試代碼。
進一步地,所述動態(tài)測試路徑創(chuàng)建模塊包括:
動態(tài)結(jié)果返回單元,用于基于預(yù)設(shè)模型,若一測試動作被調(diào)用,返回動態(tài)結(jié)果,并將測試動作加入動態(tài)測試路徑;
校驗單元,用于基于預(yù)設(shè)模型,當一校驗動作被調(diào)用時,若被校驗值的類型為動態(tài)結(jié)果,則將前述步驟獲取的期待輸出結(jié)果賦值給被校驗值。
進一步地,所述動態(tài)測試路徑創(chuàng)建模塊包括:
日志信息添加單元,用于基于預(yù)設(shè)模型,當一日志動作被調(diào)用時,將日志動作及相關(guān)信息加入動態(tài)測試路徑。
進一步地,所述測試數(shù)據(jù)生成模塊包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團控股有限公司,未經(jīng)阿里巴巴集團控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110273838.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:耐磨球閥
- 下一篇:一種下裝式無摩擦啟閉卸灰球閥





