• 15
  • 14
分享
  • 自动化测试在架构优化项目中的应用实践——软件测试圈
  • 曼倩诙谐 2021-02-03 10:37:35 字数 1970 阅读 809 收藏 14

  随着科技的发展和进步,自动化测试的应用越来越广泛深入,作为一种软件质量管控的重要手段,自动化测试通过将人为驱动的测试行为转为机器执行的一种过程。在替代大量重复性工作和提高回归测试效率方面发挥了很大的优势。

  目前,自动化测试还不能完全的取代人工测试,自动化测试是否能够有效开展依赖于系统的稳定性。对于投产周期短,需求变更频繁,版本更新频率较高,甚至存在系统架构重构的可能性的系统,使用自动化测试工具录制的案例,在系统迭代更新后,需要频繁的修改调试自动化脚本,成本较高,因此此类系统不适用于自动化测试;对于部分优化升级系统,系统架构都趋于稳定,程序版本稳定,特别是投产周期长,需要频繁重复执行测试案例,使用自动化测试工具则能提高效率。本文所述架构优化项目就属于此类项目。

  一、项目背景

  该项目是对已投产的系统A的架构进行优化升级,本次改造主要涉及以下内容:一是日志分库改造,修改交易的记录日志方式,按照分片规则为日志分库;二是交易路由方式变更;三是接入监控平台;四是优化日志配置,增加运维日志的输出。

17-1.png

  通过对改造需求进行分析,该项目的优化升级内容涉及交易层面的优化改造较少,主要对系统配置、运维参数和数据架构方面进行优化,系统架构趋于稳定,涉及多个投产窗口,需要频繁重复执行测试案例,适合引入自动化测试。

  二、自动化测试工具

  本次自动化测试选择的是自行研制的自动化测试工具,该工具是一个集自动化测试案例管理、测试数据管理及测试执行管理、结果分析于一体,用于支持自动化测试的软件平台。该工具支持接口测试(主机端/开放平台端),界面测试(非移动端),实现了测试案例设计、测试执行和结果分析展现一体化。本次回归测试属于基于接口的自动化测试应用范畴。

17-2.png

  三、自动化测试资产库

  执行自动化回归测试,需要提前准备高可用的自动化测试案例库。A系统投产上线时,已搭建了基于分布式新架构下的自动化测试案例库,实现了系统级的自动化回归测试资产库,对A系统主要交易实现了自动化案例全覆盖,同时根据该系统数据源分库的架构,设计了针对不同数据源的自动化案例,可以方便的实现交易对不同分库数据的验证。该自动化回归测试案例库前期已应用到部分测试项目中,并根据交易接口和需求的变化,适时进行维护和调试。目前共针对A系统建立180支交易对应的221条自动化案例,交易自动化案例覆盖率100%,执行通过率在90%左右。

  四、自动化测试策略分析

  在本项目中,根据对改造需求进行测试分析,针对不同的改造内容制定了不同的自动化测试方案:分别采用全量交易回归测试、高频交易回归测试、自动化送代测试的方式开展测试。

  全量回归测试主要验证原有二阶段投产的108支交易于分库数据架构下,交易功能正确性,对于全量回归测试未通过的案例,增加人工测试进一步进行验证。

  高频交易的自动化回归测试主要针对于日志记录方式优化改造的需求,根据交易复杂度、重要程度和日均交易量情况按二八原则进行筛选,筛选出35支高频交易,针对日志分库中查询交易不同的4种日志记录配置方式进行4轮回归测试,并在日志记录查询环节采用人工方式对自动化执行的交易日志进行查询,以验证改造后的日志查询模式的正确性。

  自动化迭代应用于验证日志分片数据源的正确性,通过对改造需求进行分析,发现系统日志分库改造采用机构号为分片键值,对数据库进行编号,使用机构号的前两位省市号作为分库的算法依据。因此,对交易自动化案例的机构柜员输入值进行参数化,设置数据资源池,通过交易迭代执行,每次调用资源池中不同机构柜员数据,实现不同机构的用户执行交易后,交易日志按照分库规则正确记录在不同的分片数据源中。

  五、自动化测试实践

  本次架构优化项目共设置6个投产批次,基于全量交易的回归测试共执行3次,涉及108支交易,执行自动化案例300余条,测试通过率95%左右;高频交易回归测试共执行四轮,涉及35支交易共约150条自动化案例,执行通过率100%。自动化迭代测试共执行自动化案例约50条,通过率100%。通过在该项目中应用自动化测试,较好的提高了工作效率,在单个投产窗口测试周期短,测试人力资源较少的情况下,按要求完成投产测试任务。

