CN106126411B - 一种对被测程序代码进行测试的方法和装置 - Google Patents

一种对被测程序代码进行测试的方法和装置 Download PDF

Info

Publication number
CN106126411B
CN106126411B CN201610414814.9A CN201610414814A CN106126411B CN 106126411 B CN106126411 B CN 106126411B CN 201610414814 A CN201610414814 A CN 201610414814A CN 106126411 B CN106126411 B CN 106126411B
Authority
CN
China
Prior art keywords
program code
language
tested
case
test
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.)
Active
Application number
CN201610414814.9A
Other languages
English (en)
Other versions
CN106126411A (zh
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.)
Chengdu kugou business incubator management Co.,Ltd.
Original Assignee
Guangzhou Kugou Computer Technology Co 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 Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201610414814.9A priority Critical patent/CN106126411B/zh
Publication of CN106126411A publication Critical patent/CN106126411A/zh
Application granted granted Critical
Publication of CN106126411B publication Critical patent/CN106126411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/3684Test 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)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种对被测程序代码进行测试的方法和装置,属于软件开发领域。所述方法包括:获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;根据所述基于第二语言的程序代码,对所述被测程序代码进行测试。采用本发明,可以提高测试效率。

Description

一种对被测程序代码进行测试的方法和装置
技术领域
本发明涉及软件开发领域,特别涉及一种对被测程序代码进行测试的方法和装置。
背景技术
在软件开发领域,开发人员在编码过程中常常需要进行自测,即需要编写测试用例(即测试程序代码)对开发的代码(可称为被测程序代码)进行测试(比如,开发人员可以编写某几种场景下的测试用例,测试被测程序代码在该场景下是否可以正常运行),被测程序代码编写完成后,还需要将其交给测试人员进行大量测试,测试人员需要编写更多的测试用例进行测试。
一般,开发人员采用Java语言编写被测程序代码和测试程序代码,比如采用junit(Java语言的单元测试框架)进行测试,而测试人员采用更适合进行大量测试的测试工具,比如,采用robotframework(python语言的功能自动化测试框架)进行测试,也就是说,测试人员需要根据开发人员采用java语言编写的被测程序代码,采用python语言编写测试程序代码,进行测试。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
基于上述处理方式,技术人员在自测时采用Java语言编写过的被测程序代码和测试程序代码,测试人员往往还要采用python语言重新编写被测程序代码和测试程序代码,进而,导致测试效率比较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种对被测程序代码进行测试的方法和装置。所述技术方案如下:
第一方面,提供了一种对被测程序代码进行测试的方法,所述方法包括:
获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
根据所述基于第二语言的程序代码,对所述被测程序代码进行测试。
可选的,所述方法还包括:
在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
获取所述基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
将所述输入参数值、预期输出值、所述符合预设格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述根据所述基于第二语言的程序代码,对所述被测程序代码进行测试,包括:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
这样,可以将基于第一语言的程序代码转换为符合预设测试工具的格式的程序代码,即可以将开发人员编写的程序代码,转换为符合更适合进行大量测试的测试工具的格式的程序代码,无需人为改或重新编写测试用例,从而,可以提高测试效率。
可选的,所述用例模板的文件格式为预设的文本文档格式。
可选的,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
可选的,所述获取目标测试用例对应的基于第一语言的程序代码,包括:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
第二方面,提供了一种对被测程序代码进行测试的装置,所述装置包括:
第一获取模块,用于获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
转换模块,用于对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
测试模块,用于根据所述基于第二语言的程序代码,对所述被测程序代码进行测试。
可选的,所述装置还包括:
第二获取模块,用于在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
第三获取模块,用于获取所述基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
添加模块,用于将所述输入参数值、预期输出值、所述符合预设格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述测试模块,用于:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
可选的,所述用例模板的文件格式为预设的文本文档格式。
可选的,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
可选的,所述第一获取模块,用于:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,终端可以对目标测试用例对应的基于第一语言的测试程序代码和被测程序代码进行语言转换处理,得到基于第二语言的测试程序代码和被测程序代码,进而,可以基于第二语言的测试程序代码和被测程序代码,对被测程序代码进行测试,其中,第一语言可以是开发人员编写程序代码时采用的语言,第二语言可以是测试人员编写程序代码时采用的语言。这样,终端可以自动将开发人员编写过的基于第一语言的程序代码,转化为基于第二语言的程序代码,即测试人员无需重新编写开发人员已经编写过的程序代码,从而,可以提高测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种对被测程序代码进行测试的方法流程图;
图2是本发明实施例提供的一种界面示意图;
图3是本发明实施例提供的一种对被测程序代码进行测试的装置结构示意图;
图4是本发明实施例提供的一种对被测程序代码进行测试的装置结构示意图;
图5是本发明实施例提供的一种终端结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种对被测程序代码进行测试的方法,该方法的执行主体为终端。其中,该终端可以是具有语言转换功能的终端,可以是PC(Personal Computer,个人电脑)。该终端中可以设置有处理器、存储器,处理器可以用于语言转换处理以及对被测程序代码进行测试相关的处理,存储器可以用于存储下述处理过程中需要和产生的数据。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,获取目标测试用例对应的基于第一语言的程序代码,其中,程序代码包括被测程序代码和测试程序代码。
其中,被测程序代码可以是开发人员编写的程序代码,需要被测试的程序代码,测试程序代码可以是用于对被测程序代码进行测试的程序代码。
在实施中,在软件开发领域,开发人员编写完程序代码(即被测程序代码),往往需要对编写完的被测程序代码进行自测,即往往需要编写针对被测程序代码的测试程序代码(可以称为目标测试用例)对被测程序代码进行测试,其中,开发人员编写目标测试用例对应的程序代码(测试程序代码和被测程序代码)往往是采用相同的语言,即基于第一语言编写被测程序代码和测试程序代码,一般开发人员采用的语言是该被测程序代码上线时采用的语言,比如,可以是Java语言,或者是C语言等。开发人员编写完测试程序代码和被测程序代码后,终端可以获取开发人员编写目标测试用例对应的基于第一语言的程序代码,其中,目标测试用例对应的基于第一语言的程序代码既是开发人员编写的基于第一语言的测试程序代码和被测程序代码。
可选的,终端可以在接收到语言转换指令时,获取基于第一语言的程序代码,相应的,步骤101的处理过程可以如下:当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
在实施中,终端中可以安装有具有语言转换功能的应用程序,用户通过操作,可以触发终端显示有语言转换界面,该语言转换界面中可以显示有语言转换选项,当用户需要对开发人员编写好的基于第一语言的测试用例进行语言转换时,可以点击该语言转换选项,将会触发终端显示选择窗口,测试用例选择窗口中可以显示有测试用例列表,如图2所示,用户可以选择其中的一个(可以将用户选择的测试用例称为目标测试用例),该测试用例选择窗口中还可以显示有确定按键和取消按键,用户可以根据需要,点击其中的一个按键,当用户点击取消按键时,将会触发终端关闭测试用例选择窗口,当用户点击确定按键时,终端将会接收到语言转换指令,此时,终端可以获取目标测试用例对应的基于第一语言的测试程序代码和被测程序代码。
步骤102,对基于第一语言的程序代码进行语言转换处理,得到目标测试用例对应的基于第二语言的程序代码。
在实施中,终端获取到目标测试用例对应的基于第一语言的程序代码后,可以对基于第一语言的程序代码(测试程序代码和被测程序代码)进行语言转换处理,得到目标测试用例对应的基于第二语言的程序代码,即得到基于第二语言的被测程序代码和测试程序代码。
可选的,终端还可以将基于第二语言的程序代码转化为符合预设测试工具的格式的程序代码,相应的,处理过程可以如下:在目标测试用例对应的基于第二语言的测试程序代码中,获取被测程序代码对应的输入参数值和预期输出值;获取基于第二语言的被测程序代码中的目标函数的程序代码,将目标函数的程序代码转换为符合预设测试工具的格式的程序代码;将输入参数值、预期输出值、符合预设格式的程序代码以及目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例。
在实施中,终端得到基于第二语言的测试程序代码后,终端可以在目标测试用例对应的基于第二语言的测试程序代码中,获取被测程序代码对应的输入参数值和预期输出值,其中,预期输出值可以是测试程序代码中的输入参数值,经过被测程序代码后应该得到的输出值,例如,被测程序代码的功能是得到参数a和b的和,测试程序中的输入参数值即是a和b的具体值,可以是a为1,b为2,则预期输出值则是3。然后,终端可以在基于第二语言的被测程序代码中,获取完成被测试程序代码对应的功能的程序代码,其中,一般完成被测试程序代码对应的功能的程序代码会包含在一个函数中,即终端可以在基于第二语言的被测程序代码中,获取函数的程序代码,具体的,可以基于预设的字符串获取目标函数的程序代码,比如,第二语言为Python语言,预设字符串可以是def字符串,当解析到预设字符串后,可以将预设字符串后的字符串作为目标函数的函数标识(即函数名),进而,可以将解析到的目标函数包括的程序代码作为目标函数的程序代码,获取到目标函数的程序代码后,可以将其转换为符合预设测试工具的格式的程序代码,例如,预设测试工具为python语言的功能自动化测试框架robotframework,此时,可以将目标函数的函数标识作为robotframework中的关键字的关键字标识,将目标函数的程序代码转换为符合robotframework的格式的程序代码,并将其作为关键字包括的程序代码,即将目标函数的程序代码封装为符合预设测试工具(robotframework)的格式的关键字。最后,终端可以获取预先存储的用例模板,并将获取的输入参数值、预期输出值、符合预设格式的程序代码以及目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例,例如,预先存储的用例模板是应用于robotframework的用例模板,可以将预期输出值设置在变量部分以及用例部分中对应的位置,将输入参数值设置在用例部分对应的位置,其中,可以根据目标函数的功能以预设的格式设置在用例部分对应的位置,比如,目标函数为加法函数,输入参数值为1,2,则可以将1+2设置在用例模板中的对应位置。另外,终端还可以获取目标用例的用例标识,并将其添加到用例模板的相应位置。此外,终端还可以自定义用例模板。
可选的,预先存储的用例模板的文件格式可以为预设的文本文档格式。
在实施中,用例模板的文件格式可以是文本文档格式,其中,技术人员可以根据需要对其中的程序代码进行修改。
可选的,第一语言可以为java语言,第二语言可以为python语言,预设测试工具可以为python语言的功能自动化测试框架robotframework。
步骤103,根据基于第二语言的程序代码,对被测程序代码进行测试。
在实施中,终端得到目标用例对应的基于第二语言的程序代码后,可以根据基于第二语言的程序代码,对被测程序代码进行测试。
可选的,针对上述将基于第二语言的程序代码转化为符合预设测试工具的格式的程序代码的情况,相应的,步骤103的处理过程可以如下:基于预设测试工具,运行符合预设测试工具的格式的测试用例,对被测程序代码进行测试。
在实施中,终端可以通过预设测试工具,运行符合预设测试工具的格式的测试用例,对被测程序代码进行测试。当程序可以正常运行,并且得到的输出结果与预期输出值一致时,可以认为测试通过,被测程序代码没有问题。
本发明实施例中,终端可以对目标测试用例对应的基于第一语言的测试程序代码和被测程序代码进行语言转换处理,得到基于第二语言的测试程序代码和被测程序代码,进而,可以基于第二语言的测试程序代码和被测程序代码,对被测程序代码进行测试,其中,第一语言可以是开发人员编写程序代码时采用的语言,第二语言可以是测试人员编写程序代码时采用的语言。这样,终端可以自动将开发人员编写过的基于第一语言的程序代码,转化为基于第二语言的程序代码,即测试人员无需重新编写开发人员已经编写过的程序代码,从而,可以提高测试效率。
基于相同的技术构思,本发明实施例还提供了一种对被测程序代码进行测试的装置,如图3所示,该装置包括:
第一获取模块310,用于获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
转换模块320,用于对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
测试模块330,用于根据所述基于第二语言的程序代码,对所述被测程序代码进行测试。
可选的,如图4所示,所述装置还包括:
第二获取模块340,用于在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
第三获取模块350,用于获取所述基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
添加模块360,用于将所述输入参数值、预期输出值、所述符合预设格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述测试模块330,用于:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
可选的,所述用例模板的文件格式为预设的文本文档格式。
可选的,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
可选的,所述第一获取模块310,用于:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
本发明实施例中,终端可以对目标测试用例对应的基于第一语言的测试程序代码和被测程序代码进行语言转换处理,得到基于第二语言的测试程序代码和被测程序代码,进而,可以基于第二语言的测试程序代码和被测程序代码,对被测程序代码进行测试,其中,第一语言可以是开发人员编写程序代码时采用的语言,第二语言可以是测试人员编写程序代码时采用的语言。这样,终端可以自动将开发人员编写过的基于第一语言的程序代码,转化为基于第二语言的程序代码,即测试人员无需重新编写开发人员已经编写过的程序代码,从而,可以提高测试效率。
需要说明的是:上述实施例提供的对被测程序代码进行测试的装置在对被测程序代码进行测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的对被测程序代码进行测试的装置与对被测程序代码进行测试的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图5,其示出了本发明实施例所涉及的终端的结构示意图,该终端可以用于实施上述实施例中提供的对被测程序代码进行测试的方法。具体来讲:
终端500可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图5中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端500还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端500之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端500的通信。
WiFi属于短距离无线传输技术,终端500通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了WiFi模块170,但是可以理解的是,其并不属于终端500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端500还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端500还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端500的显示单元是触摸屏显示器,终端500还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
根据所述基于第二语言的程序代码,对所述被测程序代码进行测试。
可选的,所述方法还包括:
在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
获取所述基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
将所述输入参数值、预期输出值、所述符合预设格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述根据所述基于第二语言的程序代码,对所述被测程序代码进行测试,包括:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
可选的,所述用例模板的文件格式为预设的文本文档格式。
可选的,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
可选的,所述获取目标测试用例对应的基于第一语言的程序代码,包括:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
本发明实施例中,终端可以对目标测试用例对应的基于第一语言的测试程序代码和被测程序代码进行语言转换处理,得到基于第二语言的测试程序代码和被测程序代码,进而,可以基于第二语言的测试程序代码和被测程序代码,对被测程序代码进行测试,其中,第一语言可以是开发人员编写程序代码时采用的语言,第二语言可以是测试人员编写程序代码时采用的语言。这样,终端可以自动将开发人员编写过的基于第一语言的程序代码,转化为基于第二语言的程序代码,即测试人员无需重新编写开发人员已经编写过的程序代码,从而,可以提高测试效率。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种对被测程序代码进行测试的方法,其特征在于,所述方法包括:
获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
根据所述基于第二语言的程序代码,对所述被测程序代码进行测试;
在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
获取基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
将所述输入参数值、预期输出值、所述符合预设测试工具的格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述根据所述基于第二语言的程序代码,对所述被测程序代码进行测试,包括:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
2.根据权利要求1所述的方法,其特征在于,所述用例模板的文件格式为预设的文本文档格式。
3.根据权利要求2所述的方法,其特征在于,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
4.根据权利要求1所述的方法,其特征在于,所述获取目标测试用例对应的基于第一语言的程序代码,包括:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
5.一种对被测程序代码进行测试的装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标测试用例对应的基于第一语言的程序代码,其中,所述程序代码包括被测程序代码和测试程序代码;
转换模块,用于对所述基于第一语言的程序代码进行语言转换处理,得到所述目标测试用例对应的基于第二语言的程序代码;
测试模块,用于根据所述基于第二语言的程序代码,对所述被测程序代码进行测试;
第二获取模块,用于在所述目标测试用例对应的基于第二语言的测试程序代码中,获取所述被测程序代码对应的输入参数值和预期输出值;
第三获取模块,用于获取基于第二语言的被测程序代码中的目标函数的程序代码,将所述目标函数的程序代码转换为符合预设测试工具的格式的程序代码;
添加模块,用于将所述输入参数值、预期输出值、所述符合预设测试工具的格式的程序代码以及所述目标函数的函数标识,对应添加到预先存储的用例模板中的预设位置处,得到符合预设测试工具的格式的测试用例;
所述测试模块,用于:
基于所述预设测试工具,运行所述符合预设测试工具的格式的测试用例,对所述被测程序代码进行测试。
6.根据权利要求5所述的装置,其特征在于,所述用例模板的文件格式为预设的文本文档格式。
7.根据权利要求6所述的装置,其特征在于,所述第一语言为java语言,所述第二语言为python语言,所述预设测试工具为python语言的功能自动化测试框架robotframework。
8.根据权利要求5所述的装置,其特征在于,所述第一获取模块,用于:
当接收到语言转换指令时,获取目标测试用例对应的基于第一语言的程序代码。
CN201610414814.9A 2016-06-13 2016-06-13 一种对被测程序代码进行测试的方法和装置 Active CN106126411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610414814.9A CN106126411B (zh) 2016-06-13 2016-06-13 一种对被测程序代码进行测试的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610414814.9A CN106126411B (zh) 2016-06-13 2016-06-13 一种对被测程序代码进行测试的方法和装置

