一种运行被测程序的方法和调度器技术

技术编号:10106514 阅读:207 留言:0更新日期:2014-06-01 20:56
本发明专利技术提供一种运行被测程序的方法和调度器,调度器根据调用指令接收测试任务参数及被测试的程序代码,调度器按照接收的测试任务参数执行所述被测试的程序代码。应用本发明专利技术实施例提供的测试方法和调度器,利用调度器建立线程,由线程执行被测程序,可使被测程序的代码内容与调度器的内容相对独立,所以调度器可以测试任意的被测程序代码,并且用户可以为调度器指定测试任务的参数,减少了测试任务的成本。

【技术实现步骤摘要】
【专利摘要】本专利技术提供一种运行被测程序的方法和调度器,调度器根据调用指令接收测试任务参数及被测试的程序代码,调度器按照接收的测试任务参数执行所述被测试的程序代码。应用本专利技术实施例提供的测试方法和调度器,利用调度器建立线程,由线程执行被测程序,可使被测程序的代码内容与调度器的内容相对独立,所以调度器可以测试任意的被测程序代码,并且用户可以为调度器指定测试任务的参数,减少了测试任务的成本。【专利说明】一种运行被测程序的方法和调度器
本专利技术涉及计算机数据处理技术,具体涉及一种运行被测程序的方法和调度器。
技术介绍
程序测试是一种用来鉴定计算机程序的正确性、完整性、安全性和质量的过程。测试的过程是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。而对一个程序进行测试的过程一般需要多次重复地进行,即多次、重复地运行同一程序,这样才能有效地发现该程序存在的问题。现有的测试方法是采用多线程技术对目标软件进行测试。测试时,首先针对目标软件创建多线程,然后利用创建的多线程并发执行被测程序(即目标软件)。现有技术中,由于测试任务不同,需要针对每个被测程序单独制定一种并发测试流程,增加了测试成本。
技术实现思路
本专利技术实施例提供一种运行被测程序的方法和调度器,以减少程序测试成本。本专利技术实施例提供的一种运行被测程序的方法,包括:调度器根据调用指令接收测试任务参数及被测试的程序代码;所述调度器按照接收的所述测试任务参数执行所述被测试的程序代码。本专利技术实施例提供的一种运行被测程序的调度器,包括:参数接收单元,用于根据调用指令接收测试任务参数及被测试的程序代码;执行单元,用于按照接收的所述测试任务参数执行所述被测试的程序代码。本专利技术实施例提供的测试方法和调度器,通过调度器根据调用指令接收测试任务参数及被测试的程序代码,使得被测程序的代码内容与调度器的代码内容相对独立,从而可以通过调度器可以运行任意的被测程序代码实现对任意的被测程序代码的测试,避免了现有技术中针对每个被测程序单独制定一种并发测试流程导致的测试时间长效率低的问题,减少了测试任务的成本,提高了测试效率。【专利附图】【附图说明】通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术实施例提供的运行被测程序的方法的流程图;图2是本专利技术实施例提供的运行被测程序的方法中调度器执行被测程序的流程图;图3是本专利技术实施例提供的运行被测程序的调度器的结构示意图;图4是本专利技术实施例提供的一个优选的运行被测程序的方法的流程图。【具体实施方式】下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。图1是本专利技术实施例提供的运行被测程序的方法的流程图。如图1所示,本专利技术实施例提供的运行被测程序的方法,包括:步骤11,调度器根据调用指令接收测试任务参数及被测试的程序代码。其中,调度器可以是利用领域特定语言的方式(即Domain Specific Language,简称DSL)编写的带有接口的应用程序,调度器主要用于创建线程,由创建出的线程来执行被测程序。调度器允许用户根据需要设置一些测试任务参数,例如创建的线程数量、执行被测程序的次数等,调度器接收用户设置的参数以及被测程序,接收被测程序的方式可以是用户将被测程序的代码、脚本写入调度器代码的特定位置,或者是调度器通过接口调用被测程序或脚本。测试人员测试不同的被测程序时,只需要提供不同的被测程序代码和更改简单的参数,并不需要测试人员深入了解并发技术的代码内容或原理。其中,并发技术是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。本专利技术实施例利用调度器实现了并发执行被测程序的功能。步骤12,所述调度器按照接收的所述测试任务参数执行所述被测试的程序代码。当调度器接收到上述创建的线程数量、执行被测程序的次数等参数后,则根据参数指示的数量执行被测程序的代码。在本专利技术实施例提供的测试方法中,通过调度器根据调用指令接收测试任务参数及被测试的程序代码,使得被测程序的代码内容与调度器的代码内容相对独立,从而可以通过调度器可以运行任意的被测程序代码实现对任意的被测程序代码的测试,避免了现有技术中针对每个被测程序单独制定一种并发测试流程导致的测试时间长效率低的问题,减少了测试任务的成本,提高了测试效率。示例性的,本专利技术实施例提供的运行被测程序的方法中,所述调度器按照接收的所述测试任务参数执行所述被测试的程序代码,可如图2所示,包括:步骤21,所述调度器根据所述测试任务参数指示的线程创建数量创建至少一个工作线程。其中,工作线程是指程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针,寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。调度器可以利用Java语言的多线程技术创建或定义多线程。步骤22,控制所述的至少一个工作线程根据所述测试任务参数指示的执行次数执行所述被测试的程序代码。创建了工作线程后,工作线程即可以单独执行属于自己的任务,例如执行测试任务时,每个工作线程都可以独立的执行同一个被测程序代码。本专利技术实施例提供的被测程序运行方法可以利用多线程技术来执行被测试的程序,实现了并发执行,进一步提高的测试效率。示例性的,当所述调度器建立多个所述工作线程时,控制所述所有工作线程分别根据所述测试任务参数指示的执行次数同时开始执行所述被测试的程序代码。其中,当有多个工作线程执行被测程序时,本专利技术实施例提供的被测程序运行方法的调度器令所有的工作线程同时开始执行同一个被测程序,可以是当所有工作线程被创建完成后就同时开始执行被测程序。本方法可以得知执行测试任务的开始时间,便于计算测试任务的耗时,可以进一步地提高测试任务的效率。示例性的,控制所述所有工作线程分别根据所述测试任务参数指示的执行次数同时开始执行所述被测试的程序代码之后,本专利技术实施例提供的运行被测程序的方法还可包括:所述调度器记录所述所有工作线程执行所述被测试的程序代码所用的时间。上述实施例中调度器使多个工作线程同时开始执行测试任务,而所有工作线程不一定同时完成测试任务,所以在本实施例中调度器还可以计算执行测试任务的耗时,可以是将最后一个完成测试任务的线程的完成时间作为整个调度器执行测试任务的完成时间。通过本实施例提供的方法,可以计算出测试任务的耗时,反映出被测程序可能存在的问题。示例性的,本实施例提供的运行被测程序的方法还包括:所述调度器接收所述被测试的程序代码在执行过程中产生的信息。其中,被测程序可以是带有输出结果的业务程序,调度器可以接收被测程序在执行过程中输出的结果信息,也可以是被测程序执行过程的产生的中间量信息等,可以进一步反映出被测程序可能存在的问题。图3是本专利技术实施例提供的运行被测程序的调度器的结构示意图。如图3所示,本专利技术实施例提供的运行被测程序的调度本文档来自技高网...

【技术保护点】
一种运行被测程序的方法,其特征在于,包括:调度器根据调用指令接收测试任务参数及被测试的程序代码;所述调度器按照接收的所述测试任务参数执行所述被测试的程序代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓必国
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:

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

1