[发明专利]测试用例的生成方法及系统、计算机系统有效
申请号: | 201711485313.0 | 申请日: | 2017-12-29 |
公开(公告)号: | CN109992498B | 公开(公告)日: | 2022-12-02 |
发明(设计)人: | 郝旭;李金萍 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 吴梦圆 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试 生成 方法 系统 计算机系统 | ||
本公开提供了一种测试用例的生成方法,该方法包括:获取待测程序中包含的至少一条待测路径;确定所述至少一条待测路径中每条待测路径包含的路径组合因子;针对所述每条待测路径,在确定出其包含的路径组合因子后,获取与其包含的路径组合因子对应的目标测试用例;以及基于所述目标测试用例生成相应待测路径的路径测试用例。本公开提供了一种测试用例的生成系统、一种计算机系统和一种计算机可读存储介质。
技术领域
本公开涉及测试领域,更具体地,涉及一种测试用例的生成方法及系统、计算机系统、计算机可读存储介质。
背景技术
一般地,整个软件开发过程的生命周期可以包括两个阶段:代码实现阶段和程序调试阶段。代码实现阶段结束后,一般需要对软件进行代码层面上的单元测试,测试代码中的每个系统、每个函数的覆盖率是否达标。代码覆盖率(Code Coverage)是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况,对测试工作进行量化的重要指标之一。
根据覆盖内容的不同,代码覆盖率可以细分为:语句覆盖率、分支覆盖率、条件覆盖率以及路径覆盖率。在理想状态下,一个完美的软件,其语句覆盖率、分支覆盖率、条件覆盖率、路径覆盖率均需达到100%,这样的软件才够健壮。路径覆盖率作为其中粒度最精细的一个指标,它反应了程序可能执行的所有路径。然而在现实状态下,路径覆盖率由于受代码复杂度、路径数量、完成时间节点、测试工具等各方面原因的限制,往往很难达到100%,这样也为软件留下了潜在的风险。
目前的单元测试在测试路径覆盖率的过程中所执行的测试用例都是手动编写的,并且在测试过程中需要反复查看路径覆盖率百分比,如果路径覆盖率百分比尚未达到100%,则需要继续编写测试用例,制造未覆盖路径的测试用例,并继续执行新编写的测试用例,不断尝试,如此反复,直到路径覆盖率百分比达到100%为止。
然而,在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:对于代码复杂度较高,路径较多的软件,由于其各种路径的排列组合很多,因此需要手动编写的路径覆盖率测试用例也就很多,工作量很大,不便于提高路径覆盖率。
发明内容
有鉴于此,本公开提供了一种能够自动生成路径测试用例的测试用例的生成方法和测试用例的生成系统。
本公开的一个方面提供了一种测试用例的生成方法,包括:获取待测程序中包含的至少一条待测路径;确定上述至少一条待测路径中每条待测路径包含的路径组合因子;针对上述每条待测路径,在确定出其包含的路径组合因子后,获取与其包含的路径组合因子对应的目标测试用例;以及基于上述目标测试用例生成相应待测路径的路径测试用例。
根据本公开的实施例,获取待测程序中包含的至少一条待测路径包括:获取上述待测程序的程序结构框图;从上述程序结构框图中识别出上述待测程序中包含的所有路径;或者从上述程序结构框图中识别出上述待测程序中包含的所有路径中的至少一条路径;或者基于上述待测程序的代码执行情况,从上述程序结构框图中识别出上述待测程序中包含的所有待执行的路径;或者基于上述待测程序的代码执行情况,从上述程序结构框图中识别出上述待测程序中包含的所有待执行的路径中的至少一条路径。
根据本公开的实施例,获取上述待测程序的程序结构框图包括:获取上述待测程序;获取上述待测程序中包含的关键字;基于获取的上述关键字对上述待测程序进行语法分析,得到以下结构中的一种或多种:顺序结构、分支结构和循环结构;以及基于语法分析得到的结构画出上述待测程序的程序结构框图。
根据本公开的实施例,确定上述至少一条待测路径中每条待测路径包含的路径组合因子包括:确定上述至少一条待测路径中上述每条待测路径包含的语句、分支和条件。
根据本公开的实施例,获取与其包含的路径组合因子对应的目标测试用例包括:确定上述每条待测路径包含的路径组合因子中在上述待测程序的测试过程中已被测试过的路径组合因子;以及获取测试上述已被测试过的路径组合因子时所执行的测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711485313.0/2.html,转载请声明来源钻瓜专利网。