测试例排序方法和设备技术

技术编号:18458629 阅读:23 留言:0更新日期:2018-07-18 12:38
本发明专利技术公开了一种测试例排序方法和设备。该测试例排序方法用于对基于API的APP的多个测试例进行优先级排序,该方法包括:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合;根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度;以及根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序。

Test case sorting method and equipment

The invention discloses a sorting method and device for test cases. The test case sorting method is used to prioritize a plurality of test cases based on the API based APP, which includes: determining the API set called by the test example for each test example of the plurality of test cases; according to the complexity score of each API in the API set, the frequency score of each API in the API set, and the score of the use frequency of each API in the API set, The coupling score of this test case, at least one of the API number score of the test case, calculates the evaluation score of the test case, in which the coupling score of the test example reflects the coupling tightness between the API of the test case call, and the multiple test cases, based on the evaluation score of the multiple test cases, are carried out for the multiple test cases. Prioritization.

【技术实现步骤摘要】
测试例排序方法和设备
本专利技术一般地涉及信息处理
具体而言,本专利技术涉及一种能够对移动应用APP的测试例进行优先级排序的方法和设备。
技术介绍
随着智能设备的普及,移动应用APP获得了极大的发展。然而,由于存在不同的移动平台,例如,安卓、iOS等,所以APP的开发者必须为每个App在每个平台上开发一个版本,这需要耗费很多资源和时间。为此,人们创建了一些跨平台的移动应用开发框架,例如Cordova,来实现只开发一次APP,APP便可在不同移动平台上运行的跨平台的App开发。然而,这些跨平台的移动应用开发框架存在如下问题:为了确保能够在之前版本的框架上运行的App在新版本的框架上仍然能够正常运行,需要进行回归性的测试。传统的测试方法需要将为前一个版本的框架创建的测试例在新版本的框架上全部重新执行一遍,并检查版本升级是否破坏了之前能够正常运行的功能。显然,这样的测试需要非常多的资源和时间,在实践中往往是不可行的。为了解决上述问题,可以对测试例进行优先级排序。传统的基于白盒的测试例优先级排序方法根据源代码的覆盖率,如行覆盖率、分支覆盖率、方法覆盖率等来进行排序。然而,传统的基于白盒的测试例优先级排序方法不能保证移动开发框架提供的API能够正确工作,因此不适用于移动应用开发框架。因此,本专利技术旨在提出一种对基于API的APP的多个测试例进行优先级排序的方法和设备,其能够在保证移动开发框架提供的API能够正确工作的情况下合理地有效地对移动开发框架的测试例进行优先级排序。
技术实现思路
在下文中给出了关于本专利技术的简要概述,以便提供关于本专利技术的某些方面的基本理解。应当理解,这个概述并不是关于本专利技术的穷举性概述。它并不是意图确定本专利技术的关键或重要部分,也不是意图限定本专利技术的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。本专利技术的目的是提出一种能够合理地有效地对移动开发框架的测试例进行优先级排序的方法和设备。为了实现上述目的,根据本专利技术的一个方面,提供了一种用于对基于API的APP的多个测试例进行优先级排序的方法。该方法包括:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合;根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度;以及根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序。根据本专利技术的另一个方面,提供了一种用于对基于API的APP的多个测试例进行优先级排序的设备。该设备包括:集合确定装置,被配置为:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合;得分计算装置,被配置为:根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度;以及优先级排序装置,被配置为:根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序。另外,根据本专利技术的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本专利技术的上述方法。此外,根据本专利技术的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本专利技术的上述方法。附图说明参照下面结合附图对本专利技术的实施例的说明,会更加容易地理解本专利技术的以上和其它目的、特点和优点。附图中的部件只是为了示出本专利技术的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:图1示出了根据本专利技术的实施例的优先级排序方法的流程图;图2示出了示例性的API耦合图;图3示出了根据本专利技术的实施例的优先级排序设备的结构方框图;图4示出了可用于实施根据本专利技术的实施例的方法和设备的计算机的示意性框图。具体实施方式在下文中将结合附图对本专利技术的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本专利技术,在附图中仅仅示出了与根据本专利技术的方案密切相关的装置结构和/或处理步骤,而省略了与本专利技术关系不大的其他细节。另外,还需要指出的是,在本专利技术的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。本专利技术的基本思想是综合考虑API复杂度、API使用频率以及API之间的关系、API的数量来对测试例进行优先级排序。下面将参照图1描述根据本专利技术的实施例的用于对基于API的APP的多个测试例进行优先级排序的方法的流程。图1示出了根据本专利技术的实施例的优先级排序方法的流程图。如图1所示,该优先级排序方法包括如下步骤:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合(步骤S1);根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度(步骤S2);以及根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序(步骤S3)。在步骤S1中,针对所述多个测试例中的每个测试例,确定该测试例调用的API集合。具体地,可以运行该测试例,以确定该测试例所调用的所有API构成的API集合。也可以分析该测试例的源代码和APP的源代码,以定位App的被测试例所触发的代码片段,并得到该代码片段中覆盖的对移动开发框架的API调用,以确定API集合。在步骤S2中,根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分。复杂的API相对于简单的API,更容易引入漏洞(bug)。因此,考量测试例所涉及的API的复杂度得分,来计算测试例的评价得分。具体地,API的复杂度得分体现了该API在所有API中,在参数数目和/或调用所需的源代码量方面的分布,其根据API的参数数目和/或调用API所需的源代码量计算。其中,调用API所需的源代码量包括调用API所需的源代码的行数。假设API具有的参数的个数为np、调用该API需要编写的源代码的行数为nl。API的复杂度得分AC可通过下述公式(1)进行计算。AC=w·normalized(np)+(1-w)·normalized(nl)(1)其中,nor本文档来自技高网...

【技术保护点】
1.一种用于对基于应用程序接口API的应用APP的多个测试例进行优先级排序的方法,包括:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合;根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度;以及根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序。

【技术特征摘要】
1.一种用于对基于应用程序接口API的应用APP的多个测试例进行优先级排序的方法,包括:针对所述多个测试例中的每个测试例,确定该测试例调用的API集合;根据API集合中的每个API的复杂度得分、API集合中的每个API的使用频率得分、该测试例的耦合得分、该测试例的API数量得分中的至少一个,计算该测试例的评价得分,其中,该测试例的耦合得分反映了该测试例调用的API之间的耦合紧密程度;以及根据所述多个测试例的评价得分,对所述多个测试例进行优先级排序。2.如权利要求1所述的方法,其中,确定该测试例调用的API集合包括:运行该测试例或分析该测试例和APP的源代码,以确定API集合。3.如权利要求1所述的方法,其中,API的复杂度得分根据API的参数数目和/或调用API所需的源代码量计算。4.如权利要求3所述的方法,其中,调用API所需的源代码量包括调用API所需的源代码的行数。5.如权利要求3所述的方法,其中,API的复杂度得分体现了该API在所有API中,在参数数目和/或调用所需的源代码量方面的分布。6.如权利要求1所述的方法,其中,API的使用频率得分根据该API在所有APP的源...

【专利技术属性】
技术研发人员:钟朝亮张沈斌黄琦珍皮冰锋孙俊
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本,JP

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

1