掌桥专利:专业的专利平台
掌桥专利
首页

软件开发测试方法、装置、设备及介质

文献发布时间:2023-06-19 09:54:18


软件开发测试方法、装置、设备及介质

技术领域

本申请涉及到人工智能技术领域,特别是涉及到一种软件开发测试方法、装置、设备及介质。

背景技术

现有技术通用的研发过程,是对软件先进行需求分析,然后进行软件的总体结构设计和模块设计、编码和调试、程序联调、提交代码给测试、测试通过上线等。

关于程序联调阶段,在程序联调时跟外部系统对接进行系统间的联调测试是必不可少的,有些外部系统提供测试环境,有些甚至不提供。即便是提供测试环境的外部系统,一般也仅在程序联调阶段配合提供联调测试对接服务,一旦程序联调测试结束,也不再继续提供测试服务,导致很多联调问题无法及时排查。

关于提交代码阶段,开发在提交代码给测试时,常常由于master或分支的混淆、工作目录未及时更新、开发未在本地做测试甚至未编译通过、各个开发人员之间的代码提交冲突等原因,导致代码部署流水线提交给测试环节的待测代码经常错误百出,大大增加测试环节的负担。

发明内容

本申请的主要目的为提供一种软件开发测试方法、装置、设备及介质,旨在解决现有技术的研发过程中无法随时进行多个系统联调导致系统对接问题较多,代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题。

为了实现上述发明目的,本申请提出一种软件开发测试方法,所述方法包括:

基于CI环境,获取待测试代码;

基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;

基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;

当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;

当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

进一步的,所述对所述待测试代码进行缺失测试,得到缺失测试结果的步骤,包括:

对所述待测试代码进行代码缺失测试,得到代码缺失测试结果;

对所述待测试代码进行配置缺失测试,得到配置缺失测试结果;

根据所述代码缺失测试结果和所述配置缺失测试结果,确定所述缺失测试结果。

进一步的,所述根据所述代码缺失测试结果和所述配置缺失测试结果,确定所述缺失测试结果的步骤,包括:

当所述代码缺失测试结果为不通过且所述配置缺失测试结果为通过时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取得到代码缺失数据,根据所述代码缺失数据,确定所述缺失测试结果的缺失数据;

当所述代码缺失测试结果为通过且所述配置缺失测试结果为不通过时确定所述缺失测试结果的测试结果为不通过,从所述配置缺失测试结果中提取得到配置缺失数据,根据所述配置缺失数据,确定所述缺失测试结果的缺失数据;

当所述代码缺失测试结果为不通过且所述配置缺失测试结果为不通过时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取得到所述代码缺失数据,并且从所述配置缺失测试结果中提取得到所述配置缺失数据,根据所述代码缺失数据和所述配置缺失数据,确定所述缺失测试结果的缺失数据。

进一步的,所述对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果的步骤,包括:

在运行所述待测试代码的过程中,确定目标应用系统;

在运行所述待测试代码的过程中,根据所述目标应用系统,确定与所述目标应用系统对应的目标入参数据;

通过运行所述待测试代码将所述目标入参数据发送给Mock系统;

通过运行所述待测试代码接收所述Mock系统发送的与所述目标入参数据对应的目标出参数据;

根据所述目标出参数据继续运行所述待测试代码直至所述待测试代码运行结束,得到所述代码逻辑测试结果。

进一步的,所述当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统的步骤之后,包括:

获取所述自动化测试系统发送的所述待测试代码的功能测试结果;

当所述功能测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述功能测试结果为通过。

进一步的,所述当所述功能测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述功能测试结果为通过的步骤之后,包括:

当所述功能测试结果为通过时,将所述待测试代码移交给需求验收端;

获取所述需求验收端发送的需求验收结果;

当所述需求验收结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述需求验收结果为通过。

进一步的,所述当所述需求验收结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述需求验收结果为通过的步骤之后,包括:

