著录项信息
专利名称 | 一种Web应用系统的自动化测试方法及装置 |
申请号 | CN200710043589.3 | 申请日期 | 2007-07-06 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2009-01-07 | 公开/公告号 | CN101339532 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/36 | IPC分类号 | G;0;6;F;1;1;/;3;6查看分类表>
|
申请人 | 中国银联股份有限公司 | 申请人地址 | 上海市浦东新区含笑路36号银联大厦
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国银联股份有限公司 | 当前权利人 | 中国银联股份有限公司 |
发明人 | 戚跃民;黎宝华;吕苏;尹祥龙 |
代理机构 | 北京集佳知识产权代理有限公司 | 代理人 | 逯长明 |
摘要
本发明公开了一种Web应用系统的自动化测试方法及装置,以解决现有的Web应用自动化测试工具不灵活、重复利用率低,测试工作量大、效率低的问题。所述方法包括:将Web应用系统的业务流程分解成原子流程的组合;对应每个原子流程创建自动化测试构件;读取预配置的测试案例,测试案例中记录了原子流程序列;对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试。所述基于构件的自动化测试方法,能够灵活适应各种复杂多变的业务流程的自动化测试,提高了测试程序的通用性,极大提高了自动化测试效率,减少了测试工作量;而且,由于将业务流程细化到原子流程,所以可以跟踪定位到出错的原子流程,及时发现错误点,提高测试效果。
1.一种Web应用系统的自动化测试方法,其特征在于,包括:
将Web应用系统的业务流程分解成原子流程的组合;
对应每个原子流程创建自动化测试构件;
读取预配置的测试案例,测试案例中记录了原子流程序列;
对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试;
并将常见业务流程包含的测试构件组合成复合构件,在调用时直接调用所述复合构件。
2.根据权利要求1所述的方法,其特征在于,在调用测试构件之前还包括:预检所述读取的测试案例的数据是否符合规范,并检查所调用的测试构件是否存在。
3.根据权利要求1所述的方法,其特征在于,还包括:
将测试构件执行返回值与预期结果比较,若相同,则执行下一个测试构件;若不相同,则记录出错位置和相关数据,并执行下一个测试案例;
记录上述比较后的测试结果。
4.根据权利要求3所述的方法,其特征在于,还包括:分析所述测试结果,生成测试报告。
5.根据权利要求1所述的方法,其特征在于,还包括:跟踪记录每个执行步骤的执行情况。
6.一种Web应用系统的自动化测试装置,其特征在于,包括:
分解模块,用于将Web应用系统的业务流程分解成原子流程的组合;
创建模块,用于对应每个原子流程创建自动化测试构件;
复合构件生成模块,用于将常见业务流程包含的测试构件组合成复合构件,在调用时直接调用所述复合构件;
案例读取模块,用于读取预配置的测试案例,测试案例中记录了原子流程序列;
测试控制模块,用于对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试。
7.根据权利要求6所述的装置,其特征在于,还包括:案例解析模块,用于预检所述读取的测试案例的数据是否符合规范,并检查所调用的测试构件是否存在。
8.根据权利要求6所述的装置,其特征在于,所述测试控制模块包括:
测试单元,用于对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试;
控制单元,用于将测试构件执行返回值与预期结果比较,若相同,则触发所述测试单元执行下一个测试构件;若不相同,则执行下一个测试案例;
记录单元,用于记录上述比较后的测试结果,并记录出错位置和相关数据。
9.根据权利要求8所述的装置,其特征在于,还包括:测试结果分析模块,用于分析测试结果,生成测试报告。
10.根据权利要求6所述的装置,其特征在于,还包括:日志跟踪模块,用于跟踪记录每个测试步骤的执行情况。
一种Web应用系统的自动化测试方法及装置\n技术领域\n[0001] 本发明涉及软件测试领域,特别是涉及一种Web应用系统的自动化测试方法及装置。\n背景技术\n[0002] 软件测试是软件开发、后期维护过程的重要组成部分,其测试过程贯穿软件工程的各个环节,测试的目的在于发现程序中的问题,提高软件质量;并且还用于软件投入使用后的升级测试,如软件打补丁后,需要进行回归测试来保证原功能的正确性。\n[0003] Web应用系统在发布之前和升级之后都要经过测试,包括性能测试和功能测试两方面,对于功能测试,主要是对Web应用所具有的各种功能进行测试。由于每种功能具有相应的一个或多个业务流程,所以功能测试是对Web应用系统的各种业务流程进行测试。其中,所述业务流程指具有先后执行顺序的操作集合序列,不同业务流程的操作序列也不同。\n[0004] 现有的界面自动化测试工具主要是以Mercury Winrunner和IBM Rat ionalRobot为代表的脚本解释型的自动化测试软件,其工作原理是编写执行脚本或将界面操作录制为脚本,通过播放脚本模拟界面操作来执行业务流程,达到自动化测试的目的。\n[0005] 例如,中国专利第200410086041.3号申请文件就公开了一种基于脚本解释工具的自动化测试系统,系统通过对测试案例的管理,解决了测试案例重用问题,测试通过后台进行,实现了测试流程自动化和测试资源的均衡管理,具有较强的灵活性,可以满足多种业务需求。中国专利第200410054163.4号公布了一种自动化测试辅助系统及相应的软件自动测试系统,该专利定义了结构化测试案例,采用了测试案例的动态执行和延迟装载技术,并将测试案例转化为商业测试软件的测试脚本,驱动商业测试软件执行测试,并记录测试结果;该系统提高了测试案例的编写和执行效率。\n[0006] 上述测试方法存在如下问题:\n[0007] 其一,难于支持不同Web应用系统的千变万化的具体业务流程,由于针对Web应用的不同业务流程,需要单独编写或录制测试脚本,因此脚本编写不灵活,脚本的重复利用率低;而且,每次都需要编写或录制大量的脚本,测试工作量非常大;\n[0008] 其二,难于跟踪定位测试出错点和分析出错原因,因为现有自动化测试技术未分解复杂的业务流程,如果测试执行过程中发现某个业务流程出错,仅能定位到该业务流程中,很难细化地定位到具体的子业务流程。\n发明内容\n[0009] 本发明所要解决的技术问题是提供一种Web应用系统的自动化测试方法及装置,以解决现有的Web应用自动化测试工具不灵活、重复利用率低,测试工作量大、效率低的问题。\n[0010] 为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:\n[0011] 一种Web应用系统的自动化测试方法,包括:\n[0012] 将Web应用系统的业务流程分解成原子流程的组合;\n[0013] 对应每个原子流程创建自动化测试构件;\n[0014] 读取预配置的测试案例,测试案例中记录了原子流程序列;\n[0015] 对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试。\n[0016] 其中,在调用测试构件之前还包括:预检所述读取的测试案例的数据是否符合规范,并检查所调用的测试构件是否存在。\n[0017] 所述方法还包括:将测试构件执行返回值与预期结果比较,若相同,则执行下一个测试构件;若不相同,则记录出错位置和相关数据,并执行下一个测试案例;记录上述比较后的测试结果。\n[0018] 所述方法还包括:分析所述测试结果,生成测试报告。\n[0019] 所述方法还包括:跟踪记录每个执行步骤的执行情况。\n[0020] 所述方法还包括:将常见业务流程包含的测试构件组合成复合构件,在调用时直接调用所述复合构件。\n[0021] 一种Web应用系统的自动化测试装置,包括:\n[0022] 自动化测试构件库,是自动化测试构件的集合,每个测试构件对应原子流程创建,而原子流程组合成Web应用系统的业务流程;\n[0023] 案例读取模块,用于读取预配置的测试案例,测试案例中记录了原子流程序列;\n[0024] 测试控制模块,用于对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试。\n[0025] 所述装置还包括:案例解析模块,用于预检所述读取的测试案例的数据是否符合规范,并检查所调用的测试构件是否存在。\n[0026] 优选的,所述测试控制模块包括:测试单元,用于对应所述序列中的每个原子流程,调用相应的测试构件,对Web应用系统进行测试;控制单元,用于将测试构件执行返回值与预期结果比较,若相同,则触发所述测试单元执行下一个测试构件;若不相同,则执行下一个测试案例;记录单元,用于记录上述比较后的测试结果,并记录出错位置和相关数据。\n[0027] 所述装置还包括:测试结果分析模块,用于分析测试结果,生成测试报告。\n[0028] 所述装置还包括:日志跟踪模块,用于跟踪记录每个测试步骤的执行情况。\n[0029] 一种自动化测试构件,包括:\n[0030] 构件实现,用于对应原子流程提供相应的测试功能;\n[0031] 接口,用于提供外部模块与构件实现之间的连接,外部模块通过所述接口调用构件实现,或者构件实现通过所述接口调用外部模块。\n[0032] 所述构件还包括:构件规约,用于提供对所述构件的说明。\n[0033] 优选的,所述构件包括原子构件和复合构件,其中原子构件与原子流程对应,复合构件是多个原子构件的组合。\n[0034] 根据本发明提供的具体实施例,本发明公开了以下技术效果:\n[0035] 首先,将Web应用的复杂业务流程细化到最小单元,分解成多个相对独立的原子流程,各种业务流程是不同原子流程的组合。针对原子流程创建相应的自动化测试构件,在执行自动化测试案例时,根据案例中配置的原子流程序列动态调用与之对应的自动化测试构件,从而实现基于业务流程驱动的Web应用自动化测试。\n[0036] 所述基于构件的自动化测试方法,能够灵活适应各种复杂多变的业务流程的自动化测试,提高了测试程序的通用性,极大提高了自动化测试效率,减少了测试工作量;而且,由于将业务流程细化到原子流程,所以可以跟踪定位到出错的原子流程,及时发现错误点,提高测试效果。\n[0037] 其次,本方法基于标准的软件构件模型,提出了统一的自动化测试构件接口规范,使自动化测试构件易于移植、易于升级,可以将不同人员开发的构件轻易地进行移植,达到聚合更多的自动化测试构件资源的目的,大大提高自动化测试工具的开发维护效率和灵活性。\n[0038] 再次,在测试执行过程中,如果原子流程的测试结果与预期结果不一致,将结束后续原子流程的执行,直接退出整个业务流程的测试。这样可以避免错误的测试结果数据在后续的测试过程中继续使用,而造成测试软件运行异常和错误,提高了测试的效率和系统的健壮性。\n附图说明\n[0039] 图1是本发明实施例提供的自动化测试方法的步骤流程图;\n[0040] 图2是本发明以贷记调整业务为例的自动化测试方法流程图;\n[0041] 图3是本发明实施例提供的一种自动化测试装置的结构图;\n[0042] 图4是本发明实施例提供的一种自动化测试构件的结构图。\n具体实施方式\n[0043] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。\n[0044] 本发明实施例提出一种基于构件的Web应用业务流程自动化测试方法。所述方法把Web应用的复杂业务分解成多个相对独立的原子流程,针对这些原子业务流程设计相对应的自动化测试构件,自动化测试工具在执行自动化测试案例时,根据案例中配置的原子业务流程序列动态调用与之对应的自动化测试构件,从而实现基于业务流程驱动的Web应用自动化测试。\n[0045] 在本发明实施例中,引入构件的概念,软件构件是面向软件体系架构的可复用软件模块,是一个带有规范化接口和显式上下文依赖的软件模块,能被独立发布并且可以被组装。构件应该易于通过参数化等方式在不同语境中进行配置,并能在不同的硬件运行平台和软件环境中工作。\n[0046] 基于构件的自动化测试方法,是一种针对Web应用业务流程使用自动化测试构件组装测试的方法,将各个业务流程分解为原子流程之后,在配置测试案例时只需要简单地调用各个测试构件“组装”起来即可。例如,一个业务流程包括A、B、C、D四个子业务流程,测试人员为了全面覆盖测试该业务流程,可能需要测试到以下三个流程:A->B->C->D,A->B->D,A->C->D。如果采用现有技术所述的测试方法,测试工具需要分别对三个流程开发测试程序,当测试人员的需求发生改变,如需要测试另外一个流程A->D时,以前开发的测试程序就不能“随需应变”了。而本发明实施例基于构件的测试方法针对四个子业务流程,分别制作了相对应的自动化测试构件a、b、c、d,测试人员在测试时可以根据业务的需要把测试构件“组装”起来测试不同的业务流程。\n[0047] 在实际应用中,Web应用系统通常针对某类特殊业务,而处理同一类业务存在很多相同的基本操作,因此分解成最小单元的原子流程不仅适用于一个业务流程,也适用于该类业务的其他流程。基于所述原理,在设计自动化测试构件时,针对同一类业务模块创建可重复使用的测试构件,而不同的构件组合能够测试该业务的各种可能的业务流程。测试构件的设计对测试过程十分重要,因为可多次重复使用的构件,可提高自动化测试工具的开发维护效率和灵活性。\n[0048] 下面详细说明调用测试构件对Web应用系统进行测试的过程。参照图1,是所述自动化测试方法的步骤流程图。\n[0049] 步骤101,配置测试案例。需要针对每个业务流程进行配置,因为测试案例完全与被测的业务流程相关,如果业务流程发生改变,测试案例也要进行相应修改。测试案例的主要数据结构如表1所示:\n[0050] \n中文数据名称 数据名称 类型 长度 说明\n案例编号 CaseID 整数自动编号 4 测试案例的唯一编号\n所测模块 TestModule 数字 4 外键关联到测试模块表\n原子业务流程 TestFlow 文本 不限 该字段指明测试业务子\n序列 流程的序列,它由原子\n业务流程的编号组成,\n这些编号通过分隔符间\n隔起来。\n测试通过条件 Expectation 文本 不限 各个原子业务流程对应\n的自动化测试构件在测\n试成功的情况下的返回\n值组成的序列,即期望\n值。\n测试案例描述 Description 文本 不限 对案例的描述\n测试输入数据1 Data1 文本 不限 页面中需要输入的数据\n或案例参数\n......\n测试输入数据n Data1 文本 不限 页面中需要输入的数据\n或案例参数\n[0051] 表1测试案例的数据结构表\n[0052] 表1中,“案例编号”用于在测试执行过程中区别多个测试案例,“所测模块”表明被测试的Web应用系统中的业务模块,“原子业务流程序列”记录了被测试的业务流程所包含的原子业务流程及原子业务流程的执行顺序,“测试通过条件”用于与测试结果进行比较来发现Web应用系统中存在的问题。\n[0053] 步骤102,读取测试案例。\n[0054] 优选步骤103,预检测试案例的数据是否符合规范,如果不符合规范则返回错误信息给测试人员;如果预检通过,则为测试案例的执行准备数据、申请资源等。\n[0055] 在预检时,首先检查测试案例的关键数据项的填写是否符合案例规范,例如表1中的各项是否按照各个字段的要求填写;其次需要转换原子业务流程的编号为构件的编号,并检查需要调用的自动化测试构件是否存在,如果存在则加载到内存中,准备执行,否则返回不符合规范的详细信息给测试人员。本步骤可以及时避免错误的测试案例数据进入测试环节,造成测试过程运行异常和错误。\n[0056] 步骤104,根据测试案例配置的原子业务流程序列,依次调用匹配的自动化测试构件串行化执行,对Web应用系统的具体业务流程进行测试,并记录测试结果。\n[0057] 优选的,在测试过程中,每执行完一个原子业务流程,将相应测试构件的执行返回值与上述“测试通过条件”进行比较,如果相同,则继续测试下一个原子业务流程;如果不相同,则该原子业务流程出现问题,立即结束本次测试案例的执行。这样可以及时发现错误点,避免错误的测试结果数据在后续的测试过程中继续使用,而造成测试软件运行异常和错误;还可以及时发现Web应用系统的问题,并将具体原子业务流程的出错位置和相关数据记录下来,作为测试结果的一部分。\n[0058] 优选步骤105,对所述测试结果进行分析,统计其中的测试通过率等数据,并将分析统计结果按照指定格式组织成测试报告,输出给测试人员。\n[0059] 优选的,在上述测试执行的整个过程中,跟踪记录每个测试步骤的执行情况,并生成日志文件,以备测试人员事后分析使用。例如根据测试报告记录的出错位置,通过查找日志文件更多的上下文信息,分析得到出错原因。\n[0060] 下面通过一个详细的例子说明基于构件的自动化测试过程,本实施例中被测试的Web应用系统是内卡差错处理平台。\n[0061] 本平台实现对收单机构(如POS机、ATM机)和发卡机构(如发卡银行)之间的取现、消费交易中存在错账的交易进行差错处理(账务调整)。平台功能:确认查询、贷记调整、一次退单等差错业务等。出现的差错可能是:持卡人在ATM上取款未吐钞,但持卡人账户已被扣账或持卡人在商户POS消费,POS显示交易不成功,但实际上已扣减持卡人账户余额等情况。对于每笔交易,发卡方均保留完整的原始交易数据,进行差错调整时,需要调用这些原始数据进行处理,以进行平帐和清算。\n[0062] 以贷记调整业务为例,下面介绍具体的操作过程,当发生贷记差错时,首先由收单机构经办员登录差错处理平台,根据原交易数据(主账号、清算日期)查询出原始的用户交易数据,选择出有差错的交易,选择发起贷记调整申请,填写相关的申请信息,并提交申请,等待审核。复核员登录平台后,查询未复核的贷记申请,复核通过后,该笔差错交易数据记入数据库等待清算,完成贷记调整的操作过程。\n[0063] 贷记调整业务作为一个待测模块就是Web应用业务流程,它可以被分解为以下几个原子业务流程:收单机构经办员登录进入差错平台sf1、收单机构经办员查询出需要做贷记调整的历史交易sf2、收单机构经办员对查询出的交易发起贷记调整交易sf3、收单机构经办员退出差错平台sf4、收单机构复核员登录进入差错平台sf5、收单机构复核员查找到这笔贷记调整进行复核操作sf6、收单机构复核员撤销复核通过的交易sf7、收单机构复核员退出差错平台sf8、收单机构经办员修改复核未通过的交易sf9、收单机构经办员删除复核未通过的交易sf10。\n[0064] 经过分析,可以把sf1和sf5合并成一个登录差错平台的自动化测试构件c1,把sf4和sf8合并成一个退出差错平台的自动化测试构件c4,把sf2设计成构件c2,把sf3设计成构件c3,把sf6设计成构件c6,把sf7设计成构件c7,把sf9设计成构件c9,把sf10设计成构件c10。\n[0065] 对于贷记调整业务的测试,现列举2个常见的测试案例,如表2所示。\n[0066] \n案例名称 原子业务流程序列 说明\nCase1 sf1->sf2->sf3->sf4->sf5->s 测试贷记调整业务的常规流程\nf6->sf8 (由经办员发起,复核员复核通\n过),转换为调用的构件序列为\nc1->c2->c3->c4->c1->c6->c4。\n注:两次调用c1和c4输入的参\n数不同。\nCase2 sf1->sf2->sf3->sf4->sf5->s 该案例是一个异常案例,用于测\nf7->sf8->sf1->sf9->sf4 试不经过复核就进行撤销的错误\n流程能否通过,如果该流程经过\n测试发现所有原子业务流程能够\n执行完成,说明差错平台是有错\n误的。转换为调用的构件序列是\nc1->c2->c3->c4->c1->c7->c4->\nc1->c9->c4。\n[0067] 表2贷记调整业务的测试案例表\n[0068] 表2中,原子业务流程是根据具体业务分解成的最小业务流程单元,如本例中的sf1、sf3等等;原子业务流程序列是原子业务流程的测试执行序列,如本例中sf1->sf2->sf3->sf4->sf5->sf6->sf8。\n[0069] 参照图2,是本发明以贷记调整业务为例的自动化测试方法流程图。\n[0070] 步骤201,读取所有的测试案例,进行数据规范的检查,并检查需要调用的测试构件是否存在。如果通过检查,则继续步骤202;否则,结束本案例的测试,将错误信息返回给测试人员。\n[0071] 步骤202,为测试案例的执行准备数据。根据具体的测试案例,准备相应的测试输入数据。\n[0072] 步骤203,根据原子业务流程序列,判断所有的原子业务流程是否测试完毕,如果没有,继续步骤204;如果全部测试完毕,则跳转到步骤207,记录全部的测试结果。\n[0073] 步骤204,为待测试的原子业务流程准备测试构件的参数。本例中,构件c1对应两个原子业务流程sf1和sf5,在案例1中被两次调用,但调用构件c1的原子业务流程不同,因此需要向构件c1传递不同的参数,来执行不同的原子业务流程。\n[0074] 步骤205,调用相应的自动化测试构件,向构件传递相应的参数,对原子业务流程进行测试。\n[0075] 步骤206,获得所述自动化测试构件的执行返回值,检查是否与预期值相符,如果相符,返回步骤203,继续下一个原子业务流程的测试;如果不符,则结束当前测试案例的执行,执行步骤207,将出错位置和相关数据记录下来。\n[0076] 步骤207,记录测试结果,并生成测试报告,一个测试案例执行结束。其中,所述测试结果包括测试成功次数、失败次数、出错位置、错误原因代码等信息。\n[0077] 步骤208,判断测试案例是否全部执行完毕,若还有其他案例,则返回到步骤202,开始下一个测试案例的执行;如果所有测试案例已全部执行,则结束本次运行。\n[0078] 针对所述基于构件的自动化测试方法,本发明实施例还提供了一种Web应用系统的自动化测试装置。参照图3,是所述装置的结构图,主要包括自动化测试构件库301、案例读取模块302和测试控制模块303。\n[0079] 所述自动化测试构件库301是自动化测试构件的一个集合,该集合把构件的描述部分进行结构化存储,便于测试人员和自动化测试工具的模块根据各种条件检索自动化测试构件。并且,自动化测试构件库301也给测试人员提供了自动化测试构件维护升级的功能。其中,每个测试构件对应原子业务流程而创建,不同的测试构件组合用于测试不同的业务流程。一个测试构件可能对应一个原子业务流程,也可能对应多个原子业务流程,如果对应多个,则通过接收不同的参数赋值来测试不同的原子业务流程。\n[0080] 案例读取模块302用于读取预先配置的测试案例,送到测试控制模块303执行。测试控制模块303用于调度测试案例的执行,根据测试案例中的原子业务流程序列,从自动化测试构件库301中调用相应的测试构件,串行化测试原子业务流程,并记录测试结果。\n[0081] 优选的,所述测试控制模块303包括测试单元、控制单元和记录单元。其中,测试单元用于对应每个原子业务流程,从自动化测试构件库301中调用相匹配的测试构件,对Web应用系统的具体业务流程进行测试。控制单元对整个流程中的案例执行、测试构件调用等起到调度作用,当接收到测试单元发送的构件执行返回值后,将所述返回值与测试案例中记录的预期值进行比较,若相符,则触发测试单元调用构件继续执行下一个原子业务流程;若不相符,则结束当前测试案例的执行,并触发记录单元将出错位置和相关数据记录下来。当所有的原子业务流程都测试完毕后,控制单元调度下一个测试案例进行测试。所述记录单元用于在测试案例执行完毕后记录每个构件执行的测试结果,并将上述与预期值的比较结果作为测试结果的一部分,测试结果中还包括出错位置和相关数据。\n[0082] 优选的,所述装置还包括测试结果分析模块304,用于对测试控制模块303得到的测试结果进行分析统计,并按照指定格式生成测试报告。\n[0083] 优选的,所述装置还包括案例解析模块305,用于检查测试案例的数据是否符合案例规范,并将原子业务流程的编号转换为测试构件编号,检查自动化测试构件库301中是否存在需要调用的测试构件编号。若通过检查,则触发所述测试控制模块303,否则将出错信息返回给测试人员。\n[0084] 优选的,所述装置还包括日志跟踪模块306,用于跟踪记录所述案例读取模块\n302、测试控制模块303、测试结果分析模块304和案例解析模块305的执行,并生成日志文件,以备测试人员事后分析使用。例如根据测试报告记录的出错位置,通过查找日志文件更多的上下文信息,分析得到出错原因。\n[0085] 优选的,所述装置还包括案例配置模块,用于针对Web应用系统的业务特点,从系统所有可能执行的业务流程来配置各种测试案例,达到全面测试Web应用系统的目的。测试案例的主要数据结构可参照表1所示。\n[0086] 所述自动化测试装置的执行过程是:在接收到测试人员发出的测试执行指令后,案例读取模块302开始读取测试案例,然后由案例解析模块305对案例数据进行检查,如果预检通过,则为测试案例的执行准备数据、申请资源等操作,一切准备完毕之后将控制权交由测试控制模块303继续处理。测试控制模块303按照测试案例的顺序依次执行各个测试案例,在执行单个测试案例时,根据案例解析模块305转换后的构件序列,依次从自动化测试构件库301调用自动化测试构件执行。在获得自动化测试构件的执行返回值后,检查是否与“测试通过条件”字段中预期的值相同,如果相同则继续执行下一个自动化测试构件,否则直接返回测试结果,包括出错的原子业务流程所处位置和出错原因。待所有的原子业务流程测试完成之后,测试控制模块303记录测试结果,测试结果分析模块304对测试结果进行分析后生成测试报告,然后进入下一个测试案例的测试执行环节。\n[0087] 本发明实施例还提供了一种具有统一的接口规范、易于移植、易于升级的自动化测试构件,用于上述的自动化测试装置中,并且能够在不同的硬件运行平台和软件环境中工作。\n[0088] 参照图4,是所述自动化测试构件的结构图,所述构件包括接口401、构件实现402和构件规约403。接口401提供了外部模块与构件实现402之间的连接,外部模块通过所述接口调用构件实现,或者构件实现通过所述接口调用外部模块。在测试执行时,测试控制模块303就是通过所述接口401来调用构件实现402进行测试的。构件实现402对应原子业务流程,提供相应的测试功能,是自动化测试构件所实现的测试对应的原子业务流程的测试程序,它是自动化测试构件的核心。构件规约403是对自动化测试构件的结构规定约束,它的主要作用是指明该构件的结构和描述,是用xm1技术实现的。构件规约403可以理解为对构件的说明,便于测试人员查找和掌握每个构件的相关信息。\n[0089] 下表是构件规约中对构件描述部分的主要元素及其说明:\n[0090] \n[0091] 表3构件规约中对构件描述部分的说明表\n[0092] 自动化测试构件分为原子自动化测试构件和复合自动化测试构件,所述原子自动化测试构件的构件规约部分需要标明该构件是原子自动化测试构件,并描述该构件的功能、版本号等等信息;复合自动化测试构件的构件规约部分需要标明该构件是复合自动化测试构件并描述该构件的功能、版本号等等信息之外,还需要说明该复合构件是由哪些原子构件组成,这些原子构件的组成顺序,以及各个原子构件的映射等。\n[0093] 为了说明原子构件和复合构件,现以贷记调整业务为例,上面提及的各个自动化测试构件c1、c2、c3、c4......都是原子自动化测试构件,它们对应实现了最小的原子业务流程。但是在很多情况下,为了某个固定的常见业务流程,例如经办员发起贷记调整到复核员复合通过这个常见的测试流程,在实际中使用率又非常高,就可以把原子自动化测试构件c1->c2->c3->c4->c1->c6->c4组合起来做成一个复合构件,在每次执行构件序列c1->c2->c3->c4->c1->c6->c4时,直接调用相应的复合构件即可。这样就避免了因为构件把业务流程都分散成原子业务流程而带来的多次调用原子构件的缺点,从而提高了测试效率。\n[0094] 图3、图4所示装置中未详述的部分可以参见图1、图2所示方法的相关部分,为了篇幅考虑,在此不再详述。\n[0095] 以上对本发明所提供的一种Web应用系统的自动化测试方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2012-09-05
- 2010-07-14
实质审查的生效
IPC(主分类): G06F 11/36
专利申请号: 200710043589.3
申请日: 2007.07.06
- 2009-01-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2005-08-03
|
2004-12-08
| | |
2
| |
2007-05-02
|
2005-10-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |