软件处理系统
技术领域
本发明涉及计算机技术领域,特别是涉及一种软件处理系统。
背景技术
软件开发阶段的多个节点需要进行大量的软件测试。现有的软件测试实践中,往往针对单个软件测试任务开发软件测试工具,导致软件测试任务分散,影响软件开发的效率。
发明内容
为提高软件开发效率,提出一种软件处理系统,集成软件开发阶段所需要的各种软件测试任务。
第一方面,本发明实施例提供一种软件处理系统,包括:
软件代码存储模块,用于保存执行软件开发任务产生的代码;
软件测试执行模块,用于从上述代码中查找第一目标数据,获取查找到的第一目标数据对应的第一测试用例,根据第一测试用例对软件开发任务的第一测试对象进行软件测试,第一测试对象为第一目标数据对应的测试对象;接收针对软件开发任务的第二测试对象的软件测试请求,获取软件测试请求对应的第二测试用例,根据第二测试用例对第二测试对象进行软件测试。
本发明实施例提供的系统集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的软件处理系统,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
在此基础上,本发明实施例提供的软件处理系统还可以包括软件开发执行模块,用于创建并执行上述软件开发任务。相应的,上述软件处理系统还可以包括软件开发支持模块,用于将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存,上述第一测试用例和/或第二测试用例是根据软件开发任务的软件开发文档生成的。
本发明实施例提供的系统,不仅支持软件测试功能,还支持软件开发功能,软件开发执行模块响应开发者的操作,可创建并执行软件开发任务。相应的,软件开发支持模块为软件开发和软件测试提供基础支持功能,具体的,将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存。
另外,本发明实施例提供的系统中,部分或全部第一测试用例,和/或部分或全部第二测试用例是根据软件开发任务的软件开发文档生成的,也就意味着,只要获取到软件开发文档,即可编写测试用例,而不需要在提出对应的测试需求时才进行测试用例的编写,进一步提高软件测试的效率。
在此基础上,上述软件开发执行模块还可以用于:在上述软件开发任务满足预设条件的情况下,向软件测试执行模块发送针对软件开发任务的第二测试对象的软件测试请求。
由于本发明实施例提供的系统既支持软件测试功能,又支持软件开发功能,因此,由实现软件开发功能的软件开发执行模块在软件开发任务满足预设条件的情况下,向软件测试执行模块发送针对软件开发任务的第二测试对象的软件测试请求,可简化实现流程。
基于上述任意实施例,本发明实施例提供的软件处理系统还可以包括质量度量模块,用于获取所述软件测试的测试结果、第一测试用例、第二测试用例和软件开发任务对应的软件的运行反馈数据,按照预定的质量度量规则对获取到的测试结果、第一测试用例、第二测试用例和运行反馈数据进行分析,得到软件开发任务的质量度量结果。
其中,软件开发任务的质量度量结果反映了针对该软件开发任务的软件测试是否全面和/或是否存在错误。
通过分析得到质量度量结果,可以根据质量度量结果调整软件测试,例如修改或增加测试用例,从而提高软件测试的覆盖范围及可靠性,提升软件的稳定性。
在此基础上,上述软件处理系统还可以包括数据监控模块,用于从业务、模块、接口、系统中的至少一个维度对软件开发任务对应的软件的运行进行监控,得到运行反馈数据。
本发明实施例提供的系统,可以根据需要从多个维度上灵活监控软件运行,从而得到所需要的运行反馈数据。
第二方面,本发明实施例还提供一种软件处理系统,包括至少一个存储器,至少一个处理器,以及存储在上述至少一个存储器上并可在上述至少一个处理器上运行的计算机程序,处理器被配置为执行该计算机程序,实现:
从执行软件开发任务产生的代码中查找第一目标数据,获取查找到的第一目标数据对应的第一测试用例,根据所述第一测试用例对所述软件开发任务的第一测试对象进行软件测试,所述第一测试对象为所述第一目标数据对应的测试对象;
接收针对所述软件开发任务的第二测试对象的软件测试请求,获取所述软件测试请求对应的第二测试用例,根据所述第二测试用例对所述第二测试对象进行软件测试。
本发明实施例提供的系统集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的软件处理系统,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
在此基础上,上述处理器还可以被配置为执行上述计算机程序,实现:
创建并执行所述软件开发任务,关联保存执行所述软件开发任务产生的代码、所述软件开发任务的软件开发文档、以及对所述软件测试的测试结果,所述第一测试用例和/或第二测试用例是根据所述软件开发任务的软件开发文档生成的。
本发明实施例提供的系统,不仅支持软件测试功能,还支持软件开发功能,响应开发者的操作,可创建并执行软件开发任务。相应的,为软件开发和软件测试提供基础支持功能,具体的,将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存。
另外,本发明实施例提供的系统中,部分或全部第一测试用例,和/或部分或全部第二测试用例是根据软件开发任务的软件开发文档生成的,也就意味着,只要获取到软件开发文档,即可编写测试用例,而不需要在提出对应的测试需求时才进行测试用例的编写,进一步提高软件测试的效率。
在此基础上,上述处理器还可以被配置为执行上述计算机程序,实现:
在所述软件开发任务满足预设条件的情况下,发送针对所述软件开发任务的第二测试对象的软件测试请求。
由于本发明实施例提供的系统既支持软件测试功能,又支持软件开发功能,因此,在软件开发任务满足预设条件的情况下,发送针对软件开发任务的第二测试对象的软件测试请求,可简化实现流程。
基于上述任意实施例,本发明实施例提供的软件处理系统还可以被配置为执行所述计算机程序,实现:
获取所述软件测试的测试结果、第一测试用例、第二测试用例和所述软件开发任务对应的软件的运行反馈数据,按照预定的质量度量规则对获取到的测试结果、第一测试用例、第二测试用例和所述运行反馈数据进行分析,得到所述软件开发任务的质量度量结果。
其中,软件开发任务的质量度量结果反映了针对该软件开发任务的软件测试是否全面和/或是否存在错误。
通过分析得到质量度量结果,可以根据质量度量结果调整软件测试,例如修改或增加测试用例,从而提高软件测试的覆盖范围及可靠性,提升软件的稳定性。
在此基础上,本发明实施例提供的软件处理系统还可以被配置为执行所述计算机程序,实现:从业务、模块、接口、系统中的至少一个维度对软件开发任务对应的软件的运行进行监控,得到运行反馈数据。
本发明实施例提供的系统,可以根据需要从多个维度上灵活监控软件运行,从而得到所需要的运行反馈数据。
第三方面,本发明实施例还提供一种计算机可读存储介质,存储有上述第二方面任一系统实施例提供的软件处理系统的处理器执行的计算机程序。
本发明实施例提供的存储介质中保存的计算机程序集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的存储介质中保存的计算机程序,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
附图说明
图1为本发明一个实施例中的软件开发测试系统的软件架构图;
图2为本发明另一个实施例中的软件开发测试系统的软件架构图;
图3为本发明另一个实施例中的软件开发测试系统的软件架构图;
图4为本发明另一个实施例中的软件开发测试系统的软件架构图;
图5为本发明另一个实施例中的软件开发测试系统的软件架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
本发明实施例提供一种软件处理系统,如图1所示,包括:
软件代码存储模块101,用于保存执行软件开发任务产生的代码。
本发明实施例中,上述代码是指执行软件开发任务得到的软件的代码,包括以下至少一种代码:源代码、目标代码、可执行代码。
软件测试执行模块102,用于从上述代码中查找第一目标数据,获取查找到的第一目标数据对应的第一测试用例,根据第一测试用例对软件开发任务的第一测试对象进行软件测试,第一测试对象为第一目标数据对应的测试对象;接收针对软件开发任务的第二测试对象的软件测试请求,获取软件测试请求对应的第二测试用例,根据第二测试用例对第二测试对象进行软件测试。
本发明实施例中,第一目标数据是预先确定的,可以但不仅限于是代码中预定的关键字符串,作为软件测试的触发条件。具体的,预先确定第一目标数据,确定其对应的第一测试对象,并编写其对应的第一测试用例。
本发明实施例中,不对第一测试对象和第二测试对象进行限定,可以是软件的代码、软件的接口、软件的UI(User Interface,用户界面)、软件的性能等等。
本发明实施例中,各个软件测试请求对应的第二测试对象是预先确定的,第二测试用例是预先编写的,也可以是在接收到软件测试请求后编写的。
本发明实施例提供的系统集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的软件处理系统,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
本发明实施例中,软件开发可以在第三方系统上实现,相应的,本发明实施例提供的软件处理系统从第三方系统获取上述代码,接收上述软件测试请求。软件开发也可以在本发明实施例提供的软件处理系统上实现,那么,如图2所示,本发明实施例提供的软件处理系统还可以包括软件开发执行模块103,用于创建并执行上述软件开发任务;相应的,上述软件处理系统还可以包括软件开发支持模块104,用于将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存,上述第一测试用例和/或第二测试用例是根据软件开发任务的软件开发文档生成的。
本发明实施例提供的系统,不仅支持软件测试功能,还支持软件开发功能,软件开发执行模块响应开发者的操作,可创建并执行软件开发任务。相应的,软件开发支持模块为软件开发和软件测试提供基础支持功能,具体的,将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存。
另外,本发明实施例提供的系统中,部分或全部第一测试用例,和/或部分或全部第二测试用例是根据软件开发任务的软件开发文档生成的,也就意味着,只要获取到软件开发文档,即可编写测试用例,而不需要在提出对应的测试需求时才进行测试用例的编写,进一步提高软件测试的效率。
在此基础上,上述软件开发执行模块103还可以用于:在上述软件开发任务满足预设条件的情况下,向软件测试执行模块102发送针对软件开发任务的第二测试对象的软件测试请求。
本发明实施例不对上述预设条件进行限定,实际应用中,可以根据软件开发任务的具体情况进行设定。本发明实施例中,一种情况下,软件开发任务的多个节点可以分别对应有预设条件,例如,“自测”、“提测”、“冒烟测试”等等节点各自对应有预设条件,当本节点满足预设条件时,发送软件测试请求,其中,预设条件为本节点任务完成。另一种情况下,软件开发任务的多个软件测试节点可以分别对应有预设条件,例如,“自测”、“提测”、“冒烟测试”等等节点各自对应有预设条件,该预设条件为前一节点需要满足的条件,例如,“提测”对应的预设条件为“自测”的测试通过率达到设定值,当前一节点满足预设条件时,发送本节点对应的软件测试请求。
应当指出的是,实际应用中,除了由软件开发执行模块103在检测到满足预设条件的情况下自动发送软件测试开发请求,也可以由用户触发软件测试请求。例如,软件开发人员完成软件开发任务的某个节点,触发软件开发执行模块103发送软件测试请求。
由于本发明实施例提供的系统既支持软件测试功能,又支持软件开发功能,因此,由实现软件开发功能的软件开发执行模块在软件开发任务满足预设条件的情况下,向软件测试执行模块发送针对软件开发任务的第二测试对象的软件测试请求,可简化实现流程。
基于上述任意实施例,如图3所示,本发明实施例提供的软件处理系统还可以包括质量度量模块105,用于获取所述软件测试的测试结果、第一测试用例、第二测试用例和软件开发任务对应的软件的运行反馈数据,按照预定的质量度量规则对获取到的测试结果、第一测试用例、第二测试用例和运行反馈数据进行分析,得到软件开发任务的质量度量结果。
其中,软件开发任务的质量度量结果反映了针对该软件开发任务的软件测试是否全面和/或是否存在错误。
通过分析得到质量度量结果,可以根据质量度量结果调整软件测试,例如修改或增加测试用例,从而提高软件测试的覆盖范围及可靠性,提升软件的稳定性。
应当指出的是,除了在本发明实施例提供的系统中增加质量度量模块对软件开发任务的软件测试结果进行评价,还可以利用第三方提供的质量度量模块进行分析评价。
在此基础上,如图4所示,上述软件处理系统还可以包括数据监控模块106,用于从业务、模块、接口、系统中的至少一个维度对软件开发任务对应的软件的运行进行监控,得到运行反馈数据。
本发明实施例提供的系统,可以根据需要从多个维度上灵活监控软件运行,从而得到所需要的运行反馈数据。
下面结合具体应用场景对本发明实施例提供的系统进行说明。在该应用场景中,软件开发任务包括如下流程节点:需求、开发、自测、提测、冒烟测试、测试、回归、预上线、小流量、全流量。其中,需求即提出软件开发任务的需求,开发、自测、提测属于部分(Researchand Development,RD),冒烟测试、测试和回归属于质量保证(Quality Assurance,OA)部分,预上线、小流量和全流量则属于云管理部分。
基于上述应用场景,本发明提供的软件处理系统的软件架构如图5所示,包括软件开发流程、软件代码管理、服务化、基础建设、监控和反馈、质量度量六大部分。
软件开发流程部分对应上述软件开发执行模块,该部分包括软件开发过程中的各个节点:需求、开发、自测、提测、冒烟测试、测试、回归、预上线、小流量、全流量。
本发明实施例中,软件开发任务的流程又分为研发(RD)、质量保证(QA)和云管理三个子流程。研发子流程包括开发、自测、提测三个流程节点,质量保证子流程包括冒烟测试、测试和回归三个流程节点,云管理包括预上线,小流量,全流量三个流程节点。
本实施例中,软件开发任务的流程是基于标准的项目流程,如jira、redmine等确定的,利用基础建设部分提供的项目管理工具实现对软件开发任务的流程进行项目管理,使得软件开发任务的流程标准化,对各个流程节点可量化度量。另外,本发明实施例提供的系统将软件开发任务中的各种数据汇聚到一起,为质量度量提供唯一的数据入口。
软件代码管理部分对应上述软件代码存储模块,该部分进一步包括代码仓库和软件配置管理(Software configuration management,SCM)。代码仓库中保存有各个软件开发任务的代码,还保存有代码开发规范和代码编码规范。
服务化部分对应上述软件测试执行模块,包括环境构建、代码扫描、单侧、接口自动化、UI自动化、性能测试等等。
本实施例中,服务化的各个功能相对独立,且部署在jenkins(一种开源持续集成工具),这样有两个好处:一是服务化的功能可灵活定制、扩展;二是jenkins的job既可提供服务,又可以作为持续集成的子项。
另外,搭建jenkins服务,并把jira和jenkins打通,配置webhook。
具体实现过程中,编写workflow(工作流)代码,方便各业务定制服务化功能模块,配置化调度jenkins job(coding部分)。
本实施例中,服务化部分提供接口,供第三方服务化功能(例如性能测试)部署到jenkins。
基础建设部分对应上述软件开发支持模块,包括项目流程标准、漏洞(BUG)管理、数据测试管理、容器化、测试框架、接口管理、mock(虚拟)环境、客户端测试工具、专项测试、coderview(代码浏览)、客户端测试工具等部分。
本发明实施例中,基础建设部分为软件处理系统的运行提供支持。具体的,其中的MOCK环境、客户端测试工具、代码浏览、接口管理、容器化、专项测试、测试框架、BUG管理等为服务化部分提供了基础支持,其中的项目流程标准、调试数据管理、接口管理等为软件开发流程部分提供项目管理支持。
其中,接口管理保证接口和代码同源,同时负责接口的所有服务化(mock、自动化、接口测试、性能、监控)等。
监控和反馈部分对应上述数据质量监控模块,包括业务数据监控、模块服务监控、接口流量监控和系统监控四级监控,除此之外,还提供应用程序(APP)监控和用户反馈两个维度的数据反馈。
本发明实施例中,监控和反馈部分用于收集软件运行过程中的线上质量数据并反馈给质量度量部分。本发明实施例不对线上质量数据的具体内容进行限定,实际应用中,根据质量度量的需要确定线上质量数据。
更进一步地,拓展监控触发的回查功能,回查接口的覆盖度,以便进一步深化接口自动化。
质量度量部分对应上述质量度量模块,包括数据收集和质量分析两部分。数据收集模块获取监控与反馈部分上报的线上质量数据、服务化部分的测试服务化数据和基础建设部分的BUG和项目数据,将获取的数据发送给质量分析模块,质量分析模块按照预定的分析策略进行分析,得到质量报告。作为举例而非限定,通过质量分析可以发现以下三个问题:自动化覆盖不足、监控不足、流程不完善。
具体实现中,度量平台开发,包括对外接口,数据归一,度量模型分析等等。
本实施例提供独立的自研平台工具,为服务化和常规测试提供平台支撑,比如性能测试平台,数据平台,接口管理平台等。
另外,本发明实施例提供的系统集成有独立的平台工具,例如代码浏览、代码管理、线上监控以及质量度量平台等外部开源工具。
本发明实施例提供的系统实现软件开发的全流程保障方案,从软件开发任务(项目)的开始,开发,自测,提测,灰度,小流量,全流量等流程保障,这是明线(流程线)。明线从项目维度保障和评估质量;而暗线是基于代码的ci check(持续集成,CI线),同样可以调度对应的服务化部分,这是基于代码层面的质量保障和度量。
图5所示的系统是基于如下前提搭建的:
1、代码-服务拆分合理要求相关功能聚合到同一服务。例如用户服务(个人中心、注册、登入、搜索历史等等)。
2、流程标准化和可度量工具:建立项目标准,并使用可度量的项目管理工具。
3、代码开发规范:建立代码分支开发规范和代码规范。
4、容器化:容器化是最大限度使用机器资源,在线下保障环境的高复用性。
下面将结合软件开发任务的完整流程,对图5所示的系统的工作过程进行说明。
软件开发的需求方(产品经理、研发人员等)登录图5所示的系统,调用软件开发流程部分的需求节点,系统通过需求节点接收软件开发的需求方的软件开发任务创建请求,在代码仓库中创建软件开发及测试任务,接收软件开发任务的需求信息并保存到软件开发及测试任务对应的存储路径,需求信息包括软件开发任务的开发模式(瀑布型、敏捷性、迭代型等等)、软件开发需求文档等等。
将上述软件开发及测试任务与项目管理任务绑定,在绑定的项目管理任务中进行项目任务参数配置。其中,由基础建设部分中的项目管理相关模块提供项目任务参数配置的支持。
系统控制软件开发流程部分进入开发节点,研发人员在该节点下,根据代码仓库中保存的代码开发规范和代码编码规范进行软件开发,产生的代码保存在上述存储路径中。
在整个软件开发流程中,软件测试的分为流程线和CI线。
流程线:研发人员在写代码过程中或代码写完后,进行自测,并在满足设定条件后进行提测,若提测通过,一方面触发CI线,另一方面,可以进入流程线的下一个任务节点(测试人员的测试节点)。
其中,测试人员的测试节点,主要有两个工作,一是筛查未覆盖的测试并进行测试,二是对问题测试结果进行重新测试。
其中,云管理子流程的各个节点,进行“监控&反馈”模块中的各个上线监控。
CI线:服务化模块监听软件开发过程中产生的代码,若监听到预先配置的关键字,则调用对应的测试用例,并调用基础建设部分提供的客户端测试工具进行软件测试,若测试通过,则可以进入提测节点,否则将发出测试未通过的通知。
更具体的,无论是流程线还是CI线,均会触发服务化部分的至少一个软件测试任务,例如接口自动化任务、UI自动化任务、性能测试等等。被触发的测试任务的实现过程为,调用对应的测试用例,以及对应的客户端测试工具,在环境模块构建的软件测试环境下,按照测试用例的指示,由客户端测试工具执行软件测试任务。
其中,服务化部分中的各项测试任务是基于软件的开发文档生成的。
回顾软件测试的发展历程,可以将软件测试发展分为如下几个阶段:
1、纯手动测试节点:在公司创业初期,缺少qa甚至没有qa时,大部分测试都是纯手动的,甚至是没有测试用例;这时候的往往是重复低效的。
2、脚本工具:在重复工作积累后,采用一些脚本工具,用机器代替手工重复工作,提升一定效率。但这时候的脚本工具,往往离散,不系统,不具有通用解决方案。
3、软件测试平台:将脚本工具转为平台,提供更通用的软件测试系统,更方便的解决方案。
4、标准化+服务化:平台化有一个比较明显的痛点,游离在项目之外,需要人为强制推动执行,过多依赖于人的使用。标准化+服务化则是降低人为依赖,更高提供自动化率。
5、devops+质量度量:在服务化积累一定数据后,能对线上线下的质量,做出智能判断,并对周期性项目做质量度量。
目前的软件测试往往停留在第三个阶段,本发明实施例提供的系统是介于[标准化+服务化]和[devops+质量度量]之间的解决方案,以前者为始,以后者为终。以数据为基础,以度量和devops依据。
本发明实施例中,服务化有三个标准,一是解决单一通性问题,比如代码扫描,性能测试平台;二是有标准的输入输出,为质量度量提供数据;三是持续集成方式(部署在jenkins上)。
本发明实施例提供的系统打通了软件开发的所有流程,既对qa测试效率提供了代码和流程的提升,同时服务化,平台化,标准化的数据,对整体长期项目有度量依据,从而更直观的看出软件开发任务(项目)可改进之处。
第二方面,本发明实施例还提供一种软件处理系统,包括至少一个存储器,至少一个处理器,以及存储在上述至少一个存储器上并可在上述至少一个处理器上运行的计算机程序,处理器被配置为执行该计算机程序,实现:
从执行软件开发任务产生的代码中查找第一目标数据,获取查找到的第一目标数据对应的第一测试用例,根据所述第一测试用例对所述软件开发任务的第一测试对象进行软件测试,所述第一测试对象为所述第一目标数据对应的测试对象;
接收针对所述软件开发任务的第二测试对象的软件测试请求,获取所述软件测试请求对应的第二测试用例,根据所述第二测试用例对所述第二测试对象进行软件测试。
本发明实施例提供的系统集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的软件处理系统,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
在此基础上,上述处理器还可以被配置为执行上述计算机程序,实现:
创建并执行所述软件开发任务,关联保存执行所述软件开发任务产生的代码、所述软件开发任务的软件开发文档、以及对所述软件测试的测试结果,所述第一测试用例和/或第二测试用例是根据所述软件开发任务的软件开发文档生成的。
本发明实施例提供的系统,不仅支持软件测试功能,还支持软件开发功能,响应开发者的操作,可创建并执行软件开发任务。相应的,为软件开发和软件测试提供基础支持功能,具体的,将上述软件开发任务的软件开发文档和上述软件测试的测试结果与执行上述软件开发任务产生的代码关联保存。
另外,本发明实施例提供的系统中,部分或全部第一测试用例,和/或部分或全部第二测试用例是根据软件开发任务的软件开发文档生成的,也就意味着,只要获取到软件开发文档,即可编写测试用例,而不需要在提出对应的测试需求时才进行测试用例的编写,进一步提高软件测试的效率。
在此基础上,上述处理器还可以被配置为执行上述计算机程序,实现:
在所述软件开发任务满足预设条件的情况下,发送针对所述软件开发任务的第二测试对象的软件测试请求。
由于本发明实施例提供的系统既支持软件测试功能,又支持软件开发功能,因此,在软件开发任务满足预设条件的情况下,发送针对软件开发任务的第二测试对象的软件测试请求,可简化实现流程。
基于上述任意实施例,本发明实施例提供的软件处理系统还可以被配置为执行所述计算机程序,实现:
获取所述软件测试的测试结果、第一测试用例、第二测试用例和所述软件开发任务对应的软件的运行反馈数据,按照预定的质量度量规则对获取到的测试结果、第一测试用例、第二测试用例和所述运行反馈数据进行分析,得到所述软件开发任务的质量度量结果。
其中,软件开发任务的质量度量结果反映了针对该软件开发任务的软件测试是否全面和/或是否存在错误。
通过分析得到质量度量结果,可以根据质量度量结果调整软件测试,例如修改或增加测试用例,从而提高软件测试的覆盖范围及可靠性,提升软件的稳定性。
在此基础上,本发明实施例提供的软件处理系统还可以被配置为执行所述计算机程序,实现:从业务、模块、接口、系统中的至少一个维度对软件开发任务对应的软件的运行进行监控,得到运行反馈数据。
本发明实施例提供的系统,可以根据需要从多个维度上灵活监控软件运行,从而得到所需要的运行反馈数据。
第三方面,本发明实施例还提供一种计算机可读存储介质,存储有上述第二方面任一系统实施例提供的软件处理系统的处理器执行的计算机程序。
本发明实施例提供的存储介质中保存的计算机程序集成了软件开发任务的多种软件测试任务,可实现对软件开发任务进行专项测试,通过代码中查找第一目标数据的方式,利用查找到的第一目标数据对应的第一测试用例对第一测试对象进行专项测试,可实现对软件开发任务进行自测、提测、冒烟测试等常规流程测试,通过接收针对软件开发任务的第二测试对象的软件测试请求,根据软件测试请求对应的第二测试用例对第二测试对象进行上述常规流程测试。本发明实施例提供的存储介质中保存的计算机程序,将软件开发任务所需要的多个软件测试任务集成,从而可以提高软件测试效率,进而提高软件开发效率。另外,本发明实施例还可以通过查找第一目标数据以及接受软件测试请求的方式,自动调度软件测试用例完成软件测试,进一步提高软件测试效率。
上述所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。