当所述需求验收结果为通过时,将所述待测试代码移交给回归测试端;

获取所述回归测试端发送的回归测试结果;

当所述回归测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述回归测试结果为通过。

本申请还提出了一种软件开发测试装置,所述装置包括:

代码获取模块,用于基于CI环境,获取待测试代码;

缺失测试模块,用于基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;

代码逻辑测试,用于基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;

目标代码问题确定模块,用于当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;

代码移交模块,用于当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请的软件开发测试方法、装置、设备及介质,通过在移交代码进行功能模块测试前,通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,从而全面的测试了待测试代码的缺失错误及逻辑错误,解决了代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,而且通过模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多的技术问题,减少了测试人员的工作量,缩短了产品上市时间。

附图说明

图1为本申请一实施例的软件开发测试方法的流程示意图;

图2为图1的软件开发测试方法的确定缺失测试结果的流程示意图;

图3为图2的软件开发测试方法的确定缺失测试结果的流程示意图;

图4为图1的软件开发测试方法的确定代码逻辑测试结果的流程示意图;

图5为图1的软件开发测试方法的功能测试的流程示意图;

图6为图5的软件开发测试方法的需求验收的流程示意图;

图7为图6的软件开发测试方法的回归测试的流程示意图;

图8为本申请一实施例的软件开发测试装置的结构示意框图;

图9为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

为了解决现有技术的研发过程中无法随时进行多个系统联调导致系统对接问题较多,代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,本申请提出了软件开发测试方法,所述方法应用于人工智能技术领域,所述方法进一步应用于人工智能的分布式人工智能技术领域。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。所述软件开发测试方法通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多,代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题。

参照图1,所述软件开发测试方法包括:

S1:基于CI环境,获取待测试代码;

S2:基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;

S3:基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;

S4:当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;

S5:当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

本实施例通过在移交代码进行功能模块测试前,通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,从而全面的测试了待测试代码的缺失错误及逻辑错误,解决了代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,而且通过模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多的技术问题,减少了测试人员的工作量,缩短了产品上市时间。

对于S1,基于CI环境(持续集成环境),获取开发人员发送的待测试代码。

待测试代码,是需要进行测试的代码。

待测试代码可以是整个待测试应用系统的部分代码,也可以是整个待测试应用系统的全部代码。

CI,英文全称为Continuous integration,中文意思是持续集成,持续集成强调开发人员提交了新代码之后都是通过自动化的构建和验证,自动化的构建和验证包括自动编译、发布和测试,从而尽快地发现集成错误,这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

基于CI环境,可以将待测试代码和待测试应用系统原有代码进行自动化的构建和验证。

CI环境的搭建方法可以从现有技术中选择,在此不做赘述。

对于S2,在CI环境中,将所述待测试代码和待测试应用系统原有代码进行结合,得到待测试应用系统完整代码,从而实现自动化构建待测试应用系统完整代码;根据所述待测试代码,获取目标代码检查项数据;然后采用代码测试工具根据目标代码检查项数据对待测试应用系统完整代码中的所述待测试代码进行缺失测试;当目标代码检查项数据中每个检查项在所述待测试代码进行缺失测试都通过时确定缺失测试结果为通过,否则确定缺失测试结果为不通过。

目标代码检查项数据,也是代码检查项数据。代码检查项数据是根据待测试应用系统确定的检查项数据。代码检查项数据包括:检查项名称、检查方法。

缺失测试结果包括:测试结果、缺失数据。测试结果包括通过、不通过。

缺失数据包括:缺失的检查项名称。

代码测试工具采用Maven、Jmeter、Jenkins构建。

Maven,是一个项目管理和综合工具,Maven提供了开发人员构建一个完整的生命周期框架。Maven是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。

Jmeter,也就是Apache JMeter,是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

Jenkins,是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins功能包括:持续的软件版本发布/测试项目;监控外部调用执行的工作。

