CN112199270A - 一种程序测试方法、装置、设备及介质 - Google Patents

一种程序测试方法、装置、设备及介质 Download PDF

Info

Publication number
CN112199270A
CN112199270A CN201910611552.9A CN201910611552A CN112199270A CN 112199270 A CN112199270 A CN 112199270A CN 201910611552 A CN201910611552 A CN 201910611552A CN 112199270 A CN112199270 A CN 112199270A
Authority
CN
China
Prior art keywords
program
test
test script
system interface
tested program
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.)
Granted
Application number
CN201910611552.9A
Other languages
English (en)
Other versions
CN112199270B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910611552.9A priority Critical patent/CN112199270B/zh
Publication of CN112199270A publication Critical patent/CN112199270A/zh
Application granted granted Critical
Publication of CN112199270B publication Critical patent/CN112199270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种程序测试方法,包括:获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。由于无需添加测试代码,测试版本和发布版本保持一致,测试质量得到保障,而且也避免了增加、删除测试代码带来的额外工作量。此外,通过脚本自动模拟系统接口异常,无需重复编译,进一步提高了测试效率。本申请还公开了对应的装置、设备及介质。

Description

一种程序测试方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种程序测试方法、装置、设备及计算机存储介质。
背景技术
随着计算机技术的发展,各种功能的应用程序应运而生。研发人员在开发应用程序时,为了保障应用程序的可靠性,常常需要测试人员对应用程序进行测试,尤其是系统级测试。所谓系统级测试是指模拟系统接口异常,测试应用程序在该系统接口异常时的表现是否符合预期。
目前,测试人员是通过在源码中添加临时测试代码,然后重新编译应用程序进行测试。测试完成后,在版本发布前去掉测试代码,再重新编译发布版本。
然而,在源码中添加测试代码一方面会导致测试版本与发布版本不一致,无法保证最终发布版本质量,另一方面增加、删除测试代码带来额外的工作量及不确定因素,影响测试效率及版本质量。
发明内容
本申请提供了一种程序测试方法,其通过执行测试脚本实现对被测程序的测试,一方面保障了测试质量,另一方面提高了测试效率。本申请还提供了对应的装置、设备、介质以及计算机程序产品。
本申请一方面提供了一种程序测试方法,所述方法包括:
获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
本申请一方面提供了一种程序测试装置,所述装置包括:
获取模块,用于获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
第一执行模块,用于执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
第二执行模块,用于执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
本申请一方面提供了一种设备,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行本申请所述的程序测试方法。
本申请一方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请所述的程序测试方法。
本申请一方面提供了一种计算机程序产品,当其在计算机上运行时,使得所述计算机执行本申请所述的程序测试方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中提供了一种程序测试方法,在进行程序测试时,先获取与被测程序对应的测试脚本,该测试脚本包括gdb命令集,gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常,然后执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常,如此,再执行被测程序,可以验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。由于无需添加测试代码,测试版本和发布版本保持一致,测试质量得到保障,而且也避免了增加、删除测试代码带来的额外工作量。此外,通过脚本自动模拟系统接口异常,无需重复编译,进一步提高了测试效率。
附图说明
图1为本申请实施例中程序测试方法的场景架构图;
图2为本申请实施例中程序测试方法的流程图;
图3为本申请实施例中生成测试脚本的流程图;
图4为本申请实施例中程序测试方法的应用场景示意图;
图5为本申请实施例中程序测试装置的一个结构示意图;
图6为本申请实施例中程序测试装置的一个结构示意图;
图7为本申请实施例中程序测试装置的一个结构示意图;
图8为本申请实施例中程序测试装置的一个结构示意图;
图9为本申请实施例中终端的一个结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
针对在源码中添加测试代码一方面会导致测试版本与发布版本不一致,无法保证最终发布版本质量,另一方面增加、删除测试代码带来额外的工作量及不确定因素,影响测试效率及版本质量的问题,本申请提供了一种程序测试方法,其通过将gdb命令集封装成测试脚本,通过执行测试脚本自动模拟系统接口异常,此时执行被测程序,可以验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。由于无需添加测试代码,测试版本和发布版本保持一致,测试质量得到保障,而且也避免了增加、删除测试代码带来的额外工作量。此外,通过脚本自动模拟系统接口异常,无需重复编译,进一步提高了测试效率。
可以理解,本申请提供的程序测试方法可以应用于任意具有数据处理能力的处理设备。该处理设备具体可以是终端,包括但不限于台式机、笔记本电脑、便携式平板电脑、智能手机等,该处理设备也可以是服务器。处理设备可以是独立的,也可以是多个设备组成的集群。为了便于理解,下文均以处理设备为终端作为示例,对本申请的程序测试方法进行介绍。
在具体实现时,上述程序测试方法可以以计算机程序的形式存储于处理设备中。处理设备通过执行计算机程序实现上述程序测试方法。需要说明的是,计算机程序可以是独立的,也可以是集成于其他计算机程序之上的功能模块、插件或者小程序等。
在实际应用时,本申请提供的程序测试方法可以但不限于应用于如图1所示的应用环境中。
如图1所示,终端100从脚本库200中获取与被测程序对应的测试脚本,该测试脚本包括gdb命令集,gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常,然后终端100执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常,接着执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
为了使得本申请的技术方案更加清楚、易于理解,下面将从终端的角度,本申请提供的程序测试方法的各个步骤进行详细说明。
参见图2所示的程序测试方法的流程图,该方法包括:
S201:获取与被测程序对应的测试脚本。
所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常。其中,gdb即GNU Debugger,其为操作系统如Unix/Linux下的调试工具,该调试工具提供了多种命令,以便测试人员基于该命令实现程序运行、断点停止、测试和修正等等。
在具体实现时,终端可以通过如下方式获取与被测程序对应的测试脚本:
一种实现方式为,测试人员手动指定测试脚本,具体地,测试人员可以触发选中操作,终端响应于该选中操作,获取被选中的测试脚本作为与被测程序对应的测试脚本。
另一种实现方式为,在获得测试程序后自动匹配测试脚本,具体地,终端根据被测程序的属性信息以及测试脚本的属性信息,获取与被测程序的属性信息相匹配的测试脚本作为与被测程序对应的测试脚本。
其中,属性信息可以包括名称、描述信息等等。以属性信息为名称为例,研发人员在进行程序开发,测试人员在生成测试脚本时可以基于统一的命名规则对被测程序和测试脚本命名,当终端接收到被测程序时,可以将被测程序的名称与脚本库中的测试脚本名称进行匹配,并将名称匹配的测试脚本作为与被测程序对应的测试脚本。
S202:执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常。
指定源码位置是指模拟系统接口异常场景所涉及的系统接口在源码中的位置。例如,模拟系统函数fsync异常时,指定源码位置可以是源码中调用fsync函数的位置。
在实际应用时,测试人员可以在梳理被测程序涉及系统接口调用部分的业务逻辑,基于该业务逻辑确定需要模拟的系统接口异常场景,为了方便描述,将需要模拟的系统接口异常场景涉及的系统接口称作目标系统接口,基于该目标系统接口可以确定指定源码位置。
具体地,终端可以采用高亮等形式突出显示被测程序涉及目标系统接口调用的源码,用户可以触发针对上述源码的选中操作,终端响应于该操作将被选中的源码所在位置确定为指定源码位置。当然,在有些情况下,终端也可以将每一个涉及目标系统接口调用的源码所在位置确定为指定源码位置。指定源码位置可以根据实际需求设置。
而测试脚本是基于gdb命令集生成的,gdb命令集用于在所述被测程序的指定源码位置模拟系统接口异常,因此执行测试脚本可以实现在被测程序的指定源码位置模拟系统接口异常,相当于为被测程序创建了系统接口异常的环境。
S203:执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
预设业务逻辑是指被测程序的源码中预先定义的业务逻辑。该业务逻辑具体为被测程序在系统接口异常时的异常处理逻辑,该异常处理逻辑可以通过条件语句形式进行表达,如:“在……条件下,执行……”等。
在本实施例中,终端在模拟的系统接口异常环境中执行被测程序,可以验证被测程序在系统接口异常时的表现是否符合预设业务逻辑,并根据验证结果进行相应地处理。
在一些可能的实现方式中,当系统接口异常时所述被测程序的表现不符合预设业务逻辑时,终端可以根据被测程序的表现确定错误原因和错误位置,然后根据错误原因以及错误位置生成错误日志。在具体实现时,终端可以将错误分为几类,每一类采用一种原因代码reason code表征,终端在根据被测程序的表现确定错误原因时,确定其reason code即可。
进一步地,终端还可以显示错误日志,如此,测试人员可以基于该错误日志中的错误原因以及错误位置等信息对被测程序的源码进行修正,并以修正后的源码重新进行测试。
在另一些可能的实现方式中,当系统接口异常时所述被测程序的表现符合预设业务逻辑时,终端可以直接生成被测程序的发布版本,以便上线使用。在具体实现时,终端可以利用打包工具,将表现符合预设业务逻辑的源码打包生成所述被测程序的发布版本。
由上可知,本申请实施例提供了一种程序测试方法,该方法通过将用于在所述被测程序的指定源码位置模拟系统接口异常封装为脚本,基于该脚本实现了在不修改源码情况下对被测程序在系统接口异常时的表现是否符合预设业务逻辑进行验证,测试版本和发布版本保持一致,测试质量得到保障,而且也避免了增加、删除测试代码带来的额外工作量。此外,通过脚本自动模拟系统接口异常,无需重复编译,进一步提高了测试效率。
针对图2所示实施例,其实现不修改源码即可测试程序的关键在于测试脚本,为此,本申请实施例还提供了一种测试脚本的生成方法,请参见图3,在图2所示实施例基础上,该方法还包括:
S301:获取gdb命令集。
gdb命令集包括至少一条gdb命令,该gdb命令可以是测试人员根据被测程序涉及系统接口调用部分的业务逻辑确定需要模拟的系统接口异常场景,基于需要模拟的系统接口异常场景确定需要模拟系统接口异常的源码位置,根据上述系统接口异常场景和源码位置所生成的。
为了便于理解,下面结合具体示例进行说明。在该示例中,需要模拟的系统接口异常场景为fsync系统函数异常,则可以确定如下gdb命令:gdb b、gsb info b、gdb c、gdbjump、gdb print用于模拟fsync系统函数异常。在具体实现时,可以根据上述gdb命令以及源码位置生成gdb命令集,以用于在被测程序的指定源码位置模拟系统接口异常。
S302:将所述gdb命令集中的命令逐行写入Here Document生成测试脚本。
Here Document是Linux Shell中一种特殊的重定向方式,它的基本形式如下:
cmd<<delimiter
Here Document Content
Delimiter
其中,cmd为命令行工具,delimiter为起始标识符和结尾标识符。作为起始的delimiter,其前后的空格会被省略掉,作为结尾的delimiter顶格输入,前面不能有任何字符,作为结尾的delimiter后面也不能有任何的字符(包括空格)。Here Document的作用在于将两个delimiter之间的内容(即Here Document Content部分)传递给cmd作为输入参数。具体到本实施例,即是将gdb命令集作为Here Document Content逐行写入从而生成测试脚本。
需要说明的是,图3是以linux shell语言作为示例对生成测试脚本的实现方式进行说明的,在其他可能的实现方式中,还可以采用python等语言生成测试脚本,以用于在被测程序的指定源码位置模拟系统接口异常。
为了使得本申请的技术方案更加易于理解,下面结合一具体场景实施例对本申请的程序测试方法进行介绍。
参见图4所示的应用场景示意图,被测程序为一系统程序,简称被测系统,该被测系统的业务逻辑可以分为三部分,具体为调用系统接口的业务逻辑,在调用系统接口之前的前置业务逻辑,在调用系统接口之后的后置业务逻辑。
终端获取与被测系统对应的测试脚本,该测试脚本包括Here Document 1至HereDocument n,其中,Here Document 1至Here Document n携带有gdb指令集,当其被执行时,可以在被测程序的指定源码位置即图4中调用系统接口的位置模拟系统接口异常。
在此种情形下,终端执行被测系统,具体地,终端首先执行前置业务逻辑,然后执行调用系统接口的业务逻辑,此时由于采用了执行测试脚本的方式模拟系统接口异常,被测系统无法与操作系统中的系统接口交互以获取系统资源,可以验证被测系统在系统接口异常时的表现是否符合预设业务逻辑。
在该示例中,被测系统调用的系统接口具体为fsync,当被测系统在fsync异常时的表现与其源码中预设的异常处理逻辑不符时,终端还可以根据被测系统的表现确定错误原因以及错误位置,并根据该错误原因及错误位置生成错误日志,然后终端显示该错误日志,以便研发测试人员进行调试。
以上为本申请实施例提供的程序测试方法的一些具体实现方式,基于此,本申请还提供了一种程序测试装置,下面将从功能模块化的角度进行介绍。
参见图5所示的程序测试装置的结构示意图,该装置500包括:
获取模块510,用于获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
第一执行模块520,用于执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
第二执行模块530,用于执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
可选的,所述获取模块510具体用于:
响应于用户触发的选中操作,获取被选中的测试脚本作为与被测程序对应的测试脚本;或者,
根据被测程序的属性信息以及测试脚本的属性信息,获取与所述被测程序的属性信息相匹配的测试脚本作为与被测程序对应的测试脚本。
可选的,参见图6,图6为本申请实施例提供的程序测试装置的一个结构示意图,在图5所示结构的基础上,所述装置500还包括脚本生成模块540;
所述获取模块510,还用于获取gdb命令集;
所述脚本生成模块540,用于将所述gdb命令集中的命令逐行写入Here Document生成测试脚本。
可选的,参见图7,图7为本申请实施例提供的程序测试装置的一个结构示意图,在图5所示结构的基础上,所述装置500还包括:
日志生成模块550,用于当所述系统接口异常时所述被测程序的表现不符合预设业务逻辑时,生成错误日志,所述错误日志包括错误原因以及错误位置。
当然,图7也可以是在图6所示结构的基础上还包括上述日志生成模块。
可选的,参见图8,图8为本申请实施例提供的程序测试装置的一个结构示意图,在图5所示结构的基础上,所述装置500还包括:
发布版本生成模块560,用于当所述系统接口异常时所述被测程序的表现符合预设业务逻辑时,生成所述被测程序的发布版本。
其中,图8也可以是在图6所示结构的基础上还包括上述发布版本生成模块。
基于本申请实施例提供的上述方法和装置,本申请实施例还提供了一种设备,下面将从硬件实体化的角度对本申请实施例提供的设备进行介绍。
本申请实施例还提供了一种终端,如图9所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端可以为包括台式机、笔记本电脑、平板电脑、手机、个人数字助理(英文全称:Personal DigitalAssistant,英文缩写:PDA)等任意终端设备,以终端为笔记本电脑为例:
图9示出的是与本申请实施例提供的终端相关的笔记本电脑的部分结构的框图。参考图9,笔记本电脑包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路910、存储器920、输入单元930、显示单元940、传感器950、音频电路960、无线保真(英文全称:wireless fidelity,英文缩写:WiFi)模块970、处理器980、以及电源990等部件。本领域技术人员可以理解,图9中示出的结构并不构成对笔记本电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图9对笔记本电脑的各个构成部件进行具体的介绍:
RF电路910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器980处理;另外,将设计上行的数据发送给基站。通常,RF电路910包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoise Amplifier,英文缩写:LNA)、双工器等。存储器920可用于存储软件程序以及模块,处理器980通过运行存储在存储器920的软件程序以及模块,从而执行笔记本电脑的各种功能应用以及数据处理。存储器920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据笔记本电脑的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元930可用于接收输入的数字或字符信息,以及产生与笔记本电脑的用户设置以及功能控制有关的键信号输入。具体地,输入单元930可包括触控面板931以及其他输入设备932。触控面板931,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板931上或在触控面板931附近的操作),并根据预先设定的程式驱动相应的连接装置。可除了触控面板931,输入单元930还可以包括其他输入设备932。具体地,其他输入设备932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元940可用于显示由用户输入的信息或提供给用户的信息以及笔记本电脑的各种菜单。显示单元940可包括显示面板941,可选的,可以采用液晶显示器(英文全称:Liquid Crystal Display,英文缩写:LCD)、有机发光二极管(英文全称:Organic Light-Emitting Diode,英文缩写:OLED)等形式来配置显示面板941。进一步的,触控面板931可覆盖显示面板941,当触控面板931检测到在其上或附近的触摸操作后,传送给处理器980以确定触摸事件的类型,随后处理器980根据触摸事件的类型在显示面板941上提供相应的视觉输出。虽然在图9中,触控面板931与显示面板941是作为两个独立的部件来实现笔记本电脑的输入和输入功能,但是在某些实施例中,可以将触控面板931与显示面板941集成而实现笔记本电脑的输入和输出功能。
笔记本电脑还可包括至少一种传感器950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板941的亮度。至于笔记本电脑还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路960、扬声器961,传声器962可提供用户与笔记本电脑之间的音频接口。音频电路960可将接收到的音频数据转换后的电信号,传输到扬声器961,由扬声器961转换为声音信号输出;另一方面,传声器962将收集的声音信号转换为电信号,由音频电路960接收后转换为音频数据,再将音频数据输出处理器980处理后,经RF电路910以发送给比如另一笔记本电脑,或者将音频数据输出至存储器920以便进一步处理。
WiFi属于短距离无线传输技术,笔记本电脑通过WiFi模块970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块970,但是可以理解的是,其并不属于笔记本电脑的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器980是笔记本电脑的控制中心,利用各种接口和线路连接整个笔记本电脑的各个部分,通过运行或执行存储在存储器920内的软件程序和/或模块,以及调用存储在存储器920内的数据,执行笔记本电脑的各种功能和处理数据,从而对笔记本电脑进行整体监控。可选的,处理器980可包括一个或多个处理单元;优选的,处理器980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器980中。
笔记本电脑还包括给各个部件供电的电源990(比如电池),优选的,电源可以通过电源管理系统与处理器980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,笔记本电脑还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端所包括的处理器980还具有以下功能:
获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
可选的,处理器980还用于执行本申请实施例提供的文章倒排方法任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种程序测试方法中的任意一种实施方式。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行前述各个实施例所述的一种程序测试方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种程序测试方法,其特征在于,所述方法包括:
获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
2.根据权利要求1所述的方法,其特征在于,所述获取与被测程序对应的测试脚本包括:
响应于用户触发的选中操作,获取被选中的测试脚本作为与被测程序对应的测试脚本;
或者根据被测程序的属性信息以及测试脚本的属性信息,获取与所述被测程序的属性信息相匹配的测试脚本作为与被测程序对应的测试脚本。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取gdb命令集;
将所述gdb命令集中的命令逐行写入Here Document生成测试脚本。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当所述系统接口异常时所述被测程序的表现不符合预设业务逻辑时,生成错误日志,所述错误日志包括错误原因以及错误位置。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
当所述系统接口异常时所述被测程序的表现符合预设业务逻辑时,生成所述被测程序的发布版本。
6.一种程序测试装置,其特征在于,所述装置包括:
获取模块,用于获取与被测程序对应的测试脚本,所述测试脚本包括gdb命令集,所述gdb命令集在被执行时用于在所述被测程序的指定源码位置模拟系统接口异常;
第一执行模块,用于执行所述测试程序对应的测试脚本,以在所述被测程序的指定源码位置模拟系统接口异常;
第二执行模块,用于执行所述被测程序,验证所述被测程序在系统接口异常时的表现是否符合预设业务逻辑。
7.根据权利要求6所述的装置,其特征在于,所述获取模块具体用于:
响应于用户触发的选中操作,获取被选中的测试脚本作为与被测程序对应的测试脚本;或者,
根据被测程序的属性信息以及测试脚本的属性信息,获取与所述被测程序的属性信息相匹配的测试脚本作为与被测程序对应的测试脚本。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括脚本生成模块;
所述获取模块,还用于获取gdb命令集;
所述脚本生成模块,用于将所述gdb命令集中的命令逐行写入Here Document生成测试脚本。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括:
日志生成模块,用于当所述系统接口异常时所述被测程序的表现不符合预设业务逻辑时,生成错误日志,所述错误日志包括错误原因以及错误位置。
10.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括:
发布版本生成模块,用于当所述系统接口异常时所述被测程序的表现符合预设业务逻辑时,生成所述被测程序的发布版本。
CN201910611552.9A 2019-07-08 2019-07-08 一种程序测试方法、装置、设备及介质 Active CN112199270B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910611552.9A CN112199270B (zh) 2019-07-08 2019-07-08 一种程序测试方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910611552.9A CN112199270B (zh) 2019-07-08 2019-07-08 一种程序测试方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN112199270A true CN112199270A (zh) 2021-01-08
CN112199270B CN112199270B (zh) 2024-02-27

