软件质量测试方法、装置、电子设备及存储介质与流程

文档序号:30063294发布日期:2022-05-18 00:12阅读:109来源:国知局
软件质量测试方法、装置、电子设备及存储介质与流程

1.本公开涉及计算机应用技术领域,尤其涉及软件质量管理与测试技术领域。


背景技术:

2.相关技术中,随着软件功能不断增加和复杂性的提高,软件的代码的量不断增加。为了升级软件服务以及修复漏洞,在很多场景下,研发人员需要对现有代码进行变更。但是由于软件本身越来越复杂,而且很多代码还隐藏着调用与被调用的关系,导致研发人员在修改代码后不能确定修改内容是否会对软件其他部分造成影响,需要测试人员全面的考虑到代码变更的影响范围并进行测试,如果测试不全面,可能导致上线后出现问题,因此软件质量测试效率低。


技术实现要素:

3.本公开提供了一种软件质量测试方法、装置、电子设备、存储介质以及计算机程序产品。
4.根据本公开的第一方面,提供了一种软件质量测试方法,包括:
5.获取待测试软件的基础信息;
6.响应于软件质量测试指令,基于基础信息,触发变更影响评估进程,对待测试软件的变更信息进行测试,得到待测试软件的变更影响评估结果;
7.基于基础信息,触发风险遗留概率预测进程,对待测试软件的风险发生概率进行预测,得到待测试软件的风险发生概率;
8.基于变更影响评估结果和风险发生概率,通过风险决策模型,对待测试软件的质量风险进行预测,得到待测试软件的质量风险评估结果,其中,质量风险评估结果至少包括:待测试软件的风险发生概率以及质量保证介入信息。
9.根据本公开的第二方面,提供了一种软件质量测试装置,包括:
10.信息传输模块,用于获取待测试软件的基础信息;
11.信息处理模块,用于响应于软件质量测试指令,基于基础信息,触发变更影响评估进程,对待测试软件的变更信息进行测试,得到待测试软件的变更影响评估结果;
12.该信息处理模块,还用于基于基础信息,触发风险遗留概率预测进程,对待测试软件的风险发生概率进行预测,得到待测试软件的风险发生概率;
13.该信息处理模块,还用于基于变更影响评估结果和风险发生概率,通过风险决策模型,对待测试软件的质量风险进行预测,得到待测试软件的质量风险评估结果,其中,质量风险评估结果至少包括:待测试软件的风险发生概率以及质量保证介入信息。
14.根据本公开的第三方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与该至少一个处理器通信连接的存储器;其中,
17.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器
执行,以使该至少一个处理器能够执行以上所述的方法。
18.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行以上所述的方法。
19.根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以上所述的方法。
20.根据本公开的技术方案,能提高软件质量测试的效率。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本公开的限定。其中:
23.图1是本公开实施例提供的软件质量测试方法的使用环境示意图;
24.图2是本公开实施例提供的软件质量测试方法的流程示意图;
25.图3是本公开实施例中软件质量测试方法的一个可选的过程示意图;
26.图4是本公开实施例中变更影响范围识别示意图;
27.图5是本公开实施例中对测试软件的质量风险进行预测一个可选的过程示意图;
28.图6是本公开实施例提供的软件质量测试装置的结构示意图;
29.图7是用来实现本公开实施例的软件质量测试的方法的电子设备的框图。
具体实施方式
30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
31.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
32.对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释。
33.1)自动化测试:一般指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较,可节省人力、时间或硬件资源,提高测试效率
34.2)源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令。源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
35.3)云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模
式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。通过本公开提供的软件质量测试方法,可以对保存在云服务器网络中的待发布软件进行质量测试,保证在云服务器网络中的待发布软件的质量,减少依赖人工经验对云服务器网络中的软件进行质量测试,提升软件测试的准确性和速度。
36.4)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
37.在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本公开的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。
38.因此,附图和描述被认为本质上是示例性的而非限制性的,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
39.图1为本公开实施例提供的软件质量测试方法的使用场景示意图,参见图1,终端(包括终端10-1和终端10-2)上设置有能够执行不同功能相应客户端,其中,所属客户端为终端(包括终端10-1和终端10-2)通过网络300从相应的服务器200中下载相应的目标代码实现,终端通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,软件源代码可以是由一种或多种编程语言编写的程序代码。软件源代码可以包括执行业务逻辑的程序文件和对执行业务逻辑的程序实体进行测试的测试软件文件。服务器200中可以从测试软件文件中提取需要测试的代码对象。另外,服务器200还可以执行业务逻辑的程序文件中提取代码对象的集合。在进行软件测试之前,测试人员需要对软件代码中各个代码对象进行分析,以筛选出要测试的代码对象和不进行测试的代码对象。这里,一个代码对象是指软件中一个可测试的功能模块。在不同编程语言的软件代码中,代码对象可以是不同类型的代码实体。例如,在c语言的软件代码中,一个代码对象可以是一个函数。在java语言的软件代码中,一个代码对象可以是一个类,ios端oc语言中可以是一段目标代码。在c++语言的软件代码中,一个代码对象可以是一个类或一个函数。其中本公开中不再对代码(目标代码)对象的具体类型进行区分。
40.服务器200通过网络300向终端(终端10-1和/或终端10-2)发送相应的目标代码之前需要通过测试用例对目标代码进行相应的测试分析。作为一个事例,服务器200用于获取待测试软件的基础信息;响应于软件质量测试指令,基于基础信息,触发变更影响评估进程,对该待测试软件的变更信息进行测试,得到该待测试软件的变更影响评估结果;基于该基础信息,触发风险遗留概率预测进程,对该待测试软件的风险发生概率进行预测,得到该待测试软件的风险发生概率;基于该变更影响评估结果和该风险发生概率,通过风险决策模型,对该待测试软件的质量风险进行预测,得到该待测试软件的质量风险评估结果,其
中,该质量风险评估结果至少包括:该待测试软件的风险发生概率以及质量保证介入信息。
41.在介绍本公开所提供的软件质量测试方法之前,首先对相关技术中软件测试缺陷进行简要说,在相关技术中对软件进行测试,形成软件风险决策时的方法包括:
42.(1)依赖质量保证人员的经验,通过测试人员的主观经验直接判断测试活动执行是否成功,直接给出决策结论,但这种方案非常依赖专家的经验,对测试人员要求高,而且并无客观数据可支撑评估结论的准确性。因此,仅仅适合相对简单的场景,不够客观全面,容易在后续的软件使用中出问题,并且缺乏持续迭代优化的能力,限制了软件版本更新的测试。
43.(2)质量管理人员梳理风险的引入(代码/人员/项目)和风险移除(单元/功能/性能/兼容/异常测试)的特征,然后采用分类模型进行风险发生概率的预测,从而给出风险的决策。其缺陷在于没有考虑变更影响相关的因子进行决策,影响了软件测试的准确性。
44.(3)人工评经验判断变更影响范围和变更影响的重要程度,然后结合风险发生的概率,采用风险矩阵的思路进行软件质量风险的分级,依据分级进行风险的决策,其缺陷在于,变更影响的评估完全依赖人工经验,而复杂系统变更产生的影响范围的识别,影响的控制和影响的重要程度,通过人工主观的经验是很难准确刻画的,并且成本也很高,同时,缺乏持续迭代优化的能力,限制了软件版本更新的测试。
45.为了解决上述缺陷,本公开提供了一种软件质量测试方法,如图2所示,该软件质量测试方法包括:
46.s201:获取待测试软件的基础信息。
47.其中,待测试软件是指应用测试系统测试的目标应用,本公开的测试点获取方法的目标为获取该待测试软件中未测的测试点。待测试软件具体可以是ios、android、windows、mac中任意一个平台的应用。函数调用链是在待测试软件的待测代码中,其中一个函数可以被另外一个函数调用,以此类推,这种两两调用形成的函数调用关系,我们称之为函数调用链。函数调用关系包括了主调函数与被调函数。例如对于函数b调用函数a,函数c再调用函数b的调用关系。其对应的函数调用链为a
‑‑b‑‑
c,则函数c称为函数b的主调,而函数a则称为函数b的被调。而静态调用链则是指通过分析待测试软件完整的代码,获取其中所有的函数调用关系,并得到的全部函数调用链。
48.其中,待测试软件的基础信息至少包括:待测试软件的覆盖信息和函数调用链的信息。
49.s202:响应于软件质量测试指令,基于该基础信息,触发变更影响评估进程,对该待测试软件的变更信息进行测试,得到该待测试软件的变更影响评估结果。
50.s203:基于该基础信息,触发风险遗留概率预测进程,对该待测试软件的风险发生概率进行预测,得到该待测试软件的风险发生概率。
51.其中,在执行本公开提供的软件质量测试方法时,可采用规则加模型的方式预测风险遗留概率,其中,规则部分包括:针对识别的影响接口,如果接口数为0,代表无任何线上风险,直接判定为低风险,无需人工介入;如果接口数大于0,但接口测试覆盖有缺失,直接判定为高风险,需要提醒进行人工补充测试,降低软件的风险。
52.s204:基于该变更影响评估结果和该风险发生概率,通过风险决策模型,对该待测试软件的质量风险进行预测,得到该待测试软件的质量风险评估结果,其中,该质量风险评
估结果至少包括:该待测试软件的风险发生概率以及质量保证介入信息。
53.本公开实施例通过获取待测试软件的基础信息;响应于软件质量测试指令,基于基础信息,触发变更影响评估进程,对待测试软件的变更信息进行测试,得到待测试软件的变更影响评估结果;基于基础信息,触发风险遗留概率预测进程,对待测试软件的风险发生概率进行预测,得到待测试软件的风险发生概率;基于变更影响评估结果和风险发生概率,通过风险决策模型,对待测试软件的质量风险进行预测,得到待测试软件的质量风险评估结果,其中,质量风险评估结果至少包括:待测试软件的风险发生概率以及质量保证介入信息。如此,可以根据影响软件质量的不同指标,利用件开发流程中待测试软件的基本信息,快速且全面的进行软件质量预测,对待测试软件的质量风险进行预测,得到待测试软件的质量风险评估结果,有效减少对提升对待测试软件进行测试的效率。
54.在本公开的一些实施例中,如图3所示,通过变更影响评估进程,对待测试软件的变更信息进行测试,具体包括以下步骤:
55.s301:基于基础信息,触发变更影响评估进程中的影响范围识别子进程,对待测试软件的变更影响范围进行识别,得到变更影响范围识别结果。
56.在本公开的一些实施例中,基于基础信息,触发变更影响评估进程中的影响范围识别子进程,对待测试软件的变更影响范围进行识别,得到变更影响范围识别结果,可以通过以下方式实现:
57.基于基础信息中的覆盖信息和函数调用链的信息,确定待测试软件中变更函数和接口的关系;通过变更影响评估进程中的影响范围识别子进程,利用覆盖信息和函数调用链的信息,对待测试软件的不同状态的输出信息进行处理,得到变更影响范围识别结果。其中,参考图4,图4为本公开实施例中变更影响范围识别示意图,其中,变更影响范围识别结果时,主要包括离线采集映射和在线采集变更影响两部分,离线采集映射时,采用线上流量/线下用例回放(优选的每个接口一条即可),采集流量和覆盖函数列表的映射关系,其中入口函数一定包含在覆盖的函数列表。在线时,采集diff函数调用链,从而得到变更函数对应的入口函数,对离线采集映射和在线采集变更影响的两部分输出结果进行融合,得到变更函数影响的接口。如此,通过入口函数,可以建立代码变更和影响接口的关联关系,使得变更影响的识别成为可能,不再依赖人工经验,实现对软件的自动化测试。相比于相关技术中的离线采集方式,对于新增函数无法覆盖。本公开的方案只需要一个接口一条流量即可,即仅需要根据待测试软件的类型设置相应的入口函数即可以实现,有效降低了软件测试成本;同时相比静态采集方式,入口函数的写法各异,较难统一的缺陷,本公开的方案降低了变更影响范围进行识别的技术难度。
58.在本公开的一些实施例中,对于源代码数量较多的大型软件,还可以获取待测试软件的函数调用链中静态调用链;对该待测试软件进行功能测试,记录在该功能测试过程中该函数调用链中动态调用链;提取该待测试软件中函数的函数名称,对比相同该函数名称下该函数对应的静态调用链与动态调用链,获取相应的测试点。其中函数名称是指待测试软件中包括的所有的函数对应的名称。因为最终进行获取测试点计算是以函数为维度来进行,可以将函数名称作为动态调用链与动态调用链对比的枢纽,将当前函数名称对应的动态调用链与静态调用链进行对比。此外,如果代码有改变的话,则需要获取到改动的代码对应的函数名称。在其中一个实施例中,可以在编译时获得函数和行的对应关系,从而计算
得到改动的代码对应的函数。
59.在对待测试软件进行功能测试时,可以通过从函数调用链的角度补充测试点,提高测试覆盖率,从而提高测试效率,降低漏测风险。具体的,在进行功能测试时,可以同时通过分析待测试软件的全部代码,来得到待测试软件的函数调用链中的静态调用链。在其中一个实施例中,可以通过代码语言对应的调用关系提取工具来获取待测试软件的全部静态调用链。如对于java类型的代码,可以先对java代码进行编译,而后获取全量的jar包,而后通过java-callgra ph来提取出java代码中包括invokevirtual、invokeinterface、invokespecial、invokestatic、invokedynamic在内的5种类型的调用关系。
60.在本公开的一些实施例中,可以获取待测试软件对应的应用代码;通过预设函数调用分析工具提取该应用代码对应的函数调用图;根据该函数调用图获取该函数调用链中静态调用链,如此,通过函数调用图可以更有效地分析确定待测试软件对应的静态调用链,便于处理比较大的测试软件。同时,对该待测试软件进行功能测试,记录测试过程中该待测试软件内各函数的调用路径;根据该调用路径获取该函数调用链中动态调用链。其中,调用路径指的是当前的函数在功能测试过程中每次被调用的路径记录信息,一个调用路径与一个动态调用链对应。此外,在功能测试的过程中,一个函数的改动,也只会影响到改动函数的主调路径,因此只需此函数主调的调用链。而后根据主调关系建立两个函数之间的两两调用关系,就可以进一步确定当前函数对应的各个动态调用链,进而确定待测试软件的函数调用链中的全部动态调用链。如此,通过调用路径可以更有效地分析确定待测试软件对应的动态调用链。
61.在本公开的一些实施例中,还可以对待测试软件进行编译;获取该待测试软件的函数与代码行的对应关系;根据该函数与代码行的对应关系提取该函数的函数名称;对比相同函数名称下函数对应的静态调用链与动态调用链,获取相应的测试点。具体来说,调用路径指的是当前的函数在功能测试过程中每次被调用的路径记录信息,一个调用路径与一个动态调用链对应。此外,在功能测试的过程中,一个函数的改动,也只会影响到改动函数的主调路径,因此只需此函数主调的调用链。而后根据主调关系建立两个函数之间的两两调用关系,就可以进一步确定当前函数对应的各个动态调用链,进而确定待测试软件的函数调用链中的全部动态调用链。如此,通过调用路径可以更有效地分析确定待测试软件对应的动态调用链。本公开实施例中的代码是指待测程序的全部构成代码,应用是由代码组成的,可以通过分析应用代码来提取待测程序中的静态调用链。预设函数调用分析工具具体可以根据应用代码对应的编程语言来进行选取,比如对于c语言的应用代码可以通过工具call graph(函数调用关系图)来获取函数调用关系。对于java语言的应用代码,可以通过开源工具java-callgraph来获取函数调用关系,而通过预设函数调用分析工具获取的调用关系具体可以用函数调用图来表示,函数调用图具体包括了所有参与调用的函数以及这些函数之间的两两调用关系。
62.s302:根据该影响范围识别子进程的变更影响范围识别结果,触发控制完备度评估子进程,对该变更影响范围识别结果的控制完备度进行评估处理,得到与该变更影响范围识别结果对应的控制完备度。
63.在本公开的一些实施例中,根据该影响范围识别子进程的变更影响范围识别结果,触发控制完备度评估子进程,对该变更影响范围识别结果的控制完备度进行评估处理,
得到与该变更影响范围识别结果对应的控制完备度,可以通过以下方式实现:
64.通过该控制完备度评估子进程,基于该变更影响范围识别结果,对发生变更的影响对应的接口进行测试,得到相应的接口测试结果;根据该接口测试结果,确定相应的接口覆盖比例,并基于接口覆盖比例得到与该变更影响范围识别结果对应的控制完备度。
65.如此,获取变更影响范围之后,相比于相关技术中通过人工经验和量化指标刻画获取控制完备度,本公开提供的软件质量测试方法可以通过接口测试工具,获取测试用例接口的覆盖情况,得到接口的完备度指标,实现自动化地获取接口线上监控的完备度指标,有效减少了人工干预程度。
66.s303:基于该变更影响范围识别结果和该控制完备度,触发影响严重性程度评估子进程,对该待测试软件的影响的严重性维度进行评估,得到该待测试软件的严重性维度评估结果。
67.在本公开的一些实施例中,得到该待测试软件的严重性维度评估结果,可以通过以下方式实现:
68.根据该控制完备度,确定接口测试结果中每一个接口的影响的严重性维度的参数,其中,该影响的严重性维度的参数包括至少以下之一:业务重要性参数,线上访问量参数,历史缺陷分布参数,以及上下游依赖数参数;根据该每一个接口的影响的严重性维度的参数,确定该待测试软件的严重性维度评估结果。
69.如此,通过自动化地采集严重性维度的参数,实现了自动化地获得待测试软件的严重性维度评估结果,即使软版本进行更新,代码量不断迭代代码复杂度很高时依然可以准确地分析变更代码影响范围,避免了代码存在条件分支关系的情况下进行准确的影响范围分析,而且存在调用关系时的遗漏的缺陷。
70.通过上述s301~s303,能够基于基础信息,触发变更影响评估进程,对待测试软件的变更信息进行测试,得到待测试软件的变更影响评估结果,自动引入变更影响评估的结果,从而有助于降低或避免因影响面缺失带来的正确性差的问题。
71.在本公开的一些实施例中,参考图5,图5为本公开实施例中对测试软件的质量风险进行预测一个可选的过程示意图,具体包括以下步骤:
72.s501:通过风险决策模型,利用变更影响评估结果和风险发生概率对待测试软件的质量风险进行分类。
73.s502:当该待测试软件的质量风险的分类结果大于质量风险阈值时,确定与该待测试软件的质量风险评估结果相匹配的风险发生概率以及质量保证介入信息。
74.s503:当该待测试软件的质量风险的分类结果小于等于质量风险阈值时,确定与该待测试软件的质量风险评估结果相匹配的风险发生概率。
75.在本公开的一些实施例中,风险决策模型可以为分类模型,具体的分类模型种类本公开不做具体限制,质量风险阈值可以根据待测试软件的种类进行设置,以适应不同的软件质量测试环境。
76.如此,能够对待测试软件的质量风险进行预测,引入变更影响评估的结果,结合风险遗留概率,给出自动化、智能化的质量风险决策结论。
77.根据本公开的实施例,提供了一种软件质量测试装置,如图6所示,该软件质量测试装置包括:
78.信息传输模块610,用于获取待测试软件的基础信息;
79.信息处理模块620,用于响应于软件质量测试指令,基于该基础信息,触发变更影响评估进程,对该待测试软件的变更信息进行测试,得到该待测试软件的变更影响评估结果。
80.该信息处理模块610,还用于基于该基础信息,触发风险遗留概率预测进程,对该待测试软件的风险发生概率进行预测,得到该待测试软件的风险发生概率。
81.该信息处理模块620,还用于基于该变更影响评估结果和该风险发生概率,通过风险决策模型,对该待测试软件的质量风险进行预测,得到该待测试软件的质量风险评估结果,其中,该质量风险评估结果至少包括:该待测试软件的风险发生概率以及质量保证介入信息。
82.在一些实施例中,该信息处理模块620,用于基于该基础信息,触发变更影响评估进程中的影响范围识别子进程,对该待测试软件的变更影响范围进行识别,得到变更影响范围识别结果;该信息处理模块620,用于根据该影响范围识别子进程的变更影响范围识别结果,触发控制完备度评估子进程,对该变更影响范围识别结果的控制完备度进行评估处理,得到与该变更影响范围识别结果对应的控制完备度;该信息处理模块620,用于基于该变更影响范围识别结果和该控制完备度,触发影响严重性程度评估子进程,对该待测试软件的影响的严重性维度进行评估,得到该待测试软件的严重性维度评估结果。
83.在一些实施例中,该信息处理模块620,用于基于该基础信息中的覆盖信息和函数调用链的信息,确定该待测试软件中变更函数和接口的关系;通过该变更影响评估进程中的影响范围识别子进程,利用该覆盖信息和函数调用链的信息,对该待测试软件的不同状态的输出信息进行处理,得到变更影响范围识别结果。
84.在一些实施例中,该信息处理模块620,用于获取待测试软件的函数调用链中静态调用链;对该待测试软件进行功能测试,记录在该功能测试过程中该函数调用链中动态调用链;提取该待测试软件中函数的函数名称,对比相同该函数名称下该函数对应的静态调用链与动态调用链,获取相应的测试点。
85.在一些实施例中,该信息处理模块620,用于获取待测试软件对应的应用代码;通过预设函数调用分析工具提取该应用代码对应的函数调用图;根据该函数调用图获取该函数调用链中静态调用链。
86.在一些实施例中,该信息处理模块620,用于对该待测试软件进行功能测试,记录测试过程中该待测试软件内各函数的调用路径;根据该调用路径获取该函数调用链中动态调用链。
87.在一些实施例中,该信息处理模块620,用于对该待测试软件进行编译;获取该待测试软件的函数与代码行的对应关系;根据该函数与代码行的对应关系提取该函数的函数名称;对比相同函数名称下函数对应的静态调用链与动态调用链,获取相应的测试点。
88.在一些实施例中,该信息处理模块620,用于通过该控制完备度评估子进程,基于该变更影响范围识别结果,对发生变更的影响对应的接口进行测试,得到相应的接口测试结果;根据该接口测试结果,确定相应的接口覆盖比例,并基于接口覆盖比例得到与该变更影响范围识别结果对应的控制完备度。
89.在一些实施例中,该信息处理模块620,用于根据该控制完备度,确定接口测试结
果中每一个接口的影响的严重性维度的参数,其中,该影响的严重性维度的参数包括至少以下之一:业务重要性参数,线上访问量参数,历史缺陷分布参数,以及上下游依赖数参数;该信息处理模块620,还用于根据该每一个接口的影响的严重性维度的参数,确定该待测试软件的严重性维度评估结果。
90.在一些实施例中,该信息处理模块620,用于通过该风险决策模型,利用该变更影响评估结果和该风险发生概率对该待测试软件的质量风险进行分类;当该待测试软件的质量风险的分类结果大于质量风险阈值时,确定与该待测试软件的质量风险评估结果相匹配的风险发生概率以及质量保证介入信息;当该待测试软件的质量风险的分类结果小于等于质量风险阈值时,确定与该待测试软件的质量风险评估结果相匹配的风险发生概率。
91.本领域技术人员应当理解,本公开实施例的软件质量测试装置中各处理模块的功能,可参照前述的软件质量测试方法的相关描述而理解,本公开实施例的软件质量测试装置中各处理模块,可通过实现本公开实施例所述的功能的模拟电路而实现,也可以通过执行本公开实施例所述的功能的软件在电子设备上的运行而实现。
92.本公开实施例的软件质量测试装置,能够快速且全面的进行软件质量预测,对待测试软件的质量风险进行预测,提高软件质量测试的效率。
93.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
94.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
95.图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
96.如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(read-only memory,rom)702中的计算机程序或者从存储单元708加载到随机访问存储器(random access memory,ram)703中的计算机程序,来执行各种适当的动作和处理。在ram 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、rom 702以及ram 703通过总线704彼此相连。输入/输出(input/output,i/o)接口705也连接至总线704。
97.设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
98.计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(central processing unit,cpu)、图形处理单元(graphics processing unit,gpu)、各种专用的人工智能(artificial intelligence,ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(digital signal processor,dsp)、以及任何适当的处理器、控制器、微控制器等。计算单
元701执行上文所描述的各个方法和处理,例如软件质量测试方法。例如,在一些实施例中,软件质量测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到ram 703并由计算单元701执行时,可以执行上文描述的软件质量测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行软件质量测试方法。
99.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(field programmable gate array,fpga)、专用集成电路(application specific integrated circuit,asic)、专用标准产品(application-specific standard products,assp)、芯片上系统的系统(system on chip,soc)、负载可编程逻辑设备(complex programmable logic device,cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
100.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
101.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、快闪存储器、光纤、便捷式紧凑盘只读存储器(compact disk read only memory,cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
102.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,阴极射线管(cathode ray tube,crt)或者液晶显示器(liquid crystal display,lcd)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
103.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据
服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(local area network,lan)、广域网(wide area network,wan)和互联网。
104.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
105.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
106.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1