[发明专利]一种软件故障测试系统及方法无效
申请号: | 200710086933.7 | 申请日: | 2007-03-22 |
公开(公告)号: | CN101271421A | 公开(公告)日: | 2008-09-24 |
发明(设计)人: | 宫云战;陈俊亮;张威;肖庆;高传平;万琳;曹文静;王璇;孟祥武;彭泳;于晓燕 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京汇泽知识产权代理有限公司 | 代理人: | 王黎延 |
地址: | 100876*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 故障测试 系统 方法 | ||
技术领域
本发明涉及软件测试技术,尤其涉及一种软件故障测试系统及方法。
背景技术
随着信息技术的发展,软件的规模和复杂性不断扩大,如何保证和提高软件质量成为软件界最为关心的问题之一。由于软件不可靠性的问题已经引起了众多灾难性的问题,这使得软件测试的地位得到了前所未有的提高。根据Boehm的统计,在软件开发总成本中,用在测试上的开销要占30%到50%。对于某些关系人的生命安全的关键软件,其测试费用甚至高达所有其他软件工程阶段费用总和的三到五倍。因此,提高软件测试的有效性和测试效率,降低软件开发成本已成为软件行业迫切需要解决的任务。
软件测试伴随软件本身而诞生。由于早期的计算机性能较差,软件规模也比较小,因此在这一阶段还没有系统意义上的软件测试,更多的是一种调试性测试。20世纪50年代后期到20世纪60年代,高级语言相继诞生并得到了广泛应用,软件的规模和复杂性增加了,但由于受硬件系统的制约,软件相对而言处于系统的次要位置。软件正确性的把握主要依赖于编程人员的水平,因此,测试理论和方法在这一阶段的发展比较缓慢。20世纪70年代以后,随着计算机处理速度的飞速提高,以及内存和外存容量的快速增加,软件在整个系统中的重要性变得越来越高,软件的规模和复杂性急剧增加,软件变得很不可靠,这就是20世纪70年代初期的软件危机。解决软件危机的途径很多,其中软件工程的诞生是其主要内容之一,而软件测试又是软件工程的内容之一。
从20世纪70年代,软件测试得到快速发展:一是产生了众多的新方法,二是传统方法得到发展,三是开发了众多的软件测试工具,软件测试的自动化水平得到大幅度的提高。
传统软件测试方法有个共同的特点,就是:这些方法都是面向整个软件,而不是面向软件中的故障,其测试理论基于软件中所有的故障,而不是基于故障模型。这样的方法虽然能够检测软件中的大部分故障,并且测试自动化程度一般较高,但所存在的问题也是很明显的,例如:
(1)对小概率故障的检测效果不好,而许多小概率故障往往可能导致系统崩溃。
(2)虽然故障会被执行、变异和传播,但一次性运行不发生异常的故障很难用传统软件测试方法检测出来。
(3)难以计算故障的检测效果。目前,只能依据概率统计技术来评估故障的检测效果,难以精确计算。
2000年以来,以美国为代表,对面向故障的软件测试技术进行了广泛的研究,并推出了相应的产品,如美国Reasonning推出的C++IQA目前在美国的市场上广为流行,已成为美国一种主流的软件测试技术。但Reasonning的C++IQA也还存在下列几个问题:
1)检测故障的准确度不高。所预报的故障经分析表明大部分实际不是故障。
2)存在漏报故障。一些本来是故障却计算不出来,这对高可靠性软件测试来说是很危险的。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件故障测试系统与方法,能够对特定故障类型实施测试,从而提高故障测试的准确率、成功率。
为达到上述目的,本发明的技术方案是这样实现的:
一种软件故障测试系统,包括:软件读取模块、控制模块、故障检测模块和确认与统计模块;
控制模块,用于根据用户的输入信息向软件读取模块发出指令;
软件读取模块,用于读取待测软件并根据控制模块发出的指令将读取的软件程序传送至故障检测模块;
故障检测模块,用于对待测软件程序进行故障检测并将检测结果传送至确认与统计模块;
确认与统计模块,用于对由故障检测模块测得的故障进行确认和统计。
该系统进一步包括头文件检查模块,用来检测待测软件的头文件是否完整,所述软件读取模块根据控制模块发出的指令将读取的软件传送至该头文件检查模块,头文件检查模块将检测后的软件程序发送至故障检测模块进行故障检测。
上述方案中,所述故障测试模块进一步包括资源泄露故障检测单元、空句柄引用故障检测单元、数组越界故障检测单元和非法计算故障检测单元。
所述故障检测模块还包括字符串比较故障检测单元。
所述故障检测模块进一步包括变量未初始化故障检测单元、死码故障检测单元。
所述确认与统计模块包括故障数据库,所述确认与统计模块将故障检测模块的检测结果导入该数据库中。
本发明还公开了一种软件故障测试方法,包括以下步骤:
A、读取待测软件,对待测软件进行词法分析、语法分析以及语义分析,用来形成抽象语法树并生成控制流图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710086933.7/2.html,转载请声明来源钻瓜专利网。