Family

ID=74004414

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910611552.9A Active CN112199270B (zh) 2019-07-08 2019-07-08 一种程序测试方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN112199270B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911690A (zh) * 2021-02-09 2022-08-16 阿里巴巴集团控股有限公司 测试方法、系统及计算机程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862511A (zh) * 2006-02-28 2006-11-15 华为技术有限公司 一种软件单元的测试方法
CN102541727A (zh) * 2010-12-17 2012-07-04 无锡江南计算技术研究所 一种程序调试方法及系统
CN107368408A (zh) * 2017-05-31 2017-11-21 中国船舶工业综合技术经济研究院 一种面向接口的软件故障注入自动化测试方法
CN108073495A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 应用程序崩溃原因的定位方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862511A (zh) * 2006-02-28 2006-11-15 华为技术有限公司 一种软件单元的测试方法
CN102541727A (zh) * 2010-12-17 2012-07-04 无锡江南计算技术研究所 一种程序调试方法及系统
CN108073495A (zh) * 2016-11-18 2018-05-25 腾讯科技(深圳)有限公司 应用程序崩溃原因的定位方法及装置
CN107368408A (zh) * 2017-05-31 2017-11-21 中国船舶工业综合技术经济研究院 一种面向接口的软件故障注入自动化测试方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911690A (zh) * 2021-02-09 2022-08-16 阿里巴巴集团控股有限公司 测试方法、系统及计算机程序产品

