一种测试覆盖率的检测方法及装置与流程

文档序号:14571833发布日期:2018-06-01 22:40阅读:179来源:国知局
一种测试覆盖率的检测方法及装置与流程

本发明涉及软件测试领域,尤其涉及一种测试覆盖率的检测方法及装置。



背景技术:

随着互联网的高速发展,出现了越来越多的应用程序。应用程序是指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。例如:微信、QQ等,都属于应用程序。

随着用户和市场的快速变化,应用的规模随之增大,应用程序的更新迅速也不断加快,然而,如何保证应用程序新版本的稳定性显得越发重要,因此,在应用程序发布前需要对应用程序进行各种性能的测试。

由于需要对复杂多变的需求和数以千计的文件进行测试,经常会出现漏检的情况。但是,现有技术中,缺乏覆盖率的检测手段,也就是在对应用程序测试时,无法得知本次测试的过程中,有哪些测试点进行了测试,哪些测试点被遗漏了,这样就导致了测试结果的可信度不高。



技术实现要素:

有鉴于此,本发明实施例公开了一种测试覆盖率的检测方法及装置,解决了现有技术中缺乏覆盖率的检测手段,即使存在漏检也无法知晓的问题。

本发明实施例提供的一种测试覆盖率的检测方法,包括:

检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;

若存在所述覆盖率检测文件,监听所述应用程序中类的测试情况;

当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。

可选的,还包括:

若不存在所述覆盖率检测文件,创建覆盖率检测文件;

读取所述应用程序中预设的类;

将读取到的所述预设的类的名称存入所述覆盖率检测文件。

可选的,还包括:

获取所述应用程序的预设的类的创建方法和释放方法;

将所述预设的类的创建方法替换预设的操作系统的监听组件的创建方法;所述预设的操作系统为运行所述应用程序的操作系统;

将所述预设的类的释放方法替换预设的操作系统的监听组件的释放方法。

可选的,所述监听所述应用程序中类的测试情况,包括:监听是否调用了所述预设的类中任何一个类的创建方法;

若调用了所述类的创建方法,监听是否调用了所述类的释放方法;

其中,若调用了所述类的释放方法,表示所述类已被测试。

可选的,还包括:

当接收到测试结束的指令后,读取所述测试覆盖率检测文件中剩余的类的名称;

根据所述测试覆盖率检测文件中剩余的类的名称,生成检测文档,以确定所述预设类中未被检测到的类。

本发明实施例提供的一种测试覆盖率的检测装置,包括:

检测单元,用于检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;

监听单元,用于若存在所述覆盖率检测文件,监听所述应用程序中类的测试情况;

删除单元,用于当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。

可选的,还包括:

创建单元,用于若不存在所述覆盖率检测文件,创建覆盖率检测文件;

第一读取单元,用于取所述应用程序中预设的类;

保存单元,用于将读取到的所述预设的类的名称存入所述覆盖率检测文件。

可选的,还包括:

获取单元,用于获取所述应用程序的预设的类的创建方法和释放方法;

第一替换单元,用于将所述预设的类的创建方法替换预设的操作系统的监听组件的创建方法;所述预设的操作系统为运行所述应用程序的操作系统;

第二替换单元,用于将所述预设的类的释放方法替换预设的操作系统的监听组件的释放方法。

可选的,所述监听单元,包括:

第一监听子单元,用于监听是否调用了所述预设的类中任何一个类的创建方法;

第二监听子单元,用于若调用了所述类的创建方法,监听是否调用了所述类的释放方法;

其中,若调用了所述类的释放方法,表示所述类已被测试。

可选的,还包括:

第二读取单元,用于当接收到测试结束的指令后,读取所述测试覆盖率检测文件中剩余的类的名称;

生成单元,用于根据所述测试覆盖率检测文件中剩余的类的名称,生成检测文档,以确定所述预设类中未被检测到的类。

本发明实施例公开的一种测试覆盖率的检测方法及装置,包括:检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;若存在所述覆盖率检测文件,循环执行以下步骤,直到测试结束;监听所述应用程序中类的测试情况;当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。因此,在测试结束后,覆盖率检测文件中剩余的类的名称为本次测试未测试到的类,技术人员可以通过查看检测覆盖率文件确定仍需要进行测试的类,大大降低了漏检的发生。

除此之外,无需增加测试人员的工作量,可以有效的辅助测试人员对应用程序进行检测,提高了应用程序的稳定性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本发明实施例提供了一种测试覆盖率的检测方法的流程示意图;

图2示出了本发明实施例提供了一种测试覆盖率的检测的方法的交互示意图;

