软件测试的方法和装置制造方法

文档序号:6631408阅读:206来源:国知局
软件测试的方法和装置制造方法
【专利摘要】本发明公开了一种软件测试的方法和装置,属于计算机【技术领域】。所述方法包括:接收目标软件的软件测试请求,获取软件测试请求所使用的测试程序,如果测试程序中包含多层循环,则对于测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环语句,运行修改后的测试程序,对目标软件进行测试。采用本发明,可以提高对软件测试的灵活性。
【专利说明】软件测试的方法和装置

【技术领域】
[0001] 本发明涉及计算机【技术领域】,特别涉及一种软件测试的方法和装置。

【背景技术】
[0002] 随着计算机技术的不断发展,软件的种类越来越丰富,软件质量的优劣变得越来 越重要,这样,在软件投入使用之前,就需要对软件进行测试。
[0003] 在对软件进行测试时,通常通过编程语言编写测试程序(也可称作测试套件),通 过测试程序对软件的相关功能进行测试,例如,基于Robot Framework(自动化框架)编写 测试程序,以对软件进行测试,其中,测试程序中的测试语句中通常包括关键字和执行参数 等,因此上述测试方式也被称为关键字驱动测试。
[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] 图1是本发明实施例提供的一种软件测试的方法流程图;
[0035] 图2是本发明实施例提供的一种软件测试的应用程序的界面示例图;
[0036] 图3是本发明实施例提供的一种软件测试的装置结构示意图;
[0037] 图4是本发明实施例提供的一种终端的结构示意图。