Also Published As

Publication number Publication date
CN112199270B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
CN108880867B (zh) 一种网络设备数据采集方法及系统
CN108415739B (zh) 一种动态链接库函数的钩挂方法、装置和存储介质
CN105094783B (zh) 安卓应用稳定性测试的方法及装置
CN108345543B (zh) 一种数据处理方法、装置、设备及存储介质
CN107943683B (zh) 一种测试脚本生成方法、装置、电子设备及存储介质
CN110531962B (zh) 小程序的开发处理方法、设备及计算机可读存储介质
CN110196795B (zh) 检测移动终端应用运行状态的方法及相关装置
CN105404585A (zh) 获取代码覆盖率的方法及装置
CN110716715A (zh) 一种应用程序开发方法、装置、设备及介质
US8650552B1 (en) Methods and systems for simulation of energy consumption in mobile operating system emulators
CN103365770A (zh) 移动终端软件测试系统及软件测试方法
CN106649084A (zh) 函数调用信息的获取方法及装置、测试设备
CN111209193B (zh) 程序的调试方法及装置
CN108073495B (zh) 应用程序崩溃原因的定位方法及装置
CN110378107B (zh) 一种安装包检测的方法及相关装置
CN109240902B (zh) 一种获取电子设备的固件代码的方法和装置
CN109977013B (zh) 一种调试信息获取方法、系统及装置
CN111382048A (zh) 真机测试平台上移动设备的管理方法和装置
CN111723002A (zh) 一种代码调试方法、装置、电子设备及存储介质
CN108090345B (zh) linux系统外部命令执行方法及装置
CN115756881A (zh) 基于sdk的数据处理方法、装置、设备、存储介质
CN105453033A (zh) 程序测试服务
CN112199270A (zh) 一种程序测试方法、装置、设备及介质
CN109145598B (zh) 脚本文件的病毒检测方法、装置、终端及存储介质
CN105138373A (zh) 汽车诊断设备固件升级方法及装置

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
GR01 Patent grant
GR01 Patent grant