17-3.jpg

17-4.png

  六、总结

  该架构优化项目在投产轮次较多,每个投产周期测试时间紧张,人力资源不足的情况下,根据对优化改造需求进行分析引入了适合的自动化测试工具,通过执行自动化测试极大的解放了人力、节约了成本,按时完成了各个投产窗口的测试任务。

  同时,通过在该项目中引用自动化回归测试,测试人员进一步熟悉了自动化测试工具的使用流程和方法,提高了自动化测试中脚本调试常见问题的分析和解决能力,为今后在类似项目中更好使用自动化测试工具打下了坚实的基础。



作者:张芳   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   1 痛点和研究背景  目前随着分布式核心下移和小型机下线的趋势,主流系统架构已逐步演变为CCE+TDSQL。而在这一演进过程中也陆续暴露出来一些痛点难点问题,需要我们着力解决。为此,我们聚焦于分布式架构下需求、架构、数据这三个方面的痛点问题探索解决途径和措施展开了研究。第一,需求缺失的问题,分布式核心下移和小型机下线涉及的系统体量大、业务逻辑复杂,需求说明书持续迭代的情况下说明书内容已逐渐滞后缺失,易导致测试遗漏的出现。第二,架构痛点,分布式事务一致性逻辑复杂,目前主要基于手工测试,依赖于开发人员修改程序构造异常事务场景,导致测试费时费力;多微服务间的参数配置存在关联关系,微服务个数较多时...
            0 0 1163
            分享
          • 1、django+python27+mysql的生产环境,想换成python3,请问需要哪些注意事项?生产环境数据不想被破坏,所以不敢轻易下手,希望大神指点一下。关于python升级:可以使用Python3自带工具2to3,将python2的代码转换为python3。少部分代码仍需手工转换。升级python版本后,第三方包的版本需要升级。有的第三方包不支持python3。这个时候可以尝试使用2to3工具对第三包的python源代码进行转换,然后使用。这样存在一定风险。无法转换的,需要寻找替代包,应用服务器上对应的代码需要修改。关于django升级:django1.5开始支持python3。同时...
            0 1 1706
            分享
          • 软件测试面试中,介绍做过的项目,可以说是必不可少的一道面试题了,对于面试的同学来说,该自己发挥呢?把项目的所有功能噼里啪啦说一遍就完事了?当然不是,我们要搞清楚,面试官问这个题的目的。面试官主要想知道你参与项目的体量,你在项目中做了哪些有价值的事情,对整个项目起到了什么作用,你具备什么能力,这些能力是否能复用到新的工作岗位,能否带来更大的价值。清楚了面试官的目的,我们就可以开始发挥了,主要可以从以下几个方面展开:1、项目的背景主要包含项目面向的用户群体,用户量,常用的用户场景,甚至可以说下商业模式。例如这是一个B/S架构的系统,分为代理商前台和运营后台,用户量大概在5w左右,主要的用户场景是,...
            0 0 1539
            分享
          •   对于这样的面试题,有的时候是你们的加分项。  面试官您好,当我发现手机被测app出现问题时,首先我们需要定位的是前端问题还是后端问题。  怎么定位呢?  通过fiddler设置代理,配置好抓取手机的接口。  这时候操作手机app,如果fiddler没有向服务器进行接口请求时,那么是前端的问题。  这时候,我们可以用adb的logcat命令获取报错信息。  如果fiddler有接口请求,那么我们这个时候需要分析获取的接口,分析请求参数是否正确,如果不正确是前端的问题。  如果正确,我们下来要分析接口的响应信息,如果不对,那么一定是后端问题。  这时候我们需要查看服务器日志,比如tail -f...
            0 0 3625
            分享
          • 一、前言      自动化测试是测试领域中一个争议性比较大的区域,虽然它并不是一个新生的事物,但是至今仍没有一套比较完善的理论可以提供行之有效的方法,使之更好的为产品质量服务。各个研究机构和公司的专家提供了许多自动化测试的理论和模型,但是均没有形成通用理论,被大众广泛认可。      作者通过对安全产品进行自动化测试,从需求定义开始进行跟踪,涉及产品的设计与实现,对产品的接口、实现功能等进行自动化集成测试,采用测试代码和测试角本相结合的开发方式。作者总结了在工程中遇到的问题和实施中的成功之处,提出改进意见,对自动化测试人员具有较强的工...
            1 1 2600
            分享
      • 51testing软件测试圈微信