Publications (2)

Publication Number Publication Date
CN106126411A CN106126411A (zh) 2016-11-16
CN106126411B true CN106126411B (zh) 2019-01-01

Family

ID=57270192

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610414814.9A Active CN106126411B (zh) 2016-06-13 2016-06-13 一种对被测程序代码进行测试的方法和装置

Country Status (1)

Country Link
CN (1) CN106126411B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153665A (zh) * 2016-12-02 2018-06-12 北京奇虎科技有限公司 数据测试方法及装置
CN108153667B (zh) * 2016-12-06 2023-05-30 三六零科技集团有限公司 自动化测试方法、装置及系统
CN109271311B (zh) * 2017-07-18 2022-11-25 华为机器有限公司 一种需求场景化方法及需求场景化装置
CN109739758B (zh) * 2018-12-28 2022-02-01 北京云测信息技术有限公司 测试用例转换方法和装置
CN109684224B (zh) * 2018-12-29 2020-12-22 深圳点猫科技有限公司 python代码与积木的转换过程的测试方法及装置
CN112433940B (zh) * 2020-11-19 2024-08-13 腾讯科技(深圳)有限公司 软件开发工具包sdk测试方法及相关设备
CN112511386B (zh) * 2020-12-09 2022-07-26 爱瑟福信息科技(上海)有限公司 基于robotframework的车载以太网测试方法、系统以及太网测试设备
CN113656304B (zh) * 2021-08-16 2024-04-30 上海浦东发展银行股份有限公司 一种前端应用程序的测试方法、设备和存储介质
CN116303062B (zh) * 2023-03-27 2023-12-19 广州钛动科技股份有限公司 服务接口的测试方法、装置、终端设备和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339534A (zh) * 2008-06-17 2009-01-07 金蝶软件(中国)有限公司 一种软件测试的方法及装置
CN101719096A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种提高实时嵌入式系统测试脚本执行速度的方法
CN102779091A (zh) * 2012-06-18 2012-11-14 中兴通讯股份有限公司 测试转化方法及装置
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN104572072A (zh) * 2014-12-01 2015-04-29 北京百度网讯科技有限公司 一种对基于mvc模式的程序的语言转换方法与设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9038026B2 (en) * 2011-10-17 2015-05-19 International Business Machines Corporation System and method for automating test automation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339534A (zh) * 2008-06-17 2009-01-07 金蝶软件(中国)有限公司 一种软件测试的方法及装置
CN101719096A (zh) * 2009-12-29 2010-06-02 北京航空航天大学 一种提高实时嵌入式系统测试脚本执行速度的方法
CN102779091A (zh) * 2012-06-18 2012-11-14 中兴通讯股份有限公司 测试转化方法及装置
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN104572072A (zh) * 2014-12-01 2015-04-29 北京百度网讯科技有限公司 一种对基于mvc模式的程序的语言转换方法与设备

