CN105808421A - 一种实现白盒测试的方法和测试控制端 - Google Patents
一种实现白盒测试的方法和测试控制端 Download PDFInfo
- Publication number
- CN105808421A CN105808421A CN201410854039.XA CN201410854039A CN105808421A CN 105808421 A CN105808421 A CN 105808421A CN 201410854039 A CN201410854039 A CN 201410854039A CN 105808421 A CN105808421 A CN 105808421A
- Authority
- CN
- China
- Prior art keywords
- test
- control end
- test control
- code
- tested
- 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
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)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现白盒测试的方法和测试控制端,包括需要支持新增测试用例时,根据新增测试用例修改设置在测试控制端中的测试单元的代码,并编译测试控制端的代码,以得到可运行的测试控制端;输入测试命令组给测试控制端,以进行测试。通过本发明提供的技术方案,实现了需要支持新增测试用例时,修改并编译测试控制端的代码,避免了修改并编译被测端的代码,有效减少了测试时间,从而提高了测试效率。
Description
技术领域
本发明涉及测试技术,尤指一种实现白盒测试的方法和测试控制端。
背景技术
众所周知,白盒测试已经成为一种常用的软件测试手段。目前,主流的白盒测试系统包括测试控制端和被测端。测试控制端主要用于接收测试命令组并转发给被测端,以及接收来自被测端的分析结果并进行分析。其中,由一个或一个以上测试命令组成的测试命令组用于描述测试用例,即用于描述针对一个测试需求点的测试环境;分析结果至少包括指示测试是否成功的信息。通常,很多个测试需求点构成测试需求,即白盒测试的测试目标。
被测端包括测试单元、运行单元和需要进行测试的被测单元。其中,测试单元用于将接收到的来自测试控制端的测试命令组转换成测试代码;运行单元,用于将测试代码编译成可执行信息,根据可执行信息测试被测单元并返回测试结果给测试控制端。以测试控制端为例来看,通常本领域中将编译前的测试控制端称为测试控制端的代码,而将编译后的测试控制端称为可运行的测试控制端,简称为测试控制端。
通常,测试控制端采用支持即时编译的编程语言(例如,脚本语言)编写;而被测端采用更容易实现被测单元的软件开发语言如易于实现复杂功能的编程语言(例如,面向对象语言)编写。由于被测端包括功能复杂的被测单元,因此其实现复杂度明显大于测试控制端的实现复杂度,而且易于实现复杂功能的编程语言的编译效率相对于支持即时编译的编程语言的编译效率低得多。综上所述,由于功能明显复杂且采用的编程语言的编译效率较低,因此被测端的编译时间明显大于测试控制端的编译时间。
在上述白盒测试系统中,需要支持新增测试用例时,根据新增测试用例修改被测端中测试单元的代码,修改并编译被测端的代码,以得到可运行的被测端。由于被测端的编译时间较长,这样降低了测试效率,甚至延后产品发布从而带来重大经济损失。
发明内容
为了解决上述技术问题,本发明提供了一种实现白盒测试的方法和测试控制端,能够减少编译时间,从而提高测试效率。
为了达到本发明目的,本发明公开了一种实现白盒测试的方法,包括:
需要支持新增测试用例时,根据新增测试用例修改设置在测试控制端中的测试单元的代码,并编译测试控制端的代码,以得到可运行的测试控制端;
输入测试命令组给测试控制端,以进行测试。
所述进行测试包括:
所述测试控制端将接收到的测试命令组转换成测试代码,并发送给被测端;
被测端将接收到的测试代码编译成可执行信息,根据可执行信息测试被测端中的被测单元,并返回测试结果给所述测试控制端;
所述测试控制端分析返回的测试结果,以得到分析结果。
所述得到可运行的测试控制端的编译为即时编译。
所述测试控制端采用支持即时编译的编程语言进行编程实现。
所述支持即时编译的编程语言为脚本语言。
本发明还公开了一种实现白盒测试的测试控制端,包括接收单元和测试单元,其中,
接收单元,用于接收测试命令组;
测试单元,用于将来自接收单元的的测试命令组转换成测试代码并发送给被测端。
所述测试单元还用于接收所述被测端返回的根据所述测试代码测试所述被测端中的被测单元得到测试结果,并分析返回的测试结果,以得到分析结果。
所述测试控制端采用支持即时编译的编程语言进行编程实现。
所述支持即时编译的编程语言为脚本语言。
与现有技术相比,本发明技术方案包括:需要支持新增测试用例时,根据新增测试用例修改设置在测试控制端中的测试单元的代码,并编译测试控制端的代码,以得到可运行的测试控制端;输入测试命令组给测试控制端,以进行测试。从本发明技术方案来看,通过将测试单元设置在测试控制端中,实现了需要支持新增测试用例时,修改并编译测试控制端的代码,避免了修改并编译被测端的代码,有效减少了编译时间,从而提高了测试效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实现白盒测试的方法的流程图;
图2为本发明实现白盒测试的测试控制端的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实现白盒测试的方法的流程图,如图1所示,包括:
步骤101:需要支持新增测试用例时,根据新增测试用例修改设置在测试控制端中的测试单元的代码。
本步骤的具体实现,属于本领域技术人员的惯用技术手段,不用于限定本发明的保护范围,此处不再赘述。这里强调的是,修改测试控制端中的测试单元的代码,而不必修改被测端的代码。
步骤102:编译测试控制端的代码,以得到可运行的测试控制端。
优选地,测试控制端的代码通过支持即时编译的脚本语言进行编写的。
在本发明的一个实施例中,测试控制端的代码通过Python语言编写,本步骤中的编译测试控制端的代码的具体实现为:对测试控制端的代码进行即时编译。
在本发明的另一个实施例中,测试控制端的代码通过Ruby语言编写。
需要说明的是,本步骤是利用测试控制端的编程语言对应的编译工具进行的。
步骤103:输入测试命令组给测试控制端,以进行测试。
其中,测试命令组可以包括在一个文件中,通常该文件称为测试脚本。测试命令组还可以由一个或一个以上以人机交互方式输入的测试命令组成。
在本发明的一个实施例中,测试脚本保存后,以保存测试脚本的位置信息作为参数启动测试控制端,从而实现输入测试命令组给测试控制端的步骤。
在本发明的另一个实施例中,测试控制端启动后,以人机交互方式接收输入的测试命令组,从而实现了输入测试命令组给测试控制端。
从步骤101~103来看,通过将测试单元设置在测试控制端中,实现了需要支持新增测试用例时,修改并编译测试控制端的代码,避免了修改并编译被测端的代码,有效减少了编译时间,从而提高了测试效率。
步骤103之后还包括:
测试控制端将接收到的测试命令组转换成测试代码,并发送给被测端;被测端将接收到的测试代码编译成可执行信息,根据可执行信息测试被测端中的被测单元,并返回测试结果给测试控制端;测试控制端分析返回的测试结果,以得到分析结果。
其中,可执行信息通常为计算设备如计算机可执行的二进制比特流。
其中,如何将测试命令组转换成测试代码,将测试代码编译成可执行信息,以及根据可执行信息测试被测端中的被测单元的具体实现,属于本领域技术人员的惯用技术手段,不用于限定本发明的保护范围,此处不再赘述。
不难看出,测试命令组与测试代码一一对应,由于测试命令组用于描述测试用例,因此测试代码也用于描述测试用例。以测试控制端采用Python语言,被测端采用Java语言编写为例来看,测试命令为Python语言可以识别的信息,测试代码为Java语言可以识别的信息。
在本发明的一个实施例中,上述步骤中的接收测试命令组的具体实现为:接收测试脚本并提取测试命令组。
图2为本发明实现白盒测试的测试控制端的组成结构示意图,如图2所示,测试控制端包括接收单元和测试单元,其中,
接收单元,用于接收测试命令组;
测试单元,用于将来自接收单元的的测试命令组转换成测试代码并发送给被测端。
不难看出,测试单元实现在测试控制端,实现了需要支持新增测试用例时,修改并编译测试控制端的代码,避免了修改并编译被测端的代码,有效减少了编译时间,从而提高了测试效率。
优选地,在本发明的一个实施例中,测试控制端采用支持即时编译的编程语言如脚本语言进行编程实现。
测试单元还用于接收被测端返回的根据测试代码测试被测端中的被测单元得到测试结果,并分析返回的测试结果,以得到分析结果。
需要说明的是,测试控制端和被测端可以设置在同一计算设备如服务器上,也可以设置在不同的计算设备上。
虽然本发明所揭露的实施方式如上所述,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (9)
1.一种实现白盒测试的方法,其特征在于,该方法包括:
需要支持新增测试用例时,根据新增测试用例修改设置在测试控制端中的测试单元的代码,并编译测试控制端的代码,以得到可运行的测试控制端;
输入测试命令组给测试控制端,以进行测试。
2.根据权利要求1所述的方法,其特征在于,所述进行测试包括:
所述测试控制端将接收到的测试命令组转换成测试代码,并发送给被测端;
被测端将接收到的测试代码编译成可执行信息,根据可执行信息测试被测端中的被测单元,并返回测试结果给所述测试控制端;
所述测试控制端分析返回的测试结果,以得到分析结果。
3.根据权利要求1或2所述的方法,其特征在于,所述得到可运行的测试控制端的编译为即时编译。
4.根据权利要求1或2所述的方法,其特征在于,所述测试控制端采用支持即时编译的编程语言进行编程实现。
5.根据权利要求4所述的方法,其特征在于,所述支持即时编译的编程语言为脚本语言。
6.一种实现白盒测试的测试控制端,其特征在于,包括接收单元和测试单元,其中,
接收单元,用于接收测试命令组;
测试单元,用于将来自接收单元的的测试命令组转换成测试代码并发送给被测端。
7.根据权利要求6所述的测试控制端,其特征在于,所述测试单元还用于接收所述被测端返回的根据所述测试代码测试所述被测端中的被测单元得到测试结果,并分析返回的测试结果,以得到分析结果。
8.根据权利要求6或7所述的测试控制端,其特征在于,所述测试控制端采用支持即时编译的编程语言进行编程实现。
9.根据权利要求8所述的测试控制端,其特征在于,所述支持即时编译的编程语言为脚本语言。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854039.XA CN105808421A (zh) | 2014-12-31 | 2014-12-31 | 一种实现白盒测试的方法和测试控制端 |
PCT/CN2015/084507 WO2016107145A1 (zh) | 2014-12-31 | 2015-07-20 | 一种实现白盒测试的方法和测试控制端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410854039.XA CN105808421A (zh) | 2014-12-31 | 2014-12-31 | 一种实现白盒测试的方法和测试控制端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105808421A true CN105808421A (zh) | 2016-07-27 |
Family
ID=56284104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410854039.XA Pending CN105808421A (zh) | 2014-12-31 | 2014-12-31 | 一种实现白盒测试的方法和测试控制端 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105808421A (zh) |
WO (1) | WO2016107145A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710547A (zh) * | 2004-06-16 | 2005-12-21 | 华为技术有限公司 | 软件测试方法及其系统 |
CN1862511A (zh) * | 2006-02-28 | 2006-11-15 | 华为技术有限公司 | 一种软件单元的测试方法 |
CN101110024A (zh) * | 2007-08-14 | 2008-01-23 | 中兴通讯股份有限公司 | 一种单元测试系统和方法 |
US20090172664A1 (en) * | 2008-01-02 | 2009-07-02 | International Business Machines Corporation | Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1265569C (zh) * | 2002-07-23 | 2006-07-19 | 华为技术有限公司 | 一种使用脚本补丁的白盒测试系统及其测试方法 |
CN1949186A (zh) * | 2006-11-17 | 2007-04-18 | 深圳市领测科技有限公司 | 一种程序调测系统及用于程序调测系统的映射方法 |
CN101212759B (zh) * | 2006-12-26 | 2011-03-02 | 中兴通讯股份有限公司 | 一种手机软件集成测试方法 |
CN101196817A (zh) * | 2008-01-04 | 2008-06-11 | 福建星网锐捷网络有限公司 | 测试用例生成方法及系统 |
CN103379041B (zh) * | 2012-04-28 | 2018-04-20 | 国际商业机器公司 | 一种系统检测方法和装置以及流量控制方法和设备 |
-
2014
- 2014-12-31 CN CN201410854039.XA patent/CN105808421A/zh active Pending
-
2015
- 2015-07-20 WO PCT/CN2015/084507 patent/WO2016107145A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710547A (zh) * | 2004-06-16 | 2005-12-21 | 华为技术有限公司 | 软件测试方法及其系统 |
CN1862511A (zh) * | 2006-02-28 | 2006-11-15 | 华为技术有限公司 | 一种软件单元的测试方法 |
CN101110024A (zh) * | 2007-08-14 | 2008-01-23 | 中兴通讯股份有限公司 | 一种单元测试系统和方法 |
US20090172664A1 (en) * | 2008-01-02 | 2009-07-02 | International Business Machines Corporation | Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests |
Also Published As
Publication number | Publication date |
---|---|
WO2016107145A1 (zh) | 2016-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059009B (zh) | 用于测试代码文件的方法和装置 | |
US11215960B2 (en) | Engineering apparatus, control method of engineering apparatus, and program for generating executable code for controlling target hardware | |
CN105068927A (zh) | 基于关键字驱动的城轨传动控制单元自动化测试方法 | |
CN109799971B (zh) | 一种文件生成装置和方法 | |
US20100199269A1 (en) | Program optimization device and program optimization method | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
CN103714288B (zh) | 一种数据流跟踪方法 | |
CN105094836A (zh) | 一种生成说明文档的方法和装置 | |
CN101344856A (zh) | 增加任务执行速度的方法和设备 | |
CN103631708A (zh) | 程序测试方法及程序测试装置 | |
CN104699547A (zh) | JavaEE应用类加载冲突分析方法和装置 | |
US20070277165A1 (en) | Debugging Interpreted Input | |
CN104102581A (zh) | 一种实现单元测试的方法及装置 | |
CN105988854A (zh) | 动态编译方法及装置 | |
CN104881396A (zh) | 图形化程序的编译文件形成方法 | |
US20090187897A1 (en) | Compiling method and compiling program | |
CN1710547A (zh) | 软件测试方法及其系统 | |
US9235391B2 (en) | Optimization of software symbol tables | |
CN105786465A (zh) | 一种脚本语言执行方法及装置 | |
CN105700934A (zh) | 一种智能编译方法和智能编译系统 | |
US8843908B2 (en) | Compiler validation via program verification | |
US20080307177A1 (en) | Program conversion device | |
CN101937389A (zh) | 一种让代码分析工具获取被检测软件包编译过程的方法 | |
CN105808421A (zh) | 一种实现白盒测试的方法和测试控制端 | |
US9015679B2 (en) | System and method for translating business application functions into DBMS internal programming language procedures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160727 |