CN113190433A - 一种程序测试方法及装置 - Google Patents

一种程序测试方法及装置 Download PDF

Info

Publication number
CN113190433A
CN113190433A CN202110356804.5A CN202110356804A CN113190433A CN 113190433 A CN113190433 A CN 113190433A CN 202110356804 A CN202110356804 A CN 202110356804A CN 113190433 A CN113190433 A CN 113190433A
Authority
CN
China
Prior art keywords
program
test
tested
determining
testing
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
Application number
CN202110356804.5A
Other languages
English (en)
Inventor
何晓囡
杨利锋
张传庆
徐林林
孙梓洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Netapp Technology Ltd
Original Assignee
Lenovo Netapp Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Netapp Technology Ltd filed Critical Lenovo Netapp Technology Ltd
Priority to CN202110356804.5A priority Critical patent/CN113190433A/zh
Publication of CN113190433A publication Critical patent/CN113190433A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test 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

本发明公开一种程序测试方法及装置,包括:确定待测程序,和所述待测程序的测试类型;根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序;利用所述测试程序对所述待测程序进行测试,以确定相应的测试结果;通过从独立的测试程序库中确定相应的测试程序,实现了对于待测程序的测试,减少了测试过程中的人力消耗,提高了开发效率。

Description

一种程序测试方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序测试方法及装置。
背景技术
在软件开发过程中,对软件程序代码的测试,是必不可少的开发环节。在传统的开发过程中,开发人员通常在编写程序代码的同时,也要编写对应的测试代码。即程序代码和测试代码将结合在一起,并协同运行,从而针对程序代码完成测试过程。
显然上述的测试方式中,编写测试代码需要消耗开发人员大量的人力和时间。特别是在利用C/C++语言编写程序代码时,相应的测试代码也必须利用C/C++语言,而无法使用其他程序语言提供的更为便利的开发工具,使得开发效率相对低下。
发明内容
本发明提供一种程序测试方法及装置,以至少解决现有技术中存在的以上技术问题。
第一方面,本发明提供一种程序测试方法,包括:
确定待测程序,和所述待测程序的测试类型;
根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序;
利用所述测试程序对所述待测程序进行测试,以确定相应的测试结果。
优选的,所述确定所述待测程序的测试类型包括:
确定所述待测程序的分类编号,根据所述分类编号确定所述测试类型。
优选的,所述根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序包括:
根据所述待测程序的分类编号,从所述测试程序库中确定相应的测试函数;
根据测试策略,将所述测试函数封装为所述测试程序。
优选的,所述测试程序库中包括多个所述测试函数,所述测试函数基于预设的开发工具制作。
优选的,还包括:
预先设定所述测试策略;
或者,根据所述待测程序确定所述测试策略。
优选的,所述利用所述测试程序对所述待测程序进行测试包括:
从所述测试程序库中调取所述测试程序,
基于所述测试程序运行所述待测程序以进行测试。
优选的,所述方法的执行主体为,所述待测程序所在的执行节点;所述待测程序由所述执行节点的第一进程处理;
则所述测试程序库位于所述执行节点上,所述测试程序库由所述执行节点的第二进程处理;
或者,所述测试程序库位于所述执行节点以外的客户端设备上;
所述第一进程与所述第二进行通过远程过程调用进行通信;
所述执行节点与所述客户端设备通过远程过程调用进行通信。
第二方面,本发明提供一种程序测试装置,包括:
待测程序确定模块,用于确定待测程序,和所述待测程序的测试类型;
测试程序确定模块,用于根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序;
测试模块,用于利用所述测试程序对所述待测程序进行测试,以确定相应的测试结果。
第三方面,本发明提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明所述的程序测试方法。
第四方面,本发明提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明所述的程序测试方法。
与现有技术相比,本发明提供的一种程序测试方法及装置,通过从独立的测试程序库中确定相应的测试程序,实现了对于待测程序的测试,减少了测试过程中的人力消耗,提高了开发效率。
附图说明
图1为本发明一实施例提供的一种程序测试方法的流程示意图;
图2为本发明一实施例提供的一种程序测试装置的结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
申请概述
在传统的开发过程中,开发人员通常在编写程序代码的同时,也要编写对应的测试代码。即程序代码和测试代码将结合在一起,并协同运行,从而针对程序代码完成测试过程。显然上述的测试方式中,编写测试代码需要消耗开发人员大量的人力和时间。特别是在利用C/C++语言编写程序代码时,相应的测试代码也必须利用C/C++语言,而无法使用其他程序语言提供的更为便利的开发工具,使得开发效率相对低下。
示例性方法
因此,本发明实施例将提供一种程序测试方法,以至少解决现有技术中存在的以上技术问题。如图1所示,本实施例中方法包括以下步骤:
步骤101、确定待测程序,和待测程序的测试类型。
本实施例中,待测程序是经过开发人员编写,并且需要进行测试的特定程序。待测程序以特定的程序语言编写而成,例如在一些情况下可通过C/C++语言写成。在一些场景当中,待测程序位于服务器系统特定的执行节点上。本实施例中方法的执行主体即为待测程序所在的该执行节点。待测程序的测试过程,可以由执行节点的第一进程处理。
根据待测程序实际表达的功能的不同,对应的测试也必然各不相同。所以本实施例中还将进一步的确定待测程序的类型,从而明确后续需要怼待测程序进行那些具体的测试。确定待测程序的测试类型包括:确定待测程序的分类编号,根据分类编号确定测试类型。分类编号,即是体现待测程序的功能的编号,或者体现待测程序的测试内容的编号。例如,分类编号具体可包括:测试实例ID号、测试函数ID号等,用以表明该待测程序需要使用具体哪个测试实例和测试函数。
例如,本实施例中待测程序具体可以是一套关于文件操作功能的执行程序,其具体可以包括文件创建、文件修改和文件删除等功能。则在相应的测试中,需要充分的执行上述功能,以便于确定上述功能是否符合要求。根据对应的分类编号,可以确定要对该待测程序进行测试,需要使用哪些具体的测试实例和测试函数。
步骤102、根据待测程序的测试类型,从测试程序库中确定相应的测试程序。
测试程序库中可以包括大量具体的测试函数等内容,不同的测试函数经过排列组合实现不同的“测试方案”,也就是所谓的测试用例。测试函数可以基于预设的开发工具制作,例如在python语言当中,便存在诸多高效的开发工具,或者已成熟的测试函数,无需重新编译即可组合得到测试用例。为开发工作节约了大量的时间。在现有技术中,基于C/C++语言写成的待测程序,必须利用C/C++语言的测试程序进行测试,而无法使用python语言的开发工具。在本实施例中则解决了上述的问题。
在本实施例中,从测试程序库中确定相应的测试程序具体可以是:根据待测程序的分类编号,从测试程序库中确定相应的测试函数。根据测试策略,将测试函数封装为测试程序。测试策略可以是,预先设定测试策略;或者,根据待测程序确定测试策略。
以本实施例中对于文件操作功能的测试为例,则在测试过程中需要使用测试函数执行文件创建、文件修改和文件删除的操作。所以可首先根据分类编号从测试程序库中确定相应的测试函数。而在一个完整的测试过程中,可以对上述测试函数进行排列组合使用,或者还可重复使用,由此模拟现实中用户操作的场景,即形成测试用例。或者说形成还可进一步的结合初始化、通信连接、函数接口对接、测试结果生成机制等基础操作,共同形成测试程序。也就是封装为测试程序。而测试函数的排列组合,及其与基础操作的结合方式,即反映在测试策略中。该测试策略可以由开发人员针对待测程序人为设定而成。也可预先设定多种不同的测试策略,在根据待测程序的特点进行选择。当然还可以通过其他任何方式确定测试策略,本实施例中对此不做限定。
步骤103、利用测试程序对待测程序进行测试,以确定相应的测试结果。
测试程序库可以位于上述执行节点上,由执行节点的第二进程处理;即测试程序库和待测程序的测试可以在同一主体上执行,但分别运行在不同的进程上。在这种情况下,第一进程与第二进行可以通过远程过程调用(即Remote Procedure Cal,简称RPC)进行通信,从而实现第一进行对于测试程序的调用。
或者,测试程序库也可以位于执行节点以外的其他客户端设备上。即测试程序库和待测程序的测试可以在不同主体上执行。在这种情况下,执行节点与客户端设备同样可以通过RPC进行通信,从而实现对于测试程序的调用。
确定了测试程序之后,执行节点从测试程序库中调取测试程序,即可基于测试程序运行待测程序以进行测试。并得到相应的测试结果。至此,本实施例中完成了对于待测程序的测试。
需要说明的是,本实施例中方法不在将待测程序与测试程序结合在一起。测试程序库中的测试函数可以位于执行节点以外的客户端设备上,或者位于执行节点的其他进程上,与待测程序分割开来。通过测试函数封装形成测试程序,实现测试过程。在这种情况下,测试程序相对独立,不需要与待测程序采用同样的程序语言编写,因此可以使用其他程序语言当中诸多高效的开发工具,或者已成熟的测试函数,为开发工作节约了大量的时间。
通过以上技术方案可知,本实施例存在的有益效果是:通过从独立的测试程序库中确定相应的测试程序,实现了对于待测程序的测试,减少了测试过程中的人力消耗,提高了开发效率。
示例性装置
如图2所示,为本发明所述程序测试装置的一个具体实施例。本实施例装置,即用于执行图1所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中装置包括:
待测程序确定模块201,用于确定待测程序,和待测程序的测试类型。
测试程序确定模块202,用于根据待测程序的测试类型,从测试程序库中确定相应的测试程序。
测试模块203,用于利用测试程序对待测程序进行测试,以确定相应的测试结果。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
本发明中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (10)

