CN113553251A - 一种应用于软件测试的mock测试方法 - Google Patents
一种应用于软件测试的mock测试方法 Download PDFInfo
- Publication number
- CN113553251A CN113553251A CN202010330691.7A CN202010330691A CN113553251A CN 113553251 A CN113553251 A CN 113553251A CN 202010330691 A CN202010330691 A CN 202010330691A CN 113553251 A CN113553251 A CN 113553251A
- Authority
- CN
- China
- Prior art keywords
- testing
- mock
- simulation
- test
- path
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明公开了一种应用于软件测试的mock测试方法,包括以下步骤:识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;生成能满足接口契约的符号对象,需调用签名或授权输入;通过符号执行来探索对参数化单元测试的调用;修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。本发明可通过新符号执行来对测试组件分别进行测试;兼容性,拓展性强,适应不同的驱动程序。
Description
技术领域
本发明涉及计算机程序测试领域,特别涉及一种应用于软件测试的mock测试方法。
背景技术
计算机系统的组件通常彼此依赖。在这种情况下,一个组件只能在提供它所依赖的另一个组件时运行。但是,在测试计算机系统时,希望一次测试一个组件。例如,考虑系统组件是在单独开发的常见场景:应该可以在开发过程中单独测试每个组件,因为其他组件尚未可用。或者针对考虑被测试的小组件资源需求较低但依赖于资源消耗较高的组件的情况,小组件的测试也会消耗资源,很快整个测试工作都无法扩展。此外,以前编写的测试通常在修改组件时重新运行,重新运行所测试的组件,导致所依赖的其他组件也必须跟着重新启动,会耗费大量时间。针对考虑组件允许用户编写的“插件”组件的场景,例如允许用户提供的设备驱动程序的操作系统,在这种情况下,当开发和测试设计用使用它们时,用户提供的设备驱动程序可能不可用或出错。
发明内容
为了克服现有技术存在的不足,本发明提供了一种应用于软件测试的mock测试方法,所述技术方案如下:
本发明提供了一种应用于软件测试的mock测试方法,包括以下步骤:
S1、识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;
S2、生成能满足接口契约的符号对象,需调用签名或授权输入;
S3、通过符号执行来探索对参数化单元测试的调用;
S4、修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;
S5、对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;
S6、创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。
进一步地,所述符号执行标识的在给定执行路径之前必须满足的路径约束。
进一步地,在测试阶段期间,修改模拟行为的源代码以返回具体值而不是新符号。
进一步地,可调用外部资源的来进行模拟行为。
进一步地,每次在创建的模拟对象上调用方法,都会将新的符号值返回给调用者作为方法的输出。
进一步地,默认的模拟行为会跟踪分发的符号值和时间,所述符号值定义为额外的输入。
进一步地,通过符号执行来调用的对象包括模拟对象和接口的输入参数。
本发明提供的技术方案带来的有益效果如下:
(1)可通过新符号执行来对测试组件分别进行测试;
(2)兼容性,拓展性强,适应不同的驱动程序;
(3)通过模拟对象的执行,软件测试速度快。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的用于生成模拟行为的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,更清楚地了解本发明的目的、技术方案及其优点,以下结合具体实施例并参照附图对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。除此,本发明的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明的一个实施例中,提供了一种应用于软件测试的mock测试方法,参见图1,包括以下步骤:
S1、识别满足接口契约的对象,使用定义的调用签名来标识接口或委托,将满足接口契约的对象作为参数输入到参数化单元测试;
S2、生成能满足接口契约的符号对象,需调用签名或授权输入;
S3、通过符号执行来探索对参数化单元测试的调用;
S4、修剪模拟行为的级别,对于表示为友好的模拟,或者对于具有约束为友好的属性的模拟行为进行修剪路径;
S5、对于每个终止路径,获得路径条件的解,所述解为符号值指定的具体值;
S6、创建具体模拟类的源代码,对于剩余的每个路径,用于运行返回具体值以响应模拟调用的测试。
进一步地,所述符号执行标识的在给定执行路径之前必须满足的路径约束。
进一步地,在测试阶段期间,修改模拟行为的源代码以返回具体值而不是新符号。
进一步地,可调用外部资源的来进行模拟行为。
进一步地,每次在创建的模拟对象上调用方法,都会将新的符号值返回给调用者作为方法的输出。
进一步地,默认的模拟行为会跟踪分发的符号值和时间,所述符号值定义为额外的输入。
进一步地,通过符号执行来调用的对象包括模拟对象和接口的输入参数。
本发明可通过新符号执行来对测试组件分别进行测试;兼容性,拓展性强,适应不同的驱动程序;通过模拟对象的执行,软件测试速度快。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
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测试方法,其特征在于,通过符号执行来调用的对象包括模拟对象和接口的输入参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010330691.7A CN113553251A (zh) | 2020-04-24 | 2020-04-24 | 一种应用于软件测试的mock测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010330691.7A CN113553251A (zh) | 2020-04-24 | 2020-04-24 | 一种应用于软件测试的mock测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113553251A true CN113553251A (zh) | 2021-10-26 |
Family
ID=78129535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010330691.7A Pending CN113553251A (zh) | 2020-04-24 | 2020-04-24 | 一种应用于软件测试的mock测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553251A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817068A (zh) * | 2022-05-25 | 2022-07-29 | 云账户技术(天津)有限公司 | 基于mock测试的接口测试方法、装置以及电子设备 |
-
2020
- 2020-04-24 CN CN202010330691.7A patent/CN113553251A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817068A (zh) * | 2022-05-25 | 2022-07-29 | 云账户技术(天津)有限公司 | 基于mock测试的接口测试方法、装置以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105701008B (zh) | 用于测试用例生成的系统和方法 | |
EP1966689B1 (en) | Non-graphical model dependencies in graphical modeling environments | |
US6385765B1 (en) | Specification and verification for concurrent systems with graphical and textual editors | |
EP1982270B1 (en) | Context based code analysis | |
US9535821B1 (en) | Displaying violated coding rules in source code | |
US9268536B2 (en) | Behavior invariant optimization of maximum execution times for model simulation | |
CA2956364A1 (en) | System and method for coverage-based automated test case augmentation for design models | |
CN114818565A (zh) | 基于python的仿真环境管理平台、方法、设备及介质 | |
US20090319317A1 (en) | Or Relating To A Method and System for Testing | |
CN111859834A (zh) | 一种基于uvm的验证平台开发方法、系统、终端及存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN114117977B (zh) | 一种适用于自动验证处理器系统场景的方法 | |
CN113553251A (zh) | 一种应用于软件测试的mock测试方法 | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
CN111580409B (zh) | 面向实时嵌入式系统的故障仿真测试方法 | |
CN117215574A (zh) | 一种融合流程设计和ui设计的低代码开发系统和方法 | |
CN111382065A (zh) | 基于测试模板的验证流程管理系统及其方法 | |
US11442845B2 (en) | Systems and methods for automatic test generation | |
Davis | Model integrated computing: A framework for creating domain specific design environments | |
CN112540920A (zh) | 测试方法、装置、设备和存储介质 | |
JP2000132425A (ja) | ソフトウェアテスト方法 | |
Popić et al. | The benefits of the coding standards enforcement and it's influence on the developers' coding behaviour: A case study on two small projects | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
JP2015090616A (ja) | テストケース抽出プログラム、方法及び装置 | |
Zurowska et al. | A customizable execution engine for models of embedded systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |