CN114218098A - 软件***测试方法、装置、计算机设备及可读存储介质 - Google Patents

软件***测试方法、装置、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN114218098A
CN114218098A CN202111526587.6A CN202111526587A CN114218098A CN 114218098 A CN114218098 A CN 114218098A CN 202111526587 A CN202111526587 A CN 202111526587A CN 114218098 A CN114218098 A CN 114218098A
Authority
CN
China
Prior art keywords
software
data
unit
tested
information
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
CN202111526587.6A
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.)
Ping An International Financial Leasing Co Ltd
Original Assignee
Ping An International Financial Leasing 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 Ping An International Financial Leasing Co Ltd filed Critical Ping An International Financial Leasing Co Ltd
Priority to CN202111526587.6A priority Critical patent/CN114218098A/zh
Publication of CN114218098A publication Critical patent/CN114218098A/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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及云测试技术领域,公开了一种软件***测试方法、装置、计算机设备及可读存储介质,包括:获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库;接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。本发明极大的缩短了测试周期和操作复杂度,提高了测试效率,保证了测试的全面性和准确性的效果。

Description

软件***测试方法、装置、计算机设备及可读存储介质
技术领域
本发明涉及云测试的功能测试技术领域,尤其涉及一种软件***测试方法、装置、计算机设备及可读存储介质。
背景技术
软件测试的目的是发现软件程序中的错误、对软件是否符合设计要求,以及是否符合合同中所要达到的技术要求,进行有关验证以及评估软件的质量。软件测试的基本方式是功能测试、性能测试、黑盒测试和白盒测试等。当前的软件测试通常是通过预置的测试脚本,启动软件***中所有的软件单元对所述测试脚本进行运算,并最终得到测试结果。
然而,发明人意识到,一旦需要对软件***中某一软件单元进行测试时,仍需启用所述软件***中所有软件单元并得到软件***的整体测试结果,导致测试周期长,操作复杂。
发明内容
本发明的目的是提供一种软件***测试方法、装置、计算机设备及可读存储介质,用于解决现有技术存在的对软件***中某一软件单元进行测试时,需要启用所述软件***中所有软件单元并得到软件***的整体测试结果,导致测试周期长,操作复杂的问题。
为实现上述目的,本发明提供一种软件***测试方法,包括:
获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
上述方案中,所述识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,包括:
获取所述软件***中的软件流程图,识别所述软件流程图中任一流程节点对应的软件单元,并将所述流程节点设为目标节点;
提取所述目标节点对应软件单元的属性信息,其中,所述属性信息包括编号信息和方法信息,所述编号信息是软件单元的唯一性标识,所述方法记载了所述软件单元的入参和出参,以及所述软件单元的计算逻辑;
将所述软件流程图中依赖所述目标节点的流程节点设为所述目标节点的依赖节点,提取所述依赖节点对应软件单元的编号信息并将其设为依赖信息,其中,所述依赖信息表征了所述目标节点对应的软件单元,与所述依赖节点对应的软件单元之间的依赖关系;
汇总所述属性信息和所述编号信息,形成所述目标节点对应软件单元的单元信息。
上述方案中,所述构建保存有与所述软件***中软件单元对应的mock数据的样例库,包括:
将所述单元信息发送至开发端,接收所述开发端根据所述单元信息构建mock数据,其中,所述mock数据是根据所述方法信息构建的,用于虚拟所述单元信息对应软件单元的返回数据;
将所述mock数据和所述单元信息保存至预置的数据库中,并将所述单元信息与所述mock数据关联,使所述数据库转为所述样例库。
上述方案中,所述构建保存有与所述软件***中软件单元对应的mock数据的样例库之后,所述方法还包括:
将所述样例库中mock数据及与其关联的单元信息的格式修改为json格式。
上述方案中,所述根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件,包括:
提取所述进件请求中的测试编号;
识别所述样例库中编号信息与所述测试编号一致的单元信息,并将与所述单元信息对应的软件单元设为待测软件;
提取所述单元信息中的依赖信息,识别所述样例库中编号信息与所述依赖信息一致的单元信息,并将与所述单元信息对应的软件单元设为依赖软件。
上述方案中,所述根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据,包括:
提取所述进件请求中的调试值;
若所述调试值为第一值,则提取所述进件请求中与所述调试值对应的进件数据,调用所述依赖软件运算所述进件数据得到所述返回数据;
若所述调试值为第二值,则从所述样例库中获取所述依赖软件对应的mock数据,并将所述mock数据设为所述返回数据。
上述方案中,所述运行所述待测软件得到反馈数据之后,还包括:
获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告;
将所述测试报告上传至预置的区块链中。
为实现上述目的,本发明还提供一种软件***测试装置,包括:
样例构建模块,用于获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
待测依赖识别模块,用于接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
返回数据生成模块,用于根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
软件测试模块,用于将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
为实现上述目的,本发明还提供一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述计算机设备的处理器执行所述计算机程序时实现上述软件***测试方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述可读存储介质存储的所述计算机程序被处理器执行时实现上述软件***测试方法的步骤。
本发明提供的软件***测试方法、装置、计算机设备及可读存储介质,通过锁定需要测试的软件单元并将其设为待测软件,及识别所述待测软件依赖的依赖软件,无需启动软件***中所有软件单元,即可对待测软件进行有针对性的测试,极大的缩短了测试周期和操作复杂度,提高了测试效率。
通过根据所述进件请求调用所述依赖软件获得返回数据的方式,实现了扩大待测软件的测试场景,以从多种角度对待测软件进行测试,进而保证测试的全面性和准确性的效果;以及通过将所述依赖软件对应的mock数据设为返回数据的方式,无需调用依赖软件对进件请求中的进件数据进行计算,而实现直接调用与依赖软件对应的mock数据,即可获得所述待测软件的输入数据,极大的降低了获取所述输入数据的链路长度和时间消耗,提高了测试效率,降低了测试操作复杂度。
附图说明
图1为本发明软件***测试方法实施例一的流程图;
图2为本发明软件***测试方法实施例二中软件***测试方法的环境应用示意图;
图3是本发明软件***测试方法实施例二中软件***测试方法的具体方法流程图;
图4为本发明软件***测试装置实施例三的程序模块示意图;
图5为本发明计算机设备实施例四中计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的软件***测试方法、装置、计算机设备及可读存储介质,适用于云测试的功能测试技术领域,为提供一种基于样例构建模块、待测依赖识别模块、返回数据生成模块、软件测试模块的软件***测试方法。本发明通过获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库;接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
实施例一:
请参阅图1,本实施例的一种软件***测试方法,包括:
S101:获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
S103:接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
S104:根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
S105:将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
在示例性的实施例中,所述软件***是至少具有一个软件单元的计算机***,其中,各软件单元之间具有依赖关系,任一软件单元运算其依赖的软件单元输出的返回数据,得到所述任一软件单元的输出数据。
通过根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件的方式,快速锁定需要测试的软件单元并将其设为待测软件,及识别所述待测软件依赖的依赖软件,以便于后续通过运行所述依赖软件生成返回数据,并将该返回数据作为所述待测软件的输入数据,极大的缩短了生成所述待测软件的输入数据的链路长度,进而无需启动软件***中所有软件单元,即可对待测软件进行有针对性的测试,极大的缩短了测试周期和操作复杂度,提高了测试效率。通过根据所述进件请求调用所述依赖软件获得返回数据的方式,实现调用依赖接口运算所述进件请求中的进件数据,得到返回数据的效果,本场景保证了待测软件获得的输入数据是由正规的依赖软件计算生成的返回数据,因此,该场景的测试目的是用于判断待测软件在接收到正常数据时,是否能够生成结果正常的反馈数据,实现了扩大待测软件的测试场景,以从多种角度对待测软件进行测试,进而保证测试的全面性和准确性的效果。同时,还通过将所述依赖软件对应的mock数据设为返回数据的方式,无需调用依赖软件对进件请求中的进件数据进行计算,而实现直接调用与依赖软件对应的mock数据,即可获得所述待测软件的输入数据,极大的降低了获取所述输入数据的链路长度和时间消耗,提高了测试效率,降低了测试操作复杂度。由于mock数据的内容可根据需求设置,因此,可以对待测软件模拟多种情形的输入数据,进而实现扩大待测软件测试场景的技术效果。
实施例二:
本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
下面,以在运行有软件***测试方法的服务器中,调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;通过该返回数据对待测软件进行测试为例,来对本实施例提供的方法进行具体说明。需要说明的是,本实施例只是示例性的,并不限制本发明实施例所保护的范围。
图2示意性示出了根据本申请实施例二的软件***测试方法的环境应用示意图。
在示例性的实施例中,软件***测试方法所在的服务器2通过网络3分别连接客户端4;所述服务器2可以通过一个或多个网络3提供服务,网络3可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络3可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络3可以包括无线链路,例如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物;所述客户端4可为智能手机、平板电脑、笔记本电脑、台式电脑等计算机设备。
图3是本发明一个实施例提供的一种软件***测试方法的具体方法流程图,该方法具体包括步骤S201至S206。
S201:获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,所述mock数据用于虚拟所述软件单元输出的返回数据。
本步骤中,所述软件***是至少具有一个软件单元的计算机***,其中,各软件单元之间具有依赖关系,任一软件单元运算其依赖的软件单元输出的返回数据,得到所述任一软件单元的输出数据。
在一个优选的实施例中,所述识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,包括:
S11:获取所述软件***中的软件流程图,识别所述软件流程图中任一流程节点对应的软件单元,并将所述流程节点设为目标节点;
S12:提取所述目标节点对应软件单元的属性信息,其中,所述属性信息包括编号信息和方法信息,所述编号信息是软件单元的唯一性标识,所述方法记载了所述软件单元的入参和出参,以及所述软件单元的计算逻辑;
S13:将所述软件流程图中依赖所述目标节点的流程节点设为所述目标节点的依赖节点,提取所述依赖节点对应软件单元的编号信息并将其设为依赖信息,其中,所述依赖信息表征了所述目标节点对应的软件单元,与所述依赖节点对应的软件单元之间的依赖关系;
S14:汇总所述属性信息和所述编号信息,形成所述目标节点对应软件单元的单元信息。
示例性地,所述软件***包括软件单元A、软件单元B和软件单元C,其中,软件单元A依赖软件单元B,软件单元B依赖软件单元C;假设目标节点为节点A,其对应的软件单元为软件单元A;那么获得其编号信息:单元A0001,方法信息:入参“num1”,出参“num2”,计算逻辑:sum(总和);所述目标节点的依赖节点为节点B,其对应的软件单元为软件单元B,获得的软件单元B的编号信息:单元B0001,最终,获得的单元信息为:{编号信息:单元A0001;方法信息:入参“num1”,出参“num2”,计算逻辑:sum(总和);依赖信息:单元B0001}。
在一个优选的实施例中,所述构建保存有与所述软件***中软件单元对应的mock数据的样例库,包括:
S15:将所述单元信息发送至开发端,接收所述开发端根据所述单元信息构建mock数据,其中,所述mock数据是根据所述方法信息构建的,用于虚拟所述单元信息对应软件单元的返回数据;
S16:将所述mock数据和所述单元信息保存至预置的数据库中,并将所述单元信息与所述mock数据关联,使所述数据库转为所述样例库。
示例性地,基于上述举例,将所述单元信息发送给开发端,以便于开发端根据入参、出参和计算逻辑构建mock数据:各账户总额:10000元;将mock数据:各账户总额:10000元保存至数据库中,并将其与单元信息:{编号信息:单元A0001;方法信息:入参“num1”,出参“num2”,计算逻辑:sum(总和);依赖信息:单元B0001}关联。
于本实施例中,可通过将所述mock数据和所述单元信息,保存在所述数据库的同一行中,或在所述mock数据和所述单元信息之间构建映射/超链接关系的方式,实现mock数据和单元信息之间的关联关系。
进一步地,所述mock数据至少具有一个,通过在所述mock数据中设置mock标签,实现对与所述依赖软件对应的mock数据的区分。
S202:将所述样例库中mock数据及与其关联的单元信息的格式修改为json格式。
本步骤中,通过将所述样例库中的mock数据和单元信息转为json格式的数据,由于json格式比较简单,易于读写,格式都是压缩的,占用带宽小;同时,json格式易于解析,可以通过eval()进行JSON数据的读取搜索,提高了mock数据的检索获取效率;并且,json格式的mock数据可支持持多种语言,扩大了样例库的适用范围。
S203:接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件。
为实现对软件***中各软件单元进行有针对性的测试,避免当前对软件***进行测试,需要启用所述软件***中所有软件单元并得到软件***的整体反馈数据,导致测试周期长,操作复杂的问题发生;
本步骤通过根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件的方式,快速锁定需要测试的软件单元并将其设为待测软件,及识别所述待测软件依赖的依赖软件,以便于后续通过运行所述依赖软件生成返回数据,并将该返回数据作为所述待测软件的输入数据,极大的缩短了生成所述待测软件的输入数据的链路长度,进而无需启动软件***中所有软件单元,即可对待测软件进行有针对性的测试,极大的缩短了测试周期和操作复杂度,提高了测试效率。其中,所述链路是指生成所述输入数据所需调用的软件单元数量,由于链路的极大缩短,因此极大的降低了操作复杂度。
在一个优选的实施例中,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件,包括:
S31:提取所述进件请求中的测试编号。
本步骤中,所述测试编号为测试人员需要测试的软件单元的唯一性编号,例如:A0001。
S32:识别所述样例库中编号信息与所述测试编号一致的单元信息,并将与所述单元信息对应的软件单元设为待测软件。
示例性地,若所述测试编号为A0001,则将软件单元A设为待测软件。
S33:提取所述单元信息中的依赖信息,识别所述样例库中编号信息与所述依赖信息一致的单元信息,并将与所述单元信息对应的软件单元设为依赖软件。
示例性地,获得的单元信息:{编号信息:单元A0001;方法信息:入参“num1”,出参“num2”,计算逻辑:sum(总和);依赖信息:单元B0001},则依赖信息为:单元B0001,那么,将软件单元B设为依赖软件。
S204:根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据。
为扩大待测软件的测试场景,以实现从多种角度对待测软件进行测试,进而保证测试的全面性和准确性,本步骤通过根据所述进件请求调用所述依赖软件获得返回数据的方式,实现调用依赖接口运算所述进件请求中的进件数据,得到返回数据的效果,本场景保证了待测软件获得的输入数据是由正规的依赖软件计算生成的返回数据,因此,该场景的测试目的是用于判断待测软件在接收到正常数据时,是否能够生成结果正常的反馈数据。
同时,本步骤还通过将所述依赖软件对应的mock数据设为返回数据的方式,无需调用依赖软件对进件请求中的进件数据进行计算,而实现直接调用与依赖软件对应的mock数据,即可获得所述待测软件的输入数据,极大的降低了获取所述输入数据的链路长度和时间消耗,提高了测试效率,降低了测试操作复杂度。由于mock数据的内容可根据需求设置,因此,可以对待测软件模拟多种情形的输入数据,进而实现扩大待测软件测试场景的技术效果。
进一步地,所述mock数据还可为异常数据,通过将所述异常数据设为所述输入数据,以判断待测软件是否能够检查出异常数据并生成结果异常的反馈数据,或是否能够对异常数据进行自动处理,并生成结果正常的反馈数据;以实现对待测软件在正常输入数据和异常输入数据的场景下的反馈数据,进一步的扩大了待测软件的测试场景。
在一个优选的实施例中,所述根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据,包括:
S41:提取所述进件请求中的调试值;
S42:若所述调试值为第一值,则提取所述进件请求中与所述调试值对应的进件数据,调用所述依赖软件运算所述进件数据得到所述返回数据;
S43:若所述调试值为第二值,则从所述样例库中获取所述依赖软件对应的mock数据,并将所述mock数据设为所述返回数据。
具体地,所述进件请求中至少具有一个调试值,如果所述调试值为第一值,则说明本次测试需要调用依赖软件,生成相应的返回数据以作为所述待测软件的输入数据,因此,当所述调试值为第一值时,所述进件请求中具有与所述调试值对应的进件数据,所述进件数据为所述依赖软件的输入数据。
当所述调试值为第二值时,则从所述样例库中直接获取与所述待测软件对应的mock数据,作为所述待测软件的输入数据。
于本实施例中,在进件请求中写入debug命令,用于将待测软件的输入数据修改为mock数据,以实现有针对性地测试待测软件的技术效果;并且,采用debug值作为所述调试值,
若所述调试值为第一值,例如:0,则表明,无需执行所述debug命令,而仅需调用依赖软件运算所述进件数据并获得其返回数据,将该返回数据作为所述待测软件的输入数据即可;
若所述调试值为第二值,例如:1,则表明需要执行所述debug命令,需要将待测软件中的依赖地址修改为,所述待测软件在所述样例库中对应的mock数据的地址,实现中断待测软件和所述依赖软件的依赖,及将所述待测软件的输入数据修改为所述mock数据,进而实现根据预置的场景有针对性的测试待测软件的技术效果。
需要说明的是,debug是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节。它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。
进一步地,所述将所述mock数据设为所述返回数据,包括:
S431:提取所述进件请求中的mock标签;
S432:将所述与所述依赖软件对应的mock数据中,与所述mock标签对应的mock数据设为所述返回数据。
由于针对待测软件所构建的mock数据至少具有一个,用以实现多种场景的测试,因此,通过mock标签获取相应的mock数据对待测软件进行测试,以便于实现对待测软件的多场景测试。
S205:将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
本步骤中,将所述返回数据作为所述待测软件的输入数据,用以测试所述待测软件是否能够生成测试者所需的反馈数据。
示例性地,假设所述待测软件为指标加工器,所述依赖软件为数据生成器,那么,通过所述数据生成器生成的返回数据,或通过将样例库中与所述指标加工器对应的mock数据作为返回数据,对指标加工器进行测试,使所述指标加工器根据所述返回数据生成指标信息,并将其作为反馈数据,实现了多场景且有针对性的测试待测数据的技术效果,无需运行软件***中所有软件单元,极大的缩短了待测软件输入数据生成的链路长度,提高了测试效率,降低了测试复杂度和测试周期。
S206:获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告。
为进一步的对待测软件中出现异常的方法进行定位,以提高测试修复效率,本步骤通过获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告,以便于测试者通过所述测试报告获取待测软件中出现异常的方法,并及时对其进行修改。
在一个优选的实施例中,获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告,包括:
S61:获取所述软件***的***日志,识别所述***日志中所述返回数据的位置,将位于所述返回数据之后的日志信息设为过程信息,其中,所述过程信息记载了所述待测软件根据所述返回数据生成所述反馈数据的完整过程。
本步骤中,由于当调试值为0时,进件数据是依赖软件的输入数据,而依赖软件的输出数据是未知的,因此通过所述***日志中获取所述待测软件接收到的返回数据,以确定待测软件的输入信息。
同时,如果调试值为1,那么,返回数据也就是所述mock数据,因此,仅需在***日志中识别mock数据的位置即可;如果调试值为1,且未在***日志中识别到mock数据,将说明所述返回数据与mock数据并不一致,因此说明样例库出现了异常,此时,测试者可根据所述测试报告中与mock数据不同的返回数据的情况,对样例库进行修复。
S62:获取所述过程信息中的待测方法,及所述待测方法的运行时间;获取所述待测软件通过调用所述待测方法所生成的阶段反馈数据;其中,所述阶段反馈数据是所述待测软件生成的反馈数据的组成部分。
本步骤中,识别所述过程信息中的方法名称,并将该方法名称设为待测方法,获取所述待测方法运行时间,以及根据所述返回数据调用所述待测方法所生成的阶段反馈数据,其中,所述阶段反馈数据是所述待测软件生成的反馈数据的组成部分。于本实施例中,若所述待测软件为指标加工器,所述后台日志为所述指标加工器为指标台账页面。
S63:汇总所述返回数据、待测方法、运行时间和阶段反馈数据形成所述测试报告。
本步骤中,将所述返回数据设为报告输入信息,汇总所述待测方法及其运行时间和阶段反馈数据形成测试条目,汇总所述报告输入信息和至少一个所述待测方法的测试条目形成所述测试报告,以便于测试者对待测软件的测试过程进行规整的展示。
优选的,将所述测试报告上传至预置的区块链中。
需要说明的是,基于测试报告得到对应的摘要信息,具体来说,摘要信息由测试报告进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证测试报告是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
实施例三:
请参阅图4,本实施例的一种软件***测试装置1,包括:
样例构建模块11,用于获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
待测依赖识别模块13,用于接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
返回数据生成模块14,用于根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
软件测试模块15,用于将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
可选的,所述软件***测试装置1还包括:
格式调整模块12,用于将所述样例库中mock数据及与其关联的单元信息的格式修改为json格式。
可选的,所述软件***测试装置1还包括:
报告生成模块16,用于获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告。
可选的,所述样例构建模块11还包括:
节点识别单元111,用于获取所述软件***中的软件流程图,识别所述软件流程图中任一流程节点对应的软件单元,并将所述流程节点设为目标节点;
属性提取单元112,用于提取所述目标节点对应软件单元的属性信息,其中,所述属性信息包括编号信息和方法信息,所述编号信息是软件单元的唯一性标识,所述方法记载了所述软件单元的入参和出参,以及所述软件单元的计算逻辑;
依赖识别单元113,用于将所述软件流程图中依赖所述目标节点的流程节点设为所述目标节点的依赖节点,提取所述依赖节点对应软件单元的编号信息并将其设为依赖信息,其中,所述依赖信息表征了所述目标节点对应的软件单元,与所述依赖节点对应的软件单元之间的依赖关系;
信息汇总单元114,用于汇总所述属性信息和所述编号信息,形成所述目标节点对应软件单元的单元信息。
数据构建单元115,用于将所述单元信息发送至开发端,接收所述开发端根据所述单元信息构建mock数据,其中,所述mock数据是根据所述方法信息构建的,用于虚拟所述单元信息对应软件单元的返回数据;
样例构建单元116,用于将所述mock数据和所述单元信息保存至预置的数据库中,并将所述单元信息与所述mock数据关联,使所述数据库转为所述样例库。
可选的,所述待测依赖识别模块13还包括:
编号提取单元131,用于提取所述进件请求中的测试编号;
待测识别单元132,用于识别所述样例库中编号信息与所述测试编号一致的单元信息,并将与所述单元信息对应的软件单元设为待测软件。
依赖识别单元133,用于提取所述单元信息中的依赖信息,识别所述样例库中编号信息与所述依赖信息一致的单元信息,并将与所述单元信息对应的软件单元设为依赖软件。
可选的,所述返回数据生成模块14还包括:
数值提取单元141,用于提取所述进件请求中的调试值;
依赖调用单元142,用于在所述调试值为第一值时,则提取所述进件请求中与所述调试值对应的进件数据,调用所述依赖软件运算所述进件数据得到所述返回数据;
虚拟调用单元143,用于在所述调试值为第二值时,则从所述样例库中获取所述依赖软件对应的mock数据,并将所述mock数据设为所述返回数据。
可选的,所述报告生成模块16还包括:
过程识别单元161,用于获取所述软件***的***日志,识别所述***日志中所述返回数据的位置,将位于所述返回数据之后的日志信息设为过程信息,其中,所述过程信息记载了所述待测软件根据所述返回数据生成所述反馈数据的完整过程。
数据提取单元162,用于获取所述过程信息中的待测方法,及所述待测方法的运行时间;获取所述待测软件通过调用所述待测方法所生成的阶段反馈数据;其中,所述阶段反馈数据是所述待测软件生成的反馈数据的组成部分。
报告生成单元163,用于汇总所述返回数据、待测方法、运行时间和阶段反馈数据形成所述测试报告。
本技术方案应用于云测试的功能性测试技术领域,通过根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据;因此,实现了有针对性的对云***中各功能单元进行单元模块测试的技术效果。
进一步地,本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
实施例四:
为实现上述目的,本发明还提供一种计算机设备5,实施例三的软件***测试装置的组成部分可分散于不同的计算机设备中,计算机设备5可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个应用服务器所组成的服务器集群)等。本实施例的计算机设备至少包括但不限于:可通过***总线相互通信连接的存储器51、处理器52,如图5所示。需要指出的是,图5仅示出了具有组件-的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器51(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器51可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器51也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器51还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,存储器51通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例三的软件***测试装置的程序代码等。此外,存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制计算机设备的总体操作。本实施例中,处理器52用于运行存储器51中存储的程序代码或者处理数据,例如运行软件***测试装置,以实现实施例一和实施例二的软件***测试方法。
实施例五:
为实现上述目的,本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器52执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述软件***测试方法的计算机程序,被处理器52执行时实现实施例一和实施例二的软件***测试方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种软件***测试方法,其特征在于,包括:
获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
2.根据权利要求1所述的软件***测试方法,其特征在于,所述识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,包括:
获取所述软件***中的软件流程图,识别所述软件流程图中任一流程节点对应的软件单元,并将所述流程节点设为目标节点;
提取所述目标节点对应软件单元的属性信息,其中,所述属性信息包括编号信息和方法信息,所述编号信息是软件单元的唯一性标识,所述方法记载了所述软件单元的入参和出参,以及所述软件单元的计算逻辑;
将所述软件流程图中依赖所述目标节点的流程节点设为所述目标节点的依赖节点,提取所述依赖节点对应软件单元的编号信息并将其设为依赖信息,其中,所述依赖信息表征了所述目标节点对应的软件单元,与所述依赖节点对应的软件单元之间的依赖关系;
汇总所述属性信息和所述编号信息,形成所述目标节点对应软件单元的单元信息。
3.根据权利要求2所述的软件***测试方法,其特征在于,所述构建保存有与所述软件***中软件单元对应的mock数据的样例库,包括:
将所述单元信息发送至开发端,接收所述开发端根据所述单元信息构建mock数据,其中,所述mock数据是根据所述方法信息构建的,用于虚拟所述单元信息对应软件单元的返回数据;
将所述mock数据和所述单元信息保存至预置的数据库中,并将所述单元信息与所述mock数据关联,使所述数据库转为所述样例库。
4.根据权利要求2所述的软件***测试方法,其特征在于,所述构建保存有与所述软件***中软件单元对应的mock数据的样例库之后,所述方法还包括:
将所述样例库中mock数据及与其关联的单元信息的格式修改为json格式。
5.根据权利要求1所述的软件***测试方法,其特征在于,所述根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件,包括:
提取所述进件请求中的测试编号;
识别所述样例库中编号信息与所述测试编号一致的单元信息,并将与所述单元信息对应的软件单元设为待测软件;
提取所述单元信息中的依赖信息,识别所述样例库中编号信息与所述依赖信息一致的单元信息,并将与所述单元信息对应的软件单元设为依赖软件。
6.根据权利要求1所述的软件***测试方法,其特征在于,所述根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据,包括:
提取所述进件请求中的调试值;
若所述调试值为第一值,则提取所述进件请求中与所述调试值对应的进件数据,调用所述依赖软件运算所述进件数据得到所述返回数据;
若所述调试值为第二值,则从所述样例库中获取所述依赖软件对应的mock数据,并将所述mock数据设为所述返回数据。
7.根据权利要求1所述的软件***测试方法,其特征在于,所述运行所述待测软件得到反馈数据之后,还包括:
获取反映所述待测软件生成所述反馈数据过程的过程信息,根据所述过程信息生成测试报告;
将所述测试报告上传至预置的区块链中。
8.一种软件***测试装置,其特征在于,包括:
样例构建模块,用于获得软件***,识别所述软件***中的软件单元及各所述软件单元之间的依赖关系,构建保存有与所述软件***中软件单元对应的mock数据的样例库,其中,所述mock数据用于虚拟所述软件单元输出的返回数据;
待测依赖识别模块,用于接收进件请求,根据所述进件请求识别所述软件***中的待测软件,以及所述待测软件依赖的软件单元,并将所述软件单元设为依赖软件;
返回数据生成模块,用于根据所述进件请求调用所述依赖软件获得返回数据,或将所述依赖软件对应的mock数据设为返回数据;
软件测试模块,用于将所述返回数据录入所述待测软件,并运行所述待测软件得到反馈数据。
9.一种计算机设备,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机设备的处理器执行所述计算机程序时实现权利要求1至7任一项所述软件***测试方法的步骤。
10.一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,其特征在于,所述可读存储介质存储的所述计算机程序被处理器执行时实现权利要求1至7任一项所述软件***测试方法的步骤。
CN202111526587.6A 2021-12-14 2021-12-14 软件***测试方法、装置、计算机设备及可读存储介质 Pending CN114218098A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111526587.6A CN114218098A (zh) 2021-12-14 2021-12-14 软件***测试方法、装置、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111526587.6A CN114218098A (zh) 2021-12-14 2021-12-14 软件***测试方法、装置、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN114218098A true CN114218098A (zh) 2022-03-22

Family

ID=80701801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111526587.6A Pending CN114218098A (zh) 2021-12-14 2021-12-14 软件***测试方法、装置、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN114218098A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204405A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd ソフトウェアのリグレッションテストシステム、リグレッションテストプログラムおよびリグレッションテスト方法
US20110239195A1 (en) * 2010-03-25 2011-09-29 Microsoft Corporation Dependence-based software builds
WO2013161195A1 (ja) * 2012-04-26 2013-10-31 日本電気株式会社 プログラム単体テスト支援装置
US20150135158A1 (en) * 2013-11-14 2015-05-14 Dimitar Tenev Isolated testing of distributed development projects
CN109254905A (zh) * 2017-07-13 2019-01-22 北京航空航天大学 基于工作流的分布式并行自动化测试***
CN109284222A (zh) * 2017-07-20 2019-01-29 阿里巴巴集团控股有限公司 软件单元、数据处理***中的项目测试方法、装置及设备
CN111159034A (zh) * 2019-12-25 2020-05-15 中国人民解放军63920部队 软件的测试方法及装置
CN112416735A (zh) * 2019-08-21 2021-02-26 腾讯科技(深圳)有限公司 一种应用程序检测方法、装置及终端设备、存储介质
CN113176999A (zh) * 2020-11-24 2021-07-27 季明 基于分布式应用程序的软件测试方法及***
CN113297069A (zh) * 2021-04-30 2021-08-24 中国科学院信息工程研究所 一种基于目标驱动的软件测试方法和装置
CN113656290A (zh) * 2021-08-04 2021-11-16 支付宝(杭州)信息技术有限公司 一种mock点自动识别方法、装置以及设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204405A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd ソフトウェアのリグレッションテストシステム、リグレッションテストプログラムおよびリグレッションテスト方法
US20110239195A1 (en) * 2010-03-25 2011-09-29 Microsoft Corporation Dependence-based software builds
WO2013161195A1 (ja) * 2012-04-26 2013-10-31 日本電気株式会社 プログラム単体テスト支援装置
US20150135158A1 (en) * 2013-11-14 2015-05-14 Dimitar Tenev Isolated testing of distributed development projects
CN109254905A (zh) * 2017-07-13 2019-01-22 北京航空航天大学 基于工作流的分布式并行自动化测试***
CN109284222A (zh) * 2017-07-20 2019-01-29 阿里巴巴集团控股有限公司 软件单元、数据处理***中的项目测试方法、装置及设备
CN112416735A (zh) * 2019-08-21 2021-02-26 腾讯科技(深圳)有限公司 一种应用程序检测方法、装置及终端设备、存储介质
CN111159034A (zh) * 2019-12-25 2020-05-15 中国人民解放军63920部队 软件的测试方法及装置
CN113176999A (zh) * 2020-11-24 2021-07-27 季明 基于分布式应用程序的软件测试方法及***
CN113297069A (zh) * 2021-04-30 2021-08-24 中国科学院信息工程研究所 一种基于目标驱动的软件测试方法和装置
CN113656290A (zh) * 2021-08-04 2021-11-16 支付宝(杭州)信息技术有限公司 一种mock点自动识别方法、装置以及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
冯俊池 连尧 董超 尹党辉: "软件测试中的Mock辅助生成技术研究", 计算机软件及计算机应用, no. 6, 23 March 2019 (2019-03-23), pages 48 - 51 *
胡小伟 曹宗生: "基于mock模拟方法的核安全级软件单元测试技术研究及应用", 计算机软件及计算机应用, no. 12, 15 December 2018 (2018-12-15), pages 70 - 73 *

Similar Documents

Publication Publication Date Title
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN111563016B (zh) 日志采集分析方法、装置、计算机***及可读存储介质
CN108111364B (zh) 一种业务***的测试方法及装置
CN110647471A (zh) 接口测试用例生成方法、电子装置及存储介质
CN108460068A (zh) 报表导入导出的方法、装置、存储介质及终端
CN107357721B (zh) 测试***的方法及装置
CN111475494A (zh) 一种海量数据处理方法、***、终端及存储介质
CN114185808A (zh) 自动化测试方法、装置、电子设备及计算机可读存储介质
CN109828759B (zh) 代码编译方法、装置、计算机装置及存储介质
CN116743619B (zh) 网络服务的测试方法、装置、设备及存储介质
CN117370203B (zh) 自动化测试方法、***、电子设备及存储介质
CN112363939A (zh) 快速生成模糊测试网络协议模板的方法及***、设备
CN112561690A (zh) ***分期业务接口的测试方法、***、设备及存储介质
CN112181822A (zh) 一种测试方法和应用程序的启动耗时测试方法
CN111078529A (zh) 客户端写入模块测试方法、装置、电子设备
CN114218098A (zh) 软件***测试方法、装置、计算机设备及可读存储介质
US11397662B2 (en) Method for debugging computer program, device employing method, and storage medium
CN114416596A (zh) 一种测试应用的方法、装置、计算机设备及存储介质
CN114003784A (zh) 请求录制方法、装置、设备及存储介质
CN109920466B (zh) 一种硬盘测试数据解析方法、装置、终端及存储介质
CN113672514A (zh) 测试方法、装置、服务器及存储介质
CN113342647A (zh) 一种测试数据的生成方法及装置
CN111859985A (zh) Ai客服模型测试方法、装置、电子设备及存储介质
CN116401113B (zh) 一种异构众核架构加速卡的环境验证方法、装置及介质
CN117827624A (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