[發明專利]針對API接口的健壯性測試用例自動生成方法和裝置在審
| 申請號: | 201310215398.6 | 申請日: | 2013-05-31 |
| 公開(公告)號: | CN103268285A | 公開(公告)日: | 2013-08-28 |
| 發明(設計)人: | 陳菊花;楊詠臻;丁世遠 | 申請(專利權)人: | 百度在線網絡技術(北京)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京清亦華知識產權代理事務所(普通合伙) 11201 | 代理人: | 宋合成 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 針對 api 接口 健壯性 測試 自動 生成 方法 裝置 | ||
技術領域
本發明涉及軟件測試技術領域,特別涉及一種針對API接口的健壯性測試用例自動生成方法和裝置。
背景技術
軟件測試利用測試工具,按照測試方案和流程對軟件產品進行功能和性能測試。軟件測試使用人工或者自動手段運行或測試某個系統的過程,檢驗系統是否滿足規定的需求。
現在的測試代碼一般都是通過測試人員手工編寫。雖然已經有單元測試框架類似gtest、btest,但是并沒有自動產生真正的測試代碼。例如gtest測試框架可以在不同平臺上,如Linux、Mac?OS?X、Windows、Cygwin、Windows?CE和Symbian上編寫C++測試用例,但是只是提出了框架,還需要人工撰寫測試代碼。
完成測試過程需要準備測試數據、測試代碼和測試環境。測試數據需要對業務有一定了解,并且需要經驗累積;測試代碼一般是人通過分析已有代碼手工進行撰寫;測試環境是在人對業務了解和代碼了解的基礎上搭建的。測試人員完成上述過程本質上是通過了解業務、累積經驗、熟悉代碼來完成的。通用性的健壯測試忽略業務之間的差異,通過經驗累積和代碼了解來進行健壯性測試。由于屏蔽了業務的差異,因此通用性的健壯測試有更多的規律,而現有技術嚴重依賴人工,浪費了人力,并且耗時長,效率低。
發明內容
本發明旨在至少解決現有技術中存在的技術問題之一。
為此,本發明的一個目的在于提出一種針對API接口的健壯性測試用例自動生成方法,使用計算機代替人力,自動化的生成測試用例,節省了人力成本,提高了效率。
本發明的第二個目的在于提出一種針對API接口的健壯性測試用例自動生成裝置。
為達到上述目的,本發明第一方面的實施例提出了一種針對API接口的健壯性測試用例自動生成方法,包括以下步驟:獲取待測API接口的源代碼;對所述源代碼進行靜態分析以獲得靜態掃描結果,并從靜態掃描結果中獲取所述API接口中函數的函數名、參數名、參數類型和返回值;建立基本數據集合,其中,所述基本數據集合包括多個基本數據類型和每個基本數據類型對應的相關數據;根據所述API接口中函數的參數類型和所述基本數據集合生成所述API接口的測試數據;根據所述測試數據生成所述API接口的測試用例。
根據本發明實施例的針對API接口的健壯性測試用例自動生成方法通過分析代碼,自動生成函數對應的測試數據,并組合成健壯性測試用例。在單元測試中可以加快單元測試的撰寫速度,也支持無人參與的健壯性測試。通過計算機自動化的方法生成健壯性測試用例,代替了人工,避免了人力學習和熟悉業務以及編碼,提高了測試代碼生成的效率,節省了人力成本,提高了效率。
在本發明的一個實施例中,所述根據API接口中函數的參數類型和所述基本數據集合生成所述API接口的測試數據進一步包括:
如果所述API接口中函數的參數類型為基本類型,則查詢所述基本數據集合直接生成基本類型對應的數據;如果所述API接口中函數的參數類型是組合類型,則分別獲得所述組合類型中的多個基本類型,并查詢所述基本數據集合直接獲取所述多個基本類型對應的多個數據,并對所述多個數據進行組合以生成所述組合類型對應的數據。
在本發明的一個實施例中,所述API接口的測試用例包括數據賦值代碼和函數調用代碼。
在本發明的一個實施例中,所述函數調用代碼根據所述函數名和參數名按照函數的調用格式組裝獲得。
在本發明的一個實施例中,所述數據賦值代碼通過所述函數的參數類型和所述測試數據獲得。
本發明第二方面的實施例提出了一種針對API接口的健壯性測試用例自動生成裝置,包括源代碼獲取模塊、靜態分析模塊、基本數據集合建立模塊、測試數據生成模塊和測試用例生成模塊。
源代碼獲取模塊用于獲取待測API接口的源代碼;靜態分析模塊用于對所述源代碼進行靜態分析以獲得靜態掃描結果,并從靜態掃描結果中獲取所述API接口中函數的函數名、參數名、參數類型和返回值;基本數據集合建立模塊用于建立基本數據集合,其中,所述基本數據集合包括多個基本數據類型和每個基本數據類型對應的相關數據;用于根據所述API接口中函數的參數類型和所述基本數據集合生成所述API接口的測試數據;用于根據所述測試數據生成所述API接口的測試用例。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于百度在線網絡技術(北京)有限公司,未經百度在線網絡技術(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310215398.6/2.html,轉載請聲明來源鉆瓜專利網。