Also Published As

Publication number Publication date
CN106126411A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106126411B (zh) 一种对被测程序代码进行测试的方法和装置
CN105404585B (zh) 获取代码覆盖率的方法及装置
CN105320598B (zh) 软件测试方法及装置
CN104965721B (zh) 一种对应用程序进行更新的方法及装置
CN104636047B (zh) 对列表中的对象进行操作的方法、装置及触屏终端
CN106933525B (zh) 一种显示图像的方法和装置
CN104978176B (zh) 应用程序接口调用方法、装置及计算机可读存储介质
CN104077211B (zh) 一种移动终端软件的测试方法及测试系统
CN105740145B (zh) 定位控件中的元素的方法及装置
CN104679381B (zh) 切换聊天窗口的方法及装置
CN105320701B (zh) 功能点测试实现方式的筛选方法、装置及终端
CN104965722B (zh) 一种显示信息的方法及装置
CN105389259B (zh) 一种进行应用程序测试的方法、装置及系统
CN104699501B (zh) 一种运行应用程序的方法及装置
CN104516624B (zh) 一种输入账户信息的方法及装置
CN104991699B (zh) 一种视频显示控制的方法和装置
CN104820546B (zh) 功能信息展示方法和装置
CN109753425A (zh) 弹窗处理方法及装置
CN107219951A (zh) 触控屏控制方法、装置、存储介质及终端设备
CN105807908B (zh) 一种切换工作模式的方法和装置
CN105700620B (zh) 一种执行控制指令的方法和装置
CN108492837A (zh) 音频突发白噪声的检测方法、装置及存储介质
CN105005529B (zh) 一种对应用程序进行测试的方法及装置
CN105302589B (zh) 一种获取卸载信息的方法及装置
CN109062643A (zh) 一种显示界面调整方法、装置及终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 510660 Guangzhou City, Guangzhou, Guangdong, Whampoa Avenue, No. 315, self - made 1-17

Applicant after: Guangzhou KuGou Networks Co., Ltd.

Address before: 510000 B1, building, No. 16, rhyme Road, Guangzhou, Guangdong, China 13F

Applicant before: Guangzhou KuGou Networks Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220329

Address after: 4119, 41st floor, building 1, No.500, middle section of Tianfu Avenue, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610000

Patentee after: Chengdu kugou business incubator management Co.,Ltd.

Address before: No. 315, Huangpu Avenue middle, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd.