测试用例覆盖度自动识别方法及装置制造方法及图纸

技术编号:8532764 阅读:602 留言:0更新日期:2013-04-04 15:44
本发明专利技术提供了一种测试用例覆盖度自动识别方法及装置,该方法包括:将混合源码分离为系统源码和用户源码;根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率;将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告警信息。本发明专利技术能够提高测试用例的覆盖度、识别准确度,并能够快速定位没有被测试用例覆盖的源码位置。

【技术实现步骤摘要】

本专利技术涉及代码测试技术,尤其涉及一种测试用例覆盖度自动识别方法及装置
技术介绍
测试人员对软件产品进行测试时,往往不能量化判断测试用例设计是否全面,测试是否完全,因此会出现软件上线后才发现漏测的问题,导致需要重新开发,再次测试。如此不断循环,既影响到软件质量、浪费测试资源,又导致软件发布周期延长。图1示出了现有技术中的一种测试覆盖率统计方法,包括在步骤11处,增加编译选项,例如可以对源码编译信息进行配置,该源码编译信息可以包括编译时产生的源码文件名、代码行信息以及程序流信息;在步骤12处,产生源码信息;在步骤13处,执行测试用例;在步骤14处,产生语句覆盖信息,该语句覆盖信息例如可以包括用例运行结束后记录的语句所在文件名、语句行号信息、语句执行次数以及每个基本块执行次数等信息;在步骤15处,产生覆盖率报告。该方法使用简便,在用例运行一遍后,可以给出所有源码的覆盖率情况,可以给出已经覆盖到的源码行和未覆盖到的源码行信息。现有技术中的覆盖率工具通常都采用图1所示的方法。现有技术的覆盖率统计方法具有覆盖率不准确、无法自动识别测试用例设计是否全面等问题。
技术实现思路
本专利技术要解决的技术问题是提供一种测试用例覆盖度自动识别方法及装置,能够提高测试用例的覆盖度、识别准确度,并能够快速定位没有被测试用例覆盖的源码位置。为解决上述技术问题,本专利技术提供了一种测试用例覆盖度自动识别方法,包括将混合源码分离为系统源码和用户源码;根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率;将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告警信息。根据本专利技术的一个实施例,在给出告警信息时,还一并获取所述用户源码中的未覆盖有效源码。根据本专利技术的一个实施例,所述原始的覆盖率信息是通过执行测试用例获得的,在执行每一测试用例后还一并记录该测试用例的用例号,并将该测试用例的用例号以及该测试用例覆盖的用户源码有效代码行的行号信息记录为用例源码映射信息,所述用户源码有效代码指的是所述用户源码中符合预定义的有效代码行规则的代码行。根据本专利技术的一个实施例,获取所述用户源码中的未覆盖有效源码包括将当前的用户源码与旧用户源码进行比对,根据所述有效代码行规则对比对所得的差异代码行进行有效代码行判断,以获取有效差异代码行信息;根据所述有效差异代码行信息查询所述用例源码映射信息,若未查询到与所述有效差异代码行信息对应的用例号,则输出该有效代码行信息。根据本专利技术的一个实施例,所述有效覆盖率包括有效语句覆盖率、有效函数覆盖率和有效分支覆盖率,所述有效覆盖率不小于所述预设的覆盖率阈值指的是所述有效语句覆盖率不小于预设的语句覆盖率阈值、所述有效函数覆盖率不小于预设的函数覆盖率阈值并且所述有效分支覆盖率不小于预设的分值覆盖率阈值。本专利技术还提供了一种测试用例覆盖度自动识别装置,包括源码分离模块,将混合源码分离为系统源码和用户源码;有效覆盖率重新计算模块,根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率;测试告警模块,将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告警信息。根据本专利技术的一个实施例,所述装置还包括未覆盖有效源码获取模块,在所述有效覆盖率小于所述预设的覆盖率阈值时,获取所述用户源码中的未覆盖有效源码。根据本专利技术的一个实施例,所述原始的覆盖率信息是通过执行测试用例获得的,所述装置还包括用例源码映射信息生成模块,在执行每一测试用例后还一并记录该测试用例的用例号,并将该测试用例的用例号以及该测试用例覆盖的用户源码有效代码行的行号信息记录为用例源码映射信息,所述用户源码有效代码指的是所述用户源码中符合预定义的有效代码行规则的代码行。根据本专利技术的一个实施例,所述未覆盖有效源码获取模块包括比对单元,将当前的用户源码与旧用户源码进行比对,根据所述有效代码行规则对比对所得的差异代码行进行有效代码行判断,以获取有效差异代码行信息;查询单元,根据所述有效差异代码行信息查询所述用例源码映射信息,若未查询到与所述有效差异代码行信息对应的用例号,则输出该有效代码行信息。根据本专利技术的一个实施例,所述有效覆盖率包括有效语句覆盖率、有效函数覆盖率和有效分支覆盖率,所述有效覆盖率不小于所述预设的覆盖率阈值指的是所述有效语句覆盖率不小于预设的语句覆盖率阈值、所述有效函数覆盖率不小于预设的函数覆盖率阈值并且所述有效分支覆盖率不小于预设的分值覆盖率阈值。与现有技术相比,本专利技术具有以下优点本专利技术实施例的测试用例覆盖度自动识别方法对混合源码进行分析和分离,根据预定义的用户源码规则进行筛选,得到用户源码,并根据原始的覆盖率信息仅针对分离得到的用户源码进行统计分析,重新计算得到用户源码的有效覆盖率,之后与预设的覆盖率阈值比较,判断测试是否完全。由于本专利技术实施例针对分离得到的用户源码进行统计分析,因而覆盖率更加准确,也有利于降低测试成本。进一步地,在测试不完全时,本专利技术实施例还能够准确展示变更的代码中有哪些有效代码行没有被覆盖,从而能够有的放矢地设计测试用例,有利于提高测试效率。附图说明图1示出了现有技术中的一种测试覆盖率统计方法;图2示出了现有技术中的覆盖率统计方法;图3示出了本专利技术实施例的覆盖度自动识别方法;图4和图5示出了本专利技术实施例对于无测试用例的新增用户源码的处理方法;图6示出了本专利技术实施例的覆盖度自动识别方法的详细流程图;图7示出了本专利技术实施例的覆盖度自动识别装置的结构框图。具体实施方式 下面结合具体实施例和附图对本专利技术作进一步说明,但不应以此限制本专利技术的保护范围。参考图2,现有技术中,覆盖率22是根据混合源码信息21得到的,该混合源码通常包括系统源码和用户源码,其中系统源码是系统中固有的源代码,其内容相对固定;而用户源码是用户自定义的源代码,在开发过程中经常需要变更,系统源码和用户源码二者是相对的概念。而现有技术中,语句覆盖率统计方法是把系统源码与用户源码混合在一起计算的。专利技术人发现,现有技术由于用户定义的源码与系统文件混合,因此在需要只统计用户定义的源码覆盖率时,会导致覆盖率不准确,降低了覆盖率工具的指导意义;另外,采用现有技术的方法无法自动识别测试用例的设计是否全面,而且当增加注释行等无效代码时,无法实现自动化过滤,需要人工判断哪些代码行是无效代码,效率低下。下面对本专利技术实施例的测试用例覆盖度自动识别方法进行详细说明,该方法包括将混合源码分离为系统源码和用户源码;根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率;将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告自目 I R ο参考图3,在32处,对混合源码31进行分离处理,得到系统源码33和用户源码34。分离过程例如可以根据设定的用户源码规则进行,比如测试人员可以输入用户自定义的源码模块的名称,将其与系统源码区分开,或者测试人员也可以输入用户源码的目录名称,将其与系统源码分离。分离之后,后续将仅对用户源码进行操作处理,使得后续的覆盖率统计更加具有本文档来自技高网...

