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

文档序号:6546153阅读:246来源:国知局
软件测试方法和装置制造方法
【专利摘要】本实施例提供的一种软件测试方法和装置,涉及信息【技术领域】,可以提高针对金融类软件测试的测试精度和可靠性。本发明提供的方法具体包括:从测试用例数据库中获取与所需测试场景对应的测试用例,测试用例数据库包括分别与不同测试场景对应的至少一个测试用例;根据测试用例获取与所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,测试条件参数包括数据库数据、操作系统数据中至少一项;根据测试用例和测试条件参数对待测试软件进行测试;根据测试结果的检测方式参数,检测测试后的测试条件参数与预期测试结果参数是否相同。可应用于金融类软件测试中。
【专利说明】软件测试方法和装置

【技术领域】
[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]图1为本发明一个实施例提供的一种软件测试方法的流程图;
[0029]图2为本发明一个实施例提供的另一种软件测试方法的流程图;
[0030]图3为本发明一个实施例提供的一种软件测试装置结构示意图;
[0031]图4为本发明一个实施例提供的另一种软件测试装置结构示意图。

【具体实施方式】
[0032]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]本发明的一个或多个实施例提供一种软件测试方法,如图1所示,可以包括:
[0034]101、从测试用例数据库中获取与所需测试场景对应的测试用例。
[0035]其中,所述测试用例数据库可以包括分别与不同测试场景对应的至少一个测试用例。
[0036]当待测试软件为金融类软件时,测试场景可以但不限于为:存钱场景、取钱场景、开卡场景等。
[0037]102、根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数。
[0038]为了可以对测试后得到的测试结果进行检测,在检测之前,可以根据获取的测试用例获取预期测试结果参数和测试结果的检测方式参数,所述测试结果的检测方式参数用于表征根据预期测试结果参数对测试后实际得到的测试结果参数进行检测的检测方式。其中,测试结果参数可以包括测试后的测试条件参数等。
[0039]所述测试条件参数可以但不限于包括数据库数据、操作系统数据中至少一项。
[0040]不同的测试场景可以对应于不同的测试条件参数,本实施例可以根据与所需测试场景对应的测试用例获取到与所需测试场景对应的测试条件参数,即可以包括:与所需测试场景对应的数据库数据、与所需测试场景对应的操作系统数据中至少一项,进而满足在所需测试场景下对待测试软件测试的需求。
[0041]值得说明的是,本实施例提供的测试场景并不是一个实际的场景,而是根据测试需求虚拟化出的一个数据环境,具体可以是通过测试用例体现的,后续的实施例中不再重复赘述。测试场景的概念以及根据测试用例获取相应的测试条件参数的方法为本领域技术人员熟知的技术,在此不再赘述。
[0042]当待测试软件为金融类软件时,在执行每个进行金融业务时均可以反应为技术数据的变化,如,当某客户执行开卡业务时,数据库数据会发生变化,如可以包括:数据库数据中增加了客户信息等,且在这些数据库数据变化的同时,操作系统数据也会存在相应的变化。换言之,对于金融类业务,可以通过技术数据反映该业务逻辑,所述技术数据可以但不限于包括:数据库数据、操作系统数据中至少一项,本实施例提供的所需测试场景为与金融行业相关的测试场景,进而使得根据测试用例获取到的数据库数据、操作系统数据均可以反映金融类业务的业务逻辑,进而均可以体现金融行业的特征。
[0043]本实施例对待测试软件不作限定,并不限于为上述提供的金融类软件,还可以为其他有着鲜明行业特征的行业软件,具体可以根据实际需要进行设定,在此不再赘述。另夕卜,本实施例对数据库数据与操作系统数据不作限定,为本领域技术人员熟知的技术,在此不作赘述。
[0044]103、根据所述测试用例和所述测试条件参数对待测试软件进行测试。
[0045]在测试过程中,测试条件参数可以构成测试环境,如,可以构成执行开卡业务的环土音坐
寸 ο
[0046]本实施例对根据所述测试用例和所述测试条件参数对待测试软件进行测试的方法不作限定,为本领域技术人员熟知的技术,在此不再赘述。
[0047]104、根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。
[0048]在测试之后,测试条件参数可能会发生变化,即测试前的测试条件参数与测试后的测试条件参数可能不同,在测试完成后,获取测试后的测试条件参数,并对测试后的测试条件参数进行检测,即可以为根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。
[0049]值得说明的是,本实施例不仅可以应用于对金融类软件的测试中,还可以应用于其他有着鲜明行业特征的行业软件中,而本实施例及以下实施例仅以金融类软件为例进行说明。
[0050]进一步地,若所述测试条件参数包括数据库数据,则所述根据所述测试用例和所述测试条件参数对待测试软件进行测试,包括:
[0051]当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程;
[0052]所述检测测试后的测试条件参数与所述预期测试结果参数是否相同,包括:
[0053]检测所述表数据与预期表数据是否相同,所述预期测试结果参数包括所述预期表数据,所述预期表数据用于表征数据库数据的预期变化过程。
[0054]进一步地,若所述测试条件参数包括操作系统数据,则所述检测测试后的测试条件参数与所述预期测试结果参数是否相同,包括:
[0055]检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志可以但不限于包括用于表征操作系统数据在测试过程中的变化过程,所述预期结果参数包括所述预期日志,所述预期日志可以但不限于包括用于表征操作系统数据在测试过程中的预期变化过程。
[0056]采用上述方案后,测试用例数据库中包括至少一个测试用例,这些测试用例分别与不同的测试场景相对应;在从测试用例数据库中获取到与所需测试场景相对应的测试用例之后,可以根据测试用例获取与所需测试场景相对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,测试条件参数可以包括与所需测试场景对应的数据库数据、操作系统数据中至少一项;在根据测试用例和测试条件参数对待测试软件进行测试之后,对测试后的测试条件参数进行检测,即根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。与现有技术中根据测试用例对待测试软件进行测试后,只通过比较最终输出参数与预期输出参数是否相同的方式,来验证待测试软件是否正确执行相比,本实施例针对待测试软件具有在处理某一项业务时,会引起与该业务逻辑相关的多项技术数据的变化的特点,检测与业务逻辑相关的多个技术数据中的至少一项,即通过检测测试条件参数包括的数据库数据、操作系统数据中的至少一项,来验证待测试软件是否正确执行,可以提高测试精度,进而提高了测试的准确性和可靠性。
[0057]另外,若所述测试条件参数包括数据库数据,则可以检测在测试过程中创建的表数据与预期表数据是否相同,若所述测试条件参数包括操作系统数据,则可以检测所述待检测软件输出的日志与预期日志是否相同,以实现对测试条件参数在测试过程中的变化过程的检测,这样,进一步提高了测试精度,进而更大程度上的提高了测试的准确性和可靠性。
[0058]本发明的另一个实施例提供另一种软件测试方法,该方法是对图1所示的方法的进一步扩展和优化,如图2所示,可以包括:
[0059]201、创建测试用例,得到测试用例数据库。
[0060]其中,所述测试用例数据库可以但不限于包括分别与不同测试场景对应的至少一个测试用例,这样,可以满足不同测试场景需求下的软件测试。
[0061]本实施例对创建测试用例的方法不作限定,为本领域技术人员熟知的技术,在此不作赘述。
[0062]202、从测试用例数据库中获取与所需测试场景对应的测试用例。
[0063]作为本实施例的一种实施方式,不同测试场景对应的测试用例可以通过不同的标识进行区别,在获取测试用例时,可以首先获取所需测试场景的标识,然后,以该标识为索引遍历测试用例数据库,获取与所需测试场景对应的测试用例。
[0064]本实施例对获取测试用例的方法不作限定,为本领域技术人员熟知的技术,不限于上述提供的例子,还可以包括其他实现方式,在此不再赘述。
[0065]203、根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数。
[0066]所述测试条件参数可以但不限于包括数据库数据、操作系统数据中至少一项。
[0067]作为本实施例的一种实施方式,在获取与所需测试场景对应的测试用例之后,可以对该测试用例进行解析,得到用于表征所需测试场景的参数,并根据该参数获取与所需测试场景对应的数据库数据、操作系统数据中至少一项。另外,还可以根据解析后的测试用例获取预期测试结果参数和测试结果的检测方式参数。
[0068]所述预期测试结果参数可以是通过执行数据库语句、系统功能函数以及操作系统脚本得到的。如,当所述测试条件参数包括数据库数据时,即预期测试结果参数可以包括预期数据库数据,预期数据库数据可以是执行数据库语句、系统功能函数得到的,当所述测试条件参数包括操作系统数据时,即预期测试结果参数可以包括预期操作系统数据,预期操作系统数据可以是通过执行操作系统脚本、所述系统功能函数得到的,当所述测试条件参数包括操作系统数据和数据库数据时,即预期测试结果参数可以包括预期操作系统数据和预期数据库数据,预期操作系统数据和预期数据库数据可以是通过分别执行操作系统脚本和数据库语句得到的,还可以是通过执行系统功能函数得到的。其中,系统功能函数可以为本系统的系统功能函数,所述本系统为执行所述待测试软件的系统,系统功能函数为本领域技术人员熟知的技术,在此不再赘述。
[0069]本实施例对根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数的方法不作限定,为本领域技术人员熟知的技术,并不限于上述列举的方法,还可以通过其他方式实现,在此不再赘述。
[0070]204、将所述测试用例的语言和所述测试条件参数的语言转换成可识别语言。
[0071]由于获取到的测试用例的语言和测试条件参数的语言可能为计算机不可识别的语言,进而无法实现测试过程,因此,需要将所述测试用例的语言和所述测试条件参数的语言转换成可识别语言。
[0072]例如,测试用例当前的语言为“.doc”语言,转换后的语言为“c”或“c++”语言等。
[0073]本实施例对测试用例以及测试条件参数转换前的语言和转换后的语言不作限定,为本领域技术人员熟知的技术,且并不限于上述列举的例子,具体可以根据实际需要进行设定,在此不作赘述。
[0074]205、从进行了语言转换后的测试用例中获取可识别的测试步骤参数。
[0075]测试过程是需要根据可识别的测试步骤参数完成的,所述可识别的测试步骤参数可以但不限于包括:本系统与关联系统之间的接口函数、数据库语句、操作系统脚本中至少一项。
[0076]具体的,当所述测试条件参数包括数据库数据时,测试步骤参数可以但不限于包括数据库数据、本系统与关联系统之间的接口函数中至少一项,在进行测试的过程中,可以通过执行数据库数据、所述接口函数中至少一项来实现数据库数据在软件测试中的运用。
[0077]当所述测试条件参数包括操作系统数据时,测试步骤参数可以但不限于包括操作系统脚本、所述接口函数中至少一项,在进行测试的过程中,可以通过执行操作系统脚本、所述接口函数中至少一项来实现操作系统数据在软件测试中的运用。
[0078]当所述测试条件参数包括数据库数据和操作系统数据时,测试步骤参数可以但不限于包括操作系统脚本和数据库语句,在进行测试的过程中,可以通过执行操作系统脚本和数据库语句来分别实现操作系统数据和数据库数据在软件测试中的运用。
[0079]当所述测试条件参数包括数据库数据和操作系统数据时,测试步骤参数可以但不限于包括所述接口函数,在进行测试的过程中,可以通过调用所述接口函数来分别实现操作系统数据和数据库数据在软件测试中的运用。
[0080]本实施例对测试步骤参数不作限定,该测试步骤参数可以包括软件测试的执行方式以及执行参数等,为本领域技术人员熟知的技术,在此不再赘述。
[0081]206、获取预设的输入参数。
[0082]作为本实施例的一种实施方式,该输入参数可以为:预设的输入参数、或中间数据,该中间数据可以是包含在调用的测试用例中的,中间数据可以为:预期的参数、或在测试过程中动态记录的数据。
[0083]本实施例对输入参数及其设置方法、中间数据及其设置方法不作限定,为本领域技术人员熟知的技术,且可以根据实际需要进行设定,在此不作赘述。
[0084]207、将所述预设的输入参数作为所述软件测试的输入参数,并触发在所述所需测试场景下根据所述可识别的测试步骤参数和可识别的测试条件参数对所述待测试软件进行测试,得到输出参数。
[0085]由于可识别的测试用例和可识别的测试条件参数均能够反映金融行业业务逻辑,进而可以反映出金融行业的特征,因此,在软件测试过程中使用可识别的测试用例和可识别的测试条件参数能够使得测试结果更加准确。
[0086]本实施例中,可以对待测试软件执行静态测试或动态测试。静态测试可以为对测试后的测试条件参数进行检测,动态测试可以为对测试过程中的测试条件参数进行检测,另外,还可以同时对待测试软件执行静态测试和动态测试。
[0087]在测试步骤参数包括数据库语句的场景下,若在测试过程中数据库语句中需要保留参数即中间数据,则数据库语句中需要保留的中间数据可以但不限于表示为“:参数名”,若数据库语句的输入参数需替换为中间数据时,则替换后的参数可以但不限于表示为案例编号:参数名O”。数据库语句支持查询字段类型、查询个数类型及更新类性三种语句。
[0088]在测试步骤参数包括操作系统脚本的场景下,脚本可以但不限于支持操作系统SHELL脚本。
[0089]本实施例对不同的测试步骤参数的场景情况不作限定,为本领域技术人员熟知的技术,在此不作赘述。
[0090]208、根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。
[0091]作为本实施例的一种实施方式,在测试步骤参数包括数据库语句的场景下,进行测试和检测的步骤可以但不限于包括:改写输入SQL语句,替换需要转化为中间数据的部分;执行SQL语句;对于select类型的语句获取查询结果;检测查询结果值是否等于输入预期;如果需要保存select查询值,如,中间数据等。
[0092]在测试步骤参数包括操作系统脚本的场景下,进行测试和检测的步骤可以但不限于包括:直接执行脚本;通过将当前的操作系统数据与基准操作系统数据进行比较,实现检测操作系统脚本是否执行正确。
[0093]下面结合步骤201至步骤208对静态测试和动态测试进行具体介绍。
[0094]可以对待测试软件进行静态测试,即检测测试后的测试条件参数是否为预期测试条件参数。
[0095]在进行静态测试之前,可以首先根据所述测试用例获取静态视图参数,该静态视图参数包括:预期测试结果参数、测试条件参数以及测试结果的检测方式参数,其中,预期测试结果参数是在测试完成后用于对测试后的测试条件参数进行检测的,测试条件参数是在测试过程中用于构建测试环境的,测试结果的检测方式参数用于表征在测试完成后根据预期测试结果参数对测试后的测试条件参数进行检测的方法。
[0096]例如,在测试之前,测试条件参数为a,预期测试结果参数为b,测试结果的检测方式参数用于表征检测测试后的测试条件参数是否为b的方法,测试后的测试条件参数可以为b,此时说明待测试软件可能执行正确,也可以为其他参数,此时说明待测试软件可能执行错误。
[0097]具体的,若所述测试条件参数包括数据库数据,则所述检测测试后的所述测试条件参数是否为所述预期测试结果参数,包括:
[0098]检测测试后的数据库数据是否为预期数据库数据,所述预期测试结果参数包括所述预期数据库数据;
[0099]若所述测试条件参数包括操作系统数据,则所述检测测试后的所述测试条件参数是否为所述预期测试结果参数,包括:
[0100]检测测试后的操作系统数据是否为预期操作系统数据,所述预期测试结果参数包括所述预期操作系统数据。
[0101]对测试后的数据库数据进行检测,可以是通过执行测试结果的检测方式参数中包括的数据库语句或系统功能函数实现的;对测试后的操作系统数据进行检测,可以是通过执行测试结果的检测方式参数中包括的操作系统脚本或系统功能函数实现的;对测试后的操作系统数据和数据库数据进行检测,可以是通过分别执行测试结果的检测方式参数中包括的操作系统脚本和数据库语句实现的,还可以通过执行测试结果的检测方式参数中包括的系统功能函数实现的。
[0102]可以对待测试软件进行动态测试,即检测测试过程中的测试条件参数是否为预期测试条件参数。
[0103]当测试测试条件参数包括数据库数据时,在进行动态测试之前,可以首先根据所述测试用例获取动态视图参数,该动态视图参数包括:预期测试结果参数、测试条件参数以及测试结果的检测方式参数,其中,预期测试结果参数可以包括预期表数据,所述预期表数据用于表征数据库数据的预期变化过程,测试条件参数是在测试过程中用于构建测试环境的,测试结果的检测方式参数用于表征在测试完成后根据预期表数据对测试后得到的表数据进行检测的方法。
[0104]具体的,在进行测试之前,可以预测到在哪些时刻数据库数据会发生变化,并预测出数据变化的时刻创建的预期表数据;在测试过程中,当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程,在测试完成后,可以得到至少一个表数据;在测试完成之后,检测实际得到的表数据与相应的预期表数据是否相同。这样,便实现了对数据库数据的变化过程的检测。
[0105]例如,测试前的数据库数据为a,测试过程中数据库数据会先变成b,然后再变成C,当进行静态测试时,测试过程中不需要创建表数据,在测试完成之后只要检测测试后的数据库数据是否为c即可,当进行动态测试时,则需要在测试过程中创建用于记录数据库发生变化的表数据,在测试完成后,根据创建的表数据检测数据库数据在测试过程中是否变成过b。
[0106]当测试测试条件参数包括操作系统数据时,在进行动态测试之前,可以首先根据所述测试用例获取动态视图参数,该动态视图参数包括:预期测试结果参数、测试条件参数以及测试结果的检测方式参数,其中,预期测试结果参数可以包括预期日志,所述预期日志可以包括用于表征操作系统数据在测试过程中的预期变化过程,测试结果的检测方式参数可以用于表征在测试完成后根据预期日志对测试后所述待检测软件输出的日志进行检测的方法,所述待检测软件输出的日志包括用于表征在实际测试过程中操作系统数据的变化过程的信息。
[0107]具体的,当测试测试条件参数包括操作系统数据时,所述检测测试后的测试条件参数与所述预期测试结果参数是否相同,包括:检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志包括用于表征操作系统数据在测试过程中的变化过程。
[0108]本实施例中,不仅可以对待测试软件进行静态测试或动态测试,还可以同时对待测试软件进行静态测试和动态测试,具体可以根据实际需要进行设定。
[0109]采用上述方案后,测试用例数据库中包括至少一个测试用例,这些测试用例分别与不同的测试场景相对应;在从测试用例数据库中获取到与所需测试场景相对应的测试用例之后,可以根据测试用例获取与所需测试场景相对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,测试条件参数可以包括获取与所需测试场景对应的数据库数据、操作系统数据中至少一项;在根据测试用例和测试条件参数对待测试软件进行测试之后,对测试后的测试条件参数进行检测,即根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。与现有技术中根据测试用例对软件进行测试时,只通过比较最终输出参数与预期输出参数是否相同,来验证待测试软件是否正确执行相比,本实施例针对待测试软件具有在处理某一项业务时,会引起与该业务逻辑相关的多项技术数据的变化的特点,通过检测测试条件参数包括的数据库数据、操作系统数据中的至少一项,即检测与业务逻辑相关的多个技术数据中的至少一项,来验证待测试软件是否正确执行,可以提高测试精度,进而提高了测试的准确性和可靠性。
[0110]另外,不仅可以对待测试软件进行静态测试,还可以对待测试软件进行动态测试,这样,不仅可以实现对在测试完成后得到的测试条件参数的检测,还可以实现测试条件参数在测试过程中的变化过程的检测,进一步提高了测试精度,进而更大程度上的提高了测试的准确性和可靠性。
[0111]下面提供一些装置实施例,该装置实施例分别于上述提供的相应的方法实施例相对应。
[0112]本发明的一个或多个实施例提供一种软件测试的装置,如图3所示,可以包括:获取单元31、测试单元32、检测单元33。
[0113]获取单元31,用于从测试用例数据库中获取与所需测试场景对应的测试用例,所述测试用例数据库包括分别与不同测试场景对应的至少一个测试用例;根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,所述测试条件参数包括数据库数据、操作系统数据中至少一项。
[0114]测试单元32,用于根据所述获取单元31获取的所述测试用例和所述测试条件参数对待测试软件进行测试。
[0115]检测单元33,用于根据所述获取单元31获取的所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。
[0116]所述测试单元32,包括:
[0117]表数据创建模块321,用于若所述测试条件参数包括数据库数据,则当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程;
[0118]所述检测单元33,具体用于检测所述表数据创建模块创建的所述表数据与所述获取单元获取的预期表数据是否相同,所述获取单元获取的所述预期测试结果参数包括所述预期表数据,所述预期表数据用于表征数据库数据的预期变化过程。
[0119]所述检测单元33,具体用于若所述测试条件参数包括操作系统数据,则检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志包括用于表征操作系统数据在测试过程中的变化过程,所述预期结果参数包括所述预期日志,所述预期日志包括用于表征操作系统数据在测试过程中的预期变化过程。
[0120]采用上述方案后,测试用例数据库中包括至少一个测试用例,这些测试用例分别与不同的测试场景相对应;在从测试用例数据库中获取到与所需测试场景相对应的测试用例之后,可以根据测试用例获取与所需测试场景相对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,测试条件参数可以包括与所需测试场景对应的数据库数据、操作系统数据中至少一项;在根据测试用例和测试条件参数对待测试软件进行测试之后,对测试后的测试条件参数进行检测,即根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。与现有技术中根据测试用例对待测试软件进行测试后,只通过比较最终输出参数与预期输出参数是否相同的方式,来验证待测试软件是否正确执行相比,本实施例针对待测试软件具有在处理某一项业务时,会引起与该业务逻辑相关的多项技术数据的变化的特点,检测与业务逻辑相关的多个技术数据中的至少一项,即通过检测测试条件参数包括的数据库数据、操作系统数据中的至少一项,来验证待测试软件是否正确执行,可以提高测试精度,进而提高了测试的准确性和可靠性。
[0121]另外,若所述测试条件参数包括数据库数据,则检测单元可以检测在测试过程中创建的表数据与预期表数据是否相同,若所述测试条件参数包括操作系统数据,则检测单元可以检测所述待检测软件输出的日志与预期日志是否相同,以实现对操作系统数据在测试过程中的变化过程的检测,这样,进一步提高了测试精度,进而更大程度上的提高了测试的准确性和可靠性。
[0122]本发明的另一个实施例提供另一种软件测试的装置,该装置是对图3所示的装置的进一步扩展和优化,如图4所示,可以包括:获取单元41、测试单元42、检测单元43。
[0123]获取单元41,用于从测试用例数据库中获取与所需测试场景对应的测试用例,所述测试用例数据库包括分别与不同测试场景对应的至少一个测试用例;根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,所述测试条件参数包括数据库数据、操作系统数据中至少一项。
[0124]测试单元42,用于根据所述获取单元41获取的所述测试用例和所述测试条件参数对待测试软件进行测试。
[0125]检测单元43,用于根据所述获取单元41获取的所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。
[0126]所述检测单元43,具体用于若所述测试条件参数包括操作系统数据,则检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志包括用于表征操作系统数据在测试过程中的变化过程,所述预期结果参数包括所述预期日志,所述预期日志包括用于表征操作系统数据在测试过程中的预期变化过程。
[0127]进一步地,所述测试单元42,包括:
[0128]表数据创建模块421,用于若所述测试条件参数包括数据库数据,则当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程;
[0129]所述检测单元43,具体用于检测所述表数据创建模块创建的所述表数据与所述获取单元41获取的预期表数据是否相同,所述获取单元41获取的所述预期测试结果参数包括所述预期表数据,所述预期表数据用于表征数据库数据的预期变化过程。
[0130]进一步地,所述检测单元43,具体用于若所述测试条件参数包括数据库数据,则检测测试后的数据库数据是否为预期数据库数据,所述预期测试结果参数包括所述预期数据库数据;
[0131]所述检测单元43,具体用于若所述测试条件参数包括操作系统数据,则检测测试后的操作系统数据是否为预期操作系统数据,所述预期测试结果参数包括所述预期操作系统数据。
[0132]进一步地,所述测试单元42,包括:
[0133]语言转换模块422,用于将所述测试用例的语言和所述测试条件参数的语言转换成可识别语言;
[0134]获取模块423,用于从进行了语言转换后的测试用例中获取可识别的测试步骤参数,所述可识别的测试步骤参数包括:本系统与关联系统之间的接口函数、数据库语句、操作系统脚本中至少一项,所述本系统为执行所述待测试软件的系统;获取预设的输入参数;
[0135]测试模块424,用于将所述预设的输入参数作为测试的输入参数,并触发在所述所需测试场景下根据所述可识别的测试步骤参数和可识别的测试条件参数对所述待测试软件进行测试,得到输出参数。
[0136]采用上述方案后,测试用例数据库中包括至少一个测试用例,这些测试用例分别与不同的测试场景相对应;在从测试用例数据库中获取到与所需测试场景相对应的测试用例之后,可以根据测试用例获取与所需测试场景相对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,测试条件参数可以包括与所需测试场景对应的数据库数据、操作系统数据中至少一项;在根据测试用例和测试条件参数对待测试软件进行测试之后,对测试后的测试条件参数进行检测,即根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同。与现有技术中根据测试用例对待测试软件进行测试后,只通过比较最终输出参数与预期输出参数是否相同的方式,来验证待测试软件是否正确执行相比,本实施例针对待测试软件具有在处理某一项业务时,会引起与该业务逻辑相关的多项技术数据的变化的特点,检测与业务逻辑相关的多个技术数据中的至少一项,即通过检测测试条件参数包括的数据库数据、操作系统数据中的至少一项,来验证待测试软件是否正确执行,可以提高测试精度,进而提高了测试的准确性和可靠性。
[0137]另外,不仅可以对待测试软件进行静态测试,还可以对待测试软件进行动态测试,这样,不仅可以实现对在测试完成后得到的测试条件参数的检测,还可以实现测试条件参数在测试过程中的变化过程的检测,进一步提高了测试精度,进而更大程度上的提高了测试的准确性和可靠性。
[0138]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0139]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种软件测试方法,其特征在于,包括: 从测试用例数据库中获取与所需测试场景对应的测试用例,所述测试用例数据库包括分别与不同测试场景对应的至少一个测试用例; 根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,所述测试条件参数包括数据库数据、操作系统数据中至少一项; 根据所述测试用例和所述测试条件参数对待测试软件进行测试; 根据所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同; 若所述测试条件参数包括数据库数据,则所述根据所述测试用例和所述测试条件参数对待测试软件进行测试,包括: 当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程; 所述检测测试后的测试条件参数与所述预期测试结果参数是否相同,包括: 检测所述表数据与预期表数据是否相同,所述预期测试结果参数包括所述预期表数据,所述预期表数据用于表征数据库数据的预期变化过程; 若所述测试条件参数包括操作系统数据,则所述检测测试后的测试条件参数与所述预期测试结果参数是否相同,包括: 检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志包括用于表征操作系统数据在测试过程中的变化过程,所述预期结果参数包括所述预期日志,所述预期日志包括用于表征操作系统数据在测试过程中的预期变化过程。
2.根据权利要求1所述的软件测试方法,其特征在于,若所述测试条件参数包括数据库数据,则所述检测测试后的所述测试条件参数是否为所述预期测试结果参数,包括: 检测测试后的数据库数据是否为预期数据库数据,所述预期测试结果参数包括所述预期数据库数据; 若所述测试条件参数包括操作系统数据,则所述检测测试后的所述测试条件参数是否为所述预期测试结果参数,包括: 检测测试后的操作系统数据是否为预期操作系统数据,所述预期测试结果参数包括所述预期操作系统数据。
3.根据权利要求1或2所述的软件测试方法,其特征在于,所述根据所述测试用例和所述测试条件参数对待测试软件进行测试,包括: 将所述测试用例的语言和所述测试条件参数的语言转换成可识别语言; 从进行了语言转换后的测试用例中获取可识别的测试步骤参数,所述可识别的测试步骤参数包括:本系统与关联系统之间的接口函数、数据库语句、操作系统脚本中至少一项,所述本系统为执行所述待测试软件的系统; 获取预设的输入参数; 将所述预设的输入参数作为测试的输入参数,并触发在所述所需测试场景下根据所述可识别的测试步骤参数和可识别的测试条件参数对所述待测试软件进行测试,得到输出参数。
4.一种软件测试装置,其特征在于,包括: 获取单元,用于从测试用例数据库中获取与所需测试场景对应的测试用例,所述测试用例数据库包括分别与不同测试场景对应的至少一个测试用例;根据所述测试用例获取与所述所需测试场景对应的预期测试结果参数、测试条件参数以及测试结果的检测方式参数,所述测试条件参数包括数据库数据、操作系统数据中至少一项; 测试单元,用于根据所述获取单元获取的所述测试用例和所述测试条件参数对待测试软件进行测试; 检测单元,用于根据所述获取单元获取的所述测试结果的检测方式参数,检测测试后的测试条件参数与所述预期测试结果参数是否相同; 所述测试单元,包括: 表数据创建模块,用于若所述测试条件参数包括数据库数据,则当检测到数据库数据发生变化时,创建表数据,所述表数据用于表征数据库数据的变化过程; 所述检测单元,具体用于检测所述表数据创建模块创建的所述表数据与所述获取单元获取的预期表数据是否相同,所述获取单元获取的所述预期测试结果参数包括所述预期表数据,所述预期表数据用于表征数据库数据的预期变化过程; 所述检测单元,具体用于若所述测试条件参数包括操作系统数据,则检测所述待检测软件输出的日志与预期日志是否相同,所述待测试软件输出的日志包括用于表征操作系统数据在测试过程中的变化过程,所述预期结果参数包括所述预期日志,所述预期日志包括用于表征操作系统数据在测试过程中的预期变化过程。
5.根据权利要求4所述的软件测试装置,其特征在于,所述检测单元,具体用于若所述测试条件参数包括数据库数据,则检测测试后的数据库数据是否为预期数据库数据,所述预期测试结果参数包括所述预期数据库数据; 所述检测单元,具体用于若所述测试条件参数包括操作系统数据,则检测测试后的操作系统数据是否为预期操作系统数据,所述预期测试结果参数包括所述预期操作系统数据。
6.根据权利要求4或5所述的软件测试装置,其特征在于,所述测试单元,包括: 语言转换模块,用于将所述测试用例的语言和所述测试条件参数的语言转换成可识别语H ; 获取模块,用于从进行了语言转换后的测试用例中获取可识别的测试步骤参数,所述可识别的测试步骤参数包括:本系统与关联系统之间的接口函数、数据库语句、操作系统脚本中至少一项,所述本系统为执行所述待测试软件的系统;获取预设的输入参数; 测试模块,用于将所述预设的输入参数作为测试的输入参数,并触发在所述所需测试场景下根据所述可识别的测试步骤参数和可识别的测试条件参数对所述待测试软件进行测试,得到输出参数。
【文档编号】G06F11/36GK104182335SQ201410195901
【公开日】2014年12月3日 申请日期:2014年5月9日 优先权日:2014年5月9日
【发明者】杨兵兵, 李璠, 宋嫱嫱 申请人:中国光大银行
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1