1.一种程序测试方法,其特征在于,包括:
确定待测程序,和所述待测程序的测试类型;
根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序;
利用所述测试程序对所述待测程序进行测试,以确定相应的测试结果。
2.根据权利要求1所述方法,其特征在于,所述确定所述待测程序的测试类型包括:
确定所述待测程序的分类编号,根据所述分类编号确定所述测试类型。
3.根据权利要求2所述方法,其特征在于,所述根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序包括:
根据所述待测程序的分类编号,从所述测试程序库中确定相应的测试函数;
根据测试策略,将所述测试函数封装为所述测试程序。
4.根据权利要求3所述方法,其特征在于,所述测试程序库中包括多个所述测试函数,所述测试函数基于预设的开发工具制作。
5.根据权利要求3所述方法,其特征在于,还包括:
预先设定所述测试策略;
或者,根据所述待测程序确定所述测试策略。
6.根据权利要求3所述方法,其特征在于,所述利用所述测试程序对所述待测程序进行测试包括:
从所述测试程序库中调取所述测试程序,
基于所述测试程序运行所述待测程序以进行测试。
7.根据权利要求1~6任意一项所述方法,其特征在于,所述方法的执行主体为,所述待测程序所在的执行节点;所述待测程序由所述执行节点的第一进程处理;
则所述测试程序库位于所述执行节点上,所述测试程序库由所述执行节点的第二进程处理;
或者,所述测试程序库位于所述执行节点以外的客户端设备上;
所述第一进程与所述第二进行通过远程过程调用进行通信;
所述执行节点与所述客户端设备通过远程过程调用进行通信。
8.一种程序测试装置,其特征在于,包括:
待测程序确定模块,用于确定待测程序,和所述待测程序的测试类型;
测试程序确定模块,用于根据所述待测程序的测试类型,从测试程序库中确定相应的测试程序;
测试模块,用于利用所述测试程序对所述待测程序进行测试,以确定相应的测试结果。
9.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一项所述的程序测试方法。
10.一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一项所述的程序测试方法。
CN202110356804.5A 2021-04-01 2021-04-01 一种程序测试方法及装置 Pending CN113190433A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110356804.5A CN113190433A (zh) 2021-04-01 2021-04-01 一种程序测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110356804.5A CN113190433A (zh) 2021-04-01 2021-04-01 一种程序测试方法及装置