图3示出了本发明实施例提供了一种测试覆盖率的检测装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参考图1,示出了本发明实施例提供的一种测试覆盖率检测方法的流程示意图,在本实施例中,该方法包括:

S101:检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;

本实施例中,在对应用程序进行测试时,若是首次执行测试覆盖率的检测,需要在应用程序的存储空间中创建覆盖率检测文件。但是,若是之前已经对覆盖率文件执行了测试,然而,由于某些原因关闭了应用程序或者中断了测试,当再次开启应用程序进行测试时,检测应用程序的存储空间中已存在覆盖率检测文件,则无需再次创建覆盖率检测文件。

其中,覆盖率检测文件中包含应用程序的预设的类,预设的类可以是该应用程序的所有的类,或者是该应用程序中需要测试的类。

其中,若是应用程序的存储空间中不存在覆盖率检测文件,本实施例,还包括:

若不存在所述覆盖率检测文件,创建覆盖率检测文件;

读取所述应用程序中预设的类;

将读取到的所述预设的类的名称存入所述覆盖率检测文件。

需要说明的是,一个应用程序由多个功能组成,一个功能由多个类组成,对应用程序进行测试时,需要对组成功能的各个类进行测试,因此,检测测试的覆盖率,相当于检测哪些类被测试过,哪些类没有被测试过。

本实施例中,在进行测试覆盖率的检测时,除了将应用程序中包含的所有的类均存入覆盖率检测文件,还可以只将本次检测所需的类存入所述覆盖率检测文件,但是在该种情况下,需要提前知道需要测试的类。

技术人员在对应用程序进行测试时,不同的测试需求,需要测试的应用程序的功能也不同。在测试时,若是对全部的功能进行测试,此时每个功能对应的每个类为应用程序进行测试所需的类;若是对部分功能进行测试,此时进行测试的功能包括的类,为应用程序进行测试所需的类。

本实施例中,覆盖率检测文件可以为多种形式,例如可以是数据库的形式、任意格式的文件形式等任意的形式。

S102:若包括所述覆盖率检测文件,监听所述应用程序中类的测试情况;

需要说明的是,应用程序中,在监听应用程序中类的测试情况时,具体的可以是,监听是否发生了类的创建事件,具体的:针对于每个类,均包括一个创建方法,若是监听到执行了该创建方法,表示发生了该类的创建事件,同时也表示该类被测试过了。本实施例中,针对于运行应用程序的操作系统,例如:安卓系统、IOS系统等,这些系统通常都包含监听功能,执行记录或者监听的功能,本实施例中通过将应用程序的类的创建方法和释放方法替换掉操作系统中的类的创建方法和释放方法,以使该操作系统的监听组件可以监听对创建方法和释放方法的调用,进而监听是否测试了某一个类,具体的,创建方法和释放方法的替换过程包括:

获取所述应用程序的预设的类的创建方法和释放方法;

将所述预设的类的创建方法替换预设的操作系统的监听组件的创建方法;所述预设的操作系统为运行所述应用程序的操作系统;

将所述预设的类的释放方法替换预设的操作系统的监听组件的释放方法。

举例说明:基类(NSObject)是IOS开发语言Objective-C类继承体系的根类。这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject可以从其中继承这些通用方法,也可以通过复写修改这些通用方法的实现,并让对象具备Objective-C对象的基本能力,这些方法包括:创建方法和释放方法。在本实施例中,可以将IOS操作系统中的类的创建方法和释放方法,替换成应用程序的预设的类的创建方法和释放方法。

监听过程包括:

监听是否调用了所述预设的类中任何一个类的创建方法;

若调用了所述类的创建方法,监听是否调用了所述类的释放方法;

其中,若调用了所述类的释放方法,表示所述类已被测试。

本实施例中,应用程序的每个功能对应一个类,每个类包含创建方法和释放方法,调用该创建方法表示使用该功能,调用该释放方法表示结束该功能,在对应用程序测试时,对一个功能进行测试,相当对该功能的实现情况进行测试,也就是说,当调用了该类的创建方法和释放方法后,表示测试了该功能,也即测试了该类。

S103:当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除;

本实施例中,由针对于S101的介绍可知,当创建了覆盖率检测文件后,会读取应用程序所有的类,并将读取到的类的名称写入到该覆盖率检测文件中。

本实施例中,当监听到类的创建事件,即监听到该类被测试过了,将该类的名称在覆盖率检测文件中删除。

S104:循环执行S102~S103的步骤,直到测试结束;

当测试结束后,可以确定出未被测试到的类,具体的,还包括:

当接收到测试结束的指令后,读取所述测试覆盖率检测文件中剩余的类的名称;

根据所述测试覆盖率检测文件中剩余的类的名称,生成检测文档,以确定所述预设类中未被检测到的类。

本实施例中,触发测试结束的方式可以包括多种:例如,可以是技术人员根据需求触发测试结束信号,或者当测试程序执行到结束条件时,结束测试。

本实施例中,当测试结束后,覆盖率检测文件中剩余的类为未测试过的类,技术人员可以通过查看测试覆盖率文件中剩余的类的名称,确定出仍需要进行检测的类,并制定相应的测试用例,对仍需要检测的类进行检测。

为了通过根据检测覆盖率文件中剩余的文件生成文档,更直观的向测试人员展示检测结果。

本实施例中,在对应用程序进行测试时,检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;若存在所述覆盖率检测文件,循环执行以下步骤,直到测试结束;监听所述应用程序中类的测试情况;当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。因此,在测试结束后,覆盖率检测文件中剩余的类的名称为本次测试未测试到的类,技术人员可以通过查看检测覆盖率文件确定仍需要进行测试的类,大大降低了漏检的发生。

参考图2,示出了本发明实施例提供的一种测试覆盖率检测的方法的交互示意图,在本实施例中,该方法包括:

S201:启动应用程序;

S202:调用检测模块;本实施例中,检测模块用于执行以下的检测覆盖率的检测过程:

S203:检测应用程序的存储空间中是否存在覆盖率检测文件;

S204:若存在执行S206,若不存在执行S205;

S205:创建覆盖率检测文件,读取所述应用程序的预设的类,并将读取到的预设的类存入到所述覆盖率检测文件中;

S206:监听所述应用程序中类的测试情况;

S207:当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除;

S208:循环执行S205~S207,直到测试结束。

S209:读取覆盖率检测文件中剩余的类,生成检测文档。

S209:若是关闭应用程序,再次开启后重新执行S203~S207的步骤。

通过本实施例,在测试结束后,覆盖率检测文件中剩余的类的名称为本次测试未测试到的类,技术人员可以通过查看检测覆盖率文件确定仍需要进行测试的功能,大大降低了漏检的发生。除此之外,无需增加测试人员的工作量,可以有效的辅助测试人员对应用程序进行检测,提高了应用程序的稳定性。

参考图3示出了本发明实施例提供的一种测试覆盖率检测装置的结构示意图,在本实施例中,该装置包括:

检测单元301,用于检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;

监听单元302,用于若存在所述覆盖率检测文件,监听所述应用程序中类的测试情况;

删除单元303,用于当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。

可选的,还包括:

创建单元,用于若不存在所述覆盖率检测文件,创建覆盖率检测文件;

第一读取单元,用于取所述应用程序中预设的类;

保存单元,用于将读取到的所述预设的类的名称存入所述覆盖率检测文件。

可选的,还包括:

获取单元,用于获取所述应用程序的预设的类的创建方法和释放方法;

第一替换单元,用于将所述预设的类的创建方法替换预设的操作系统的监听组件的创建方法;所述预设的操作系统为运行所述应用程序的操作系统;

第二替换单元,用于将所述预设的类的释放方法替换预设的操作系统的监听组件的释放方法。

可选的,所述监听单元,包括:

第一监听子单元,用于监听是否调用了所述预设的类中任何一个类的创建方法;

第二监听子单元,用于若调用了所述类的创建方法,监听是否调用了所述类的释放方法;

其中,若调用了所述类的释放方法,表示所述类已被测试。

可选的,还包括:

第二读取单元,用于当接收到测试结束的指令后,读取所述测试覆盖率检测文件中剩余的类的名称;

生成单元,用于根据所述测试覆盖率检测文件中剩余的类的名称,生成检测文档,以确定所述预设类中未被检测到的类。

本发明实施例公开的一种测试覆盖率的检测方法及装置,包括:检测应用程序的存储空间中是否存在覆盖率检测文件;所述覆盖率检测文件中包含所述应用程序中预设的类;若存在所述覆盖率检测文件,循环执行以下步骤,直到测试结束;监听所述应用程序中类的测试情况;当监听到任何一个类被测试后,将监听到的已被测试的类从所述覆盖率检测文件中删除。因此,在测试结束后,覆盖率检测文件中剩余的类的名称为本次测试未测试到的类,技术人员可以通过查看检测覆盖率文件确定仍需要进行测试的类,大大降低了漏检的发生。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1