一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于软件测试的mock测试方法与流程

2021-10-27 13:39:00 来源:中国专利 TAG:测试 应用于 特别 计算机 程序


1.本发明涉及计算机程序测试领域,特别涉及一种应用于软件测试的mock测试方法。


背景技术:

2.计算机系统的组件通常彼此依赖。在这种情况下,一个组件只能在提供它所依赖的另一个组件时运行。但是,在测试计算机系统时,希望一次测试一个组件。例如,考虑系统组件是在单独开发的常见场景:应该可以在开发过程中单独测试每个组件,因为其他组件尚未可用。或者针对考虑被测试的小组件资源需求较低但依赖于资源消耗较高的组件的情况,小组件的测试也会消耗资源,很快整个测试工作都无法扩展。此外,以前编写的测试通常在修改组件时重新运行,重新运行所测试的组件,导致所依赖的其他组件也必须跟着重新启动,会耗费大量时间。针对考虑组件允许用户编写的“插件”组件的场景,例如允许用户提供的设备驱动程序的操作系统,在这种情况下,当开发和测试设计用使用它们时,用户提供的设备驱动程序可能不可用或出错。


技术实现要素:

3.为了克服现有技术存在的不足,本发明提供了一种应用于软件测试的mock测试方法,所述技术方案如下:
4.本发明提供了一种应用于软件测试的mock测试方法,包括以下步骤:
5.s1、识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;
6.s2、生成能满足接口契约的符号对象,需调用签名或授权输入;
7.s3、通过符号执行来探索对参数化单元测试的调用;
8.s4、修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;
9.s5、对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;
10.s6、创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。
11.进一步地,所述符号执行标识的在给定执行路径之前必须满足的路径约束。
12.进一步地,在测试阶段期间,修改模拟行为的源代码以返回具体值而不是新符号。
13.进一步地,可调用外部资源的来进行模拟行为。
14.进一步地,每次在创建的模拟对象上调用方法,都会将新的符号值返回给调用者作为方法的输出。
15.进一步地,默认的模拟行为会跟踪分发的符号值和时间,所述符号值定义为额外的输入。
16.进一步地,通过符号执行来调用的对象包括模拟对象和接口的输入参数。
17.本发明提供的技术方案带来的有益效果如下:
18.(1)可通过新符号执行来对测试组件分别进行测试;
19.(2)兼容性,拓展性强,适应不同的驱动程序;
20.(3)通过模拟对象的执行,软件测试速度快。
附图说明
21.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是本发明实施例提供的用于生成模拟行为的流程图。
具体实施方式
23.为了使本技术领域的人员更好地理解本发明方案,更清楚地了解本发明的目的、技术方案及其优点,以下结合具体实施例并参照附图对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。除此,本发明的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
24.在本发明的一个实施例中,提供了一种应用于软件测试的mock测试方法,参见图1,包括以下步骤:
25.s1、识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;
26.s2、生成能满足接口契约的符号对象,需调用签名或授权输入;
27.s3、通过符号执行来探索对参数化单元测试的调用;
28.s4、修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;
29.s5、对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;
30.s6、创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。
31.进一步地,所述符号执行标识的在给定执行路径之前必须满足的路径约束。
32.进一步地,在测试阶段期间,修改模拟行为的源代码以返回具体值而不是新符号。
33.进一步地,可调用外部资源的来进行模拟行为。
34.进一步地,每次在创建的模拟对象上调用方法,都会将新的符号值返回给调用者
作为方法的输出。
35.进一步地,默认的模拟行为会跟踪分发的符号值和时间,所述符号值定义为额外的输入。
36.进一步地,通过符号执行来调用的对象包括模拟对象和接口的输入参数。
37.本发明可通过新符号执行来对测试组件分别进行测试;兼容性,拓展性强,适应不同的驱动程序;通过模拟对象的执行,软件测试速度快。
38.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:
1.一种应用于软件测试的mock测试方法,其特征在于,包括以下步骤:s1、识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;s2、生成能满足接口契约的符号对象,需调用签名或授权输入;s3、通过符号执行来探索对参数化单元测试的调用;s4、修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;s5、对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;s6、创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。2.根据权利要求1所述的应用于软件测试的mock测试方法,其特征在于,所述符号执行标识的在给定执行路径之前必须满足的路径约束。3.根据权利要求1所述的应用于软件测试的mock测试方法,其特征在于,在测试阶段期间,修改模拟行为的源代码以返回具体值而不是新符号。4.根据权利要求1所述的应用于软件测试的mock测试方法,其特征在于,可调用外部资源的来进行模拟行为。5.根据权利要求1所述的应用于软件测试的mock测试方法,其特征在于,每次在创建的模拟对象上调用方法,都会将新的符号值返回给调用者作为方法的输出。6.根据权利要求5所述的应用于软件测试的mock测试方法,其特征在于,默认的模拟行为会跟踪分发的符号值和时间,所述符号值定义为额外的输入。7.根据权利要求1所述的应用于软件测试的mock测试方法,其特征在于,通过符号执行来调用的对象包括模拟对象和接口的输入参数。

技术总结
本发明公开了一种应用于软件测试的mock测试方法,包括以下步骤:识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;生成能满足接口契约的符号对象,需调用签名或授权输入;通过符号执行来探索对参数化单元测试的调用;修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。本发明可通过新符号执行来对测试组件分别进行测试;兼容性,拓展性强,适应不同的驱动程序。驱动程序。驱动程序。


技术研发人员:师江帆
受保护的技术使用者:苏州市龙测智能科技有限公司
技术研发日:2020.04.24
技术公布日:2021/10/26
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