• 14
  • 15
分享
  • 公共应用系统测试环境支持策略——软件测试圈
  • 曼倩诙谐 2021-09-07 10:13:55 字数 2676 阅读 1456 收藏 15

  公共应用系统一般是指某个系统或平台最基本且重要的应用系统模块,作为系统或平台中基础服务系统为其他子系统提供统一的基础参数和公共功能,对整个系统或平台具有奠基作用,在测试过程中常会涉及到多个系统模块的联调测试和演练测试。常言道“基础不牢,地动山摇”,那么我们如何合理有效地设计公共应用系统的测试环境呢?以下分五个方面进行介绍:

1-1.png

图1 系统或平台下公共应用系统与各子系统模块之间的功能关系

  1、环境架构设计

  原则上,在环境资源允许的情况下,要求统一规格的服务器和数据库,且测试环境配置尽量保证与生产环境一致。结合系统项目测试实践经验,给出系统或平台下公共应用系统环境与各子系统模块环境之间的架构设计,如下图:

1-2.png

图2 系统或平台下公共应用系统环境与各子系统模块环境之间的架构设计

  开发环境:主要为公共应用系统对应的开发人员提供代码设计,以及编码完成后的单元测试、集成测试使用。

  测试环境:主要为公共应用系统和各子系统的测试人员提供接口测试(含自动化)、界面测试(自动化、功能测试、性能测试和安全测试等)使用。同时,根据子系统需求会手动部署多个子系统的开发环境,由公共应用系统测试环境负责为各子系统接入,提供给各子系统开发人员进行代码设计、单元测试和集成测试使用。对于存在是否同期开发,是否同期测试,是否同期投产等情况,相应每个环境的具体配置情况依据现实需求及时同步部署。

  预投产环境:用于临近投产系统的业务测试和回归测试,为拟投产项目开展各系统模块间的投产演练支持。对于投产演练计划(包括演练操作时间段、拟使用的交易清单、涉及公共应用系统协办的数据变更内容等),公共应用系统环境管理员实时数据备份,供各子系统演练使用。

  生产环境:系统投产环境,用于系统投产后进行系统特护和生产运行指标观察。

  2、成员沟通管理

  公共应用系统作为系统或平台的基石,其环境版本的改动,势必牵一发而动全身,影响到各子系统的基础参数和公共功能,对各服务系统的开发和测试造成巨大影响。因此,在进行系统功能改造前,必须与各子系统业务、开发和测试等系统项目相关人员沟通确认,做到充分沟通,并达成一致。为了减少系统项目有关成员之间的沟通成本,以及测试环境人员管理成本,我们给出以下公共应用系统的沟通管理策略:

  (1)服务方自身改造,实时告知

  公共应用系统作为服务方,如果他的改造功能为自身功能,比如公共应用系统为自身系统管理使用的查询、下载等功能,不影响后台各系统接口间输入输出等基础参数和公共功能的,经公共应用系统对应业务和开发一致确认改造功能不影响其他子系统功能后,仅需将改动的内容备注清楚,实时告知给各子系统即可,各子系统确认是否对各自系统有影响,以及根据需要自行判定是否需要升级环境版本。

  (2)消费方需求改造,定向通知

  公共应用系统接收到来自消费方的改造需求,此处的消费方指系统或平台下的各子系统。首先公共系统需判断此需求的新增、修改和删除等功能是否影响第三方,这时存在两种情况:一是消费方提交的改造需求不影响第三方,仅为消费方的改造服务,那么仅需公共应用系统提供对应功能给该消费方即可,并定向通知消费方进行环境版本的升级;二是消费方提交的改造需求影响到第三方,那么就需要服务方、消费方和第三方对改造需求达成一致后,再由公共应用系统进行相应功能需求的改造,改造完成后,公共应用系统定向通知给消费方和影响到的第三方进行环境版本升级。

  (3)服务方主动升级,全部通知

  公共应用系统作为服务方,在进行主动升级时,影响到了所有消费方,比如公共功能和基础参数改造,那么对于服务方功能的主动升级改造,需要对所有消费方全部通知,并提示所有消费方本次改造的具体内容和可能出现的影响,通知消费方尽快进行环境版本升级。

  3、版本部署时机

  这里我们对版本部署时机按照服务方和消费方是否处于开发测试阶段进行划分,对三种情况进行了环境部署时机的策略分析,具体如下:

  (1)服务方处于开发测试阶段

  服务方处于开发测试阶段,消费方处于非开发测试阶段,由服务方测试稳定后,告知消费方此次功能改造内容,经各消费方确认无问题后,及时统一部署到各消费方的开发环境和测试环境,各消费方统一进行回归验证。

  (2)消费方处于开发测试阶段

  单个或多个消费方处于开发测试阶段,服务方不在开发测试阶段,那么服务方测试环境保持稳定即可,服务方无需做环境部署。

  (3)服务方和消费方同时处于开发测试阶段

  如果服务方和消费方均处于开发测试阶段,消费方需要根据自身需求、被影响的功能和无关功能三种情况,综合考虑是否进行服务方提供的测试环境版本升级部署。对于消费方自身需求改造,服务方在开发测试版本稳定后,经消费方同意后,进行环境部署;对于消费方功能受到服务方改造功能影响时,消费方与服务方商讨双方由谁改造,确认后进行环境版本的同步更新;对于消费方功能不受服务方功能改造影响时,服务方仅保持自身环境的更新稳定,无需给消费方实时进行环境部署支持,待到最终版本投产后,再进行统一更新。

  4、环境部署方法

  目前信息系统项目实施过程中,环境部署的方法主要包括自动化流水线部署和手动触发流水线部署两种,分别对应程序开发和功能测试两个阶段,简要介绍如下:

  (1)自动化流水线部署

  一般由开发环境配置CI/CD,持续集成流水线自动触发代码分支,实现自动化流水线部署,服务方和消费方项目组开发人员可以用流水线自动化部署程序版本。

