CN101706751A - 软件业务功能覆盖率的统计方法及系统 - Google Patents
软件业务功能覆盖率的统计方法及系统 Download PDFInfo
- Publication number
- CN101706751A CN101706751A CN200910225976A CN200910225976A CN101706751A CN 101706751 A CN101706751 A CN 101706751A CN 200910225976 A CN200910225976 A CN 200910225976A CN 200910225976 A CN200910225976 A CN 200910225976A CN 101706751 A CN101706751 A CN 101706751A
- Authority
- CN
- China
- Prior art keywords
- software
- business function
- coverage
- point
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种软件业务功能覆盖率的统计方法及系统。上述方法包括:对软件进行业务功能覆盖点的扫描,获取软件的所有业务功能覆盖点所组成的逻辑关系信息;采用预定的测试用例对软件进行测试,并实时统计遍历的业务功能覆盖点信息;根据业务功能覆盖点信息与逻辑关系信息,统计出软件业务功能覆盖率。根据本发明提供的技术方案,解决了相关技术中在集成测试和系统测试中,确认测试执行覆盖情况的过程比较繁琐且自动化程度低的问题,进而可以形成自动化统计的过程,大大提高覆盖率统计效率。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种软件业务功能覆盖率的统计方法及系统。
背景技术
软件系统在设计开发过程中离不开测试,根据测试阶段进行划分,测试可以分为单元测试、集成测试和系统测试,覆盖率指标是为表示测试是否充分一个度量维度。其中,在单元测试中,覆盖率指标用的比较多,通常包括:源代码语句覆盖率或分支覆盖率、条件覆盖率,而对于集成测试或系统测试由于代码数量庞大,难以用上述指标来测算,则多指软件需求覆盖率或功能覆盖率。
在实现覆盖率统计的方法上,单元测试各项覆盖率已经有不少测试工具支持,例如,商用工具Cantata、CodeTest等,它通过扫描源程序生成跟踪版本,在软件执行过程中自动统计各项覆盖信息,最终生成覆盖率指标,方便测试者的事后分析。
但是,对于集成测试和系统测试而言,相对应的覆盖率指标则没有现成的自动统计支持,一般是通过手工进行文档设计及手工对应统计,来确认测试执行覆盖情况,上述过程比较繁琐且自动化程度低,跟踪的覆盖率还是以用户需求或软件系统功能为粒度,相对较粗,对代码级的业务功能点覆盖难以深入,难以加强代码功能覆盖分析而完善测试用例设计,保证测试的充分性。
发明内容
针对相关技术中在集成测试和系统测试中,确认测试执行覆盖情况的过程比较繁琐且自动化程度低的问题而提出本发明,为此,本发明的主要目的在于提供一种软件业务功能覆盖率统计方法及装置,以解决上述问题至少之一。
根据本发明的一个方面,提供了一种软件业务功能覆盖率的统计方法。
根据本发明的软件业务功能覆盖率的统计方法包括:对软件进行业务功能覆盖点的扫描,获取软件的所有业务功能覆盖点所组成的逻辑关系信息;采用预定的测试用例对软件进行测试,并实时统计遍历的业务功能覆盖点信息;根据业务功能覆盖点信息与逻辑关系信息,统计出软件业务功能覆盖率。
根据本发明的另一方面,提供了一种软件业务功能覆盖率的统计系统。
根据本发明的软件业务功能覆盖率的统计系统包括:自动扫描单元,用于软件进行业务功能覆盖点的扫描,获取软件的所有业务功能覆盖点所组成的逻辑关系信息;业务功能覆盖点信息收集单元,用于在采用预定的测试用例对软件进行测试时,实时统计遍历的业务功能覆盖点信息;业务功能覆盖率统计单元,用于根据业务功能覆盖点信息与逻辑关系信息,统计出软件业务功能覆盖率。
通过本发明,提供一种统计软件业务功能覆盖率的系统及其对应的工作方法,解决了相关技术中在集成测试和系统测试中,确认测试执行覆盖情况的过程比较繁琐且自动化程度低的问题,进而可以形成自动化统计的过程,大大提高覆盖率统计效率.
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的软件业务功能覆盖率的统计方法的流程图;
图2是根据本发明实施例的软件单元中某业务功能模块的业务功能覆盖点的逻辑关系示意图;
图3是根据本发明实施例的软件系统中基于代码业务功能覆盖率统计的分析示意图;
图4是根据本发明优选实施例的软件业务功能覆盖率的统计方法的流程图;
图5是根据本发明实施例的软件业务功能覆盖率的统计系统的结构框图;
图6是根据本发明优选实施例的软件业务功能覆盖率的统计系统的结构框图;
图7是根据本发明实例的软件业务功能覆盖率的统计系统的结构框图。
具体实施方式
功能概述
本发明提供了一种软件业务功能覆盖率的统计方案,该方案思想如下:
第一步:进行软件代码业务功能覆盖点设计及插入,这是进行业务功能覆盖率统计的前提。正常情况这个步骤在软件代码实现阶段即进行,这样在推出的软件中就已经留好这个统计接口;否则针对被测软件代码再进行这个步骤的工作,需要重新编译软件生成具有统计接口的版本。
第二步:针对具有统计接口的软件进行业务功能覆盖点自动扫描,通过对第一步输出的具有统计接口版本进行一定规则的自动化扫描处理,形成软件业务功能覆盖点的组成逻辑图,可用于后续测试执行中覆盖率统计。
第三步:进行实际的测试及覆盖率统计,本步在第一步和第二步工作的基础上展开,运行具有统计接口的软件,开展一系列测试,随测试用例的不断增加,通过代码业务功能覆盖率的实时统计而进行测试调整。
第四步:根据第三步的最后输出进行基于覆盖率的测试结果分析,包括软件模块代码功能覆盖情况分析及测试用例完备性分析,以得出更加准确的测试结论。
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图,对技术方案的实施作进一步的描述:
方法实施例
根据本发明的实施例,提供了一种软件业务功能覆盖率的统计方法。
图1是根据本发明实施例的软件业务功能覆盖率的统计方法的流程图。其中,该方法应用于软件的集成测试及系统测试,如图1所示,该方法包括以下处理(步骤S101-步骤S105):
步骤S101:对软件进行业务功能覆盖点的扫描,获取软件的所有业务功能覆盖点所组成的逻辑关系信息;
优选地,上述步骤S101中的软件包括以下至少之一:已具有统计接口的待测试软件;重编译不具有统计接口的待测试软件生成的具有统计接口的软件。
其中,所谓生成具有统计接口的软件,即对软件的业务功能覆盖点进行标识,进一步地,将设计好的业务功能覆盖点在代码的相应位置进行设置,以实现代码运行到此位置时该点可以被统计到。
优选地,重编译不具有统计接口的待测试软件生成具有统计接口的软件可以进一步包括以下处理:
(1)对待测试软件的业务功能进行分析;
(2)根据业务功能选取待测试软件的业务功能覆盖点;
(3)对待测试软件的业务功能覆盖点进行标识,生成具有统计接口的软件。
优选地,步骤S101中,对具有统计接口的软件进行业务功能覆盖点的扫描可以进一步包括以下处理:
(1)对具有统计接口的软件的编译文件进行扫描;
(2)对具有统计接口的软件的源代码进行扫描。
优选地,上述逻辑关系信息可以以逻辑图的形式进行呈现,具体可以参见图2。
图2是根据本发明实施例的软件单元中某业务功能模块的业务功能覆盖点的逻辑关系示意图。如图2所示,从业务功能实体的代码入口(入口函数)开始,根据业务功能的主要操作进行业务功能覆盖点设置,图中圆圈即表示覆盖点。图中按照覆盖点级联关系进行了划分,例如,Layer1、Layer2、Layer3、Layer4,其中,Layer2中业务功能覆盖点为Layer1中某些业务功能覆盖点的功能展开,Layer3中业务功能覆盖点为Layer2中某些业务功能覆盖点的功能展开,Layer4中业务功能覆盖点为Layer3中某些业务功能覆盖点的功能展开,形如函数调用关系;在同一个Layer级别中各业务功能覆盖点依照业务处理流程的分支形成不同进入条件,如图以弯钩的图标表示,上下相连的业务功能覆盖点可以有各种条件进入关系,同时也可有不同的分组关系。如图Layer1级别共有五个业务功能覆盖点,其中业务功能覆盖点1为无条件进入,即代码运行至此一定被执行,业务功能覆盖点2、业务功能覆盖点3、业务功能覆盖点4、业务功能覆盖点5为条件进入,即各业务功能覆盖点对应的条件如果满足就会被执行,同时业务功能覆盖点2与业务功能覆盖点3属于同一组,业务功能覆盖点4与业务功能覆盖点5属于另外一组,表示业务功能覆盖点2与业务功能覆盖点3所在处理分支是同一类业务处理,如对应于代码的某个业务操作的if/else分支处理,而业务功能覆盖点4与业务功能覆盖点5所在处理分支则对应另一类业务处理,如对应于代码随后的另一个业务操作的if/else分支处理。
在图2中,以虚圈表示的业务功能覆盖点用来表示测试运行中实际走到的位置,从此视图中可以展示这个业务功能实体代码功能覆盖情况,例如,根据图Layer1级别的业务功能覆盖率为60%(3/5),Layer2级别的业务功能覆率为40%(10/25),Layer3级别的业务功能覆率为26.7%(4/15),Layer4级别的业务功能覆率为0%(0/5),总的代码业务功能覆率为34%(17/50)。
步骤S103:采用预定的测试用例对软件进行测试,并实时统计遍历的业务功能覆盖点信息;
步骤S105:根据业务功能覆盖点信息与逻辑关系信息,统计出软件业务功能覆盖率的信息。
以下结合图2进行步骤S103、步骤S105举例说明,在图2中,以虚图表示的业务功能覆盖点用来表示测试运行中实际走到(遍历)的位置(即业务功能覆盖点信息),从此视图中可以展示这个业务功能实体代码功能覆盖情况(即软件业务功能覆盖率的信息),例如,根据图Layer1级别的业务功能覆盖率为60%(3/5),Layer2级别的业务功能覆率为40%(10/25),Layer3级别的业务功能覆率为26.7%(4/15),Layer4级别的业务功能覆率为0%(0/5),总的代码业务功能覆率为34%(17/50)。
优选地,在统计出软件业务功能覆盖率的信息之后,还可以包括以下处理:
(1)判断本次测试是否满足预定测试要求;
其中,上述预定测试要求可以包括以下至少之一:软件业务功能覆盖率大于等于预定覆盖率指标;预定的至少一个业务功能覆盖点被遍历到。
(2)在本次测试不满足预定测试要求时,对测试用例进行补充,直至后续测试满足预定测试要求。
在具体实施过程中,基于步骤S105中描述的覆盖率统计结果,可以进行基于覆盖率测试结果的分析,包括:软件模块代码功能覆盖情况分析及测试用例完备性分析,以得出更加准确的测试结论。以下结合图3进行描述。
图3是根据本发明实施例的软件系统中基于代码业务功能覆盖率统计的分析示意图。如图3所示,一个软件系统可以分为若干软件单元,如图为单元1、单元2、单元3,各软件单元又分为若干业务功能实体(业务功能模块),如图为业务功能实体1-1、业务功能实体1-2、业务功能实体2-1、业务功能实体2-2、业务功能实体2-3、业务功能实体3-1、业务功能实体3-2,图中表示出软件系统各模块及业务功能实体间的相互交互关系;在测试完成后,各业务功能实体的业务功能覆盖率得以统计,如图3所示,各业务功能实体业务功能覆盖点视图中虚圈表示已经覆盖的业务功能覆盖点,将这些视图整合在软件系统视图中,可以从总体上对整个软件系统的测试覆盖进行分析,如图业务功能实体2-3完全没有覆盖到,说明缺少相关测试用例来驱动,进而有针对性的分析软件功能增加相应用例,完善测试用例集合。
图4是根据本发明优选实施例的软件业务功能覆盖率的统计方法的流程图。如图4所示,该方法包括以下处理(步骤S401-步骤S405):
步骤S401:业务功能覆盖点设计及插入,此步骤对应于前述系统中软件代码业务功能覆盖点插入模块,是在软件代码中对一系列反映代码业务功能覆盖点进行定位与标记的过程,又可分为以下三个步骤。
(1)软件代码业务功能分析
在软件系统进行代码实现时,对所要实现的内容就已经分好了软件模块及其各自待实现的详细业务功能,在软件层次上可以将软件系统看成是由若干软件模块组成,模块之间有明确的外部交互接口,各模块协同工作共同完成整个软件功能;每个软件模块内部分又可按待实现的业务功能分为若干业务功能实体,这些业务功能实体在运行中相对独立又相互关联,之间有明确的内部交互接口,用于协同完成本模块的各项业务功能,一般情况下这种业务功能实体以进程或线程的方式出现,有明确的代码入口,再通过一系列函数的串联完成本实体的功能,是软件系统在代码实现上真正的载体.本步骤所做的工作就是以业务功能实体为基本对象,对实际代码进行业务功能分析,将软件代码所实现的业务操作按顺序对应出来,相当于从业务的角度对代码进行的解释.
(2)反映业务功能覆盖点选择
在代码业务功能分析的基础上,将反映代码业务处理的各种操作进行一定程度的归并整理,把这些归并后的关键操作位置做为业务功能覆盖点选择出来。首先是对应于代码的不同处理分支进行整理以反映不同业务处理流程;然后在同一处理分支流程中进行主要操作确认保留(即本流程分支所实现业务功能主要步骤),对于同主要操作相串行的次要操作进行去除,其业务处理描述可以归并入对应的主要操作,一个主要操作位置即对应设置一个业务功能覆盖点,这样就形成此分支的一个覆盖点集合;然后将这些不同分支覆盖点集合进行适当分组划分,属于同一组的不同分支覆盖点表示对同一类业务操作的不同处理,对应于代码对某类业务处理的不同分支,如if/else分支;最后对所选择出来的各分支各覆盖点进行上下级的关联,类似于函数间调用关系,也对应于业务处理的分层展开;详细说明请参见附图2的描述。
(3)在代码中实现业务功能覆盖点插入
将所设计好的业务功能覆盖点在代码相应位置进行设置,以实现代码运行至此位置时点位可以被统计到。所有这些业务功能覆盖点整合在一起就可以表示软件代码的业务功能情况,当某些覆盖点被实际统计到时,就可以计算出对应的业务功能覆盖率。
步骤S403:业务功能覆盖点自动扫描,本步骤对应于前述系统中软件代码业务功能覆盖点自动扫描模块,用于自动生成业务功能覆盖点逻辑图,又可分为以下三个步骤。
(1)基于编译文件的信息扫描
针对加入业务功能覆盖点的被测软件,首先从其编译文件入手进行信息扫描,提取代码中从业务功能实体入口开始的各业务功能覆盖点的分布级联关系,输出构建业务功能覆盖点逻辑图的第一阶段信息。
(2)基于源代码的信息扫描
针对加入业务功能覆盖点的被测软件,还需要从其源代码入手进行更多信息扫描,提取描述业务功能覆盖点功能说明及反映业务功能覆盖点分组分支关系说明,输出构建业务功能覆盖点逻辑图的第二阶段信息。
(3)业务功能覆盖点逻辑图生成
综合步骤S403中的上述步骤(1)、(2)生成的信息,整合生成完整的以软件代码中业务功能实体为基本对象的业务功能覆盖点逻辑图。
步骤S405:测试及覆盖率统计,本步骤对应于前述系统中业务功能覆盖点嵌入收集模块、业务功能覆盖统计执行模块、业务功能覆盖率统计模块,是针对业务功能覆盖点插入后的软件进行的软件测试过程,对软件实际运行的业务功能覆盖率进行统计。具体地,步骤S405可以包括以下四个步骤:
(1)设计测试用例
本步骤首先根据测试规程进行测试用例的设计,可按照测试需求的覆盖情况来初步判定用例设计的完备性;
同时本步骤也包括对上述用例设计中遗漏的测试内容进行补充设计,其承接于步骤S405中的步骤(4),是基于业务功能覆盖率情况来补充用例设计.
(2)执行已定义测试用例
执行步骤S403中的中设计好的测试用例,可以是手工用例也可以是自动化用例,以实现业务功能覆盖率统计的驱动。
(3)业务功能覆盖率实时统计
在执行测试用例过程中,采用本方法步骤S401实现的业务功能覆盖点的软件可以同步统计代码中实际走到的业务功能覆盖点信息,这些业务功能覆盖点信息可以被实时处理,结合步骤S403输出的业务功能覆盖点逻辑图,进而转化成软件代码业务功能覆盖率数据。
(4)判断覆盖率是否满足要求
在运行完测试用例后对获得的软件代码业务功能覆盖率进行判断,以事先定义的覆盖率指标或某些必须覆盖的业务功能处理点是否走到来决定测试是否完成,如果未能满足要求则转到步骤S405中的步骤(1)进行新测试用例的补充设计;如果已满足要求就可以进入步骤S407。
步骤S407:基于覆盖率的测试结果分析;
在所有测试用例测试完成后,可以依据所获得的代码业务功能覆盖率数据进行更准确的测试分析。可对整个软件系统中各软件模块的各业务功能实体的业务功能覆盖率进行汇总,以了解在当前测试情况下各模块的业务功能覆盖情况,以及随着新增用例的针对性运行而增加的覆盖率情况,从代码级进行业务功能覆盖分析;进而可用于测试用例完备性分析,明确在满足不同测试覆盖率条件下测试用例集合的状况,从而对用例集合进行优化及进一步补充,或去除冗余的用例,对于软件测试是否可以结束提供了另一个检视的角度。
通过上述实施例,提供了一种软件业务功能覆盖率的统计方法。在集成测试和系统测试中,简化了测试过程,提高了测试自动化程度,从而可以大大提高覆盖率统计效率。
装置实施例
根据本发明的实施例,提供了一种软件业务功能覆盖率的统计装置。
图5是根据本发明实施例的软件业务功能覆盖率的统计系统的结构框图。图6是根据本发明优选实施例的软件业务功能覆盖率的统计系统的结构框图。如图5所示,根据本发明实施例的软件业务功能覆盖率的统计系统包括:自动扫描单元50、业务功能覆盖点信息收集单元52、业务功能覆盖率统计单元54,以下结合图6进行描述。
自动扫描单元50,用于对软件进行业务功能覆盖点的扫描,获取软件的所有业务功能覆盖点所组成的逻辑关系信息;
优选地,如图6所示,上述自动扫描单元还可以包括:编译文件扫描模块500,用于对上述软件的编译文件进行扫描;源代码扫描模块502,用于对上述软件的源代码进行扫描。
业务功能覆盖点信息收集单元52,与自动扫描单元50相连接,用于在采用预定的测试用例对软件进行测试时,实时统计遍历的业务功能覆盖点信息;
业务功能覆盖率统计单元54,与业务功能覆盖点信息收集单元52相连接,用于根据业务功能覆盖点信息与逻辑关系信息,统计出软件业务功能覆盖率。
优选地,如图6所示,上述装置还可以包括:软件代码业务功能覆盖点插入单元56,用于对软件代码进行业务功能覆盖点进行标识,生成具有统计接口的软件。
优选地,如图6所示,上述装置还可以包括:判断单元58,与业务功能覆盖率统计单元相连接,用于判断本次测试是否满足预定测试要求;测试用例补充单元60,与判断单元58相连接,用于在本次测试不满足预定测试要求时,对测试用例进行补充。
优选地,在测试用例补充单元60补充新的测试用例之后,业务功能覆盖点信息收集单元52在利用新的测试用例对软件进行测试时,实时统计遍历的业务功能覆盖点信息。
图7是根据本发明实例的软件业务功能覆盖率的统计系统的结构框图。如图7所示,该系统可以包括两大组成部分:待测试软件系统和业务功能覆盖统计系统。
待测试软件系统由待测试软件对象和业务功能覆盖点嵌入收集单元(相当于图5中的业务功能覆盖点信息收集单元)构成,待测试软件对象即待统计覆盖率的待测试软件,可由若干软件单元组成,业务功能覆盖点嵌入收集单元是为统计业务功能覆盖而嵌入的适配单元,与待测试软件对象运行在一个系统中;业务功能覆盖统计系统由软件代码业务功能覆盖点插入单元、软件代码业务功能覆盖点自动化扫描单元(相当于图5中自动扫描单元)、业务功能覆盖统计执行单元、业务功能覆盖率统计单元(相当于图5中业务功能覆盖率统计单元)所构成,为另一个运行系统;两个系统通过通信接口(例如,SOCKRT接口)而关联,待测试软件系统中业务功能覆盖点嵌入收集单元与业务功能覆盖点统计系统中业务功能覆盖统计执行单元之间有业务交互。
由上述各单元相互结合的系统的工作过程如下:
首先,由软件代码业务功能覆盖点插入单元(相当于图5中软件代码业务功能覆盖点插入单元)完成对被测软件代码业务功能覆盖点的设计插入。如果业务功能覆盖点的设计插入已经在软件代码编码实现阶段进行,软件留有统计接口,本单元工作可以跳过。
如图7所示,如果在软件代码编码实现阶段,没有执行业务功能覆盖点的设计插入,则需要软件代码业务功能覆盖点插入单元对业务功能覆盖点进行标识,输出具有统计接口的版本,这时可做为另两个单元的输入使用。一方面,如图中①信息流向所示成为软件代码业务功能覆盖点自动扫描单元输入,通过此单元对软件编译文件及源代码进行自动扫描而将软件代码业务功能覆盖点进行整合生成一个汇总的业务功能覆盖点逻辑图;另一方面,如图中②信息流向所示提供给被测软件系统具有业务功能覆盖统计接口的被测软件对象,形成实际运行软件;当测试这个软件,被测软件对象中业务功能覆盖点被遍历时的信息会由业务功能覆盖点嵌入收集单元实时收集,如图中③信息流向所示,本单元通过通信接口与业务功能覆盖统计执行单元相接口,把实时收集的业务功能覆盖点信息上报,如图中④信息流向所示;业务功能覆盖统计执行单元对接收到的实际遍历到的业务功能覆盖点信息进行处理,按业务功能覆盖点的分类规则进行整合归并,并将结果转给业务功能覆盖率统计单元,如图中⑤信息流向所示;业务功能覆盖率统计单元在接收到业务功能覆盖统计执行单元传来的业务功能覆盖点整合信息后,如图中⑥信息流向所示会使用软件代码业务功能覆盖点自动扫描单元输出的业务功能覆盖点逻辑图,进行被测软件对象的业务功能覆盖统计,得到测试后实际遍历的软件代码业务功能覆盖率信息。
通过上述实施例,提供了一种软件业务功能覆盖率的统计装置.通过自动扫描单元、业务功能覆盖点信息收集单元、业务功能覆盖率统计单元的相互结合,可以解决相关技术中在集成测试和系统测试中,确认测试执行覆盖情况的过程比较繁琐且自动化程度低的问题,进而可以形成自动化统计的过程,大大提高覆盖率统计效率.
综上所述,通过本发明提供的实施例,提供了一种软件业务功能覆盖率的统计方法及系统,可以克服相关技术中在进行软件集成测试及系统测试时只能以手工进行,且无法深入到代码级业务功能覆盖的缺点,在满足软件系统在集成测试和系统测试下的软件业务功能覆盖率统计的前提下,又能适应其代码规模庞大的特点,并形成自动化统计的过程,大大提高覆盖率统计效率并对测试用例完备性设计有更好的辅助,并且对于软件集成测试及系统测试是否可以结束,提供了另一个检视的角度。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种软件业务功能覆盖率的统计方法,包括:
对软件进行业务功能覆盖点的扫描,获取所述软件的所有业务功能覆盖点所组成的逻辑关系信息;
采用预定的测试用例对所述软件进行测试,并实时统计遍历的业务功能覆盖点信息;
根据所述业务功能覆盖点信息与所述逻辑关系信息,统计出软件业务功能覆盖率。
2.根据权利要求1所述的方法,其特征在于,所述软件包括以下至少之一:
已具有统计接口的待测试软件;
重编译不具有统计接口的待测试软件生成的具有统计接口的软件。
3.根据权利要求2所述的方法,其特征在于,重编译不具有统计接口的待测试软件包括:
对所述待测试软件的业务功能进行分析;
根据所述业务功能选取所述待测试软件的业务功能覆盖点;
对所述待测试软件的业务功能覆盖点进行标识,生成所述具有统计接口的软件。
4.根据权利要求1至3中任一项所述的方法,其特征在于,对所述软件进行业务功能覆盖点的扫描包括:
对所述具有统计接口的软件的编译文件进行扫描;
对所述具有统计接口的软件的源代码进行扫描。
5.根据权利要求1至3中任一项所述的方法,其特征在于,在统计出软件业务功能覆盖率的信息之后,所述方法还包括:
判断本次测试是否满足预定测试要求;
在本次测试不满足所述预定测试要求时,对所述测试用例进行补充,直至后续测试满足预定测试要求。
6.根据权利要求1所述的方法,其特征在于,所述预定测试要求包括以下至少之一:
所述软件业务功能覆盖率大于等于预定覆盖率指标;
预定的至少一个业务功能覆盖点被遍历到。
7.一种软件业务功能覆盖率的统计系统,其特征在于,所述系统包括:
自动扫描单元,用于软件进行业务功能覆盖点的扫描,获取所述软件的所有业务功能覆盖点所组成的逻辑关系信息;
业务功能覆盖点信息收集单元,用于在采用预定的测试用例对所述软件进行测试时,实时统计遍历的业务功能覆盖点信息;
业务功能覆盖率统计单元,用于根据所述业务功能覆盖点信息与所述逻辑关系信息,统计出软件业务功能覆盖率。
8.根据权利要求7所述的系统,其特征在于,所述装置还包括:
软件代码业务功能覆盖点插入单元,用于对软件代码进行业务功能覆盖点进行标识,生成所述具有统计接口的所述软件。
9.根据权利要求7或8所述的系统,其特征在于,所述自动扫描单元包括:
编译文件扫描模块,用于对所述软件的编译文件进行扫描;
源代码扫描模块,用于对所述软件的源代码进行扫描。
10.根据权利要求7或8所述的系统,其特征在于,所述系统还包括:
判断单元,用于判断本次测试是否满足预定测试要求;
测试用例补充单元,用于在本次测试不满足所述预定测试要求时,对所述测试用例进行补充。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910225976A CN101706751A (zh) | 2009-11-23 | 2009-11-23 | 软件业务功能覆盖率的统计方法及系统 |
PCT/CN2010/076267 WO2011060655A1 (zh) | 2009-11-23 | 2010-08-23 | 软件业务功能覆盖率的统计方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910225976A CN101706751A (zh) | 2009-11-23 | 2009-11-23 | 软件业务功能覆盖率的统计方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101706751A true CN101706751A (zh) | 2010-05-12 |
Family
ID=42376977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910225976A Pending CN101706751A (zh) | 2009-11-23 | 2009-11-23 | 软件业务功能覆盖率的统计方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101706751A (zh) |
WO (1) | WO2011060655A1 (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011060655A1 (zh) * | 2009-11-23 | 2011-05-26 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN102279798A (zh) * | 2011-08-30 | 2011-12-14 | 中国工商银行股份有限公司 | 一种基于点功能驱动的软件测试方法及系统 |
CN103631707A (zh) * | 2012-08-27 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 一种获取代码覆盖率的方法及装置 |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN103838666A (zh) * | 2012-11-27 | 2014-06-04 | 百度在线网络技术(北京)有限公司 | 一种确定代码执行覆盖率的方法和装置 |
WO2014180396A1 (zh) * | 2013-12-06 | 2014-11-13 | 中兴通讯股份有限公司 | 代码覆盖率处理方法及装置 |
CN104881363A (zh) * | 2015-06-24 | 2015-09-02 | 中国航空工业集团公司西安飞机设计研究所 | 一种控制律软件的测试方法 |
CN106446412A (zh) * | 2016-09-26 | 2017-02-22 | 杭州杉石科技有限公司 | 一种航空电子系统基于模型的测试方法 |
CN106681904A (zh) * | 2015-11-11 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 测试件覆盖率及覆盖应用接口的分析方法、装置 |
CN107797923A (zh) * | 2017-10-10 | 2018-03-13 | 平安科技(深圳)有限公司 | 代码覆盖率分析方法及应用服务器 |
CN107844396A (zh) * | 2017-11-01 | 2018-03-27 | 上海华虹集成电路有限责任公司 | 一种功能覆盖率的全遍历方法 |
CN107861876A (zh) * | 2017-11-16 | 2018-03-30 | 平安科技(深圳)有限公司 | 测试方法、装置、计算机设备及可读存储介质 |
CN108415846A (zh) * | 2018-04-19 | 2018-08-17 | 挖财网络技术有限公司 | 一种生成最小自动化测试用例集的方法和装置 |
CN109213681A (zh) * | 2018-08-30 | 2019-01-15 | 北京三快在线科技有限公司 | 测试系统、方法、设备及可读存储介质 |
CN109684226A (zh) * | 2018-12-29 | 2019-04-26 | 携程计算机技术(上海)有限公司 | Java代码覆盖率统计系统 |
CN110580214A (zh) * | 2018-06-07 | 2019-12-17 | 百度在线网络技术(北京)有限公司 | 应用程序测试的评估方法、装置、存储介质和终端设备 |
CN110879722A (zh) * | 2019-11-27 | 2020-03-13 | 京东数字科技控股有限公司 | 生成逻辑示意图的方法及装置、计算机可存储介质 |
CN111813697A (zh) * | 2020-08-26 | 2020-10-23 | 四川新网银行股份有限公司 | 一种基于测试对象调用标记的测试覆盖率统计方法 |
CN113419961A (zh) * | 2021-07-09 | 2021-09-21 | 平安国际智慧城市科技股份有限公司 | 业务测试用例库的建立方法、装置、设备及存储介质 |
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
CN116991751A (zh) * | 2023-09-28 | 2023-11-03 | 英诺达(成都)电子科技有限公司 | 代码测试方法、装置、电子设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810088B (zh) * | 2012-11-09 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 一种业务管道的业务阀门测试方法和装置 |
CN105573908A (zh) * | 2015-09-01 | 2016-05-11 | 北京中电华大电子设计有限责任公司 | 一种功能验证方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349132C (zh) * | 2005-06-21 | 2007-11-14 | 华为技术有限公司 | 一种逻辑测试的功能覆盖率分析方法 |
CN101030163A (zh) * | 2006-03-01 | 2007-09-05 | 李春芳 | 一种判断人机界面测试覆盖率的方法 |
CN101706751A (zh) * | 2009-11-23 | 2010-05-12 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
-
2009
- 2009-11-23 CN CN200910225976A patent/CN101706751A/zh active Pending
-
2010
- 2010-08-23 WO PCT/CN2010/076267 patent/WO2011060655A1/zh active Application Filing
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011060655A1 (zh) * | 2009-11-23 | 2011-05-26 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN102279798B (zh) * | 2011-08-30 | 2014-11-12 | 中国工商银行股份有限公司 | 一种基于点功能驱动的软件测试方法及系统 |
CN102279798A (zh) * | 2011-08-30 | 2011-12-14 | 中国工商银行股份有限公司 | 一种基于点功能驱动的软件测试方法及系统 |
CN103631707A (zh) * | 2012-08-27 | 2014-03-12 | 腾讯科技(深圳)有限公司 | 一种获取代码覆盖率的方法及装置 |
CN103838666B (zh) * | 2012-11-27 | 2017-12-19 | 百度在线网络技术(北京)有限公司 | 一种确定代码执行覆盖率的方法和装置 |
CN103838666A (zh) * | 2012-11-27 | 2014-06-04 | 百度在线网络技术(北京)有限公司 | 一种确定代码执行覆盖率的方法和装置 |
WO2014180396A1 (zh) * | 2013-12-06 | 2014-11-13 | 中兴通讯股份有限公司 | 代码覆盖率处理方法及装置 |
CN104699596A (zh) * | 2013-12-06 | 2015-06-10 | 中兴通讯股份有限公司 | 代码覆盖率处理方法及装置 |
CN103699385A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码持续集成的方法 |
CN104881363B (zh) * | 2015-06-24 | 2017-12-12 | 中国航空工业集团公司西安飞机设计研究所 | 一种控制律软件的测试方法 |
CN104881363A (zh) * | 2015-06-24 | 2015-09-02 | 中国航空工业集团公司西安飞机设计研究所 | 一种控制律软件的测试方法 |
CN106681904A (zh) * | 2015-11-11 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 测试件覆盖率及覆盖应用接口的分析方法、装置 |
CN106681904B (zh) * | 2015-11-11 | 2020-01-31 | 阿里巴巴集团控股有限公司 | 测试件覆盖率及覆盖应用接口的分析方法、装置 |
CN106446412A (zh) * | 2016-09-26 | 2017-02-22 | 杭州杉石科技有限公司 | 一种航空电子系统基于模型的测试方法 |
CN107797923A (zh) * | 2017-10-10 | 2018-03-13 | 平安科技(深圳)有限公司 | 代码覆盖率分析方法及应用服务器 |
WO2019071891A1 (zh) * | 2017-10-10 | 2019-04-18 | 平安科技(深圳)有限公司 | 代码覆盖率分析方法及应用服务器 |
CN107844396A (zh) * | 2017-11-01 | 2018-03-27 | 上海华虹集成电路有限责任公司 | 一种功能覆盖率的全遍历方法 |
WO2019095580A1 (zh) * | 2017-11-16 | 2019-05-23 | 平安科技(深圳)有限公司 | 测试方法、装置、计算机设备及可读存储介质 |
CN107861876A (zh) * | 2017-11-16 | 2018-03-30 | 平安科技(深圳)有限公司 | 测试方法、装置、计算机设备及可读存储介质 |
CN108415846A (zh) * | 2018-04-19 | 2018-08-17 | 挖财网络技术有限公司 | 一种生成最小自动化测试用例集的方法和装置 |
CN108415846B (zh) * | 2018-04-19 | 2021-10-15 | 挖财网络技术有限公司 | 一种生成最小自动化测试用例集的方法和装置 |
CN110580214A (zh) * | 2018-06-07 | 2019-12-17 | 百度在线网络技术(北京)有限公司 | 应用程序测试的评估方法、装置、存储介质和终端设备 |
CN110580214B (zh) * | 2018-06-07 | 2023-05-05 | 百度在线网络技术(北京)有限公司 | 应用程序测试的评估方法、装置、存储介质和终端设备 |
CN109213681A (zh) * | 2018-08-30 | 2019-01-15 | 北京三快在线科技有限公司 | 测试系统、方法、设备及可读存储介质 |
CN109684226A (zh) * | 2018-12-29 | 2019-04-26 | 携程计算机技术(上海)有限公司 | Java代码覆盖率统计系统 |
CN110879722A (zh) * | 2019-11-27 | 2020-03-13 | 京东数字科技控股有限公司 | 生成逻辑示意图的方法及装置、计算机可存储介质 |
CN111813697A (zh) * | 2020-08-26 | 2020-10-23 | 四川新网银行股份有限公司 | 一种基于测试对象调用标记的测试覆盖率统计方法 |
CN111813697B (zh) * | 2020-08-26 | 2021-07-16 | 四川新网银行股份有限公司 | 一种基于测试对象调用标记的测试覆盖率统计方法 |
CN113419961A (zh) * | 2021-07-09 | 2021-09-21 | 平安国际智慧城市科技股份有限公司 | 业务测试用例库的建立方法、装置、设备及存储介质 |
CN114676068A (zh) * | 2022-05-30 | 2022-06-28 | 云账户技术(天津)有限公司 | 代码覆盖率统计方法、系统、网络设备和存储介质 |
CN116991751A (zh) * | 2023-09-28 | 2023-11-03 | 英诺达(成都)电子科技有限公司 | 代码测试方法、装置、电子设备及存储介质 |
CN116991751B (zh) * | 2023-09-28 | 2023-12-22 | 英诺达(成都)电子科技有限公司 | 代码测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011060655A1 (zh) | 2011-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101706751A (zh) | 软件业务功能覆盖率的统计方法及系统 | |
CN102479225B (zh) | 一种分布式数据分析和处理方法及系统 | |
Watahiki et al. | Formal verification of business processes with temporal and resource constraints | |
CN102419728A (zh) | 基于覆盖率量化指标确定软件测试过程充分性的方法 | |
CN102156673A (zh) | 面向测试用例描述的gui自动化测试系统及其测试方法 | |
CN103713933B (zh) | 计算机程序中热点函数、变量的汇聚方法、装置及系统 | |
CN111008020B (zh) | 将逻辑表达式解析为通用查询语句的方法 | |
CN115905031B (zh) | 一种基于精准质量保障系统的测试用例推荐方法 | |
CN108876406A (zh) | 客服行为分析方法、装置、服务器及可读存储介质 | |
CN101883015A (zh) | 一种过滤工程告警的方法和装置 | |
Ritter et al. | Optimization strategies for integration pattern compositions | |
CN110908796B (zh) | 一种Gaia系统中的多作业合并与优化系统及方法 | |
CN112464620A (zh) | 一种财务规则引擎的实现方法及实现系统 | |
CN102521135B (zh) | 线性系统的测试方法和装置 | |
CN105242958A (zh) | 一种虚拟试验系统与hla仿真系统数据交换方法 | |
de Figueiredo et al. | Generating interaction test cases for mobile phone systems from use case specifications | |
CN115099769A (zh) | 一种用于汽车金融订单自动审批的风控审批平台 | |
JPH04276835A (ja) | プログラム単体テストデータ生成方法 | |
CN105159835A (zh) | 一种基于全局超级块支配图的插桩位置获取方法 | |
CN115801599B (zh) | 基于使用剖面的评估模型构建方法 | |
Chen et al. | Incremental HLA-based distributed simulation cloning | |
Braghetto et al. | Performance analysis modeling applied to business processes | |
CN114416574A (zh) | 一种测试数据的生成方法、装置、介质及设备 | |
CN116048584A (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN111078771A (zh) | 一种非侵入式访问的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100512 |