智能一体化测试实施流程——大型IT系统智能一体化测试(4)

发表于:2017-8-25 17:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈绍英 许威 金成姬    来源:51Testing软件测试网原创

  5.4 智能一体化测试实施流程
  5.4.1 测试工作实施流程
  图5-2是智能一体化测试工作实施流程图。
  结合智能一体化测试工作实施流程图,我们深入探讨一下对于全新的开发项目,在实施智能一体化测试的流程中,各主要步骤有哪些内容。
  第一步:系统概要设计阶段开始启动测试。
  项目进行到概要设计阶段时,可以安排一到两个测试人员介入项目,正式启动智能一体化测试。在系统概要设计阶段,测试人员可以逐步熟悉项目,例如熟悉项目开发与投产计划、团队成员构成与分工、系统的架构设计、项目主要技术选型等。
  在系统概要设计阶段启动测试是非常重要的环节,同时考虑到这一阶段工作对测试人员技术能力与沟通能力要求很高,最好安排测试经理或测试骨干来参与。
  第二步:对系统进行关键测试技术分析。
  在概要设计工作完成后,前期参与测试的人员可以对系统涉及的关键技术进行分析,为接下来的测试需求分析、测试个性化开发工作打好基础。
  图5-2 智能一体化测试工作实施流程图
  关键技术分析主要指深入分析系统服务/接口用到的通讯协议与技术,如果后面涉及一些个性化开发则应该确定涉及哪些技术。例如分析和确定系统服务/接口用哪些协议进行通信、测试结果返回报文格式与含义、测试工厂/测试车间/测试机器人开发用到的方法与技术等,也可以提前进行一些探索性的测试开发工作。 
  第三步:同步进行功能与性能测试需求分析
  测试关键技术分析完成后,测试团队可以同步进行功能与性能测试需求分析。测试需求分析工作主要如下:确定服务/接口的测试范围、确定服务/接口的性能测试阈值、确定服务/接口的输入与输出关系、确定疲劳测试场景的测试范围、确定公共测试数据需求等。
  第四步:测试平台针对项目的个性化开发。
  个性化开发主要有三类:一是测试工厂/测试车间/测试机器人等的个性化开发;二是交易返回数据的通用性处理分析;三是一些特殊测试需求的实现。
  智能一体化测试平台支持大部分常用协议的测试,因此对于大多数项目而言所需的个性化开发工作通常不多。对于一些个别项目,主要涉及针对测试工厂、测试车间、测试机器人等个性化开发工作,需要完成部分基类关键方法的重写。
  第五步:初始化测试平台/测试工厂/测试车间。
  智能一体化测试平台初始化工作主要如下:配置测试工厂基本信息、完成服务/接口基本信息设置、创建或设计服务/接口的交易报文模板、配置测试车间等。
  完成服务/接口信息的录入并为其创建交易报文模板是这一阶段的核心工作之一。主要依据测试需求完成服务/接口基本信息录入,接下来通过自动或人工方式创建服务/接口的交易报文模板。一般WebService服务可以直接下载交易报文模板,其他协议需要手工创建交易报文模板。
  第六步:完成测试车间/测试案例/测试数据设计。
  测试车间设计主要工作是分析服务/接口的输入/输出关系,将关联服务/接口放在同一个测试车间中进行测试,与其他服务/接口不存在耦合关系的服务/接口则放到单独车间中进行测试。对于多服务/接口的测试车间,要进行服务/接口的执行顺序、输入/输出数据关系等的设置;对于单服务/接口的测试车间,则可以设置服务/接口的输出数据,以便在运行结果中查看具体的输出内容。
  测试案例设计是指在平台中为每个测试车间中的服务/接口设计测试案例。随着开发的进展,多数服务/接口的报文格式与关键输入项已经能够完全确定,可以及时进行相关测试案例的设计。
  测试数据设计主要指各个测试车间公共测试数据的设计,例如客户号、卡号、证件号、账户等类型的数据。公共测试数据由测试平台统一管理,测试场景运行时每个机器人实时向测试平台申请,测试平台按照设定的取值策略将数据分配给测试机器人来使用。
  第七步:测试环境准备与检查。
  测试环境准备是指按照准生产要求对测试环境进行检查,测试环境检查是测试顺利执行的前提条件。测试环境检查主要工作有:
  检查常用/核心交易是否正常,以保证系统基本可用;
  检查应用服务器、数据库服务器、操作系统等参数配置是否正常,确保系统平台以及应用运行环境的参数配置与生产环境大体保持一致,尤其要避免采用默认安装配置。基础环境检查保证测试尤其是性能测试的有效性;
  检查系统关联的第三方测试环境是否正常,例如通过环境检查确保人行、银联、第三方支付等环境正常可用;
  检查测试环境的一些特殊参数设置是否正常。例如转账限额是否设置、交易/查询密码是否统一修改、测试数据余额是否足够测试等;
  检查测试环境的数据是否脱敏。保证迁移的生产环境的数据不会泄露客户信息,可以用来进行测试。
  第八步:公共测试数据准备。
  公共测试数据是指由测试平台在场景运行时统一分配的数据,主要指账号等公共数据,每类公共数据存储在一个文本文件中。公共测试数据主要从核心系统的数据库中直接导出,在测试场景运行前,通常要提前准备好足够的公共测试数据。
  第九步:设计测试场景。
  测试场景设计主要过程如下:
  首先是选择测试车间并设置案例的筛选条件;
  然后设置各测试车间性能测试相关的参数,例如并发数量、迭代次数、迭代间隔、性能阈值、每批启动并发用户数量与加载时间间隔等;
  最后设置各个测试车间的日志消息级别等。
  在如图5-3所示的测试场景设计中心中,可以进行测试车间选择和案例筛选条件设置。由于智能一体化测试推行全面测试,因此不会设置某一条案例是否执行,而是对测试场景全部车间的案例筛选条件进行设置,例如可以执行全部测试车间的正例。
  图5-3  测试场景设计中心
  第十步:运行测试场景/回归测试。
  测试准备工作完成后,接下来可以启动测试执行工作,运行设计好的测试场景。场景运行完成后,测试人员根据生成的测试结果报告来上报功能与性能缺陷,进入到大家比较熟悉的缺陷流转与回归测试阶段。
  基于场景的快速测试执行与回归测试是反复迭代的过程,伴随着系统上线前的整个开发与测试过程。
  第十一步:监控场景与测试结果分析。
  在场景运行过程中,需要对测试场景的运行情况进行监控。主要监控内容有:测试工厂/车间/机器人运行情况、案例执行通过情况、系统响应速度、服务器资源使用情况等。
  当测试场景运行过程遇到较多问题时,需要仔细分析问题产生的原因并进行处理。
  第十二步:发布测试执行结果报告。
  场景执行完成后,测试人员需要统计与分析测试运行情况,发布测试结果报告给所有项目相关人员。
  第十三步:修复功能/性能问题、维护测试案例、发布测试日报。
  每一轮测试完成后,开发人员需要修复功能/性能问题,然后发布新的版本。测试人员则根据系统修改情况维护与升级测试案例,然后再次进行测试来验证问题解决情况。
  在测试执行阶段,测试经理每日应该发布测试进度日报,通报测试执行情况与问题解决情况等信息。
  第十四步:发布智能一体化测试报告。
  所有测试完成后,发布正式的智能一体化测试报告,总结项目的整体测试情况。
  第十五步:开展渠道功能/性能测试。
  当后台系统完成智能一体化测试后,就可以与前台各个渠道集成在一起进行正式的基于用户的功能/性能测试。
  由于已经对后台系统进行了系统全面的测试,渠道功能/性能测试的测试重心在渠道本身,属于轻量级测试。
  第十六步:系统发布投产版本并投产运行,进入到升级与变更阶段。
  渠道与后台系统的功能/性能测试完成后,系统就进入到投产阶段,之后开始进入到升级与变更阶段。
  由于前期测试做了充分的积累,当系统进行操作系统/数据库/应用服务器等平台升级时,回归测试非常容易开展;对于一些功能变更类的测试,升级或增加相关测试案例,就可以快速对系统进行全回归测试。
  5.4.2 测试平台二次开发
  智能一体化测试平台是智能一体化测试的支撑平台,所有的测试设计与执行工作都依托平台来开展。因此智能一体化测试的实施过程,实际就是依托智能一体化测试平台进行工作的过程。
  对于多数项目,智能一体化测试并不涉及二次开发工作,可以在直接配置测试工厂、测试车间、服务/接口信息后启动相关测试工作。对于一些测试平台不能够直接支持进行测试实施的系统,则涉及一定的个性化开发工作,需要按照测试平台的工作流程来进行定制化开发。
  本节主要介绍基于智能一体化测试平台的工作流程。在介绍智能一体化测试平台的工作流程前,我们先了解一下确定测试工厂、测试车间、测试机器人等是否进行二次开发的流程以及具体的开发方法。对于一个需要进行二次开发的项目,只有完成这些开发工作后,才能使用平台进行工作。
  图5-4是基于智能一体化测试平台的开发工作分析流程图。
  确定测试工厂、测试车间、测试机器人中哪些需要重写后,将按照测试机器人、测试车间、测试工厂的顺序进行开发。下面介绍测试机器人、测试车间、测试工厂的具体开发方法:
  图5-4 智能一体化测试平台的开发工作分析流程图
  (1)开发自定义的通用测试机器人/测试车间。
  大多数情况下,通用机器人类XSingleServicesExplorer与XMultiServicesExplorer和通用测试车间类XSingleServicesShop与XMultiServicesShop已经完成了对多数接口协议进行测试的功能封装,一般不需要进行二次开发。但对于一些特殊的系统,实际工作中可能需要重写两个通用机器人类:XSingleServicesExplorer与XMultiServicesExplorer,以实现自定义的通用机器人类。XSingleServicesExplorer是单事务机器人,XMultiServicesExplorer是多事务机器人。重写机器人的目的是增加一些系统默认情况下不支持的操作,例如生成一些平台默认情况下不能够生成的测试数据。
  XSingleServicesExplorer重写示例程序如图5-5所示。
  图5-5 XSingleServicesExplorer重写示例程序
  XMultiServicesExplorer的重写示例程序如图5-6所示。
  图5-6 XMultiServicesExplorer的重写示例程序
  可以看出开发自定义的通用机器人主要重写两个方法:事务运行方法RunTransaction与流水号生成方法GetSerialNo,前者实现事务的运行功能,后者生成系统的流水号。下面介绍具体的开发方法。
  事务运行方法RunTransaction需要按照下面的流程来实现:
  ●定义用户事务结果类XTransactionExcuteResult testResult。
  ●增加事务执行前的处理,例如增加数据处理操作。
  ●调用测试数据模板类MyTestDataTempletUtil的UpdateValueByHashTable方法把测试数据更新到报文模板中。
  ●调用机器人内置事务MyTransaction的Start方法启动事务。
  ●用生成的交易报文调用待测试接口,生成事务运行结果XTransactionExcuteResult并保存到testResult中。
  ●调用机器人内置事务MyTransaction的End方法完成事务。
  不同的系统可能有不同流水号生成规则,因此当不能采用默认生成规则获取流水号时,需要按照待测试系统流水号规则重写GetSerialNo方法。示例中采用的调用默认的流水号方法,可以根据实际情况进行替换。
  (2)开发自定义测试车间/测试机器人。
  当开发通用机器人仍然不能满足测试需求时,这时需要开发自定义的测试机器人与测试车间类。
  开发自定义机器人相对复杂,主要重写3个方法:初始化用户事务InitUserTransaction方法、运行事务RunTransaction方法、初始化测试参数数据InitTestParameterData方法(如果不能采用默认规则生成流水号,还要重写GetSerialNo方法)。
  开发自定义机器人示例程序如图5-7所示。
  开发自定义车间则相对容易,主要通过重写测试车间基类CreateXTestSuperExplorer方法来创建前面开发完成的自定义测试机器人。下列中,在自定义车间SPERemitTestRunningShop的方法CreateXTestSuperExplorer创建了上文中自定义机器人类SPERemitTestSuperExplorer的对象。
  图5-7 开发自定义机器人示例程序
  开发自定义车间示例程序如图5-8所示。
  图5-8 开发自定义车间示例程序
  对于更复杂的开发,则需要深入了解通用测试车间与通用机器人基类的设计与实现方法,这里不再进行探讨。
  (3)测试工厂个性化开发。
  重写机器人XSingleServicesExplorer与XMultiServicesExplorer后,接下来需要重写测试工厂类XTestRunningFactory的CreateXTestSuperExplorer方法,从而在运行时创建新开发的通用机器人类NewSingleServicesExplorer与NewMultiServicesExplorer。
  重写测试工厂类示例程序如图5-9所示。
  图5-9 重写测试工厂类示例程序
  如果想添加自定义的测试车间与机器人类,则需要通过重写测试工厂基类XTestRunningFactory的CreateXTestRunningShop方法来实现。上例中添加了新开发的自定义测试车间类DMRemitTestRunningShop,相关的测试机器人则由DMRemitTestRunningShop来创建。
  完成全部的开发工作后,接下来就可以使用智能一体化测试平台来开展工作,具体内容可以参看0的相关的内容。
本文选自《大型IT系统智能一体化测试》第五章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号