[发明专利]一种检测软件异常输入处理正确性的方法有效
| 申请号: | 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.vipzhuanli.com/pat/books/201210017980.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:联合收割机
- 下一篇:含取代苯烷基的嘌呤类化合物和制备方法及应用





