首页 / 专利库 / 软件 / 软件 / 一种软件测试方法和装置

一种软件测试方法和装置

阅读:431发布:2021-04-14

专利汇可以提供一种软件测试方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种 软件 测试方法和装置。涉及软件开发领域;解决了由于对项目不熟悉、测试针对性不强等原因造成的测试效率低下的问题。该方法包括:前端接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;根据所述测试任务包含的功能项目的测试参数,生成测试代码;执行所述测试代码,并输出测试结果。本发明提供的技术方案适用于软件开发过程中,实现了开放式的自动化测试。,下面是一种软件测试方法和装置专利的具体信息内容。

1.一种软件测试方法,其特征在于,包括:
前端接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
根据所述测试任务包含的功能项目的测试参数,生成测试代码;
执行所述测试代码,并输出测试结果。
2.根据权利要求1所述的软件测试方法,其特征在于,根据所述测试任务包含的功能项目,生成测试代码的步骤包括:
根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
3.根据权利要求2所述的软件测试方法,其特征在于,该方法还包括:
在根据所述测试任务包含的功能项目无法匹配得到已有的测试集时,根据所述测试任务生成的新的测试集并保存。
4.根据权利要求2所述的软件测试方法,其特征在于,该方法还包括:
生成各功能项目对应的测试集,记录功能项目与测试集的对应关系。
5.根据权利要求1所述的软件测试方法,其特征在于,执行所述测试代码,并输出测试结果的步骤包括:
执行所述测试代码,得到实际运行结果;
将测试的预期响应结果与所述实际运行结果进行对比;
在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面;
在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
6.根据权利要求5所述的软件测试方法,其特征在于,该方法还包括:
生成唯一标识标记一次测试过程,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存;
在输出测试结果时同时输出所述唯一标识。
7.根据权利要求6所述的软件测试方法,其特征在于,该方法还包括:
记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存。
8.根据权利要求7所述的软件测试方法,其特征在于,该方法还包括:
接收查询指令,所述查询指令中携带有标记测试过程的唯一标识;
根据所述唯一标识提取并返回相应的测试过程信息。
9.一种软件测试装置,其特征在于,包括:
前端测试子系统,用于接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
后台测试子系统,用于根据所述测试任务包含的功能项目,生成测试代码,执行所述测试代码,并输出测试结果。
10.根据权利要求9所述的软件测试装置,其特征在于,所述后台测试子系统包括:
测试集匹配模,用于根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
参数赋值模块,用于将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
11.根据权利要求10所述的软件测试装置,其特征在于,
所述后台测试子系统,还用于生成各功能项目对应的测试集,记录功能项目与测试集的对应关系。
12.根据权利要求9所述的软件测试装置,其特征在于,所述后台测试子系统还包括:
测试执行模块,用于执行所述测试代码,得到实际运行结果;
结果对比模块,用于将测试的预期响应结果与所述实际运行结果进行对比;
结果输出模块,用于在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面,
在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
13.根据权利要求12所述的软件测试装置,其特征在于,该装置还包括数据库
所述后台测试系统,还用于生成唯一标识标记一次测试过程,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存。在输出测试结果时同时输出所述唯一标识;
所述数据库,用于接收查询指令,所述查询指令中携带有标记测试过程的唯一标识,根据所述唯一标识提取并返回相应的测试过程信息。

说明书全文

一种软件测试方法和装置

技术领域

[0001] 本发明涉及软件开发领域,尤其涉及一种软件测试方法和装置。

背景技术

