[發明專利]一種檢測軟件異常輸入處理正確性的方法有效
| 申請號: | 201210017980.7 | 申請日: | 2012-01-19 |
| 公開(公告)號: | CN102681932A | 公開(公告)日: | 2012-09-19 |
| 發明(設計)人: | 于秀山;于長鉞;杜旭濤;楊豹;黃忠見;遲芳;吳玲 | 申請(專利權)人: | 于秀山 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京康盛知識產權代理有限公司 11331 | 代理人: | 張良 |
| 地址: | 100036 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 檢測 軟件 異常 輸入 處理 正確性 方法 | ||
技術領域
本發明涉及軟件測試領域,尤其是指通過分析源程序代碼,檢查軟件對各種異常輸入是否進行了正確處理的方法。
背景技術
軟件輸入是軟件的“門戶”,是軟件的驅動源,軟件輸入包括正常輸入和異常輸入,正常輸入處理不當將直接影響軟件功能,異常輸入處理不當將影響軟件容錯性,導致軟件出現各種錯誤。據統計,由于軟件異常輸入處理不當而造成的軟件錯誤占軟件錯誤的70%以上,由此可見,檢查軟件是否對各種異常輸入進行了處理是發現軟件錯誤的一個重要方法。
基于源程序代碼分析的靜態測試是軟件測試的一個重要研究領域,通過靜態測試,可以有效發現程序在編程規則、內存管理、指針使用、程序結構、控制流、數據流等方面存在的缺陷。靜態測試是國內外開展較早的研究領域之一,目前已取得適用性成果,有代表性的有英國LARA公司的TestBed工具、Klocwork公司的Klocwork工具。這些工具根據不同的程序設計語言標準,通過對源程序代碼分析,找出程序在符號使用、變量初始化、函數返回值、內存管理、緩沖區使用、指針使用等方面存在的缺陷。這些工具功能強大,使用方便,在軟件靜態測試中發揮了很好作用,但在軟件異常輸入檢測方面欠缺,不能夠對軟件輸入是否進行了異常處理進行分析。
在軟件異常輸入檢測方面,目前主要是通過人工輸入各種異常值,動態執行軟件的方式檢查軟件異常輸入處理情況。這種方法一方面需要測試人員掌握軟件輸入的邊界值和類型等信息才能設計出合理的測試用例;另一方面測試工作量大,對于數據庫類等輸入字段眾多的軟件,需要測試人員逐一驗證各個字段異常處理的正確性。
綜上所述,在軟件異常輸入處理檢測方面,無論是靜態測試還是動態測試都存在不足,需要研究一種全新的方法解決這個問題。
發明內容
本發明所解決的技術問題是提供一種檢測軟件異常輸入處理正確性的方法,能夠對軟件異常輸入處理情況進行檢測。
技術方案如下:
一種檢測軟件異常輸入處理正確性的方法,包括:
通過詞法和語法分析,得到被測軟件源代碼的抽象語法樹和符號表;
遍歷所述抽象語法樹和符號表,得到所述被測軟件源代碼中的輸入控件,所述輸入控件為允許用戶輸入數據的控件;
對所述輸入控件進行辨識,找出未判斷異常輸入的輸入控件。
進一步:采用類編譯原理技術,對所述被測軟件源代碼進行詞法和語法分析,通過分析得到所述抽象語法樹和符號表。
進一步:在獲取所述輸入控件過程中,以深度優先方法遍歷所述抽象語法樹,如果某個葉子節點是變量,通過查找符號表得到該變量類型;如果所述變量類型是輸入控件類型,則說明該變量所描述的是一個輸入控件。
進一步:所述輸入控件變量采用變量聲明和變量定義的定義方式,在對所述輸入控件進行辨識過程中,通過在所述抽象語法樹進行搜索,同時結合符號表中的內容,辨識出所述被測軟件源代碼中所有的輸入控件及其變量。
進一步:對所述輸入控件進行辨識,查找輸入控件列表中的每個輸入控件,然后以深度優先方法遍歷抽象語法樹,檢查其中是否有對輸入進行異常判斷的語句,如果沒有,則所述輸入控件就屬于未判斷異常的輸入控件。
進一步:所述輸入控件包括文本輸入控件、列表控件、可輸入列表控件、表格控件、樹形控件、表格樹控件、彈出式列表控件或者樣式文本控件。
技術效果包括:軟件異常輸入是導致軟件出現錯誤的主要原因之一,本發明的最大優點在于如何檢測是否對異常輸入進行了判斷。通過識別輸入控件,根據不同輸入控件異常判斷語言特征,找出未進行異常判斷的控件,據此,開發人員可以方便地修改軟件;測試人員可以設計出針對該控件的測試用例,從而大大提高測試的有效性和充分性。
附圖說明
圖1是本發明中檢測軟件異常輸入處理正確性的方法的工作流程圖;
圖2是本發明中詞法和語法分析的工作流程圖;
圖3是本發明中代碼片段的部分抽象語法樹示意圖;
圖4是本發明中輸入控件辨識工作流程圖;
圖5是本發明中未判斷異常輸入的輸入控件識別的工作流程圖;
圖6是本發明中示例代碼段對應的軟件界面示意圖;
圖7是本發明中經過詞法和語法分析后示例代碼段的部分抽象語法樹結構示意圖。
具體實施方式
本發明針對已有方法存在的問題,采用源代碼分析技術,主要解決如何找出程序中沒有對各種異常輸入進行處理的輸入控件問題,從而提高測試充分性,減少測試工作量。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于于秀山,未經于秀山許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210017980.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:聯合收割機
- 下一篇:含取代苯烷基的嘌呤類化合物和制備方法及應用