【具体实施方式】
[0038] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0039] 实施例一
[0040] 本发明实施例提供了一种软件测试的方法,如图1所示,该方法的处理流程可以 包括如下的步骤:
[0041] 步骤101,接收目标软件的软件测试请求,获取软件测试请求所使用的测试程序。
[0042] 步骤102,如果测试程序中包含多层循环,则对于测试程序中的每个循环,提取循 环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用 程序单元的调用执行语句,替代提取出的循环语句。
[0043] 步骤103,运行修改后的测试程序,对目标软件进行测试。
[0044] 本发明实施例中,接收目标软件的软件测试请求,获取软件测试请求所使用的测 试程序,如果测试程序中包含多层循环,则对于测试程序中的每个循环,提取循环语句组成 待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序单元的 调用执行语句,替代提取出的循环语句,运行修改后的测试程序,对目标软件进行测试,这 样,将每个循环分别提取为独立的程序单元,每个程序单元都执行单层循环,避免了多层循 环嵌套无法执行的问题,从而,可以提高对软件测试的灵活性。
[0045] 实施例二
[0046] 本发明实施例提供了一种软件测试的方法,该方法可以由终端实现。其中的终端 可以是任意的终端,例如笔记本电脑、平板电脑等。
[0047] 下面将结合【具体实施方式】,对图1所示的处理流程进行详细的说明,内容可以如 下:
[0048] 步骤101,接收目标软件的软件测试请求,获取软件测试请求所使用的测试程序。
[0049] 其中,目标软件可以是任意软件,例如浏览器、即时通讯应用程序、网页代码等。测 试程序中可以是包含一个或多个测试语句,测试语句中可以包含关键字和执行参数等,关 键字用于表示对应的测试语句的性质,关键字可以包括循环开始关键字、循环结束关键字 等,例如可以使用ForRange表示循环开始关键字,ForEnd表示循环结束关键字等。
[0050] 在实施中,技术人员可以通过各种编程语言编写测试程序,编写的测试程序中可 以包括多层循环和/或单层循环,单层循环或多层循环的数目可以是一个,也可以是多个。 在实际的软件测试系统中,测试程序可以称作测试套件,通常,测试套件中包括测试用例, 测试用例中包括测试语句,该测试语句即可以为测试程序中的测试语句。技术人员完成测 试程序后,可以为该测试程序设置程序标识,例如套件A等,可以将程序标识与对应的测试 程序存储在终端中。终端中可以安装有用于进行软件测试的应用程序,如图2所示,当技术 人员需要对某软件(即目标软件)的某项功能进行测试时,技术人员可以启动终端中安装 的该应用程序,并在该应用程序提供的软件目录中选择目标软件的软件标识,从而确定测 试目标,然后,可以针对软件的不同功能选择相应的测试程序,可以在该应用程序中选择该 测试程序的程序标识,当技术人员点击开始测试按键时,终端可以通过选择的程序标识生 成软件测试请求,终端可以接收目标软件的软件测试请求,并通过软件测试请求中携带的 程序标识,确定与该程序标识对应的测试程序,可以将该测试程序获取为软件测试请求所 使用的测试程序。
[0051] 步骤102,如果测试程序中包含多层循环,则对于测试程序中的每个循环,提取循 环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用 程序单元的调用执行语句,替代提取出的循环语句。
[0052] 其中,调用执行语句用于调用相应的待调用程序单元,以执行待调用程序单元中 的循环语句。如果测试程序中不存在与某一个循环开始语句相匹配的循环结束语句,则可 以将该循环开始语句到测试程序的最后一个测试语句之间的所有测试语句,作为该循环开 始语句所属的循环的循环语句。
[0053] 在实施中,终端可以对测试程序中的循环语句进行检测,可以通过多种方式确定 测试程序中包含多层循环,例如可以查找测试程序中的循环开始语句和循环结束语句,并 进行匹配,当某个循环开始语句和与其相对应的循环结束语句之间还包含一个或者多个循 环开始语句,则可以确定测试程序中包含多层循环。以测试程序中的任一个循环为例,终端 可以提取出该循环的循环语句,组成待调用程序单元,同时,可以在测试程序中上述循环语 句所在的原位置处,设置一个对应上述待调用程序单元的调用执行语句,替换上述循环语 句。
[0054] 例如,如果测试程序中只包括一个三层循环,从最内层到最外层,三层循环可以依 次称为第一循环、第二循环和第三循环,提取第一循环的循环语句组成第一待调用程序单 元,对应的调用执行语句可以称为第一调用执行语句,提取第二循环的循环语句组成第二 待调用程序单元,对应的调用执行语句可以称为第二调用执行语句,提取第三循环的循环 语句组成第三待调用程序单元,对应的调用执行语句可以称为第三调用执行语句,则通过 上述步骤102的处理后,该测试程序中只包含第三调用执行语句,这样,由于软件测试的应 用程序无法执行多层循环操作,通过上述处理后,测试程序中不存在多层循环,因此,该应 用程序可以运行测试程序。其中,第三待调用程序单元中包括第二调用执行语句,第二待调 用程序单元中包括第一调用执行语句,第一待调用程序单元中包括第一循环的循环语句。
[0055] 可选地,上述确定测试程序中包含多层循环的处理方式可以多种多样,以下提供 一种可行的处理方式,相应的上述步骤102的处理过程可以包括以下内容:如果测试程序 中的第一循环开始语句与第二循环开始语句之间不包括循环结束语句,则对于测试程序中 的每个循环,提取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对 应所组成的待调用程序单元的调用执行语句,替代提取出的循环语句。
[0056] 其中,第一循环开始语句可以是测试程序中的任一循环开始语句,第二循环开始 语句可以是测试程序中除第一循环开始语句外的任一循环开始语句,循环开始语句可以是 包括循环开始关键词的语句,例如包含ForRange的语句,循环结束语句可以是包括循环结 束关键词的语句,例如包含ForEnd的语句。
[0057] 在实施中,终端可以查找测试程序中的循环开始语句和循环结束语句,如果查找 到某一个循环开始语句(即第一循环开始语句)与另一个循环开始语句(即第二循环开始 语句)之间不包括循环结束语句,则可以确定测试程序中包括多层循环。然后,终端可以对 于测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环语句的原 位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环语句,具体 处理过程可以参见上述相关内容,在此不再赘述。
[0058] 可选地,对于提取测试程序中的循环语句的处理方式可以多种多样,以下提供一 种可选的处理方式,相应的上述步骤102的处理过程可以包括以下内容:如果测试程序中 包含多层循环,则从最内层循环开始逐层向外,对于测试程序中的每个循环,提取循环语句 组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序单 元的调用执行语句,替代提取出的循环语句。
[0059] 在实施中,如果终端确定测试程序中包含多层循环,则为了降低循环语句在提取 的过程中的出错率,对于该多层循环,终端可以从最内层循环开始逐层向外,依次提取多层 循环中的每一层循环组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所 组成的待调用程序单元的调用执行语句,替代提取出的循环语句。
[0060] 可选地,为了简化多层循环的处理过程,且考虑到现有的软件测试机制中只能够 处理单层循环,因此可以不对多层循环中的最外层循环进行任何处理,相应的上述步骤102 的处理过程可以包括以下内容:对于测试程序中除最外层循环外的每个循环,提取循环语 句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序 单元的调用执行语句,替代提取出的循环语句。
[0061] 在实施中,终端可以获取多层循环中任一层循环的循环语句,并将判断该层循环 是否为最外层循环,如果不是,则可以提取该层循环的循环语句组成待调用程序单元,并在 上述循环语句的原位置处,设置对应上述待调用程序单元的调用执行语句,替代上述循环 语句,如果是,终端可以不对最外层循环进行处理,以此类推,直到处理完成多层循环中每 一层循环。
[0062] 可选地,为了更加方便的对待调用程序单元中的循环语句进行调用执行,可以为 待调用程序单元设置调用参数,相应的上述步骤102的处理过程可以包括如下内容:对于 所述测试程序中的每个循环,提取循环语句组成待调用程序单元,设置对应所组成的待调 用程序单元的调用参数,并在提取的循环语句的原位置处,设置携带有所述调用参数的调 用执行语句,替代提取出的循环语句。
[0063] 在实施中,如果终端确定测试程序中包含多层循环,以多层循环中的任一个循环 为例,终端可以提取该循环的循环语句,组成待调用程序单元,可以为该待调用程序单元设 置一个调用参数,并在上述循环语句的原位置处,设置一个携带有该调用参数的调用执行 语句,替代上述循环语句。其中,调用执行语句中可以包括调用关键字和调用参数,调用关 键字和调用参数可以由技术人员预先在上述应用程序中设置,例如调用关键字可以为也可 以 ForRangeFold、ForRangeSuite 等,调用参数可以为 A、1 等。
[0064] 例如,测试程序可以表格的形式存储,如表1所示。
[0065] 表 1
[0066]
[0067] 表/的测试程^中包括'层循环,即