Publications (1)

Publication Number Publication Date
CN113190433A true CN113190433A (zh) 2021-07-30

Family

ID=76974427

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110356804.5A Pending CN113190433A (zh) 2021-04-01 2021-04-01 一种程序测试方法及装置

Country Status (1)

Country Link
CN (1) CN113190433A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN104750601A (zh) * 2013-12-25 2015-07-01 中国移动通信集团吉林有限公司 一种测试方法及装置
CN108959089A (zh) * 2018-07-04 2018-12-07 沈文策 一种测试用例生成方法及装置
CN110389896A (zh) * 2019-06-18 2019-10-29 中国平安人寿保险股份有限公司 代码自动化分析和测试方法、装置及计算机可读存储介质
CN110750447A (zh) * 2019-09-18 2020-02-04 平安科技(深圳)有限公司 软件测试方法及相关设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176895A (zh) * 2011-12-22 2013-06-26 阿里巴巴集团控股有限公司 一种回归测试方法和系统
CN104750601A (zh) * 2013-12-25 2015-07-01 中国移动通信集团吉林有限公司 一种测试方法及装置
CN108959089A (zh) * 2018-07-04 2018-12-07 沈文策 一种测试用例生成方法及装置
CN110389896A (zh) * 2019-06-18 2019-10-29 中国平安人寿保险股份有限公司 代码自动化分析和测试方法、装置及计算机可读存储介质
CN110750447A (zh) * 2019-09-18 2020-02-04 平安科技(深圳)有限公司 软件测试方法及相关设备

