[发明专利]应用符号分析的软件测试方法有效
申请号: | 201010185904.8 | 申请日: | 2010-05-28 |
公开(公告)号: | CN101840372A | 公开(公告)日: | 2010-09-22 |
发明(设计)人: | 宫云战;肖庆;杨朝红;金大海;黄俊飞;王雅文;赵云山;宋颖 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京汇泽知识产权代理有限公司 11228 | 代理人: | 程殿军 |
地址: | 100088 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 符号 分析 软件 测试 方法 | ||
技术领域
本发明涉及静态软件测试技术,尤其涉及一种应用符号分析的软件测试方法。
背景技术
软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程,在一个可控的软件测试环境中分析或执行程序,其根本目的是以尽可能少的时间和人力发现并改正软件中潜在的各种故障及缺陷,提高软件的质量。
从测试过程是否需要运行被测软件的角度,可将软件测试方法分为两大类:动态测试法和静态测试法。所谓动态测试,就是通过运行软件来检验软件的动态行为和运行结果的正确性。而静态测试的基本特征是在对软件进行分析、检查和测试时不实际运行被测试的程序。动态测试和静态测试各有其优缺点:动态测试的优点是发现的软件错误非常直观,缺点是对测试用例的设计要求高,不同的测试用例集合发现错误的能力差别很大,另外,由于动态测试法需要实际运行被测程序也是一个限制。而动态测试的缺点恰恰是静态测试优点,静态测试不需要实际运行被测程序,不需要设计相关的测试用例,容易自动化,静态测试的缺点是:发现的问题往往不能完全自动确定为真正的错误,需要人工确认,所以静态测试又被称作静态分析。
从可计算性理论的角度来看,静态分析是一个不可判定问题。提高精度是静态测试的核心问题,提高精度通常包括两个方面:减少误报(false positive)和减少漏报(false negative)。由于大量的误报会使人对测试失去信心,而漏报则会造成程序具有较高质量的假象。静态测试过程中,造成静态分析不精确的本质在于缺少程序动态执行信息,因此,怎样更好地近似表示和计算程序动态执行信息是提高精度的关键。
发明内容
有鉴于此,本发明的主要目的在于提供一种应用符号分析的软件测试方法,结合程序中变量关联的程序动态执行信息和计算方法,用以解决程序动态执行信息的表示和处理程序中变量关联关系的技术问题,从而提高静态测试的精度。
为达到上述目的,本发明的技术方案是这样实现的:
一种应用符号分析的软件测试方法,该方法包括:
A、给出一个符号运算系统,包括符号表达式的表示、化简、运算和计算符号表达式的取值区间;
B、给出将程序中各变量间的具体运算映射为符号运算的步骤;
C、给出程序分支语句对符号取值限定区间的计算步骤;
D、给出符号分析在程序控制流图上的计算步骤;
其中,所述步骤A进一步包括:
A1、符号表达式的表示方式为:每一个符号表达式由一个或多个项通过加减运算结合而成,每一个项由一个或多个因子通过乘除运算结合而成,每一个因子由一个或多个原子通过幂运算结合而成,每一个原子对应一个当前取值区间;
A2、符号表达式的化简方式为:首先将每一个因子化为最简,然后将每一个项化为最简,最后将整个表达式化为最简;
A3、符号表达式的运算包括符号表达式之间加、减、乘、除运算;所述符号表达式运算的输入和输出均为化简后的表达式;
A4、根据符号表达式中各符号的当前取值区间,通过区间运算求得符号表达式的取值区间。
所述步骤A2进一步包括:
A21、将符号表达式中的项进行排序;
A22、依次取项,并将当前项化为最简;
A23、判断当前项是否为该表达式中的第一项,如果是,则执行步骤A26,否则执行步骤A24;
A24、判断当前项和上一项是否仅在于系数差别,如果是,则执行步骤A25,否则执行步骤A26;
A25、合并当前项和所述上一项,将两项的系数根据当前项对应的运算符进行加减,剩余部分保持不变;
A26、判断当前项是否为表达式的最后一项,如果是,则结束,否则执行步骤A22。
所述步骤A22进一步包括:
A221、将项中的因子进行排序;
A222、依次取因子,并将当前因子化为最简;
A223、判断当前因子是否为项中的第一个因子,如果是,则执行步骤A226,否则执行步骤A224;
A224、判断当前因子和上一因子是否只在于指数差别,如果是,则执行步骤A225,否则执行步骤A226;
A225、合并当前因子和上一个因子;
A226、判断当前因子是否为项中的最后一个因子,如果是,则结束对该项的化简过程,否则执行步骤A222。
所述步骤A222进一步包括:
A2221、从因子的最外层幂开始依次取当前幂;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010185904.8/2.html,转载请声明来源钻瓜专利网。