【技术保护点】
一种测试用例覆盖度自动识别方法,其特征在于,包括:将混合源码分离为系统源码和用户源码;根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率;将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告警信息。

【技术特征摘要】
1.一种测试用例覆盖度自动识别方法,其特征在于,包括 将混合源码分离为系统源码和用户源码; 根据原始的覆盖率信息,针对所述用户源码进行统计分析,重新计算所述用户源码的有效覆盖率; 将所述有效覆盖率与预设的覆盖率阈值进行比较,若所述有效覆盖率不小于所述预设的覆盖率阈值,则测试结束,否则给出告警信息。2.根据权利要求2所述的测试用例覆盖度自动识别方法,其特征在于,在给出告警信息时,还一并获取所述用户源码中的未覆盖有效源码。3.根据权利要求2所述的测试用例覆盖度自动识别方法,其特征在于,所述原始的覆盖率信息是通过执行测试用例获得的,在执行每一测试用例后还一并记录该测试用例的用例号,并将该测试用例的用例号以及该测试用例覆盖的用户源码有效代码行的行号信息记录为用例源码映射信息,所述用户源码有效代码指的是所述用户源码中符合预定义的有效代码行规则的代码行。4.根据权利要求3所述的测试用例覆盖度自动识别方法,其特征在于,获取所述用户源码中的未覆盖有效源码包括 将当前的用户源码与旧用户源码进行比对,根据所述有效代码行规则对比对所得的差异代码行进行有效代码行判断,以获取有效差异代码行信息; 根据所述有效差异代码行信息查询所述用例源码映射信息,若未查询到与所述有效差异代码行信息对应的用例号,则输出该有效代码行信息。5.根据权利要求1至4中任一项所述的测试用例覆盖度自动识别方法,其特征在于,所述有效覆盖率包括有效语句覆盖率、有效函数覆盖率和有效分支覆盖率,所述有效覆盖率不小于所述预设的覆盖率阈值指的是所述有效语句覆盖率不小于预设的语句覆盖率阈值、所述有效函数覆盖率不小于预设的函数覆盖率阈值并且所述有效分支覆盖率不小于预设的分值覆盖率阈值。6.一种测试用例覆盖度自动识别装置,其特征在于,包括 源码分离模块,将混合源...

【专利技术属性】
技术研发人员:洪珂陈明师吕士表
申请(专利权)人:网宿科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1