软件测试方法及系统[发明专利]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(10)申请公布号
(43)申请公布日 (21)申请号 201310391151.X
(22)申请日 2013.08.30
G06F 11/36(2006.01)
(71)申请人上海复旦微电子集团股份有限公司
地址200433 上海市杨浦区国泰路127号复
旦国家大学科技园4号楼
(72)发明人柏志斌 王欣一 吕晨俊 王雪娇
庄敏慧
(74)专利代理机构北京集佳知识产权代理有限
公司 11227
代理人
骆苏华
(54)发明名称
软件测试方法及系统
(57)摘要
本发明实施例提供了一种软件测试方法及系
统,所述测试方法包括:至少两个测试终端中的
每个测试终端分别从测试任务数据集中获取未被
执行过的单个测试任务;所述每个测试终端分别
根据所述获取到的未被执行过的单个测试任务对
应的测试脚本的路径,分别从测试脚本库中获取
对应的未测试脚本,在测试任务数据集中记录所
述所获取的测试任务的测试状态信息为处于测试
状态;所述每个测试终端采用所获取的未测试脚
本对与所述测试终端连接的承载器件中的待测对
象进行测试,在所述测试任务数据集中记录所述
测试任务的测试结果信息,并更新所述测试任务
的测试状态信息为已完成测试。

采用所述测试方
法及系统可以提高软件测试效率。

