CN108255694A - 基于解释器的测试方法及系统 - Google Patents
基于解释器的测试方法及系统 Download PDFInfo
- Publication number
- CN108255694A CN108255694A CN201611240083.7A CN201611240083A CN108255694A CN 108255694 A CN108255694 A CN 108255694A CN 201611240083 A CN201611240083 A CN 201611240083A CN 108255694 A CN108255694 A CN 108255694A
- Authority
- CN
- China
- Prior art keywords
- interpreter
- test
- application program
- test script
- function
- 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
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
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
本发明提出一种基于解释器的测试方法及系统,其中,该方法包括:测试脚本管理器获取用于对目标机中的应用程序进行测试的测试脚本,将测试脚本发送给嵌入在应用程序中的解释器,解释器对应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于测试脚本测试应用程序。本发明中,在目标机的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
Description
技术领域
本发明涉及系统测试领域,尤其涉及一种基于解释器的测试方法及系统。
背景技术
部分嵌入式产品上具备linux操作系统的安装条件,此时可以在嵌入式产品中使用一种用于远程调试的调试工具(gbd)。图1为现有的一种基于gbd的远程调试的示意图。图1中,gbd调试技术需要涉及到上位机和目标机,其中,目标机即被测对象上运行gbd服务器(server),上位机上包含了gbd的本机环境和源代码。此时由上位机通过网络或现场总线直接与目标机相连,上位机通过编译器编译时获取了目标机上应用程序中的符号列表、地址偏移量等内容。目标机通过gbd服务器启动目标机上的应用程序,并启动一个监听端口或现场总线,上位机通过gdb程序与远程gbd服务器进行交互,可实现远程执行程序、设置断点等功能进行程序的调试。
图2为现有的另一种基于gbd的远程调试的示意图。图2中,在上位机上同时配置gdb、gbd服务器扩展包、gbd服务器和通用串行接口(Universal Serial Bus,简称USB)仿真器。USB仿真器可以通过一个联合测试行为组织(Joint Test Action Group,简称JTAG)定义的一个接口与目标机相连。上位机就可以通过USB仿真器,使用gdb调试指令实现对非linux系统的目标机的调试。
上述两种方法适用于可搭建gdb环境的系统,而gdb调试方法必须基于linux或相近的系统,然而部分嵌入式应用中,目标机或设备一般不能使用操作系统或使用嵌入式的操作系统,上位机与目标机并不存在专用的远程调用接口。当需要通过上位机对目标机进行调试时,测试人员需要自定义调试协议,而且需要在上位机与目标机之间设置及其复杂的测试通道,然后基于自定义的调试协议和测试通道实现对目标机的测试。自定义的调试协议一般通过字符串格式或二进制报文格式。
图3为现有基于自定义的调试协议进行测试的示意图。如图3所示,在需要对目标机进行测试时,需要经过调试指令转换模块将测试脚本中的调试指令转换成符合调试协议规定的调试指令,然后通过测试通道发送给目标机。目标机中安装有调试协议解析模块,用于对调试协议进行解释,解析模块对接收到符合调试协议规定的调试指令后进行解析,然后经过目标机的调试指令转换模块,将符合调试协议规定的指令进行转换,使得该指令能够被目标机中被测应用程序识别。调试指令需要经过两次转换后方能够传递给被测应用程序。
调试协议解析模块的翻译功能由开发人员开发,并不存在标准的接口,需要随着被测应用程序的升级而同步修改,工作量大。而且调试协议解析模块的翻译工作容易出现错误,一旦该功能错误,将导致远程调用产生非预期的后果,无法正常调试。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于解释器的测试方法,该方法通过在目标机上被测的应用程序中嵌入解释器,利用该解释器对被测的应用程序的全局变量和函数进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
本发明的另一个目的在于提出一种基于解释器的测试系统。
为达到上述目的,本发明第一方面实施例提出的基于解释器的测试方法,包括:
测试脚本管理器获取用于对目标机中应用程序进行测试的测试脚本;
所述测试脚本管理器将所述测试脚本发送给安装在所述目标机中的解释器;
所述解释器对所述应用程序的全局变量、函数指针和函数调用参数形式进行注册;
所述解释器在注册完成后基于所述测试脚本测试所述应用程序。
本发明第一方面实施例提出的基于解释器的测试方法,在目标机的上应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
为达到上述目的,本发明第二方面实施例提出的基于解释器的测试系统,包括:
测试脚本管理器,用于获取用于对目标机中应用程序进行测试的测试脚本,以及将所述测试脚本发送给安装在所述目标机中的解释器;
所述解释器,用于对所述应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于所述测试脚本测试所述应用程序。
本发明第二方面实施例提出的基于解释器的测试系统,在目标机上的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为现有的一种基于gbd的远程调试的示意图;
图2为现有的另一种基于gbd的远程调试的示意图;
图3为现有基于自定义的调试协议进行测试的示意图;
图4为本发明实施例提供的一种基于解释器的测试方法的流程示意图;
图5为本发明实施例提供的另一种基于解释器的测试方法的流程示意图;
图6为本发明实施例提供的一种基于解释器的测试系统的结构示意图;
图7为本发明实施例中提供的一种基于解释器的测试系的应用示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图4为本发明实施例提供的一种基于解释器的测试方法的流程示意图。该基于解释器的测试方法包括以下步骤:
S101、测试脚本管理器获取用于对目标机中应用程序进行测试的测试脚本。
具体地,在上位机上安装有测试脚本管理器,并且在测试脚本管理器中存储有对目标机中各应用程序进行测试的测试脚本。测试人员启动测试脚本管理器后,可以输入测试需求例如,被测的应用程序的名称或者标识等。测试脚本管理器可以根据测试需求,加载与该被测的应用程序对应的测试脚本。
实际应用中,测试脚本管理器中存储有对多个目标机中各应用程序进行测试的测试脚本。本实施例中,当需要获取用于对被测的应用程序进行测试的测试脚本时,测试人员输入的测试需求中可以包括目标机的标识和被测的应用程序的标识,测试脚本管理可以根据目标机的标识和该应用程序的标识,从存储单元中查询到对应的测试脚本。
S102、测试脚本管理器将测试脚本发送给安装在目标机中的解释器。
本实施例中,在目标机中安装有解释器,通过该解释器对测试脚本管理器发出的测试脚本进行解释。具体地,测试脚本管理器在获取到测试脚本后,为了实现对目标机上的应用程序的测试,需要将测试脚本发送给解释器。测试脚本管理器可通过测试脚本和解释器之间的通信通道,向目标机直接发送函数执行字符串,这样可以避免自定义翻译代码的错误性。
优选地,解释器可以为一种符合可移植操作系统接口(Portable OperatingSystem Interface,简称POSIX)规范的独立软件模块嵌入到被测的目标机内部。基于POSIX规范的特性解释器的具有比较大的使用范围。进一步地,使用一种符合ANSI C标准的解释型语言来构建解释器。其中,该ANSI C标准为由美国国家标准协会(American NationalStandards Institute,简称ANSI)和国际标准化组织(International Organization forStandardization,简称ISO)推出的关于C语言的标准。
优选地,上位机和目标机之间设置有网络接口,该网络接口可以作为测试脚本管理器和解释器之间的通信通道,即测试脚本管理器与解释器之间通过该网络接口进行通信。可选地,在上位机和目标机之间设置通过测试通道,该测试通道基于解释型语音来实现。
S103、解释器对应用程序的全局变量、函数指针和函数调用参数形式进行注册。
本实施例中,解释器具有能够支持获取应用程序的全局变量、函数指针以及函数调用参数形式的能力。在接收到测试脚本后,解释器对需要测试的应用程序的全局变量、函数指针和函数调用参数形式进行注册。具体地,在开发应用程序时,生成一个应用程序的全局注册表,在该表中携带有应用程序的全局变量、函数指针和函数调用参数形式。解释器可以从应用程序自身携带的全局注册表中,获取应用程序的全局变量、函数指针和函数调用参数形式,然后在解释器自身注册全局变量、函数指针和函数调用参数形式。
进一步地,解释器还可以获取应用程序中相关变量的类型和及其地址,然后按照文本方式存储应用程序中的相关变量的类型和地址,这样就可以通过文本的方式进行调用或查看,解释器还可以将相关命令的调用结果直接通过终端传递给上位机。
S104、解释器在注册完成后基于测试脚本测试应用程序。
解释器在自身注册完全局变量、函数指针和函数调用参数形式后,解释器可以基于测试脚本对应用程序进行测试。具体地,解释器在注册完成后,可以接收到应用程序在主循环中向其发送的与用于调用与主循环对应的周期测试函数,该周期测试函数为测试脚本中的函数,由解释器来维护该周期测试函数。解释器执行周期测试函数,用于实现上位机对目标机的远程调用和逻辑判断,以完成对应用程序的测试。
本实施例提供的基于解释器的测试方法,通过测试脚本管理器获取用于对目标机中的应用程序进行测试的测试脚本,将测试脚本发送给安装在目标机中的解释器,解释器对应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于测试脚本测试应用程序。本实施例中,在目标机上的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
图5为本发明实施例提供的另一种基于解释器的测试方法的流程示意图。该基于解释器的测试方法包括以下步骤:
S201、开启并初始化测试脚本管理器。
S202、测试脚本管理器加载测试脚本并发送给解释器。
测试脚本管理器根据测试需求获取测试脚本,具体过程可参见上述实施例中相关过程的记载,此处不再赘述。在加载完测试脚本后,与目标机建立连接,将测试脚本发送给解释器。
S203、解释器对被测的应用程序的全局变量、函数指针和函数调用参数形式进行注册。
具体过程可参加上述实施例中相关内容的记载,此处不再赘述。本实施例中在被测的目标机中嵌入解释器,通过解释器快速注册目标机上被测的应用程序中的全局变量、函数指针和函数调用参数形式,从而直接实现测试脚本对被测的应用程序的控制和测试。
S204、解释器执行测试脚本测试应用程序。
具体过程可参加上述实施例中相关内容的记载,此处不再赘述。
本实施例中,解释器单独占用目标机中的一个线程,解释器在一个单独的线程上运行,与目标机上原有的其他工作线程相互独立,不需要采用断电的方式进行测试,从而使得解释器执行测试时不会对被测的应用程序产生影响,避免了现有测试对应用程序正常运行的干扰的问题。
S205、解释器实时将测试结果反馈给测试脚本管理器。
为了保证被测的应用程序的正确性,解释器可以实时地向将测试结果,通过网络接口反馈给测试脚本管理器,以便于测试脚本管理器分析应用程序的当前的测试结果是否符合预期。进一步地,本实施例中提供的测试方法,还同时支持将调用结果通过终端显示。
S207、测试脚本管理器根据测试结果确定当前测试是否符合预期。
测试脚本管理器可在接收到目标机即解释器实时返回的测试结果,并且自动对当前的测试结果进行判断,以确定当前测试是否符合预期,如果符合预期,继续执行S207;如果不符合预期,执行S209指示测试脚本退出测试。
S207、解释器判断测试脚本是否执行完毕。
如果测试脚本执行完成,则执行S208。如果未完成,则返回执行S204。
S208、测试脚本管理器将测试结果生成测试报告。
测试脚本管理器可以将测试结果生成一个测试报告,以便于测试人员进行查看,从而能够快速地对应用程序进行完善。
S209、测试脚本管理器指示测试脚本退出测试。
进一步地,测试脚本管理器可以向测试人员报告出错的测试脚本代码行数,以实现自动测试。
本实施例提供的基于解释器的测试方法,通过测试脚本管理器获取用于对目标机中的应用程序进行测试的测试脚本,将测试脚本发送给安装在目标机中的解释器,解释器对应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于测试脚本测试应用程序。本实施例中,在目标机的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
图6为本发明实施例提供的一种基于解释器的测试系统的结构示意图。该基于解释器的测试系统1包括:测试脚本管理器11和解释器12。
其中,测试脚本管理器11,用于获取用于对目标机中应用程序进行测试的测试脚本,以及将所述测试脚本发送给安装在所述目标机中的解释器12。
解释器12,用于对所述应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于所述测试脚本测试所述应用程序。
进一步地,解释器12,具体用于从所述应用程序自身携带的全局注册表中,获取所述全局变量、函数指针和函数调用参数形式,在自身注册所述全局变量、函数指针和函数调用参数形式;其中,所述全局注册表在开发所述应用程序时生成。
进一步地,解释器12,还用于获取所述应用程序中相关变量的类型和地址,按照文本方式存储所述相关变量的类型和地址。
进一步地,解释器12,具体用于接收所述应用程序在主循环中发送的用于调用与所述主循环对应的周期测试函数,所述周期测试函数是所述测试脚本中的函数,执行所述周期测试函数对所述应用程序进行测试。
进一步地,解释器12通过注册所述全局变量、所述函数指针和所述函数调用参数形式,完成所述应用程序在C/C++语言和解释型语言之间的双向转换。
进一步地,测试脚本管理器11,具体用于以函数执行字符串的形式向所述解释器12发送所述测试脚本。
进一步地,解释器12,还用于实时地将测试结果反馈给所述测试脚本管理器11。
进一步地,测试脚本管理器11,还用于根据所述测试结果确定所述应用程序的当前测试是否符合预期,如果不符合预期,指示所述测试脚本退出测试。
进一步地,测试脚本管理11,具体用于根据所述目标机的标识码和所述应用程序的标识码,获取所述测试脚本。
进一步地,解释器12单独占用所述目标机中的一个线程。
进一步地,所述基于解释器的测试系统还包括:网络接口13,用于作为所述测试脚本管理器11与所述解释器12之间的通信通道。
本实施例提供的基于解释器的测试系统,通过测试脚本管理器获取用于对目标机中的应用程序进行测试的测试脚本,将测试脚本发送给安装在目标机中的解释器,解释器对应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于测试脚本测试应用程序。本实施例中,在目标机上的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
图7为本发明实施例提供的一种基于解释器的测试系统的应用示意图。如图7所示,基于解释器的测试系统1被运用在上位机2和目标机3中。其中,基于解释器的测试系统1中的测试脚本管理器11安装在上位机2中,基于解释器的测试系统1中的解释器12安装在目标机3中。基于解释器的测试系统1中的网络接口13设置上位机2和目标机3之间,实现测试脚本管理器11与解释器12之间的通信。目标机3中设置有被测的应用程序31,解释器12基于测试脚本对应用程序31进行测试。基于解释器的测试系统1执行上述实施例提供的基于解释器的测试方法,此处不再赘述。
本实施例中,在目标机上的应用程序中嵌入解释器,该解释器可以对被测的应用程序的全局变量、函数指针以及函数调用参数形式进行注册,能够使得测试系统中无需在应用程序升级时进行同步修改,而且能够实现应用程序在C/C++语言和解释型语言之间的双向转换,只需解释器进行一次转换,出错可能性极小,大大提高了测试效率。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分模块或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (20)
1.一种基于解释器的测试方法,其特征在于,包括:
测试脚本管理器获取用于对目标机中应用程序进行测试的测试脚本;
所述测试脚本管理器将所述测试脚本发送给安装在所述目标机中的解释器;
所述解释器对所述应用程序的全局变量、函数指针和函数调用参数形式进行注册;
所述解释器在注册完成后基于所述测试脚本测试所述应用程序。
2.根据权利要求1所述的基于解释器的测试方法,其特征在于,所述解释器对所述应用程序的全局变量和函数指针和函数调用参数形式进行注册,包括:
所述解释器从所述应用程序自身携带的全局注册表中,获取所述全局变量、所述函数指针和所述函数调用参数形式;
所述解释器在自身注册所述全局变量、所述函数指针和所述函数调用参数形式;
其中,所述全局注册表在开发所述应用程序时生成。
3.根据权利要求2所述的基于解释器的测试方法,其特征在于,还包括:
所述解释器获取所述应用程序中相关变量的类型和地址;
所述解释器按照文本方式存储所述相关变量的类型和地址。
4.根据权利要求1所述的基于解释器的测试方法,其特征在于,所述解释器在注册完成后基于所述测试脚本测试所述应用程序,包括:
所述解释器接收所述应用程序在主循环中发送的用于调用与所述主循环对应的周期测试函数,所述周期测试函数是所述测试脚本中的函数;
所述解释器执行所述周期测试函数对所述应用程序进行测试。
5.根据权利要求2所述的基于解释器的测试方法,其特征在于,还包括:所述解释器通过注册所述全局变量、所述函数指针和所述函数调用参数形式,完成所述应用程序在C/C++语言和解释型语言之间的双向转换。
6.根据权利要求1-5任一项所述的基于解释器的测试方法,其特征在于,所述测试脚本管理器将所述测试脚本发送给安装在所述目标机中的解释器,包括:
所述测试脚本管理器以函数执行字符串的形式向所述解释器发送所述测试脚本。
7.根据权利要求1-5任一项所述的基于解释器的测试方法,其特征在于,所述解释器在注册完成后基于所述测试脚本测试所述应用程序之后,还包括:
所述解释器实时地将测试结果反馈给所述测试脚本管理器;
所述测试脚本管理器根据所述测试结果确定所述应用程序的当前测试是否符合预期;
如果不符合预期,所述测试脚本管理器指示所述测试脚本退出测试。
8.根据权利要求1-5任一项所述的基于解释器的测试方法,其特征在于,所述测试脚本管理器获取用于对目标机中的应用程序进行测试的测试脚本,包括:
所述测试脚本管理根据所述目标机的标识码和所述应用程序的标识码,获取所述测试脚本。
9.根据权利要求1-5任一项所述的基于解释器的测试方法,其特征在于,还包括:
所述解释器单独占用所述目标机中的一个线程。
10.根据权利要求9所述的基于解释器的测试方法,其特征在于,所述测试脚本管理器与所述解释器之间通过网络接口进行通信。
11.一种基于解释器的测试系统,其特征在于,包括:
测试脚本管理器,用于获取用于对目标机中应用程序进行测试的测试脚本,以及将所述测试脚本发送给安装在所述目标机中的解释器;
所述解释器,用于对所述应用程序的全局变量、函数指针和函数调用参数形式进行注册,在注册完成后基于所述测试脚本测试所述应用程序。
12.根据权利要求11所述的基于解释器的测试系统,其特征在于,所述解释器,具体用于从所述应用程序自身携带的全局注册表中,获取所述全局变量、所述函数指针和所述函数调用参数形式,在自身注册所述全局变量、所述函数指针和所述函数调用参数形式;其中,所述全局注册表在开发所述应用程序时生成。
13.根据权利要求12所述的基于解释器的测试系统,其特征在于,所述解释器,还用于获取所述应用程序中相关变量的类型和地址,按照文本方式存储所述相关变量的类型和地址。
14.根据权利要求11所述的基于解释器的测试系统,其特征在于,所述解释器,具体用于接收所述应用程序在主循环中发送的用于调用与所述主循环对应的周期测试函数,所述周期测试函数是所述测试脚本中的函数,执行所述周期测试函数对所述应用程序进行测试。
15.根据权利要求12所述的基于解释器的测试系统,其特征在于,所述解释器通过注册所述全局变量、所述函数指针和所述函数调用参数形式,完成所述应用程序在C/C++语言和解释型语言之间的双向转换。
16.根据权利要求11-15任一项所述的基于解释器的测试系统,其特征在于,所述测试脚本管理器,具体用于以函数执行字符串的形式向所述解释器发送所述测试脚本。
17.根据权利要求11-15任一项所述的基于解释器的测试系统,其特征在于,所述解释器,还用于实时地将测试结果反馈给所述测试脚本管理器;
所述测试脚本管理器,还用于根据所述测试结果确定所述应用程序的当前测试是否符合预期,如果不符合预期,指示所述测试脚本退出测试。
18.根据权利要求11-15任一项所述的基于解释器的测试系统,其特征在于,所述测试脚本管理器,具体用于根据所述目标机的标识码和所述应用程序的标识码,获取所述测试脚本。
19.根据权利要求11-15任一项所述的基于解释器的测试系统,其特征在于,所述解释器单独占用所述目标机中的一个线程。
20.根据权利要求19所述的基于解释器的测试系统,其特征在于,还包括:网络接口,用于作为所述测试脚本管理器与所述解释器之间的通信通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611240083.7A CN108255694A (zh) | 2016-12-28 | 2016-12-28 | 基于解释器的测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611240083.7A CN108255694A (zh) | 2016-12-28 | 2016-12-28 | 基于解释器的测试方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108255694A true CN108255694A (zh) | 2018-07-06 |
Family
ID=62719566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611240083.7A Pending CN108255694A (zh) | 2016-12-28 | 2016-12-28 | 基于解释器的测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255694A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052325A1 (zh) * | 2019-09-16 | 2021-03-25 | 上海御渡半导体科技有限公司 | 一种离线调试方法 |
CN112612712A (zh) * | 2020-12-29 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种基于扩展脚本的软件断点调试方法、装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58169221A (ja) * | 1982-03-30 | 1983-10-05 | Fujitsu Ltd | チヤネル、シユミレ−シヨン方式 |
CN1477800A (zh) * | 2002-08-20 | 2004-02-25 | 华为技术有限公司 | 镜像测试方法 |
CN1737775A (zh) * | 2004-08-18 | 2006-02-22 | 华为技术有限公司 | 一种嵌入式软件自动化测试的装置及其方法 |
CN101013977A (zh) * | 2007-02-08 | 2007-08-08 | 华为技术有限公司 | 网络测试的方法及系统 |
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
-
2016
- 2016-12-28 CN CN201611240083.7A patent/CN108255694A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58169221A (ja) * | 1982-03-30 | 1983-10-05 | Fujitsu Ltd | チヤネル、シユミレ−シヨン方式 |
CN1477800A (zh) * | 2002-08-20 | 2004-02-25 | 华为技术有限公司 | 镜像测试方法 |
CN1737775A (zh) * | 2004-08-18 | 2006-02-22 | 华为技术有限公司 | 一种嵌入式软件自动化测试的装置及其方法 |
CN101013977A (zh) * | 2007-02-08 | 2007-08-08 | 华为技术有限公司 | 网络测试的方法及系统 |
CN101833498A (zh) * | 2009-07-31 | 2010-09-15 | 北京伟晨豪嘉科技有限责任公司 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052325A1 (zh) * | 2019-09-16 | 2021-03-25 | 上海御渡半导体科技有限公司 | 一种离线调试方法 |
CN112612712A (zh) * | 2020-12-29 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种基于扩展脚本的软件断点调试方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7496467B2 (en) | Automatic test equipment operating architecture | |
CN109361562B (zh) | 一种基于关联网络设备接入的自动化测试方法 | |
CN110380939B (zh) | 一种用电信息采集系统中本地通信协议的一致性测试方法及系统 | |
KR101134735B1 (ko) | 소프트웨어 컴포넌트 설계정보를 이용한 소프트웨어 테스트 방법 및 시스템 | |
CN108132876B (zh) | 一种基于注入方式的嵌入式软件目标码单元测试方法 | |
CN106021101B (zh) | 对移动终端进行测试的方法及装置 | |
CN103488513B (zh) | 设备即插即用通用驱动方法 | |
CN110405759A (zh) | 一种芯片控制系统 | |
CN103530209B (zh) | 一种密码键盘自动化测试方法 | |
CN109614321A (zh) | 用于ats软件的持续集成和交付的系统 | |
CN113672441A (zh) | 对智能设备的测试方法及装置 | |
CN108255694A (zh) | 基于解释器的测试方法及系统 | |
US9823996B2 (en) | Debugging code for controlling intelligent devices using log data from executed object code | |
JPWO2005036402A1 (ja) | テストプログラムデバッグ装置、半導体試験装置、テストプログラムデバッグ方法、及び試験方法 | |
KR101019166B1 (ko) | 내장형 소프트웨어의 테스트 자동화 장치 및 그 방법 | |
CN109885327A (zh) | 一种升级cpld的方法及装置 | |
JP7157335B2 (ja) | Apiアダプタ試験システム、apiアダプタ試験支援装置、apiアダプタ試験支援方法、および、apiアダプタ試験支援プログラム | |
CN107222586A (zh) | 一种自动识别局域网内bmc ip的方法 | |
US20060080636A1 (en) | Method of building intelligent platform management interface firmware architecture | |
CN115833964A (zh) | 双模通信模块的性能测试方法和性能测试系统 | |
US9798649B1 (en) | Debugging code controlling resource-constrained intelligent devices contemporaneously with executing object code | |
JP5327019B2 (ja) | ソフトウェア自動試験方式 | |
CN109144563A (zh) | 应用组件构建打包方法、装置及计算机存储介质 | |
CN107229567A (zh) | 一种ipmi固件自动化测试系统 | |
CN111538606A (zh) | 一种测试模拟Dubbo接口的方法、装置及设备 |
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 |
Application publication date: 20180706 |
|
RJ01 | Rejection of invention patent application after publication |