1-3.png

1-4.png

图3 系统或平台下公共应用系统环境自动化流水线部署示例


  (2)手动触发流水线部署

  手动触发流水线部署指的是开发编码完成交付到测试环境的手动触发部署,主要采用“谁的环境,谁部署”原则,各消费方测试负责人负责各子系统环境部署,对应开发人员提供环境支持和相关问题解决。

1-5.png

图4 系统或平台下公共应用系统环境手动触发流水线部署示例

  消费方测试负责人负责决定是否部署新版本的公共应用系统环境,但是具体部署需要公共应用系统环境对应测试负责人进行部署,公共应用系统对应开发人员负责技术支持。

  5、环境管理及维护

  公共应用系统测试环境和各子系统测试环境,需要指定环境管理人员,进行环境的管理和支持维护,为各环境的稳定创造条件。这里涉及到测试环境的搭建,程序部署的版本管理,以及测试环境的实时发布管理等等。环境管理是一个庞大的工程,只有合理有效地管理和安排,才能让项目实施和测试过程变得畅通无阻,让项目更加高效且保质保量的完成。



作者:李辉、裴四宝   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一:需求分析了解熟悉业务,分析需求测试点确认功能(业务功能,辅助功能,数据约束,易用性需求,编辑约束,参数需求,权限需求,性能约束)场景分析(考虑场景调用者和系统内部各个场景之间联系)挖掘隐性需求(常用业务流程以及各分支)二:测试计划1、编写目的此文档根据项目需求文档,制定测试策略、评估测试风险,确定所需的资源,并对测试的工作量进行估计,进行人员和进度安排,并且列出测试项目的可交付元素。2、参考文档详细设计文档,设计原型3、测试概要(1)测试目标通过测试,达到以下目标:测试已实现的产品是否达到设计的要求,包括:各个功能点是否以实现,业务流程是否正确。产品规定的操作和系统运行稳定。Bug数和缺陷...
            0 1 2555
            分享
          • 为什么需要自动化测试自动化测试有很多优点,但这里有3个主要的点可重用性:不需要总是编写新的脚本,除非必要,即使是新的操作系统版本也不需要编写脚本。可靠性:人容易出错,机器不太可能。当运行不能跳过的重复步骤/测试时,速度会更快。全天运行:您可以在任何时间或远程启动测试。夜间运行正在测试你的软件,即使是在你睡着的时候。成熟的、功能齐全的Python测试工具——pytest目前有多种可用的测试框架和工具。这些框架的风格也各不相同,比如数据驱动、关键字驱动、混合、BDD等等。您可以选择最适合您的要求。Python和pytest在这场竞争中占据了巨大的份额。Python及其相关工具之所以被大量使用,可能...
            14 16 3351
            分享
          •   前几天在我创建的技术交流群,几位同学聊起了兼容性测试相关的话题。有测试的方法技巧,有如何选择测试时的切入点,也有在质量和投入成本之间如何做平衡的思考。  翻了翻写过的技术文章,大多集中在后端、中间件以及稳定性测试方面,兼容性测试也有做过专项。这篇文章,我想结合自己对兼容性测试的理解,以及做技术专项的一些经验,谈谈我的一些看法。  如何理解兼容性测试  兼容性测试,最初是为了检查软件在不同的硬件、操作系统以及软件平台上是否可以正常运行,即软件的可移植性和正确性检查。操作系统如 Windows 和 Mac,各种浏览器兼容如Chrome、Firefox、IE。  近几年随着移...
            0 0 809
            分享
          • 1、引言在使用Locust时, 都会想到,那么,有没有一种工具,把浏览器的记录,自动的转换成locust文件呢?那么,又是如何转换的呢?今天,就跟着小鱼一起,看看如何把浏览器记录 自动转换成 Locust文件2、安装及调用2.1 介绍Transformer概括来说就是一个命令行工具 和Python库,用户将web浏览器的记录(HAR files) 转换成Locust负载测试方案(即 “locustfiles”)。用它来重播HAR file(存储浏览器的浏览记录)在Locust的负载测试中。2.2 安装安装方式,同样是 pip 安装transformer 安装pip install&n...
            1 0 4880
            分享
          • 最近想研究下手机端是如何进行接口测试的,那就得先把app和微信小程序的一些测试的重点会了解,我没有做过关于微信小程序和手机app的测试,有不对的希望补充和提建议,下面是我在网上找到的一些知识的总结:功能测试:功能测试和web的测试逻辑一样,主要是理解项目的需求设计等,查看功能模块、业务流程、同一功能不同入口时有效性检查、页面交互性检查、输入输出等逻辑进行测试;权限:app是否可以访问手机通讯录、相册、相机等权限;小程序是否有微信授权,未授权/授权登录程序,同一微信号不同手机登录查看数据显示情况;兼容性测试:不同手机操作系统检验、不同微信版本(测试当前微信版本发布的项目和升级版微信后测项目)、分...
            0 0 1102
            分享
      • 51testing软件测试圈微信