对于S3,在CI环境中,将所述待测试代码和待测试应用系统原有代码进行结合,得到待测试应用系统完整代码,通过运行待测试应用系统完整代码实现运行所述待测试代码,运行待测试应用系统完整代码的过程中通过模拟入参和出参使待测试应用系统完整代码能顺畅的完整执行;获取所述待测试代码的执行结果作为目标执行结果;获取标准执行结果;当目标执行结果与所述标准执行结果相同时确定代码逻辑测试结果为通过,否则确定代码逻辑测试结果为不通过。

模拟入参和出参,是指模拟接收运行待测试应用系统完整代码的过程中发给其它应用系统的参数(也就是模拟出参),模拟其它应用系统向待测试应用系统发送返回参数(也就是模拟入参)。其它应用系统根据收到的参数执行后得到返回参数。

对于S4,当所述缺失测试结果为不通过和所述代码逻辑测试结果通过时,意味着此时代码存在缺失,从不通过的所述缺失测试结果中提取出缺失数据,将提取出的缺失数据作为目标代码问题;当所述缺失测试结果为通过和所述代码逻辑测试结果不通过时,意味着此时代码逻辑存在问题,从不通过的所述代码逻辑测试结果中提取出目标执行结果,将提取得到的目标执行结果作为作为目标代码问题;当所述缺失测试结果为不通过和所述代码逻辑测试结果不通过时,意味着此时代码存在缺失和代码逻辑存在问题,从不通过的所述缺失测试结果中提取出缺失数据,从不通过的所述代码逻辑测试结果中提取出目标执行结果,将提取出的缺失数据作为和目标执行结果作为目标代码问题。

当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,意味着所述缺失测试结果和所述代码逻辑测试结果的至少一个为不通过,此时的所述待测试代码还存在问题,不能提交给自动化测试系统。

对于S5,所述缺失测试结果和所述代码逻辑测试结果均为通过,意味着此时的所述待测试代码已经解决了现有研发过程中无法随时进行多个系统联调导致系统对接问题较多,代码部署流水线提交给测试的待测代码错误较多的技术问题,此时将所述待测试代码移交给自动化测试系统,避免缺失问题和逻辑问题影响功能模块的测试。

所述自动化测试系统,是基于CI环境进行功能模块的测试的系统。当待测试代码已经解决了现有研发过程中无法随时进行多个系统联调导致系统对接问题较多,即可将所述待测试代码移交给自动化测试系统进行功能模块的测试。

参照图2,在一个实施例中,上述对所述待测试代码进行缺失测试,得到缺失测试结果的步骤,包括:

S21:对所述待测试代码进行代码缺失测试,得到代码缺失测试结果;

S22:对所述待测试代码进行配置缺失测试,得到配置缺失测试结果;

S23:根据所述代码缺失测试结果和所述配置缺失测试结果,确定所述缺失测试结果。

本实施例通过对待测试代码进行代码缺失测试和配置缺失测试,可以及时排查出代码缺失问题和配置缺失问题,避免将存在缺失问题(代码缺失问题和配置缺失问题)的代码提交给测试人员,从而减少了测试人员的工作量。

可以理解的是,步骤S21和步骤S22还可以有其他执行顺序,在此不做具体限定。

对于S21,在CI环境中,将所述待测试代码和待测试应用系统原有代码进行结合,得到待测试应用系统完整代码,从而实现自动化构建待测试应用系统完整代码;根据所述待测试代码,获取目标代码检查项数据的代码缺失检查项数据,然后采用代码测试工具根据代码缺失检查项数据对待测试应用系统完整代码中的所述待测试代码进行代码缺失测试;当代码缺失检查项数据中每个检查项在所述待测试代码进行代码缺失测试都通过时确定代码缺失测试结果为通过,否则确定代码缺失测试结果为不通过。

代码缺失测试结果包括:测试结果、缺失的检查项名称。

代码缺失测试,是检查待测试代码是否有代码遗漏。

对于S22,根据所述待测试代码,获取目标代码检查项数据的配置缺失检查项数据,然后采用代码测试工具根据配置缺失检查项数据对待测试应用系统完整代码中的所述待测试代码进行配置缺失测试;当配置缺失检查项数据中每个检查项在所述待测试代码进行配置缺失测试都通过时确定配置缺失测试结果为通过,否则确定配置缺失测试结果为不通过。

配置缺失测试结果包括:测试结果、缺失的检查项名称。

配置缺失测试,是检查待测试代码是否有配置数据遗漏。

对于S23,当所述代码缺失测试结果和所述配置缺失测试结果均为通过时,确定所述缺失测试结果为通过,否则确定所述缺失测试结果为不通过;当所述缺失测试结果为不通过时,将所述代码缺失测试结果的缺失的检查项名称和所述配置缺失测试结果的缺失的检查项名称放在一个集合,得到所述缺失测试结果的缺失数据。

参照图3,在一个实施例中,上述根据所述代码缺失测试结果和所述配置缺失测试结果,确定所述缺失测试结果的步骤,包括:

S231:当所述代码缺失测试结果为不通过且所述配置缺失测试结果为通过时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取得到代码缺失数据,根据所述代码缺失数据,确定所述缺失测试结果的缺失数据;

S232:当所述代码缺失测试结果为通过且所述配置缺失测试结果为不通过时确定所述缺失测试结果的测试结果为不通过,从所述配置缺失测试结果中提取得到配置缺失数据,根据所述配置缺失数据,确定所述缺失测试结果的缺失数据;

S233:当所述代码缺失测试结果为不通过且所述配置缺失测试结果为不通过时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取得到所述代码缺失数据,并且从所述配置缺失测试结果中提取得到所述配置缺失数据,根据所述代码缺失数据和所述配置缺失数据,确定所述缺失测试结果的缺失数据。

本实施例实现了根据所述代码缺失测试结果和所述配置缺失测试结果确定缺失测试结果,从而及时排查出缺失问题,避免将存在缺失问题的代码提交给测试人员,从而减少了测试人员的工作量。

对于S231,当所述代码缺失测试结果为不通过和所述配置缺失测试结果为通过时,意味着待测试代码缺少部分代码,此时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取缺失的检查项名称作为代码缺失数据,将提取的所述代码缺失数据作为所述缺失测试结果的缺失数据。

对于S232,当所述代码缺失测试结果为通过和所述配置缺失测试结果为不通过时,意味着待测试代码缺少部分配置数据,此时确定所述缺失测试结果的测试结果为不通过,从所述配置缺失测试结果中提取缺失的检查项名称作为配置缺失数据,将提取的所述配置缺失数据作为所述缺失测试结果的缺失数据。

对于S233,当所述代码缺失测试结果为不通过和所述配置缺失测试结果为不通过时,意味着待测试代码缺少部分代码和部分配置数据,此时确定所述缺失测试结果的测试结果为不通过,从所述代码缺失测试结果中提取缺失的检查项名称作为代码缺失数据,从所述配置缺失测试结果中提取缺失的检查项名称作为配置缺失数据,将所述代码缺失数据和所述配置缺失数据作为所述缺失测试结果的缺失数据。

参照图4,在一个实施例中,上述对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果的步骤,包括:

S31:在运行所述待测试代码的过程中,确定目标应用系统;

S32:在运行所述待测试代码的过程中,根据所述目标应用系统,确定与所述目标应用系统对应的目标入参数据;

S33:通过运行所述待测试代码将所述目标入参数据发送给Mock系统;

S34:通过运行所述待测试代码接收所述Mock系统发送的与所述目标入参数据对应的目标出参数据;

S35:根据所述目标出参数据继续运行所述待测试代码直至所述待测试代码运行结束,得到所述代码逻辑测试结果。