[0002] 在软件业十分成熟的今天,敏捷开发在业界日益流行,而面临的挑战也日益增多,不断变化的用户需求、缩短的开发周期、频繁的部署上线、复杂的产品架构和团队组织对软件开发形成了很大压,在这种背景下如何继续保证软件的质量是一个不能回避的课题。
[0003] 许多企业级规模的项目常常按照功能模将庞大的团队分为多个独立的团队。在这种情况下,每个团队各自负责其所属功能模块的开发和测试。而现有的自动化测试,常常由独立的自动化测试团队来执行和维护。对于其他团队的成员做相同的软件测试或是质量保障时,除非十分了解自动化测试包的细节,否则无法按照自身多类型的测试需求来执行自动化脚本。同时其他团队在不了解软件业务的时候,可能重复构造大量的测试输入条件大量消耗人力,降低工作效率,同时若只需要验证某个模块或某几个功能点是否成功而执行整个测试包不仅费时且没有必要。

发明内容

[0004] 本发明旨在解决上面描述的问题。
[0005] 根据本发明的第一方面,提供了一种软件测试方法,包括:
[0006] 前端接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
[0007] 根据所述测试任务包含的功能项目的测试参数,生成测试代码;
[0008] 执行所述测试代码,并输出测试结果。
[0009] 优选的,根据所述测试任务包含的功能项目,生成测试代码的步骤包括:
[0010] 根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
[0011] 将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
[0012] 优选的,该方法还包括:
[0013] 在根据所述测试任务包含的功能项目无法匹配得到已有的测试集时,根据所述测试任务生成的新的测试集并保存。
[0014] 优选的,该方法还包括:
[0015] 生成各功能项目对应的测试集,记录功能项目与测试集的对应关系。
[0016] 优选的,执行所述测试代码,并输出测试结果的步骤包括:
[0017] 执行所述测试代码,得到实际运行结果;
[0018] 将测试的预期响应结果与所述实际运行结果进行对比;
[0019] 在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面;
[0020] 在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
[0021] 优选的,该方法还包括:
[0022] 生成唯一标识标记一次测试过程,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存;
[0023] 在输出测试结果时同时输出所述唯一标识。
[0024] 优选的,该方法还包括:
[0025] 记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存。
[0026] 优选的,该方法还包括:
[0027] 接收查询指令,所述查询指令中携带有标记测试过程的唯一标识;
[0028] 根据所述唯一标识提取并返回相应的测试过程信息。
[0029] 根据本发明的另一方面,还提供了一种软件测试装置,包括:
[0030] 前端测试子系统,用于接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
[0031] 后台测试子系统,用于根据所述测试任务包含的功能项目,生成测试代码,执行所述测试代码,并输出测试结果。
[0032] 优选的,所述后台测试子系统包括:
[0033] 测试集匹配模块,用于根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
[0034] 参数赋值模块,用于将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
[0035] 优选的,所述后台测试子系统,还用于生成各功能项目对应的测试集,记录功能项目与测试集的对应关系。
[0036] 优选的,所述后台测试子系统还包括:
[0037] 测试执行模块,用于执行所述测试代码,得到实际运行结果;
[0038] 结果对比模块,用于将测试的预期响应结果与所述实际运行结果进行对比;
[0039] 结果输出模块,用于在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面,
[0040] 在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
[0041] 优选的,该装置还包括数据库
[0042] 所述后台测试系统,还用于生成唯一标识标记一次测试过程,在输出测试结果时同时输出所述唯一标识,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存;
[0043] 所述数据库,用于接收查询指令,所述查询指令中携带有标记测试过程的唯一标识,根据所述唯一标识提取并返回相应的测试过程信息。
[0044] 本发明提供了一种软件测试方法和装置,在接收到测试任务时,根据测试任务中携带的功能项目和各功能项目的测试参数,生成相应的测试代码,进而执行测试代码,并输出测试结果,完成测试。实现了基于自动化的代码生成的自动化测试,解决了由于对项目不熟悉、测试针对性不强等原因造成的测试效率低下的问题。支持傻瓜式测试软件质量,并能够减少测试人员的工作量,最大程度地平衡测试效率和运营成本,提升软件测试及管理的整体质量。
[0045] 参照附图来阅读对于示例性实施例的以下描述,本发明的其他特性特征和优点将变得清晰。

附图说明

