CN110865934B - 代码验证方法、装置、电子设备及可读存储介质 - Google Patents

代码验证方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN110865934B
CN110865934B CN201910949552.XA CN201910949552A CN110865934B CN 110865934 B CN110865934 B CN 110865934B CN 201910949552 A CN201910949552 A CN 201910949552A CN 110865934 B CN110865934 B CN 110865934B
Authority
CN
China
Prior art keywords
code
codes
test
auditing
type
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
CN201910949552.XA
Other languages
English (en)
Other versions
CN110865934A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910949552.XA priority Critical patent/CN110865934B/zh
Publication of CN110865934A publication Critical patent/CN110865934A/zh
Application granted granted Critical
Publication of CN110865934B publication Critical patent/CN110865934B/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/3604Software analysis for verifying properties of programs
    • 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

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

Abstract

本申请公开了一种代码验证方法、装置、电子设备及可读存储介质,涉及代码测试技术。本申请实施例通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了代码的可靠性和稳定性。

Description

代码验证方法、装置、电子设备及可读存储介质
技术领域
涉及计算机技术,具体涉及软件测试技术,尤其涉及一种代码验证方法、装置、电子设备及可读存储介质。
背景技术
在软件系统开发时,在新提交的测试代码通过自动测试验证之后,通常会采用人工代码审核的方式,来进一步验证测试代码的正确性。现有的人工代码审核,可以由所配备的一组审核人员中的指定数量如1~2个审核人员对通过测试验证的测试代码进行人工审核,以确定测试代码的正确性。
然而,由于所配备的审核人员的审核水平参差不齐,可能无法较好地对测试代码的正确性进行保障和规避风险,从而导致了测试代码的可靠性和稳定性的降低。
发明内容
本申请的多个方面提供一种代码验证方法、装置、电子设备及可读存储介质,用以提高测试代码的可靠性和稳定性。
本申请的一方面,提供一种代码验证方法,包括:
若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员;
根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以对所述各代码类型的第一代码进行人工审核;
获取所述第一代码的人工审核结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第一代码包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核;
获取所述第二代码的人工审核结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述各代码类型所对应的第一审核人员之间存在交集;所述第一指定数量第一审核人员中包含所述交集中的审核人员。
本申请的另一方面,提供一种代码验证装置,包括:
类型确定单元,用于若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员;
人员确定单元,用于根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以对所述各代码类型的第一代码进行人工审核。
结果获取单元,用于获取所述第一代码的人工审核结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述第一代码包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
所述人员确定单元,还用于根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核;
所述结果获取单元,还用于获取所述第二代码的人工审核结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述结果获取单元,还用于
根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述各代码类型所对应的第一审核人员之间存在交集;所述第一指定数量第一审核人员中包含所述交集中的审核人员。
本发明的另一方面,提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。
本发明的另一方面,提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。
由上述技术方案可知,本申请实施例通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了测试代码的可靠性和稳定性。
另外,采用本申请所提供的技术方案,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
另外,采用本申请所提供的技术方案,对于测试代码中除了具有影响系统功能的特征的第一代码之外的第二代码,仍然可以确定通常所配备的普通审核人员,对这些普通代码进行人工审核,能够实现所配备的特定审核人员和普通审核人员的代码审核工作的有选择性分配,从而能够提高测试代码测试的效率。
另外,采用本申请所提供的技术方案,由于各代码类型所对应的第一审核人员之间可能会存在交集,因此,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
上述方面或可能的实现方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。附图仅仅用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请一实施例提供的代码验证方法的流程示意图;
图2为本申请另一实施例提供的代码验证装置的结构示意图;
图3是用来实现本申请实施例提供的代码验证方法的电子设备的示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中所涉及的终端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、无线手持设备、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)、MP3播放器、MP4播放器、可穿戴设备(例如,智能眼镜、智能手表、智能手环等)等。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请一实施例提供的代码验证方法的流程示意图,如图1所示。
101、若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员。
102、根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以对所述各代码类型的第一代码进行人工审核。
103、获取所述第一代码的人工审核结果。
需要说明的是,101~103的执行主体的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(SoftwareDevelopment Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的测试平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
这样,通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了代码的可靠性和稳定性。
在软件系统开发时,在新提交的测试代码通过自动测试验证之后,由于自动测试验证的测试环境的不充分性,例如,只能覆盖单元测试等,因此,需要采用人工代码审核的方式,来进一步验证测试代码的正确性。
现有的人工代码审核,可以由所配备的一组审核人员中的指定数量如1~2个审核人员对通过测试验证的测试代码进行人工审核,以确定测试代码的正确性。但是,由于所配备的审核人员的审核水平参差不齐,可能无法较好地对测试代码的正确性进行保障和规避风险,从而导致了测试代码的可靠性和稳定性的降低。
基于现有的人工代码审核的上述缺陷,本申请可以针对特定代码所对应的各个不同的代码类型分别配备专门的一组第一审核人员,由于专门配置的各代码类型的第一审核人员为专门审核所对应代码类型的第一代码的特定审核人员,其对于所对应代码类型的第一代码具有较高的审核水平。如果将这些特定审核人员作为所对应代码类型的第一代码的审核人员,对通过测试验证的测试代码中所包含的所对应代码类型的第一代码进行人工审核,那么,则可以减少由于所对应代码类型的第一代码的不稳定而导致的代码回退现象,提高整个系统的代码质量。
可选地,在本实施例的一个可能的实现方式中,在101中,在新提交的测试代码通过自动测试验证之后,具体可以对所述测试代码进行判断处理,以判断所述测试代码是否包含第一代码。
若判断出所述测试代码包含第一代码,则可以根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员。
本申请可以针对特定代码所对应的各个不同的代码类型分别配备专门的一组第一审核人员,由于专门配置的各代码类型的第一审核人员为专门审核所对应代码类型的第一代码的特定审核人员,其对于所对应代码类型的第一代码具有较高的审核水平。
至此,可以由所确定的一组第一审核人员中的指定数量如1~2个审核人员对通过测试验证的测试代码进行人工审核,以确定测试代码的正确性。
否则,若判断出所述测试代码不包含第一代码,则可以直接采用现有的人工代码审核方法,由所配备的一组审核人员中的指定数量如1~2个审核人员对通过测试验证的测试代码进行人工审核,以确定测试代码的正确性。
可选地,在本实施例的一个可能的实现方式中,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数(如深度学习系统中层(Op)定义函数、深度学习系统中图(Graph)定义函数等)、用户调用的指定应用程序编程接口(Application Programming Interface,API)(如深度学习系统中网络接口的Python API、深度学习系统中预测库的C++API)和用户调用的指定全局变量(如深度学习系统中数值计算的环境变量、深度学习系统中存储管理的环境变量等)中的至少一项,本实施例对此不进行特别限定。
这样,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
可选地,在本实施例的一个可能的实现方式中,所述各代码类型所对应的第一审核人员之间可以存在交集,例如,第一代码包含2个代码类型即代码类型1和代码类型2,每个代码类型只需要确定1个审核人员进行人工代码审核。代码类型1所对应的第一审核人员为{A,B},代码类型2所对应的第一审核人员为{B,C},那么,则可以确定如下几种不同的第一审核人员的组合:{B(代码类型1和代码类型2)}、{A(代码类型1,B(代码类型2}、{B(代码类型1,C(代码类型2}和{A(代码类型1,C(代码类型2}。
其中,由于组合{B(代码类型1和代码类型2)}中选择了两个代码类型所对应的第一审核人员的交集B,使得该组合只需要一个审核人员即能完成代码类型1和代码类型2的人工代码审核。这样,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
可选地,在本实施例的一个可能的实现方式中,还可以进一步根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核。进而,则可以获取所述第二代码的人工审核结果。
在这个实现方式中,对于测试代码中除了具有影响系统功能的特征的第一代码之外的第二代码,仍然可以确定通常所配备的普通审核人员,对这些普通代码进行人工审核,能够实现所配备的特定审核人员和普通审核人员的代码审核工作的有选择性分配,从而能够提高测试代码测试的效率。
至此,在获得了所述第一代码的人工审核结果和所述第二代码的人工审核结果之后,则可以根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
若所述测试代码的验证结果为测试合格,则可以将测试代码合并(merge)到代码库中;若所述测试代码的验证结果为测试不合格,则可以将测试代码发送给开发人员进行修改。
本申请所提供的代码检测方法,保证了测试代码的稳定性,具有以下几个优势:
1)操作简单。
2)提高了整体系统的开发迭代效率,同时减少了由于某些特定代码如核心代码等第一代码不稳定而导致的代码回退现象。
3)提高了整个系统的代码质量,减少了未来可能的技术问题。
本实施例中,通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了测试代码的可靠性和稳定性。
另外,采用本申请所提供的技术方案,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数、用户调用的指定应用程序编程接口(Application Programming Interface,API)和用户调用的指定全局变量中的至少一项,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
另外,采用本申请所提供的技术方案,对于测试代码中除了具有影响系统功能的特征的第一代码之外的第二代码,仍然可以确定通常所配备的普通审核人员,对这些普通代码进行人工审核,能够实现所配备的特定审核人员和普通审核人员的代码审核工作的有选择性分配,从而能够提高测试代码测试的效率。
另外,采用本申请所提供的技术方案,由于各代码类型所对应的第一审核人员之间可能会存在交集,因此,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图2为本申请另一实施例提供的代码验证装置的结构示意图,如图2所示。本实施例的代码验证装置200可以包括类型确定单元201、人员确定单元202和结果获取单元203。其中,类型确定单元201,用于若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员;人员确定单元202,用于根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以对所述各代码类型的第一代码进行人工审核。结果获取单元203,用于获取所述第一代码的人工审核结果。
需要说明的是,本实施例所提供的代码验证装置的执行主体的部分或全部可以为位于本地终端的应用,或者还可以为设置在位于本地终端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,或者还可以为位于网络侧服务器中的处理引擎,或者还可以为位于网络侧的分布式系统,例如,网络侧的测试平台中的处理引擎或者分布式系统等,本实施例对此不进行特别限定。
可以理解的是,所述应用可以是安装在终端上的本地程序(nativeApp),或者还可以是终端上的浏览器的一个网页程序(webApp),本实施例对此不进行限定。
可选地,在本实施例的一个可能的实现方式中,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数(如深度学习系统中层(Op)定义函数、深度学习系统中图(Graph)定义函数等)、用户调用的指定应用程序编程接口(Application Programming Interface,API)(如深度学习系统中网络接口的Python API、深度学习系统中预测库的C++API)和用户调用的指定全局变量(如深度学习系统中数值计算的环境变量、深度学习系统中存储管理的环境变量等)中的至少一项,本实施例对此不进行特别限定。
这样,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
可选地,在本实施例的一个可能的实现方式中,所述人员确定单元202,还可以进一步用于根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核;相应地,所述结果获取单元203,则还可以进一步用于获取所述第二代码的人工审核结果。
可选地,在本实施例的一个可能的实现方式中,所述结果获取单元203,还可以进一步用于根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
可选地,在本实施例的一个可能的实现方式中,所述各代码类型所对应的第一审核人员之间可以存在交集,例如,第一代码包含2个代码类型即代码类型1和代码类型2,每个代码类型只需要确定1个审核人员进行人工代码审核。代码类型1所对应的第一审核人员为{A,B},代码类型2所对应的第一审核人员为{B,C},那么,则可以确定如下几种不同的第一审核人员的组合:{B(代码类型1和代码类型2)}、{A(代码类型1,B(代码类型2}、{B(代码类型1,C(代码类型2}和{A(代码类型1,C(代码类型2}。
其中,由于组合{B(代码类型1和代码类型2)}中选择了两个代码类型所对应的第一审核人员的交集B,使得该组合只需要一个审核人员即能完成代码类型1和代码类型2的人工代码审核。这样,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
需要说明的是,图1对应的实施例中的方法可以由本实施例提供的代码验证装置实现。详细描述可以参见图1对应的实施例中的相关内容,此处不再赘述。
本实施例中,通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得人员确定单元能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了测试代码的可靠性和稳定性。
另外,采用本申请所提供的技术方案,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
另外,采用本申请所提供的技术方案,对于测试代码中除了具有影响系统功能的特征的第一代码之外的第二代码,仍然可以确定通常所配备的普通审核人员,对这些普通代码进行人工审核,能够实现所配备的特定审核人员和普通审核人员的代码审核工作的有选择性分配,从而能够提高测试代码测试的效率。
另外,采用本申请所提供的技术方案,由于各代码类型所对应的第一审核人员之间可能会存在交集,因此,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
根据本申请的实施例,本申请还提供了一种电子设备和一种存储有计算机指令的非瞬时计算机可读存储介质。
如图3所示,是用来实现本申请实施例提供的代码验证方法的电子设备的示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图3所示,该电子设备包括:一个或多个处理器301、存储器302,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图3中以一个处理器301为例。
存储器302即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的代码验证方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的代码验证方法。
存储器302作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及单元,如本申请实施例中的代码验证方法对应的程序指令/单元(例如,附图2所示的类型确定单元201、人员确定单元202和结果获取单元203)。处理器301通过运行存储在存储器302中的非瞬时软件程序、指令以及单元,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的代码验证方法。
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据实现本申请实施例提供的代码验证方法的电子设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至实现本申请实施例提供的代码验证方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
代码验证方法的电子设备还可以包括:输入装置303和输出装置304。处理器301、存储器302、输入装置303和输出装置304可以通过总线或者其他方式连接,图3中以通过总线连接为例。
输入装置303可接收输入的数字或字符信息,以及产生与实现本申请实施例提供的代码验证方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置304可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用专用集成电路(ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(CRT)或者液晶显示器(LCD)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过对第一代码所对应的各个不同的代码类型分别配备专门的第一审核人员,使得能够确定出一定数量专门的第一审核人员,对各代码类型的第一代码进行较为专业且有针对性的人工审核,能够较好地对代码的正确性进行保障和规避风险,从而提高了测试代码的可靠性和稳定性。
另外,采用本申请所提供的技术方案,在测试代码中所包含的第一代码通常具有影响系统功能的特征,可以称其为核心代码,具体可以包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项,通过确定各代码类型所对应的特定审核人员,对这些各代码类型的核心代码进行人工审核,能够更加有效地对测试代码的正确性进行保障和规避风险。
另外,采用本申请所提供的技术方案,对于测试代码中除了具有影响系统功能的特征的第一代码之外的第二代码,仍然可以确定通常所配备的普通审核人员,对这些普通代码进行人工审核,能够实现所配备的特定审核人员和普通审核人员的代码审核工作的有选择性分配,从而能够提高测试代码测试的效率。
另外,采用本申请所提供的技术方案,由于各代码类型所对应的第一审核人员之间可能会存在交集,因此,通过确定第一指定数量第一审核人员中包含所述交集中的审核人员,使得能够利用较少的审核人员完成第一代码的人工审核,能够有效节约审核成本。
另外,采用本申请所提供的技术方案,能够有效地提高用户的体验。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (8)

1.一种代码验证方法,其特征在于,包括:
判断通过自动测试验证的测试代码是否包含第一代码,所述第一代码具有影响系统功能的特征;
若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员;
根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以由第一指定数量第一审核人员对所述各代码类型的第一代码进行人工审核;
获取所述第一代码的人工审核结果;其中,
所述方法还包括:
根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核;
获取所述第二代码的人工审核结果;
所述方法还包括:根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
2.根据权利要求1所述的方法,其特征在于,所述第一代码包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项。
3.根据权利要求1-2中任一项所述的方法,其特征在于,所述各代码类型所对应的第一审核人员之间存在交集;所述第一指定数量第一审核人员中包含所述交集中的审核人员。
4.一种代码验证装置,其特征在于,包括:
类型确定单元,用于判断通过自动测试验证的测试代码是否包含第一代码,所述第一代码具有影响系统功能的特征;若通过自动测试验证的测试代码包含第一代码,根据所述第一代码所对应的各代码类型,确定所述各代码类型所对应的第一审核人员;
人员确定单元,用于根据所述各代码类型所对应的第一审核人员,确定第一指定数量第一审核人员,以由第一指定数量第一审核人员对所述各代码类型的第一代码进行人工审核;
结果获取单元,用于获取所述第一代码的人工审核结果;其中,
所述人员确定单元,还用于根据所述测试代码中除了所述第一代码之外的第二代码所对应的第二审核人员,确定第二指定数量第二审核人员,以对所述第二代码进行人工审核;
所述结果获取单元,还用于获取所述第二代码的人工审核结果;
所述结果获取单元,还用于
根据所述第一代码的人工审核结果和所述第二代码的人工审核结果,获得所述测试代码的验证结果。
5.根据权利要求4所述的装置,其特征在于,所述第一代码包括系统底层的指定函数、用户调用的指定API和用户调用的指定全局变量中的至少一项。
6.根据权利要求4-5中任一项所述的装置,其特征在于,所述各代码类型所对应的第一审核人员之间存在交集;所述第一指定数量第一审核人员中包含所述交集中的审核人员。
7.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-3中任一项所述的方法。
8.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-3中任一项所述的方法。
CN201910949552.XA 2019-10-08 2019-10-08 代码验证方法、装置、电子设备及可读存储介质 Active CN110865934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910949552.XA CN110865934B (zh) 2019-10-08 2019-10-08 代码验证方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910949552.XA CN110865934B (zh) 2019-10-08 2019-10-08 代码验证方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110865934A CN110865934A (zh) 2020-03-06
CN110865934B true CN110865934B (zh) 2023-10-27

Family

ID=69652112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910949552.XA Active CN110865934B (zh) 2019-10-08 2019-10-08 代码验证方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110865934B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835588B (zh) * 2021-03-31 2024-03-29 中国工商银行股份有限公司 代码审核方法及装置

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
CN105666526A (zh) * 2016-03-22 2016-06-15 北京百度网讯科技有限公司 基于人工智能的机器人调试系统
CN107085555A (zh) * 2017-04-19 2017-08-22 广州视源电子科技股份有限公司 代码测试方法、装置、终端及存储介质
CN108009083A (zh) * 2017-11-28 2018-05-08 武汉斗鱼网络科技有限公司 一种软件功能测试中功能信息获取方法及装置
CN108334448A (zh) * 2018-01-22 2018-07-27 泰康保险集团股份有限公司 代码验证方法、装置及设备
WO2019005351A1 (en) * 2017-06-29 2019-01-03 Microsoft Technology Licensing, Llc CODE REVISION COVER COMPARISON
CN109408065A (zh) * 2018-10-12 2019-03-01 上海庆科信息技术有限公司 一种代码发布工具
CN109558318A (zh) * 2018-11-23 2019-04-02 北京车和家信息技术有限公司 一种代码管理方法和代码仓库分布式系统
CN109582525A (zh) * 2018-10-19 2019-04-05 京信通信系统(中国)有限公司 测试代码验证方法、验证装置、设备和存储介质
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN110096435A (zh) * 2019-04-09 2019-08-06 平安科技(深圳)有限公司 代码自动编写方法、装置、计算机设备和存储介质
CN110134605A (zh) * 2019-05-16 2019-08-16 北京达佳互联信息技术有限公司 验证代码的方法、装置、计算机设备和存储介质
CN110287102A (zh) * 2019-05-22 2019-09-27 深圳壹账通智能科技有限公司 核心数据检测处理方法、装置、计算机设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535823B2 (en) * 2011-02-28 2017-01-03 Typemock Ltd. Method and apparatus for detecting software bugs
CN105867990A (zh) * 2015-11-20 2016-08-17 乐视云计算有限公司 软件开发一体化的方法及装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
CN105666526A (zh) * 2016-03-22 2016-06-15 北京百度网讯科技有限公司 基于人工智能的机器人调试系统
CN107085555A (zh) * 2017-04-19 2017-08-22 广州视源电子科技股份有限公司 代码测试方法、装置、终端及存储介质
WO2019005351A1 (en) * 2017-06-29 2019-01-03 Microsoft Technology Licensing, Llc CODE REVISION COVER COMPARISON
CN108009083A (zh) * 2017-11-28 2018-05-08 武汉斗鱼网络科技有限公司 一种软件功能测试中功能信息获取方法及装置
CN108334448A (zh) * 2018-01-22 2018-07-27 泰康保险集团股份有限公司 代码验证方法、装置及设备
CN109408065A (zh) * 2018-10-12 2019-03-01 上海庆科信息技术有限公司 一种代码发布工具
CN109582525A (zh) * 2018-10-19 2019-04-05 京信通信系统(中国)有限公司 测试代码验证方法、验证装置、设备和存储介质
CN109558318A (zh) * 2018-11-23 2019-04-02 北京车和家信息技术有限公司 一种代码管理方法和代码仓库分布式系统
CN109783128A (zh) * 2018-12-13 2019-05-21 平安普惠企业管理有限公司 代码改动通知方法、设备、存储介质及装置
CN110096435A (zh) * 2019-04-09 2019-08-06 平安科技(深圳)有限公司 代码自动编写方法、装置、计算机设备和存储介质
CN110134605A (zh) * 2019-05-16 2019-08-16 北京达佳互联信息技术有限公司 验证代码的方法、装置、计算机设备和存储介质
CN110287102A (zh) * 2019-05-22 2019-09-27 深圳壹账通智能科技有限公司 核心数据检测处理方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jun-Suk Oh等.A reflective practice of automated and manual code reviews for a studio project.《Fourth Annual ACIS International Conference on Computer and Information Science (ICIS'05)》.2005,第37-42页. *
嵌入式C代码审核系统设计与实现;郑红波;《中国优秀硕士学位论文全文数据库 信息科技辑》(第5期);I137-89 *

Also Published As

Publication number Publication date
CN110865934A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
CN111310934B (zh) 一种模型生成方法、装置、电子设备和存储介质
US10175977B2 (en) User profile based code review
CN111582375B (zh) 数据增强策略搜索方法、装置、设备以及存储介质
CN112486820B (zh) 用于测试代码的方法、装置、设备以及存储介质
CN112270399B (zh) 基于深度学习的算子注册处理方法、装置及电子设备
CN112084110B (zh) 数据处理方法、装置、设备以及存储介质
CN110704509A (zh) 数据分类方法、装置、设备及存储介质
CN113238943A (zh) 持续集成测试的方法和装置
CN111738418A (zh) 超网络的训练方法和装置
CN110865934B (zh) 代码验证方法、装置、电子设备及可读存储介质
CN114238150A (zh) 程序代码的变异测试方法和装置
CN114943228B (zh) 端到端敏感文本召回模型的训练方法、敏感文本召回方法
CN115481594B (zh) 计分板实现方法、计分板、电子设备及存储介质
CN111783872B (zh) 训练模型的方法、装置、电子设备及计算机可读存储介质
CN114676062A (zh) 用于接口的差异数据测试方法及装置、电子设备和介质
CN114048137A (zh) 一种应用测试方法、装置及电子设备
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
CN114116688A (zh) 数据处理与数据质检方法、装置及可读存储介质
CN111126871A (zh) 数据处理方法、装置及设备
US20190163470A1 (en) Skills identification for software products
CN111831317A (zh) 服务间依赖关系的获取方法、装置、电子设备和存储介质
CN113377660B (zh) 测试方法和装置
CN112307372B (zh) 数据处理方法和装置
CN111563772B (zh) 广告信息访问质量确定方法、装置、电子设备及存储介质
CN112149807B (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