CN113190432A - 代码测试方法、装置、终端及存储介质 - Google Patents

代码测试方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN113190432A
CN113190432A CN202110280943.4A CN202110280943A CN113190432A CN 113190432 A CN113190432 A CN 113190432A CN 202110280943 A CN202110280943 A CN 202110280943A CN 113190432 A CN113190432 A CN 113190432A
Authority
CN
China
Prior art keywords
test
code
target
state information
determining
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
Application number
CN202110280943.4A
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110280943.4A priority Critical patent/CN113190432A/zh
Publication of CN113190432A publication Critical patent/CN113190432A/zh
Pending legal-status Critical Current

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/3692Test management for test results analysis

Abstract

本申请涉及一种代码测试方法、装置、终端及存储介质,属于软件开发技术领域。该方法包括:确定测试平台的目标测试状态信息和目标测试结果;若目标测试状态信息满足主动产生错误的条件,且目标测试结果为用于表示产生错误的测试结果,确定测试平台正常运行;基于测试平台对待测试代码进行测试得到的测试结果,确定待测试代码的测试结果。通过在主动产生错误的条件下主动报错,从而能够根据得到的测试结果确定运行平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。

Description

代码测试方法、装置、终端及存储介质
技术领域
本申请实施例涉及软件开发技术领域,特别涉及一种代码测试方法、装置、终端及存储介质。
背景技术
软件测试是软件开发过程中的重要环节。软件测试一般通过测试平台对待测试代码进行测试。其中,测试平台包括测试框架和多个测试用例,该测试框架用于运行该测试用例,测试用例用于对代码进行测试,得到代码的测试结果;基于测试用例产生的测试结果,确定该代码的测试结果。
发明内容
本申请实施例提供了一种代码测试方法、装置、终端及存储介质,能够提高代码测试的准确性。所述技术方案如下:
一方面,提供了一种代码测试方法,所述方法包括:
确定测试平台的目标测试状态信息和目标测试结果;
若所述目标测试状态信息满足主动产生错误的条件,且所述目标测试结果为用于表示产生错误的测试结果,确定所述测试平台正常运行;
基于所述测试平台对待测试代码进行测试得到的测试结果,确定所述待测试代码的测试结果。
另一方面,提供了一种代码测试装置,所述装置包括:
第一确定模块,用于确定测试平台的目标测试状态信息和目标测试结果;
第二确定模块,用于若所述目标测试状态信息满足主动产生错误的条件,且所述目标测试结果为用于表示产生错误的测试结果,确定所述测试平台正常运行;
第三确定模块,用于基于所述测试平台对待测试代码进行测试得到的测试结果,确定所述待测试代码的测试结果。
另一方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的代码测试方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的代码测试方法。
另一方面,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现上述方面所述的代码测试方法。
在本申请实施例中,在目标测试状态信息满足目标条件时,自动产生错误,这样测试平台对该待测试代码进行测试时,测试平台的测试成功率不能达到 100%,从而当测试平台的测试成功率为100%时,则说明该测试平台运行异常,从而监控测试平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。
附图说明
图1示出了本申请一个示例性实施例示出的代码测试方法的流程图;
图2示出了本申请一个示例性实施例示出的测试平台的示意图;
图3示出了本申请一个示例性实施例示出的测试平台的示意图;
图4示出了本申请一个示例性实施例示出的代码测试方法的流程图;
图5示出了本申请一个示例性实施例示出的代码测试方法的流程图;
图6示出了本申请一个示例性实施例示出的代码测试装置的结构框图;
图7示出了本申请一个实施例提供的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在软件开发的过程中,在编写完软件的功能对应的代码后,需要对编写的代码进行测试,确定该代码是否能正常运行,以及,确定该代码是否能实现所编写的功能。一般通过在终端中安装的测试平台对待测试代码进行测试。其中,测试平台包括测试框架和多个测试用例。在对待测试代码进行测试时,终端将待测试代码输入至测试平台中,通过测试平台中的测试框架对待测试代码进行编译,得到待测试代码对应的目标文件,基于目标文件从多个测试用例中确定至少一个测试用例,将该至少一个测试用例组成该待测试代码的集成项目,通过在测试框架中运行该集成项目,得到待测试代码的测试结果。
其中,测试框架为任一用能够监控代码变化,构建代码编译环境,执行代码编译,得到目标文件,自动对目标文件进行测试的框架。例如,该测试框架为Jenkins框架,Jenkins框架是一款开源持续集成(Continuous Integration,CI) 和持续交付(Continuous Delivery,CD)框架,用于自动化各种任务,包括构建、测试和部署软件。
测试框架通过运行集成项目中的测试用例,对该待测试代码的不同功能进行测试,得到每个测试用例对应的测试结果,基于每个测试用例的测试结果生成集成项目的测试结果,该集成项目将该测试结果反馈给测试框架,该测试框架基于集成项目产生的测试结果生成该待测试代码的最终测试结果,终端通过测试平台向用于展示待测试代码的测试结果。
如果测试平台中的集成项目或测试框架出现问题,则可能会出现测试用例的测试结果为失败,但测试平台最终展示的测试结果为成功的问题,造成代码测试不准确。其中,集成项目和测试框架都有出现问题的可能。
例如,若集成项目A出现问题,通过该集成项目A进行测试时,测试成功应该返回成功,测试失败应该返回失败,但由于该集成项目A出现问题,导致该集成项目A的测试失效,造成该集成项目A的测试结果一直为测试成功,不能按照预期返回失败。其中,该集成项目A出现问题的原因可能为多种。例如,由于集成项目A修改或者功能升级,导致集成项目A内部执行逻辑发生变化等。
再例如,若测试框架出现问题,使得即使集成项目反馈了测试失败,但是测试框架依然反馈成功,造成测试框架返回的结果和预期结果不一致。其中,造成测试框架出现问题的原因可能为:测试框架内部执行脚本的接口匹配错误,或者,测试框架升级,导致的新的缺陷等。
当测试平台出现以上问题时,均会造成测试平台最终反馈的测试结构与预期测试结果不同,导致代码测试不准确。而本申请为了保证代码测试的准确性,在目标测试状态信息满足目标条件时,自动产生错误,这样测试平台对该待测试代码进行测试时,测试平台的测试成功率不能达到100%,从而当测试平台的测试成功率为100%时,则说明该测试平台为出现异常,从而监控测试平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。
在一些实施例中,终端能够在对待测试代码进行测试的过程中,通过本方案提供的代码测试方法对测试平台的运行状态进行验证,在验证测试平台正常运行时,才基于测试结果确定待测试代码的测试结果。请参考图1,其示出了本申请一个示例性实施例示出的代码测试方法的流程图。本申请实施例中的执行主体可以为终端,也可以为终端中的处理器或终端中的操作系统,本实施例以执行主体为终端为例进行说明。在本申请实施例中,为例进行说明。该方法包括:
步骤101:终端确定测试平台的目标测试状态信息和目标测试结果。
该目标状态信息为对代码测试过程中该测试平台的状态信息。该目标状态信息中包括本次代码测试的测试时间、测试序号、产生错误的概率等信息。在一些实施例中,每次代码测试均生成本次代码测试的状态信息,将状态信息与本次代码测试的代码信息对应存储。在本步骤中,终端直接根据本次代码测试的代码信息,从状态信息与代码信息的对应关系中确定目标状态信息。其中,代码信息包括本侧代码测试的代码的编号、名称、标识等信息。
在本实现方方式中,终端以目标代码测试过程中任一测试过程,确定测试平台是否异常。在本步骤中,终端获取目标代码测试的测试状态信息和该目标代码测试的测试结果,将该目标代码测试的测试状态信息和测试结果作为该目标测试状态信息和该目标测试结果。
该目标测试结果为终端通过测试平台对待测试代码进行测试,得到的测试结果。该测试结果用于指示本侧代码测试是否检测到有错误产生。在本实现方式中,该目标测试结果包括用于测试该待测试代码的至少一个测试用例的测试结果和用于确定该测试平台是否正常运行的目标测试用例的测试结果。其中,目标测试用例的测试结果为不产生错误的结果或产生错误的结果。若该测试用例的测试结果为产生错误的结果,该目标测试结果也为出现错误的结果,则能够表明测试平台正常运行。若该测试用例的测试结果为产生错误的结果,而目标测试结果为测试正常的结果,则能够表明测试平台运行异常。终端确定目标检测结果的过程通过以下步骤(1)-(5)实现,包括:
(1)终端获取待测试代码。
在本实现方式中,该待测试代码为用于检测该测试平台是否正常运行的代码。或者,该待识代码为任一历史代码测试过程中测试的代码。在本申请实施例中,对此不作具体限定。
在本步骤中,终端通过测试平台接收用户输入的待测试代码。或者,终端从代码库中获取待测试代码。相应的,代码库中包括多条待测试的代码,终端向代码库发送代码获取请求,代码库根据存储的多个代码将优先级最高的待测试代码发送给终端。其中,代码的优先级可以为开发人员设置的;或者,代码的优先级为代码库根据代码被存储的时间确定的,代码被存储的时间越早,代码的优先级越高;或者,代码的优先级为代码库根据代码的复杂程度确定的,代码的复杂程度越高,代码的优先级越高等。
(2)终端通过测试框架对待测试代码进行编译,得到待测试代码的目标文件。
在本步骤中,终端通过测试框架构建代码编译环境,在该代码编译环境中对待测试代码进行编译,得到待测试代码的目标文件,该目标文件用于指示该待测试代码的功能。
(3)终端基于该目标文件获取至少一个测试用例和目标测试用例。
该至少一个测试用例为用于检测该目标文件对应的功能的测试用例。该目标测试用例为测试平台用于主动产生错误的测试用例。该目标测试用例能够在目标测试状态信息与该目标测试用例的条件配置信息匹配时,主动报错,使该目标测试用例的测试结构为产生错误的测试结果。
需要说明的一点是,在一些实施例中,该目标测试用例可以为开发人员基于该目标测试用例的功能编写的具有制动产生错误的测试用例。在一些实施例中,该目标测试用例可以为测试平台中多个测试用例中的任一测试用例。相应的,该测试平台中的任一测试用例能够被在该测试用例的条件配置信息与目标测试状态信息匹配时,自动报错。在本步骤中,终端将该测试平台中的任一测试用例确定为目标测试用例。
(4)终端通过测试框架运行该至少一个测试用例和目标测试用例,得到该至少一个测试用例的测试结果和该目标测试用例的测试结果。
在本步骤中,对于至少一个测试用例中的每个测试用例,终端通过该测试框架运行测试用例,通过运行测试用例确定该测试用例实现对目标文件的触发,得到触发结果,基于该触发结果确定每个测试用例的结果。其中,该测试结果可以为测试成功或者测试失败的结果,也可以为通过运行该目标测试用例触发的界面对应的测试结果。
对于该目标测试用例的测试结果,终端确定本次测试的测试状态信息是否与该目标测试用例的条件配置信息匹配,若匹配则确定该目标测试用例的测试结果为产生错误的测试结果,若不匹配则确定该目标测试用例的测试结果为不产生错误的测试结果。
(5)终端基于该至少一个测试用例的测试结果和该目标测试用例的测试结果确定目标检测结果。
将该至少一个测试用例的测试结构和该目标测试用例的测试结果组成为该目标检测结果。
步骤102:若该目标测试状态信息满足主动产生错误的条件,且该目标测试结果为用于表示产生错误的测试结果,终端确定该测试平台正常运行。
在本步骤中,通过获取到的目标测试结果,判断该测试平台是否正常运行。
在一些实施例中,目标测试用例对该主动产生错误的条件不作具体限定。也即,只要目标测试用例被运行,该目标测试用例就会报错。在一些实施例中,目标测试用例对该主动产生错误的条件进行限定。在目标测试状态信息满足主动产生错误的条件时,运行目标测试用例,才会报错。其中,终端确定该目标测试状态是否满足主动产生错误的条件的过程,通过以下步骤(1)-(2)实现,包括:
(1)终端确定目标测试用例的条件配置信息。
其中,该目标测试用例为该测试平台用于主动产生错误的测试用例,该条件配置信息为该目标测试用例主动产生错误的配置信息。
终端在配置目标测试用例时,将目标测试用例配置为可自动产生错误的测试用例。其中,自动产生错误是指通过运行该目标测试用例,能够主动报错。
相应的,终端为每个目标测试用例配置该目标测试用例的条件配置信息,使得在该条件配置信息对应的测试状态下,该目标测试用例能够自动产生错误,进行报错。
(2)若该目标测试状态信息与该条件配置信息匹配,终端确定该目标测试状态信息满足主动产生错误的条件。
终端根据不同的条件配置信息,确定目标测试用例主动产生错误的条件,将该主动产生错误的条件与目标测试状态信息进行对比,如果该主动产生错误的条件与该目标测试状态信息匹配,则终端确定该目标测试状态信息满足主动产生错误的条件。
其中,该目标测试用例的条件配置信息可以根据需要进行设置,在本申请实施例中,对该条件配置信息不作具体限定。
例如,在一些实施例中,该条件配置信息包括目标时间范围。则终端从该目标测试状态信息中确定本次代码测试的测试时间,若该测试时间在该目标时间范围内,终端确定该目标测试状态信息与该条件配置信息匹配。
例如,该目标时间范围为指定的日期,则终端从本次代码测试的目标测试状态信息中确定本次代码测试的测试时间。确定该测试时间是否属于该指定的日期。若属于则终端确定该目标测试状态信息与该条件配置信息匹配,若不属于则目标测试状态信息与该条件配置信息不匹配。
在一些实施例中,该条件配置信息包括目标测试序号范围。则终端从该目标测试状态信息中确定本次代码测试的测试序号,若该测试序号在该目标测试序号范围内,确定该目标测试状态信息与该条件配置信息匹配。
其中,该测试序号可以为在代码测试过程中随机生成的测试序号,也可以为根据代码测试的次数进行编号得到的测试序号。在本申请实施例中,对该测试序号不作具体限定。在本步骤中,终端根据当前测试状态信息确定本次代码测试的测试序号,将该测试序号与该目标测试序号范围中包括的测试序号进行对比。若该目标测试序号范围中包括的测试序号中存在与该测试序号相同的测试序号,确定该测试序号在该目标测试序号范围内,进而确定该目标测试状态信息与该条件配置信息匹配。若该目标测试序号范围中包括的测试序号中不存在与该测试序号相同的测试序号,确定该测试序号不在该目标测试序号范围内,进而确定该目标测试状态信息与该条件配置信息不匹配。
其中,该目标测试序号范围可以根据需要进行设置,在本申请实施例中,对该目标测试序号范围不作具体限定。例如,该目标测试序号范围可以为指定的至少一个测试序号组成的测试序号范围,该目标测试序号范围还可以为以指定数字结尾的序号做成的测试序号范围。例如,该目标测试序号范围可以为以4 结尾的测试序号组成的测试序号范围,则当测试序号为1004时,确定该测试序号在该目标测试序号范围内,进而确定该目标测试状态信息与该条件配置信息匹配,目标测试用例主动报错,而当测试序号为1003或1005时,确定该测试序号不在该目标测试序号范围内,进而确定该目标测试状态信息与该条件配置信息不匹配,目标测试用例返回测试成功的测试结果。
在一些实施例中,该条件配置信息包括目标测试概率,该目标测试概率为该测试平台在一个周期内产生错误的概率。则终端基于该目标测试状态信息,确定本次代码测试所在周期内产生错误的测试概率,若该测试概率小于该目标测试概率,确定该测试状态信息与该条件配置信息匹配。
该目标测试概率可以根据需要进行设置,在本申请实施例中,对该目标测试概率不作具体限定。其中,该周期可以根据该目标测试概率进行设置。例如,该目标测试概率为20%,则该周期可以确定为每5次测试为1周期,则终端可以确定每个周期内目标测试用例需要有一次报错;或者,该周期可以确定为每 10次为一个周期,则终端可以确定每个周期内目标测试用例需要有两次报错等。另外,终端可以在周期开始时启动检测该测试概率是否小于该目标测试概率,在本申请实施例中,对此也不作具体限定。
在本步骤中,若该目标测试状态信息与该条件配置信息匹配,但该第一测试结果为用于表示没有产生错误的测试结果,终端确定该测试平台出现异常。
其中,参见图2,该测试平台包括集成项目和测试框架,该测试框架用于为该代码测试提供运行环境,该集成项目用于为该代码测试提供测试用例,且该集成项目包括该目标测试用例。测试平台异常的原因可能有两种,一种是集成项目异常,另一种是测试框架异常。在本步骤中,还可以根据该第一测试结果为用于表示没有产生错误的测试结果的原因确定该测试平台异常的原因。该过程可以为:若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示没有产生错误的测试结果,确定该集成项目出现异常。若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示产生错误的测试结果,确定该测试框架出现异常。
其中,若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示没有产生错误的测试结果,说明集成项目为无效的集成项目,不能正确反馈测试用例的测试结果,因此,集成测试项目为异常集成项目。
若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示产生错误的测试结果,说明集成项目能正确反馈测试用例的测试结果,因此,集成测试项目为正常集成项目,但测试框架不能正确反馈测试结果,因此,测试框架为异常测试框架。
在本实现方式中,基于集成项目反馈的测试结果确定测试平台异常的原因,以便基于该原因对测试平台进行调整,提高了测试平台的维护效率。
需要说明的一点是,对于每个测试平台,通过测试平台对于待测试代码进行测试时,可以通过一个集成项目对待测试代码进行测试,继续参见图2。而为了提高代码检测的效率,参见图3,测试平台中可以为多个集成项目提供运行环境。
相应的,在一些实施例中,该多个集成项目中至少一个集成项目中包括目标测试用例,则该测试用例用于检测该集成项目和该测试框架的运行情况,而对其他测试用例无影响,进而防止重要的集成项目和测试框架出现异常,同时提高了检测的效率。在一些实施例中,该多个集成项目中每个集成项目中均包括目标测试用例,则该目标测试用例用于检测每个集成项目和该测试框架是否出现问题,提高了监测测试平台的全面性和准确性。
步骤103:终端基于该测试平台对待测试代码进行测试得到的测试结果,确定该待测试代码的测试结果。
其中,该待测试代码为本次测试的代码,或者,该待测试代码为与本次测试的代码不同的待测试代码,在本申请实施例中,对此不作具体限定。
在一些实施例中,在该测试平台正常运行的情况下,终端从本次代码测试得到目标结果中确定该目标测试用以外的测试用例的测试结果,基于该目标测试用例以外的测试结果,确定该待测试代码的结果。相应的,该目标测试结果为本次对该待测试代码进行测试得到的测试结果,从该目标测试结果中获取该待测试代码的测试结果。
在本实现方式中,终端只需要在对待测试代码进行测试的过程中就能通过目标测试用例对集成项目和测试框架进行测试,保证了对待测试代码进行代码测试的准确率,并且,不需要重新对测试平台进行检测,从而提高了测试代码的效率。
在一些实施例中,在该测试平台正常运行的情况下,终端还能在对与本次代码测试过程测试的代码不同的待测试代码进行测试,得到该待测试代码的测试结果。相应的,终端基于该测试平台,对该待测试代码进行测试,得到该待测试代码的测试结果。终端对该测试平台的运行状态的判断过程和确定该待测试的代码的测试结果的过程可以为并行进行的过程。相应的,参见图4,终端执行步骤101后,同时执行步骤102和步骤103,也即终端在获取测试平台侧目标测试状态信息和目标测试结果后,可以分别基于该目标测试状态信息和目标测试结果确定测试平台是否正常运行,以及将本次测试的目标测试结果作为该待测试代码的测试结果。
在本实现方式中,终端基于对待测试代码进行测试的过程,将该测试过程确定为目标测试,若该测试平台正常运行则继续正常使用该测试平台,若该测试平台异常运行,则终端展示提示信息,该提示信息用于指示当前测试平台异常运行,以便及时确定该测试平台的问题,在下次通过该测试平台对待测试代码进行测试时,能够提醒用户测试平台异常,防止用户继续使用该测试平台对待测试代码进行测试得到错误的测试结果,进而提高代码测试的准确性。
其中,终端基于该测试平台,对该待测试代码进行测试,得到该待测试代码的测试结果与步骤101中进行测试的过程相似,在此不再赘述。
需要说明的一点是,在通过目标测试用例对测试平台进行检测后,在本次对待测试代码进行测试的过程中,当前代码测试的测试状态信息可能仍然满足主动产生错误的条件,此时可以直接将目标测试用例的测试结果修改为没有产生错误的测试结果。相应的,基于该测试平台,对该待测试代码进行测试,得到新的测试结果;若该测试平台的当前测试状态信息满足主动产生错误的条件,将该新的测试结果修改为没有产生错误的测试结果,得到该待测试代码的测试结果。
例如,终端检测到当前代码测试的测试序号为1004,而目标测试序号范围为1003-1006,若在序号为1003的代码测试过程中,已经确定测试平台运行正常,则在本次代码测试的过程中,虽然测试序号在目标测试序号范围内,但终端将目标测试用例的测试结果修改为没有产生错误的测试结果。
在本实现方式中,测试平台运行正常时,直接自动进行代码测试,无需人工干预,并且,再次进行代码测试时,目标测试用例返回成功以避免浪费测试资源。
在目标测试状态信息满足目标条件时,自动产生错误,这样测试平台对该待测试代码进行测试时,测试平台的测试成功率不能达到100%,从而当测试平台的测试成功率为100%时,则说明该测试平台为出现异常,从而监控测试平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。
在一些实施例中,当测试周期比较长或者测试次数过多的时候,终端能够通过目标测试用例的错误率是否符合预期,来判断测试平台是否正常运行。请参考图5,其示出了本申请一个示例性实施例示出的代码测试方法的流程图。本申请实施例中的执行主体可以为终端,也可以为终端中的处理器或终端中的操作系统,本实施例以执行主体为终端为例进行说明。在本申请实施例中,为例进行说明。该方法包括:
步骤501:终端获取多次代码测试的测试状态信息和该多次代码测试的测试结果,将该多次代码测试的测试状态信息和测试结果,分别组成该目标测试状态信息和目标测试结果。
其中,该多次代码测试可以为同一待测试代码的代码测试过程,也可以为不同待测试代码的代码测试过程。在本公开实施例中,对此不作具体限定。
其中,终端每次获取代码测试的测试状态信息和每次代码测试的测试结果的过程与步骤101中,终端获取目标测试状态信息和目标测试结果的过程相似,在此不再赘述。
步骤502:终端基于该多次代码测试的测试结果,确定目标数量。
该目标数量为用于表示产生错误的测试结果的数量。
在本步骤中,终端确定每个代码测试的测试结果,统计多个测试结果中用于标识产生错误的测试结果的数量,得到目标数量。
步骤503:终端基于该目标数量和该多次代码测试的数量,确定该多次代码测试的错误率。
终端将目标数量和该多次代码测试的数量的比值确定为该多次代码测试的错误率。
步骤504:若该错误率在预设错误率范围内,则终端确定该目标测试结果为用于表示产生错误的测试结果。
若该错误率在预设错误率范围内,则该终端确定该目标测试结果准确,能够指示该测试平台正常运行。对主动报错的目标测试用例,终端可以通过测试平台的集成测试框架持续计算错误率,当测试周期比较长或者测试次数过多的时候,通过确定该错误率是否符合预期,来判断测试平台是否正常。若该错误率在预设错误率范围内,终端执行步骤405,若该错误率不在预设错误率范围内,终端确定该测试平台异常运行。
步骤505:终端确定该测试平台正常运行。
步骤506:终端基于该测试平台对待测试代码进行测试得到的测试结果,确定该待测试代码的测试结果。
本步骤与步骤103相似,在此不再赘述。
在目标测试状态信息满足目标条件时,自动产生错误,这样测试平台对该待测试代码进行测试时,测试平台的测试成功率不能达到100%,从而当测试平台的测试成功率为100%时,则说明该测试平台为出现异常,从而监控测试平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。
请参考图6,其示出了本申请一个实施例提供的代码测试装置的结构框图。该代码测试装置可以通过软件、硬件或者两者的结合实现成为处理器的全部或一部分。该装置包括:
第一确定模块601,用于确定测试平台的目标测试状态信息和目标测试结果;
第二确定模块602,用于若该目标测试状态信息满足主动产生错误的条件,且该目标测试结果为用于表示产生错误的测试结果,确定该测试平台正常运行;
第三确定模块603,用于基于该测试平台对待测试代码进行测试得到的测试结果,确定该待测试代码的测试结果。
在一些实施例中,该装置还包括:
第四确定模块,用于确定目标测试用例的条件配置信息,该目标测试用例为该测试平台用于主动产生错误的测试用例,该条件配置信息为该目标测试用例主动产生错误的配置信息;
第五确定模块,用于若该目标测试状态信息与该条件配置信息匹配,确定该目标测试状态信息满足主动产生错误的条件。
在一些实施例中,该第五确定模块,包括:
该条件配置信息包括目标时间范围;第一确定单元,用于从该目标测试状态信息中确定本次代码测试的测试时间,若该测试时间在该目标时间范围内,确定该目标测试状态信息与该条件配置信息匹配;
该条件配置信息包括目标测试序号范围;第二确定单元,用于从该目标测试状态信息中确定本次代码测试的测试序号,若该测试序号在该目标测试序号范围内,确定该目标测试状态信息与该条件配置信息匹配;
该条件配置信息包括目标测试概率,该目标测试概率为该测试平台在一个周期内产生错误的概率;第三确定单元,用于基于该目标测试状态信息,确定本次代码测试所在周期内产生错误的测试概率,若该测试概率小于该目标测试概率,确定该测试状态信息与该条件配置信息匹配。
在一些实施例中,该第二确定模块602,还用于若该目标测试状态信息与该条件配置信息匹配,但该第一测试结果为用于表示没有产生错误的测试结果,确定该测试平台出现异常。
在一些实施例中,该测试平台包括集成项目和测试框架,该测试框架用于为该代码测试提供运行环境,该集成项目用于为该代码测试提供测试用例,且该集成项目包括该目标测试用例;
该第二确定模块602,包括:
第四确定单元,用于若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示没有产生错误的测试结果,确定该集成项目出现异常;
第五确定单元,用于若该目标测试状态信息与该条件配置信息匹配,但该集成项目对应的测试结果为用于表示产生错误的测试结果,确定该测试框架出现异常。
在一些实施例中,该第一确定模块601,包括:
第一获取单元,用于获取目标代码测试的测试状态信息和该目标代码测试的测试结果,将该目标代码测试的测试状态信息和测试结果作为该目标测试状态信息和该目标测试结果。
在一些实施例中,该第一确定模块601,包括:
第二获取单元,用于获取多次代码测试的测试状态信息和该多次代码测试的测试结果,将该多次代码测试的测试状态信息和测试结果,分别组成该目标测试状态信息和目标测试结果。
在一些实施例中,该装置还包括:
数量确定单元,用于基于该多次代码测试的测试结果,确定目标数量,该目标数量为用于表示产生错误的测试结果的数量;
错误率确定单元,用于基于该目标数量和该多次代码测试的数量,确定该多次代码测试的错误率;
第六确定单元,用于若该错误率在预设错误率范围内,则确定该目标测试结果为用于表示产生错误的测试结果。
在一些实施例中,该第三确定模块603,包括:
测试单元,用于基于该测试平台,对该待测试代码进行测试,得到该待测试代码的测试结果;或者,
第三获取单元,用于该目标测试结果为本次对该待测试代码进行测试得到的测试结果,从该目标测试结果中获取该待测试代码的测试结果。
在一些实施例中,该测试单元,用于基于该测试平台,对该待测试代码进行测试,得到新的测试结果;若该测试平台的当前测试状态信息满足主动产生错误的条件,将该新的测试结果修改为没有产生错误的测试结果,得到该待测试代码的测试结果。
在本申请实施例中,在目标测试状态信息满足目标条件时,自动产生错误,这样测试平台对该待测试代码进行测试时,测试平台的测试成功率不能达到 100%,从而当测试平台的测试成功率为100%时,则说明该测试平台运行异常,从而监控测试平台是否正常运行,防止了测试平台异常运行时,将测试失败的测试代码的测试结果确定为测试成功,进而提高了代码测试的准确性。
请参考图7,其示出了本申请一个示例性实施例提供的终端700的结构方框图。终端700可以是电脑、智能手机、平板电脑、可穿戴设备等具有运行测试平台功能的终端。本申请中的终端700可以包括一个或多个如下部件:处理器 710、存储器720。
处理器710可以包括一个或者多个处理核心。处理器710利用各种接口和线路连接整个终端700内的各个部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据。可选地,处理器710可以采用数字信号处理 (Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器(CentralProcessing Unit, CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块芯片进行实现。
存储器720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器720包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据终端700的使用所创建的数据(比如音频数据、电话本)等。
该终端还包括显示屏,显示屏是用于显示用户界面的显示组件。可选的,该显示屏为具有触控功能的显示屏,通过触控功能,用户可以使用手指、触摸笔等任何适合的物体在显示屏上进行触控操作。
显示屏通常设置在终端的前面板。显示屏可被设计成为全面屏、曲面屏、异型屏、双面屏或折叠屏。显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合等,本实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端700的结构并不构成对终端700的限定,终端700可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端700中还包括麦克风、扬声器、射频电路、输入单元、传感器、音频电路、无线保真(Wireless Fidelity, Wi-Fi)模块、电源、蓝牙模块等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,该至少一条指令由该处理器加载并执行以实现如上各个实施例示出的代码测试方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,该至少一条指令由该处理器加载并执行以实现如上各个实施例示出的代码测试方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (13)

1.一种代码测试方法,其特征在于,所述方法包括:
确定测试平台的目标测试状态信息和目标测试结果;
若所述目标测试状态信息满足主动产生错误的条件,且所述目标测试结果为用于表示产生错误的测试结果,确定所述测试平台正常运行;
基于所述测试平台对待测试代码进行测试得到的测试结果,确定所述待测试代码的测试结果。
2.根据权利要求1所述的方法,其特征在于,确定所述目标测试状态信息是否满足所述主动产生错误的条件的过程包括:
确定目标测试用例的条件配置信息,所述目标测试用例为所述测试平台用于主动产生错误的测试用例,所述条件配置信息为所述目标测试用例主动产生错误的配置信息;
若所述目标测试状态信息与所述条件配置信息匹配,确定所述目标测试状态信息满足主动产生错误的条件。
3.根据权利要求2所述的方法,其特征在于,确定所述目标测试状态信息与所述条件配置信息是否匹配的过程包括以下至少一种实现方式:
所述条件配置信息包括目标时间范围;从所述目标测试状态信息中确定本次代码测试的测试时间,若所述测试时间在所述目标时间范围内,确定所述目标测试状态信息与所述条件配置信息匹配;
所述条件配置信息包括目标测试序号范围,从所述目标测试状态信息中确定本次代码测试的测试序号,若所述测试序号在所述目标测试序号范围内,确定所述目标测试状态信息与所述条件配置信息匹配;
所述条件配置信息包括目标测试概率,所述目标测试概率为所述测试平台在一个周期内产生错误的概率;基于所述目标测试状态信息,确定本次代码测试所在周期内产生错误的测试概率,若所述测试概率小于所述目标测试概率,确定所述测试状态信息与所述条件配置信息匹配。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述目标测试状态信息与所述条件配置信息匹配,但所述第一测试结果为用于表示没有产生错误的测试结果,确定所述测试平台出现异常。
5.根据权利要求4所述的方法,其特征在于,所述测试平台包括集成项目和测试框架,所述测试框架用于为所述代码测试提供运行环境,所述集成项目用于为所述代码测试提供测试用例,且所述集成项目包括所述目标测试用例;
所述若所述目标测试状态信息与所述条件配置信息匹配,但所述第一测试结果为用于表示没有产生错误的测试结果,确定所述测试平台出现异常,包括:
若所述目标测试状态信息与所述条件配置信息匹配,但所述集成项目对应的测试结果为用于表示没有产生错误的测试结果,确定所述集成项目出现异常;
若所述目标测试状态信息与所述条件配置信息匹配,但所述集成项目对应的测试结果为用于表示产生错误的测试结果,确定所述测试框架出现异常。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述确定测试平台的目标测试状态信息和目标测试结果,包括:
获取目标代码测试的测试状态信息和所述目标代码测试的测试结果,将所述目标代码测试的测试状态信息和测试结果作为所述目标测试状态信息和所述目标测试结果。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述确定测试平台的目标测试状态信息和目标测试结果,包括:
获取多次代码测试的测试状态信息和所述多次代码测试的测试结果,将所述多次代码测试的测试状态信息和测试结果,分别组成所述目标测试状态信息和目标测试结果。
8.根据权利要求7所述的方法,其特征在于,确定所述目标测试结果为用于表示产生错误的测试结果的过程包括:
基于所述多次代码测试的测试结果,确定目标数量,所述目标数量为用于表示产生错误的测试结果的数量;
基于所述目标数量和所述多次代码测试的数量,确定所述多次代码测试的错误率;
若所述错误率在预设错误率范围内,则确定所述目标测试结果为用于表示产生错误的测试结果。
9.根据权利要求1所述的方法,其特征在于,所述基于所述测试平台对待测试代码进行测试得到的测试结果,确定所述待测试代码的测试结果,包括:
基于所述测试平台,对所述待测试代码进行测试,得到所述待测试代码的测试结果;或者,
所述目标测试结果为本次对所述待测试代码进行测试得到的测试结果,从所述目标测试结果中获取所述待测试代码的测试结果。
10.根据权利要求9所述的方法,其特征在于,所述基于所述测试平台,对所述待测试代码进行测试,得到所述待测试代码的测试结果,包括:
基于所述测试平台,对所述待测试代码进行测试,得到新的测试结果;
若所述测试平台的当前测试状态信息满足主动产生错误的条件,将所述新的测试结果修改为没有产生错误的测试结果,得到所述待测试代码的测试结果。
11.一种代码测试装置,其特征在于,所述装置包括:
第一确定模块,用于确定测试平台的目标测试状态信息和目标测试结果;
第二确定模块,用于若所述目标测试状态信息满足主动产生错误的条件,且所述目标测试结果为用于表示产生错误的测试结果,确定所述测试平台正常运行;
第三确定模块,用于基于所述测试平台对待测试代码进行测试得到的测试结果,确定所述待测试代码的测试结果。
12.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条程序代码,所述至少一条程序代码用于被所述处理器执行以实现如权利要求1至10任一所述的代码测试方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一条程序代码,所述至少一条程序代码用于被处理器执行以实现如权利要求1至10任一所述的代码测试方法。
CN202110280943.4A 2021-03-16 2021-03-16 代码测试方法、装置、终端及存储介质 Pending CN113190432A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110280943.4A CN113190432A (zh) 2021-03-16 2021-03-16 代码测试方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110280943.4A CN113190432A (zh) 2021-03-16 2021-03-16 代码测试方法、装置、终端及存储介质

Publications (1)

Publication Number Publication Date
CN113190432A true CN113190432A (zh) 2021-07-30

Family

ID=76973304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110280943.4A Pending CN113190432A (zh) 2021-03-16 2021-03-16 代码测试方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN113190432A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967209A (zh) * 2017-10-09 2018-04-27 中国银联股份有限公司 一种检测前端网页代码中错误的方法、检测设备及服务器
US20190317882A1 (en) * 2018-04-13 2019-10-17 Baidu Usa Llc Method and apparatus for testing a code file
CN111045944A (zh) * 2019-12-11 2020-04-21 广州品唯软件有限公司 回归测试方法、装置、系统及计算机可读存储介质
CN112486820A (zh) * 2020-11-27 2021-03-12 北京百度网讯科技有限公司 用于测试代码的方法、装置、设备以及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967209A (zh) * 2017-10-09 2018-04-27 中国银联股份有限公司 一种检测前端网页代码中错误的方法、检测设备及服务器
US20190317882A1 (en) * 2018-04-13 2019-10-17 Baidu Usa Llc Method and apparatus for testing a code file
CN111045944A (zh) * 2019-12-11 2020-04-21 广州品唯软件有限公司 回归测试方法、装置、系统及计算机可读存储介质
CN112486820A (zh) * 2020-11-27 2021-03-12 北京百度网讯科技有限公司 用于测试代码的方法、装置、设备以及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈琦雯;胡飞;: "运行态软件测试技术研究", 测控技术, no. 05, 18 May 2010 (2010-05-18), pages 77 - 81 *
陈锦富;卢炎生;谢晓东;: "软件错误注入测试技术研究", 软件学报, no. 06, 15 June 2009 (2009-06-15) *

Similar Documents

Publication Publication Date Title
CN110765018B (zh) 接口自动化测试方法及设备
CN109726107A (zh) 测试方法、装置、设备及存储介质
CN110597675B (zh) 芯片的测试方法、装置、存储介质及烧录器
CN110069404B (zh) 代码调试方法、装置、设备及介质
CN110674034A (zh) 一种健康检查方法、装置及电子设备和存储介质
CN111475390A (zh) 日志采集系统部署方法、装置、设备及存储介质
CN110032505B (zh) 软件质量确定装置和方法以及非暂态计算机可读介质
JP2009294837A (ja) 障害監視システム及びデバイスと監視装置並びに障害監視方法
CN110908702A (zh) 一种版本切换方法、版本切换装置、计算机设备及存储介质
CN112100078A (zh) 一种生成接口测试用例的方法、装置及设备
CN110347565B (zh) 一种应用程序的异常分析方法及装置、电子设备
CN107122305B (zh) 软件测试装置及方法
CN110688173B (zh) 一种跨平台界面框架中组件的定位方法、装置及电子设备
CN112256593A (zh) 一种程序处理方法、装置、计算机设备和可读存储介质
CN113190432A (zh) 代码测试方法、装置、终端及存储介质
CN110554956A (zh) 一种bdms自动化测试方法
CN110377477B (zh) 一种电子设备、功能模组、电子设备的主板、检测方法
CN110297455B (zh) 可编程逻辑控制器及其自检和恢复方法
CN112965896A (zh) 基于动态字节码的测试环境故障检测方法及装置
CN112380118A (zh) 单元测试方法、装置、介质及电子设备
CN112306038A (zh) 一种检测方法、检测装置及诊断设备
CN115426286A (zh) 产品自动测试方法、装置、设备及计算机可读存储介质
CN115545677B (zh) 基于自动化用例执行情况的上线流程规范检测方法和系统
CN109597756B (zh) 一种信息修改方法及设备
CN111257683B (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