Similar Documents

Publication Publication Date Title
US20160300044A1 (en) Anti-debugging method
CN107643893B (zh) 一种程序检测方法及装置
WO2020237508A1 (zh) 一种断言验证代码绑定方法及装置
CN110968437A (zh) 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
JP2004164554A (ja) プログラム実行監視装置および方法
CN112052169A (zh) 测试管理方法、系统、设备以及计算机可读存储介质
TWI684916B (zh) 函式選取方法和伺服器
CN111538659B (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
CN112650676A (zh) 软件测试方法、装置、设备及存储介质
CN110716845A (zh) 一种Android系统的日志信息读取的方法
US20150020056A1 (en) Methods and systems for file processing
US20230101154A1 (en) Resumable instruction generation
WO2023207973A1 (zh) 编译器测试方法、用例生成方法、装置及指令存储结构
CN112860587A (zh) Ui自动测试方法和装置
CN115656788B (zh) 一种芯片测试系统、方法、设备及存储介质
CN112445706A (zh) 程序异常代码获取方法、装置、电子设备以及存储介质
US11593078B2 (en) Reload ordering for executable code modules
CN113190433A (zh) 一种程序测试方法及装置
CN110609786A (zh) 软件测试方法、装置、计算机设备和存储介质
CN115757099A (zh) 平台固件保护恢复功能自动测试方法和装置
CN114020278B (zh) 数据处理方法、装置、设备及存储介质
KR101685299B1 (ko) 비결정적인 이벤트 처리가 가능한 프로그램의 자동 테스트 방법 및 자동 테스트 장치
CN114691496A (zh) 单元测试方法、装置、计算设备及介质
CN113031956A (zh) 程序编译方法和装置以及程序运行方法和装置
JP2005174045A (ja) ソースプログラム変換装置、ソースプログラム変換方法、ソースプログラム変換プログラム、および、プログラム記録媒体

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210730