[0046] 并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。
[0047] 图1示例性地示出了本发明的实施例一提供的一种软件测试系统的架构;
[0048] 图2示例性地示出了本发明的实施例一提供的一种软件测试方法的流程;
[0049] 图3示例性地示出了测试参数输入页面;
[0050] 图4示例性地示出了本发明的实施例二提供的一种软件测试方法的流程;
[0051] 图5示例性地示出了本发明的实施例三提供的一种软件测试装置的结构;
[0052] 图6示例性地示出了图5中后台测试子系统502的结构。

具体实施方式

[0053] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0054] 现有的自动化测试,常常由独立的自动化测试团队来执行和维护。对于其他团队的成员做相同的软件测试或是质量保障时,除非十分了解自动化测试包的细节,否则无法按照自身多类型的测试需求来执行自动化脚本。同时其他团队在不了解软件业务的时候,可能重复构造大量的测试输入条件大量消耗人力,降低工作效率,同时若只需要验证某个模块或某几个功能点是否成功而执行整个测试包不仅费时且没有必要。
[0055] 为了解决上述问题,本发明的实施例提供了一种软件测试方法和装置,根据测试任务自动生成代码并执行输出测试结果,实现了开放式的自动化测试,解除了专测试团队的屏障限制,解决了由于对项目不熟悉、测试针对性不强等原因造成的测试效率低下的问题。
[0056] 首先结合附图,对本发明的实施例一进行说明。
[0057] 本发明实施例提供一种能够对软件功能或配置进行测试的软件测试系统,其架构如图1所示,包括前端测试系统、后台测试系统、测试数据库。
[0058] 前端测试系统用于用户选择测试项目、结果数据展示以及历史记录的保存。具体包括测试选择模块、测试数据提交模块、测试结果浏览模块、历史结果记录模块和自动化测试模块。其中,测试选择模块用于引导用户选择所需测试的功能项目;测试数据提交模块用于将用户输入的待测试数据以及测试条件传输至后台测试系统;测试结果浏览模块用于展示后台测试系统返回的测试结果并以图片、统计图表、数据数字的形式展示;历史结果记录模块用于将用户测试结果保存至后台数据库,供随时调用;自动化测试模块用于设定自动化测试流程,按照预设时间点自动化测试用户部署的测试任务。
[0059] 后台测试系统包括测试集(具体为自动化测试脚本集)以及搭建的测试框架,用于接收并处理用户的测试任务。具体包括判断用户请求的功能项目(如测试类型),根据功能项目将不同数据代码匹配对应的测试脚本集,根据测试任务中的测试参数补全不同自动化测试脚本集的测试代码。测试执行完毕,返回运行正确或是错误的相关信息。在运行出错时,将报错信息以邮件的方式发送给项目负责人。可以采取人工再测试或是缺陷修复,同时提供执行状态和历史记录的查询。
[0060] 本发明实施例中,后台测试系统维护一个自动化测试包,测试包中有多个自动化测试脚本集,当用户选择了要测试的功能项目后,比如要测试squid对视频开启时间拖拉这个功能是否正常,根据后台维护的hash表找到匹配这个功能项目的自动化测试脚本集,可能是一个自动化测试脚本集也可能是多个。例如,在选择测试的功能项目后,用户将要测试的URL(如a.mp4),开始拖拉的时间、(如1s)结束拖拉的时间(如20s),以及着这段时间范围对应的文件实体的md5值(如abcdefg12345),这四个参数输入,传到后台测试系统2中相应的自动化测试脚本集中,补全测试代码。测试代码完整后,自动运行该测试脚本集,测试脚本集中包含squid支持视频拖拉这个功能的配置文件,测试脚本运行时,配置生效,squid找到a.mp4这个文件后,会返回给客户1s-20s的内容,并自动计算这部分文件的MD5值,并与用户传入的md5值(abcdefg12345)做校验,MD5值一致测试执行完毕后没有断言失败,最终显示给用户测试执行成功,MD5值不一致程序出现断言失败,并打印错误信息,返回给用户。
[0061] 测试数据库用于存储后台测试系统的测试结果,并随时供后台及前端调用。
[0062] 使用上述软件测试系统完成测试的流程如图2所示,包括:
[0063] 步骤201:用户登录此管理平台,进行用户身份识别认证,管理员用户相较于普通用户增加测试信息管理的权限,平台主界面提供一系列可供选择的测试功能,比如,测试流媒体相关功能,大文件传输测试等,用户根据需求选择自己要测试的功能项目;
[0064] 步骤202:用户选择了测试模块(对应于功能项目,以测试模式的形式表现)后,跳转到该测试模块的前端测试模块子页面,子页面提供关于该功能的需求介绍,同时提供输入框,提示用户输入测试参数,如:
[0065] 测试的URL,请求头等相关内容(如URL:http://www.123.com/index.html,请求头:Range:bytes=100-200,期望返回:Content-Range:bytes 100-200/xxxxxxx),不同的功能项目,需要的测试参数不同,平台会有样例引导用户输入正确格式的测试参数作为输入条件,客户输入完毕后点击提交按钮将携带有测试参数的测试任务传输至后台测试系统。
[0066] 图3为一种输出测试参数的页面示意图。
[0067] 步骤203:后台测试系统将功能项目(具体为前端测试模块子页面)和自动化测试脚本集的对应关系做成一张hash表,当用户点击提交按钮后,根据测试任务涉及的前端测试模块子页面找到后台具体的自动化测试脚本集,同时将用户提交的测试数据以表单的形式(或以其他方式如ajax等主流的多种方式)传递到对应的一个或多个自动化测试脚本集中,接收到客户传递进行的测试参数后,将测试参数赋值给自动化测试脚本集的测试代码中的变量,测试代码补齐后,程序自动运行测试。
[0068] 此外,也可以维护一匹配数据库,将功能项目与测试集的对应关系生成匹配数据库中的记录条件,保存于该匹配数据库中。匹配数据库能够快速简单增删改对应关系,且能够容纳较大的数据量。每当新增功能项目和该功能项目对应的测试集时,即可将它们之间的对应关系加入该匹配数据库中。
[0069] 步骤204:在测试中将此次测试的预期响应结果与实际运行结果进行对比,不符合预期,程序返回报错信息,与预期相符返回正确运行的状态,后台将测试信息利用js传递给前端的web界面。同时,测试完成后根据时间戳生成唯一md5加密串。惟一标识此次测试过程,并将加密串返回给前端测试系统。
[0070] 步骤205:测试运行完毕,用户可以在平台上浏览测试结果并对测试参数进行调整以便根据结果进行二次测试;
[0071] 步骤206、根据每次运行的加密串可以进行检索,查询测试历史记录。
[0072] 下面结合附图,对本发明的实施例二进行说明。
[0073] 本发明实施例提供了一种软件测试方法,使用该方法完成自动化软件测试的流程如图4所示,包括:
[0074] 步骤401、生成各功能项目对应的测试集,记录功能项目与测试集的对应关系;
[0075] 本发明实施例中,维护一自动化测试包,其中包括多个测试集,一个或多个测试集对应于一个功能项目的测试,在测试集与功能项目之间建立对应关系并记录。优选的,可通过哈希表记录测试集与功能项目的对应关系。测试集具体可通过脚本实现。
[0076] 步骤402、前端接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
[0077] 本步骤包括:
[0078] 1、根据所述测试任务包含的功能项目的测试参数,生成测试代码;
[0079] 2、根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
[0080] 3、将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
[0081] 在根据所述测试任务包含的功能项目无法匹配得到已有的测试集时,根据所述测试任务生成的新的测试集并保存。
[0082] 步骤403、执行所述测试代码,并输出测试结果;
[0083] 本步骤包括:
[0084] 1、执行所述测试代码,得到实际运行结果;
[0085] 2、将测试的预期响应结果与所述实际运行结果进行对比;
[0086] 3、在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面;
[0087] 4、在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
[0088] 可选的,还可对测试过程及结果进行记录,以便于后续提取查阅,具体如下:
[0089] 步骤404、生成唯一标识标记一次测试过程,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存,在输出测试结果时同时输出所述唯一标识。
[0090] 步骤405、接收查询指令,所述查询指令中携带有标记测试过程的唯一标识,根据所述唯一标识提取并返回相应的测试过程信息。
[0091] 下面结合附图,对本发明的实施例三进行说明。
[0092] 本发明实施例提供了一种软件测试装置,其结构如图5所示,包括:
[0093] 前端测试子系统501,用于接收测试任务,在所述测试任务中携带有功能项目和各功能项目的测试参数;
[0094] 后台测试子系统502,用于根据所述测试任务包含的功能项目,生成测试代码,执行所述测试代码,并输出测试结果。
[0095] 优选的,所述的结构如图6所示,包括:
[0096] 测试集匹配模块5021,用于根据所述测试任务包含的功能项目,匹配得到至少一个测试集;
[0097] 参数赋值模块5022,用于将所述测试参数赋值给匹配得到的测试集的测试代码中的变量,补齐测试代码。
[0098] 优选的,所述后台测试子系统502,还用于生成各功能项目对应的测试集,记录功能项目与测试集的对应关系。
[0099] 优选的,所述后台测试子系统502还包括:
[0100] 测试执行模块5023,用于执行所述测试代码,得到实际运行结果;
[0101] 结果对比模块5024,用于将测试的预期响应结果与所述实际运行结果进行对比;
[0102] 结果输出模块5025,用于在所述实际运行结果符合预期时,将所述实际运行结果作为测试结果返回前端界面,
[0103] 在所述实际运行结果不符合预期时,生成报错信息作为测试结果返回前端界面。
[0104] 优选的,该装置还包括数据库503;
[0105] 所述后台测试系统502,还用于生成唯一标识标记一次测试过程,记录测试过程信息,将所述唯一标识与测试的测试参数、功能项目、使用的测试集及实际运行结果关联保存,在输出测试结果时同时输出所述唯一标识;
[0106] 所述数据库503,用于接收查询指令,所述查询指令中携带有标记测试过程的唯一标识,根据所述唯一标识提取并返回相应的测试过程信息。
[0107] 本发明的实施例提供了一种软件测试方法和装置,在接收到测试任务时,根据测试任务中携带的功能项目和各功能项目的测试参数,生成相应的测试代码,进而执行测试代码,并输出测试结果,完成测试。实现了基于自动化的代码生成的自动化测试,解决了由于对项目不熟悉、测试针对性不强等原因造成的测试效率低下的问题。支持傻瓜式测试软件质量,并能够减少测试人员的工作量,最大程度地平衡测试效率和运营成本,提升软件测试及管理的整体质量。
[0108] 用户根据自身具体需求,选择不同功能项进行测试,在每一个功能测试模块中,用户只需要按照要求输入相应的测试内容,比如url,请求头,操作易懂、方便;提交测试内容后,后台根据用户选择的功能模块匹配对应的自动化测试包,将客户提交的数据上传至自动化测试包相应的代码位置上,补全测试代码,自动化的流程降低了测试人员的工作量,提高了测试效率;测试执行完毕,根据结果可采取人工再测试或是缺陷修复,同时提供执行状态和历史记录的查询,提高了测试结果的准确性;数据库保存有用户提交的数据以及测试的结果,以及报错信息等,方便了后期浏览与问题定位,减少了重现BUG的时间成本;包含测试集的测试包部署在线上的机器上,后台自动化测试包测试覆盖率高,稳定性强,支持度良好。测试包根据预设时间点自动运行,减少人工参与测试的时间,节约人力成本。
[0109] 上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
[0110] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