本实施例实现了模拟入参和出参进行代码逻辑测试,从而及时排查出代码逻辑问题,避免将存在代码逻辑问题的代码提交给测试人员,从而减少了测试人员的工作量。

对于S31,通过运行待测试应用系统完整代码实现运行所述待测试代码,在运行所述待测试代码的过程中,当需要调用应用系统时,将需要调用的应用系统作为目标应用系统。

对于S32,在运行所述待测试代码的过程中,当需要调用应用系统时,将生成调用参数,将生成的调用参数作为所述目标应用系统对应的目标入参数据。

对于S33,在运行所述待测试代码的过程中,将所述目标入参数据发送给Mock系统,模拟实现对目标应用系统的调用。

Mock系统的实现方法可以从现有技术中选择,在此不做赘述。

可选的,Mock系统采用java语言开发的系统。

对于S34,在运行所述待测试代码的过程中,当运行到需要获取调用目标应用系统的返回结果时获取所述Mock系统发送的与所述目标入参数据对应的目标出参数据。其中,Mock系统根据所述目标入参数据执行,执行结束得到与所述目标入参数据对应的目标出参数据。

对于S35,在运行所述待测试代码的过程中,当运行到需要获取调用目标应用系统的返回结果时,根据获取到的所述Mock系统发送的与所述目标入参数据对应的目标出参数据继续运行直至所述待测试代码运行结束,得到所述待测试代码的执行结果,将所述待测试代码的执行结果作为目标执行结果;获取标准执行结果;当目标执行结果与所述标准执行结果相同时确定代码逻辑测试结果为通过,否则确定代码逻辑测试结果为不通过。

可以理解的是,所述待测试代码运行结束可以是所述待测试代码运行完毕,也可以是所述待测试代码运行终止。

参照图5,在一个实施例中,上述当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统的步骤之后,包括:

S61:获取所述自动化测试系统发送的所述待测试代码的功能测试结果;

S62:当所述功能测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述功能测试结果为通过。

本实施例实现了在功能测试结果为不通过时基于CI环境重新获取待测试代码,实现了将开发流程节点自动返回。

对于S61,所述自动化测试系统根据所述待测试代码获取功能测试实例作为目标功能测试实例数据,然后采用目标功能测试实例数据对所述待测试代码进行功能测试,当目标功能测试实例数据中每个功能测试实例在所述待测试代码进行功能测试都通过时确定功能测试结果为通过,否则确定功能测试结果为不通过。

功能测试结果包括:测试结果、不通过的功能测试实例。

对于S62,当所述功能测试结果为不通过时,意味着存在功能测试实例对应的功能未达标,此时将开发流程节点返回基于CI环境重新获取待测试代码。

参照图6,在一个实施例中,上述当所述功能测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述功能测试结果为通过的步骤之后,包括:

S71:当所述功能测试结果为通过时,将所述待测试代码移交给需求验收端;

S72:获取所述需求验收端发送的需求验收结果;

S73:当所述需求验收结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述需求验收结果为通过。

本实施例实现了在需求验收结果为不通过时基于CI环境重新获取待测试代码,实现了将开发流程节点自动返回。

对于S71,当所述功能测试结果为通过时,意味着待测试代码功能测试没有问题,此时将所述待测试代码移交给需求验收端,避免功能测试问题影响需求验收的测试。

对于S72,需求验收人员根据所述待测试代码获取需求验收实例作为目标需求验收实例数据,然后采用目标需求验收实例数据对所述待测试代码进行需求验收测试,当目标需求验收实例数据中每个需求验收实例在所述待测试代码进行需求验收测试都通过时确定需求验收结果为通过,否则确定需求验收结果为不通过。需求验收人员测试结束通过需求验收端发送需求验收结果。

需求验收结果包括:测试结果、不通过的需求验收实例。

