[发明专利]一种软件功能图自动获取方法有效
申请号: | 201110207403.X | 申请日: | 2011-07-22 |
公开(公告)号: | CN102243586A | 公开(公告)日: | 2011-11-16 |
发明(设计)人: | 于秀山;于长钺 | 申请(专利权)人: | 于秀山 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京康盛知识产权代理有限公司 11331 | 代理人: | 张良 |
地址: | 100036 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 功能 自动 获取 方法 | ||
技术领域
本发明涉及一种软件功能测试和软件规模度量技术,尤其涉及一种软件功能图自动获取方法。
背景技术
软件功能是软件赖以生存的重要特征,软件功能测试是软件测试的一项重要内容,通过软件功能测试可以有效发现软件中存在的缺陷。软件功能测试的对象是被测软件所具有的功能,只有准确获取软件的功能才能够对软件进行充分测试。目前,国内外在软件功能获取领域主要开展了两方面的研究工作,分别是基于需求的软件功能获取和基于可执行代码的软件功能获取。
1、基于需求的软件功能获取。
基于需求的软件功能获取是业界目前普遍采用的方法。该方法主要是通过对软件需求规格说明等文档分析,建立软件需求模型,该需求模型详细描述了软件所具有的功能以及软件功能之间的相互关系。其实现方式分为人工和自动两种,人工方式主要是由测试人员对软件需求规格说明等文档进行分析,从中获取软件的功能。这种方法存在如下问题。(1)准确性差。理论上讲,软件需求规格说明等文档应该与软件版本保持一致,但在具体项目中,由于各种原因,这两者之间很难保持一致,由此得到的软件功能与实际的软件功能存在较大差异;(2)工作量大。对于非形式化的软件需求规格说明等文档,只能通过人工方式对文档进行分析,工作量大;自动方式主要适用于采用形式化语言开发的场合,如UML(Unified Modeling Language,统一建模语言),该方法通过分析UML图,自动获取软件功能。在这种情况下,由于软件需求是用形式化语言进行描述的,因此,可以通过自动方式获取软件功能。这种方法存在的最大问题是适用面窄,目前,大部分软件都没有采用UML方式开发,因此,其使用范围受到很大限制。
2、基于可执行代码的软件功能获取。
该方法主要是通过对软件可执行代码分析,获取软件功能,有代表性的有美国马里兰大学Atif M.Memon发表的DART:A Framework for Regression Testing“Nightly/daily Builds”of GUI Applications论文。Atif M.Memon采用逆向软件工程技术,通过分析可执行代码,找出软件中所有的事件以及事件之间的关系。这种方法存在的问题是控件识别率低,该方法只能识别标准控件,不能识别非标准控件,因此,还需要通过人工方式对获取的事件以及事件交互图进行补充。
综上所述,软件功能是软件功能测试和软件规模度量的基础,目前,已有的软件功能获取方法都存在这样和那样的问题,限制了其在实际项目中的推广应用。
发明内容
本发明所解决的技术问题是提供一种软件功能图自动获取方法,解决了源程序代码与软件界面GUI控件之间的映射问题。
技术方案如下:
一种软件功能图自动获取方法,包括:
分析源代码的词法和语法,得到抽象语法树和符号表;
得到源代码中所有的人机交互图形化用户界面设计GUI控件,并对所述GUI控件进行辨识;
根据所述GUI控件以及所述GUI控件之间的相互关系,生成完整的GUI软件功能图。
进一步:对所述GUI控件进行辨识过程中,通过对抽象语法树和符号表的分析,辨识出所有的GUI控件。
进一步:对所述GUI控件进行辨识过程中,以深度优先方法遍历抽象语法树,如果叶子节点是变量,这时通过查找符号表得到所述变量的类型;如果所述变量类型是GUI控件类型,则说明所述变量所描述的是一个GUI控件。
进一步:所述GUI控件的类型包括窗口和窗框类、按钮类、菜单类或者文本输入类。
进一步:对所述GUI控件变量的定义方式包括变量声明或者变量定义,所述变量声明用于指出某变量的存在以及其相关的性质,所述变量定义用于指出某变量的存在、相关的性质和进行初始化。
进一步:通过在所述抽象语法树中对变量声明和变量定义两种定义方式进行搜索,同时结合所述符号表中的内容,辨识出源代码中所有的控件及其变量。
进一步:所述GUI控件之间的关系包括父子关系、兄弟关系和调用关系。
1、本发明针对已有方法存在的问题,采用源程序代码分析技术,解决了源程序代码与软件界面GUI控件之间的映射问题。
2、本发明不依赖于软件开发相关文档,只要提交源程序代码就可自动生成软件功能图,彻底解决了基于需求的方法中存在的完全依靠手工生成软件功能图,基于形式化方法中存在的依赖形式化语言、应用范围受限,逆向软件工程方法中存在的控件识别率低等一系列问题,具有适用范围广、准确性高、全自动等特点。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于于秀山,未经于秀山许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110207403.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可调整的硼砂喷嘴底座装置
- 下一篇:模具的斜顶出顶针结构