【权利要求】
1. 一种软件测试的方法,其特征在于,所述方法包括: 接收目标软件的软件测试请求,获取所述软件测试请求所使用的测试程序; 如果所述测试程序中包含多层循环,则对于所述测试程序中的每个循环,提取循环语 句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序 单元的调用执行语句,替代提取出的循环语句; 运行修改后的测试程序,对所述目标软件进行测试。
2. 根据权利要求1所述的方法,其特征在于,所述如果所述测试程序中包含多层循环, 则对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环 语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环 语句,包括: 如果所述测试程序中的第一循环开始语句与第二循环开始语句之间不包括循环结束 语句,则对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的 循环语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的 循环语句。
3. 根据权利要求1所述的方法,其特征在于,所述如果所述测试程序中包含多层循环, 则对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环 语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环 语句,包括: 如果所述测试程序中包含多层循环,则从最内层循环开始逐层向外,对于所述测试程 序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设 置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环语句。
4. 根据权利要求1所述的方法,其特征在于,所述对于所述测试程序中的每个循环,提 取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待 调用程序单元的调用执行语句,替代提取出的循环语句,包括: 对于所述测试程序中除最外层循环外的每个循环,提取循环语句组成待调用程序单 元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句, 替代提取出的循环语句。
5. 根据权利要求1所述的方法,其特征在于,对于所述测试程序中的每个循环,提取循 环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成的待调用 程序单元的调用执行语句,替代提取出的循环语句,包括: 对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,设置对应所组 成的待调用程序单元的调用参数,并在提取的循环语句的原位置处,设置携带有所述调用 参数的调用执行语句,替代提取出的循环语句。
6. -种软件测试的装置,其特征在于,所述装置包括: 获取模块,用于接收目标软件的软件测试请求,获取所述软件测试请求所使用的测试 程序; 处理模块,用于如果所述测试程序中包含多层循环,则对于所述测试程序中的每个循 环,提取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设置对应所组成 的待调用程序单元的调用执行语句,替代提取出的循环语句; 测试模块,用于运行修改后的测试程序,对所述目标软件进行测试。
7. 根据权利要求6所述的装置,其特征在于,所述处理模块,用于: 如果所述测试程序中的第一循环开始语句与第二循环开始语句之间不包括循环结束 语句,则对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,并在提取的 循环语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句,替代提取出的 循环语句。
8. 根据权利要求6所述的装置,其特征在于,所述处理模块,用于: 如果所述测试程序中包含多层循环,则从最内层循环开始逐层向外,对于所述测试程 序中的每个循环,提取循环语句组成待调用程序单元,并在提取的循环语句的原位置处,设 置对应所组成的待调用程序单元的调用执行语句,替代提取出的循环语句。
9. 根据权利要求6所述的装置,其特征在于,所述处理模块,用于: 对于所述测试程序中除最外层循环外的每个循环,提取循环语句组成待调用程序单 元,并在提取的循环语句的原位置处,设置对应所组成的待调用程序单元的调用执行语句, 替代提取出的循环语句。
10. 根据权利要求6所述的装置,其特征在于,所述处理模块,用于: 对于所述测试程序中的每个循环,提取循环语句组成待调用程序单元,设置对应所组 成的待调用程序单元的调用参数,并在提取的循环语句的原位置处,设置携带有所述调用 参数的调用执行语句,替代提取出的循环语句。
【文档编号】G06F11/36GK104298600SQ201410572668
【公开日】2015年1月21日 申请日期:2014年10月23日 优先权日:2014年10月23日
【发明者】任方超 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1