对于S73,当所述需求验收结果为不通过时,意味着存在需求验收实例对应的功能未达标,此时将开发流程节点返回基于CI环境重新获取待测试代码。

参照图7,在一个实施例中,上述当所述需求验收结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述需求验收结果为通过的步骤之后,包括:

S81:当所述需求验收结果为通过时,将所述待测试代码移交给回归测试端;

S82:获取所述回归测试端发送的回归测试结果;

S83:当所述回归测试结果为不通过时,执行所述基于CI环境,获取待测试代码的步骤直至所述回归测试结果为通过。

本实施例实现了在回归测试结果为不通过时基于CI环境重新获取待测试代码,实现了将开发流程节点自动返回。

对于S81,当所述需求验收结果为通过时,意味着待测试代码功能测试没有问题,此时将所述待测试代码移交给回归测试端,避免需求验收测试问题影响回归测试。

对于S82,回归测试人员根据所述待测试代码获取回归测试实例作为目标回归测试实例数据,然后采用目标回归测试实例数据对所述待测试代码进行回归测试,当目标回归测试实例数据中每个回归测试实例在所述待测试代码进行回归测试都通过时确定回归测试结果为通过,否则确定回归测试结果为不通过。当所述回归测试结果为不通过时,回归测试人员通过回归测试端发送回归测试结果。当所述回归测试结果为通过时回归测试人员将所述待测试代码提交上线发布。

回归测试结果包括:测试结果、不通过的需求验收实例。

对于S83,当所述回归测试结果为不通过时,意味着存在回归测试实例对应的功能未达标,此时将开发流程节点返回基于CI环境重新获取待测试代码。

参照图8,本申请还提出了一种软件开发测试装置,所述装置包括:

代码获取模块100,用于基于CI环境,获取待测试代码;

缺失测试模块200,用于基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;

代码逻辑测试300,用于基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;

目标代码问题确定模块400,用于当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;

代码移交模块500,用于当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

本实施例通过在移交代码进行功能模块测试前,通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,从而全面的测试了待测试代码的缺失错误及逻辑错误,解决了代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,而且通过模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多的技术问题,减少了测试人员的工作量,缩短了产品上市时间。

参照图9,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存软件开发测试方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件开发测试方法。所述软件开发测试方法,包括:基于CI环境,获取待测试代码;基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

本实施例通过在移交代码进行功能模块测试前,通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,从而全面的测试了待测试代码的缺失错误及逻辑错误,解决了代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,而且通过模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多的技术问题,减少了测试人员的工作量,缩短了产品上市时间。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种软件开发测试方法,包括步骤:基于CI环境,获取待测试代码;基于CI环境,对所述待测试代码进行缺失测试,得到缺失测试结果;基于CI环境,对所述待测试代码按模拟入参和出参进行代码逻辑测试,得到代码逻辑测试结果;当所述缺失测试结果和/或所述代码逻辑测试结果为不通过时,根据不通过的所述缺失测试结果和不通过的所述代码逻辑测试结果,确定目标代码问题;当所述缺失测试结果和所述代码逻辑测试结果均为通过时,将所述待测试代码移交给自动化测试系统。

上述执行的软件开发测试方法,通过在移交代码进行功能模块测试前,通过基于CI环境对待测试代码进行缺失测试,通过基于CI环境对待测试代码模拟入参和出参进行代码逻辑测试,从而全面的测试了待测试代码的缺失错误及逻辑错误,解决了代码部署流水线提交给测试环节的待测代码错误较多导致增加测试环节的负担的技术问题,而且通过模拟入参和出参进行代码逻辑测试,解决了无法随时进行多个系统联调导致系统对接问题较多的技术问题,减少了测试人员的工作量,缩短了产品上市时间。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的可选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 软件开发系统的接口测试方法、装置、设备及存储介质
  • 软件开发工具包测试方法、装置和设备及计算机存储介质
技术分类

06120112340918