(51)Int.Cl.
(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书9页 附图5页
(10)申请公布号CN 104424099 A (43)申请公布日2015.03.18
C N 104424099
A
1.一种软件测试方法,其特征在于,包括:
至少两个测试终端中的每个测试终端分别从测试任务数据集中获取未被执行过的单个测试任务;
所述每个测试终端分别根据所述获取到的未被执行过的单个测试任务对应的测试脚本的路径,分别从测试脚本库中获取对应的未测试脚本,在测试任务数据集中记录所述所获取的测试任务的测试状态信息为处于测试状态;
所述每个测试终端采用所获取的未测试脚本对与所述测试终端连接的承载器件中的待测对象进行测试,在所述测试任务数据集中记录所述测试任务的测试结果信息,并更新所述测试任务的测试状态信息为已完成测试。

2.如权利要求1所述的软件测试方法,其特征在于,在所述测试任务数据集中记录所述所获取的测试任务的测试状态信息为处于测试状态时,还包括:
记录获取所述未测试脚本的测试终端的标识及与所述测试终端连接的承载器件的标识。

3.如权利要求1所述的软件测试方法,其特征在于,所述测试脚本库设置在所述测试终端、本地服务器或者网络侧的测试脚本库服务器上。

4.如权利要求1所述的软件测试方法,其特征在于,还包括:
所述测试终端判断是否能够打开钥匙文件,并在打开钥匙文件时执行所述从测试脚本库中获取未测试脚本的操作。

5.如权利要求4所述的软件测试方法,其特征在于,还包括:所述测试终端在钥匙文件无法打开时,在预设次数阈值内进行随机时长的延迟,继续打开钥匙文件,并在打开次数超过所述预设次数阈值时,取消所述软件测试。

6.如权利要求1所述的软件测试方法,其特征在于,还包括:
对于处于测试状态中的测试脚本,当接收到强制退出的指令时,设置强制退出标识并结束对所述软件的测试。

7.如权利要求1所述的软件测试方法,其特征在于,还包括:
通过测试管理机将所述测试任务数据集发布至测试数据服务器。

8.如权利要求7所述的软件测试方法,其特征在于,还包括:
通过测试管理机监控所述测试任务的测试信息。

9.一种软件测试系统,其特征在于,包括:至少两个测试终端,分别与承载有待测对象的承载器件连接,用于分别从测试任务数据集中获取未被执行过的单个测试任务,并分别根据所述获取到的未被执行过的单个测试任务对应的测试脚本的路径,分别从测试脚本库中获取对应的未测试脚本,在测试任务数据集中记录所述获取的未测试脚本的测试状态信息为处于测试状态,并采用所获取的未测试脚本对与所述测试终端连接的承载器件中的待测对象进行测试,在所述测试任务数据集中记录所述测试任务的测试结果信息,并更新测试状态信息为已完成测试。

10.如权利要求9所述的软件测试系统,其特征在于,所述测试任务数据集分别存储在至少一个测试终端中。

11.如权利要求10所述的软件测试系统,其特征在于,所述测试终端还在所述测试任务数据集中记录与所述测试终端连接的承载器件的标识。

12.如权利要求9所述的软件测试系统,其特征在于,还包括:测试数据服务器,分别与所述各个测试终端连接,用于存储所述测试任务数据集。

13.如权利要求12所述的软件测试系统,其特征在于,所述测试终端还用于在所述所获取的测试任务的测试状态信息为处于测试状态时,在所述测试任务数据集中记录所述测试终端的标识以及与所述测试终端连接的承载器件的标识。

14.如权利要求12所述的软件测试系统,其特征在于,还包括:测试管理机,用于在软件测试前将所述测试任务数据集发布到所述测试数据服务器中。

15.如权利要求14所述的软件测试系统,其特征在于,所述测试管理机还用于监控所述测试任务的测试信息。

16.如权利要求9所述的软件测试系统,其特征在于,还包括:测试脚本库服务器,分别与所述测试终端连接,用于存储所述测试脚本。

软件测试方法及系统
技术领域
[0001] 本发明涉及软件测试技术领域,尤其涉及一种软件测试方法及系统。

背景技术
[0002] 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

回归测试作为整个软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。

在渐进和快速迭代开发中,新版本的连续发布使回归测试进行得更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。

测试脚本一般是指一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。

测试脚本按照一定的存放规则形成的集合称为测试脚本库。

[0003] 传统的回归测试,通常是手工执行测试,通过人工调入测试脚本并执行。

整个测试过程的测试时间T=单个脚本测试时间之和+人参加其中消耗的时间。

[0004] 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

相比手工测试,通过自动化的测试方法具有更高效率。

采用自动化测试方法,测试软件自动依次执行选定的测试脚本。

整个测试过程的测试时间T=单个脚本测试时间之和。

[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] 图1是本发明实施例中一种软件测试系统结构示意图;
[0034] 图2是本发明实施例中一种软件测试方法流程图;
[0035] 图3是本发明实施例中另一种软件测试系统结构示意图;
[0036] 图4是本发明实施例中又一种软件测试系统结构示意图;
[0037] 图5是本发明实施例中另一种软件测试方法流程图;
[0038] 图6是本发明实施例中测试终端打开钥匙文件流程示意图;
[0039] 图7是本发明实施例中测试终端获取测试任务的流程示意图;
[0040] 图8是本发明实施例中强制退出软件测试流程图。

具体实施方式
[0041] 在现有的软件回归测试中,不论是手工执行,还是自动执行,都是依次执行选定的每一个测试脚本,即各个测试脚本是串行执行,因此在一次回归测试中含有大量测试脚本时,回归测试将会消耗大量的时间,测试效率较低。

[0042] 为解决上述问题,本发明实施例提供了一种软件测试方法及系统,在所述测试系统中,两个或两个以上的测试终端分别与承载有待测对象的承载器件连接,所述两个或两个以上的测试终端分别从测试任务数据集中获取未被执行过的单个测试任务,获取到单个测试任务对应的未测试脚本,且在测试任务数据集中记录所获取的测试任务的测试状态信息为处于测试状态,并采用所获取的未测试脚本对与所述测试终端连接的承载器件中的待测对象进行测试。

由于各个测试终端通过测试任务数据集中的测试状态信息可以识别出未被识别的测试脚本,从而可以对各个测试任务进行并行测试,因此可以提高测试效率。

[0043] 在具体实施中,所述测试任务数据集以及测试脚本库可以保存在测试终端上,也可以保存在测试终端之外的设备上,例如,所述测试任务数据集可以保存在本地服务器或者远程服务器中。

所述测试脚本库也可以保存各个测试终端上,或者保存在本地服务器或
者远程的测试脚本库服务器上。

[0044] 为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

[0045] 参照图1所示的本发明实施例中一种软件测试系统结构示意图,所述软件测试系统100包括至少两个测试终端101,所述测试终端101分别与承载有待测对象的承载器件102连接,各个测试终端101之间可以相互连接,也可以没有连接关系。

[0046] 在具体实施中,所述待测对象即为待测试软件,承载有所述待测试软件的承载器件可以为烧录了所述待测试软件的具体芯片产品,也可以为其他存储了所述待测试软件的产品。

[0047] 所述至少两个测试终端101用于分别从测试任务数据集中获取未被执行过的单个测试任务,并分别根据所述获取到的未被执行过的单个测试任务对应的测试脚本的路径,分别从测试脚本库中获取对应的未测试脚本,在测试任务数据集中记录所述获取的未测试脚本的测试状态信息为处于测试状态,并采用所获取的未测试脚本对与所述测试终端连接的承载器件102中的待测对象进行测试,在所述测试任务数据集中记录所述测试任务的测试结果信息,并更新测试状态信息为已完成测试。

[0048] 当各个测试终端之间没有连接关系时,每个测试终端中保存一个测试任务数据集,所述各个测试终端中保存的测试任务数据集可以相同,也可以不同。

如果采用相同的测试任务数据集,预先为每个测试终端分配好需要执行的测试任务,可以根据每一项测试需要的测试时长、测试终端处理性能等进行分配。

如果采用不同的测试任务数据集,可以在每个测试终端中设置所述测试终端对应的测试任务数据集。

[0049] 当各个测试终端之间有连接关系时,可以仅在其中一个测试终端中存储各个测试终端需要的测试任务数据集。

这样,在测试过程中,每个测试终端可以从保存了所述测试任务数据集的测试终端中获取未执行的单个测试任务,以及所述单个测试任务对应的测试脚本的路径,从而可以从测试脚本库中获取到对应的未测试脚本。

将测试任务数据集保存在一个测试终端上,可以节约存储资源。

[0050] 本实施例中,可以在每个测试终端中都保存一个测试脚本库,测试终端不需要从其他设备中获取测试脚本,可以提高测试效率,节约网络传输资源。

[0051] 参照图2所示的软件测试方法流程图,以下具体说明上述测试系统的工作原理:[0052] S201,每个测试终端分别从存储的测试任务数据集中获取未被执行过的单个测试任务。

[0053] S202,所述每个测试终端分别根据所述获取到的未被执行过的单个测试任务对应的测试脚本的路径,分别从测试脚本库中获取对应的测试脚本,在测试任务数据集中记录所述所获取的测试任务的状态信息为处于测试状态。

[0054] 在具体实施中,测试任务数据集中设置需要测试终端执行的测试任务,每个测试任务可以对应一个测试脚本,因此可以直接在所述测试任务数据集中保存所述测试脚本的测试路径。

[0055] 为了便于识别所述测试脚本是否被执行过,可以在所述测试任务数据集中记录所述测试脚本的测试状态信息。

例如,可以设置所述测试脚本是否已经被执行或者执行中的标识信息。

这样,测试终端在获取到一个未测试脚本后,即可将所述测试任务数据集中对应
的测试状态信息更新为处于测试状态或者相应的标识信息。

[0056] S203,所述每个测试终端采用所获取的未测试脚本对与所述测试终端连接的承载器件中的待测对象进行测试,在所述测试任务数据集中记录所述测试任务的测试结果信息,并更新所述测试任务的测试状态信息为已完成测试。

[0057] 可以理解的是,在具体应用过程中,可能出现有些测试故障,导致测试无法完成的情况(例如陷入死循环),或者测试人员需要临时退出测试,为解决这一问题,方便用户使用,当接收到输入的强制退出的指令时,可以设置强制退出标识,并结束对所述软件的测试。

[0058] 从本实施例可以看出,通过多个测试终端并行执行测试任务,相对于一个测试设备独立运行的情况,可以提高测试效率。

[0059] 在具体实施中,上述多个测试终端可以分布在不同的地点,通过分布式设置测试终端,可以实现不同区域的测试人员对软件同时进行测试,因此可以进一步提高测试效率。

[0060] 参照图3所示的本发明实施例中的另一种软件测试系统结构示意图,所述软件测试系统包括多个测试终端301,分别与所述测试终端301连接的承载有待测对象的承载器件302,以及分别与所述测试终端连接的测试数据服务器303。

[0061] 与前述实施例的不同之处在于,各个测试终端还分别与测试数据服务器相连,其中测试数据服务器中可以保存统一的测试任务数据集,所述测试任务数据集中除了存储每个测试任务对应的测试脚本的存储路径以及所述测试脚本的测试状态外,还可以存储测试每个脚本的测试终端的标识,以及与所述测试终端连接的承载器件的标识。

[0062] 在软件测试过程中,测试终端根据测试任务数据集中的测试状态信息获取到处于未测试状态的测试脚本时,即可将所述测试脚本的测试状态信息修改为处于测试状态,并记录所述获取所述未测试脚本的测试终端的标识,以及与所述测试终端连接的承载器件的标识。

[0063] 通过修改测试任务数据集中的测试状态信息,可以避免各个测试终端之间重复获取同一测试脚本,实现各个测试终端的并行测试。

而记录获取测试脚本的测试终端的标识,可以快速识别出哪个测试终端对应的待测对象发生了错误,便于排除由于测试终端、承载器件等的硬件原因,或者网络连接故障等非测试软件本身原因导致的错误,可以使测试人员更快速地识别出测试错误出现的原因,进一步提高软件测试效率。

[0064] 在本实施例中,测试脚本库可以设置在所述测试终端中,也可以设置在测试数据服务器中。

在具体实施中,也可以将测试数据服务器中的测试脚本库同步到各个测试终端之后再进行软件测试。

[0065] 测试终端在每完成一项测试任务后,可以在所述测试任务数据集中记录下所述测试任务对应的测试结果,更新所述测试任务的测试状态信息。

为便于测试人员分析统计,如果测试结果失败,还可以给出测试失败的原因给出每一项测试任务的执行时间等。

例如,测试人员根据测试执行时间可以判断测试结果是否正常,以及判断软件是否有进一步优化的空间等。

[0066] 在测试过程中,每个测试终端上可以实时显示测试进程,以对软件测试过程进行更好的监控。

例如,可以根据测试人员需要,显示所选取的待测试软件的名称及版本号、测试终端状态、当前执行脚本、当前脚本执行时间,总脚本数、当前版本序号,总体测试进度等。

相关文档
最新文档