[发明专利]一种提高软件测试覆盖率的方法和系统在审
申请号: | 201910147467.1 | 申请日: | 2019-02-27 |
公开(公告)号: | CN109885500A | 公开(公告)日: | 2019-06-14 |
发明(设计)人: | 李男 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 刘雪萍 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 被测软件 软件测试 覆盖率 测试覆盖率 输入位置 测试 源代码 覆盖率测试 测试程序 方法执行 计算测试 扫描识别 反推 扫描 输出 记录 统计 | ||
本发明提供一种提高软件测试覆盖率的方法和系统,包括如下步骤:对测试程序源代码进行扫描识别出故障输入位置;根据扫描出的故障输入位置注入故障并输出变异后的被测软件;对变异后的被测软件进行测试,计算测试覆盖率,若测试覆盖率达到设定的目标覆盖率测试结束用程序变异的方法对被测软件进行故障注入,用强制的方法执行被测分支,并生成变异后的被测软件,并记录故障注入引发的bug数。当软件测试人员测试结束后,统计与注入故障相关的bug数,从而获得测试覆盖率,依此反推完善测试用例,来提高软件测试覆盖率。
技术领域
本发明属于软件测试技术领域,具体涉及一种提高软件测试覆盖率的方法和系统。
背景技术
从事软件项目管理及测试管理时,我们会发现软件质量反复、bug收敛度不如预期等问题,往往是项目结项面临的最大问题。针对这种问题通常采取的做法是bug分类追踪问责或者加班赶工,而bug分类追踪问责:将本次bug分类,新发现、修改导致、未修改等,以追究测试人员及开发人员的责任,期待开发人员修改bug质量及测试人员测试全面性的提高;为了减少新发现bug的数量,往往采用固定模块测试人员的做法。
不可否认,这些做法会取得一定的效果。但是bug分类的统计过程,缺乏科学的、系统的标准,这往往造成开发与测试互相推诿的现象。
总结这些矛盾的根本在于测试覆盖率的问题,如何保证在测试初期就进行全面的覆盖?作为管理人员如何在测试之后统计本次测试对于程序测试的全面性?为此,本发明提出一种计算和提高软件测试覆盖率的方法。
发明内容
针对软件测试过程中bug分类的统计过程,缺乏科学的、系统的标准,这往往造成开发与测试互相推诿的现象,这种现象的根本是测试覆盖率的问题,本发明提供一种提高软件测试覆盖率的方法和系统。
本发明的技术方案是:
第一方面,本发明提供一种提高软件测试覆盖率的方法,包括如下步骤:
对测试程序源代码进行扫描识别出故障输入位置;
根据扫描出的故障输入位置注入故障并输出变异后的被测软件;
对变异后的被测软件进行测试,
计算测试覆盖率,若测试覆盖率达到设定的目标覆盖率测试结束。
通过程序扫描模块获得可以插入故障的被测软件位置序列,通过故障注入模块对被测软件的相应位置进行故障注入,并生成变异后的被测软件,从而获得测试覆盖率,依此反推完善测试用例,来提高软件测试覆盖率。
优选地,对测试程序源代码进行扫描识别出故障输入位置,之前包括:
创建扫描规则,其中,所述的扫描规则定义了对源代码进行扫描时要识别的语法结构,所述的语法结构包括函数的定义语句、赋值语句、控制分支和循环语句。
优选地,对测试程序源代码进行扫描识别出故障输入位置,包括:
根据扫描规则对程序源代码进行扫描,识别出所有的故障输入位置;
输出故障输入位置列表。
优选地,根据扫描出的故障输入位置注入故障并输出变异后的被测软件,包括:
根据扫描出来的故障输入位置列表注入故障,并记录注入故障会引发的bug数M,输出变异后的被测软件。
优选地,计算测试覆盖率,包括:
测试输出变异后的被测软件,统计与注入故障相关的bug数N;
结合注入故障会引发的bug数M和统计的与注入故障相关的bug数N,计算覆盖率。
优选地,该方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910147467.1/2.html,转载请声明来源钻瓜专利网。