自动化测试高手课
柳胜
原甲骨文高级开发经理
16849 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
开篇词 (1讲)
自动化测试高手课
15
15
1.0x
00:00/00:00
登录|注册

13|集成测试(二):携手开发,集测省力又省心

你好,我是柳胜。
专栏里我一直强调这样一个观点,以全局 ROI 最高为导向,把各个测试类型综合考虑,而非割裂、独立地分析某一层的测试。不谋全局者,不足谋一域,测试领域如此,开发和测试领域协同也一样。比如前面咱们学过的单元测试,把单元测试做好,实际就能推动开发代码的结构优化。
集成测试也是一样,做好集成测试也需要开发的支持。在上一讲里,我提到了集成测试轻量化的想法:Mock 服务和 Happy Path。你学完了后,可能已经跃跃欲试,盘算着自己的项目该怎么做 Mock,去哪里寻找那条 Happy Path 了。
但理论推演畅通无阻,现实挑战却障碍重重。很可能现实里你面临两难:做 Mock 成本高,需要修改很多开发代码,调用链条又长又复杂,根本理不出那条 Happy Path。面临这样的困难,要么只能放弃 ROI 不高的集成测试,要么硬着头皮去设计和执行一些测试案例,而且这些案例你也不确定是否有效。
有没有第三种方法呢?有,这第三种方法不仅能让集成测试保持轻量和高效,而且还能让测试进入一个 Bug 越来越少的正反馈循环。但需要你主动介入代码世界,和开发人员一起推动集成测试的可测试性。后面的知识点不少,但只要你跟住我的思路,愿意跟着我思考,一定不虚此行。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

集成测试是软件开发中至关重要的一环,本文介绍了集成测试的重要性以及如何携手开发,省力又省心地进行集成测试。作者首先介绍了集成测试轻量化的概念,包括Mock服务和Happy Path的重要性,并指出在实际应用中可能面临的困难。接着,文章详细讲解了接口与Mock的关系,以及如何通过Interface来生成Mock Class,降低Mock的成本。另外,还介绍了如何高效地寻找Happy Path,包括代码结构、层次和调用关系的要求。最后,文章提出了从结果上观测Happy Path的思路,即如何直观地看到调用链条。整体而言,本文强调了集成测试的重要性,并提供了实用的方法和技巧,对于开发人员和测试人员来说具有很高的参考价值。文章内容涵盖了集成测试环境搭建、Docker构建随时可测的数据库以及集成测试环境搭建神器等方面,为读者提供了丰富的技术知识和实践经验。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《自动化测试高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 羊羊
    老师在数据库版本化管理的清单中,有一个“集成契约”,想问下具体是什么? 实际工作中,我们公司搭建测试环境都是测试自己弄,在数据库搭建这块,因为不是很专业,也遇到过很多问题: 1. 导出生产环境数据库结构的SQL后,在测试环境执行,会遇到创建表先后顺序的问题,因为表之间有依赖关系。需要测试自己去整理创建数据库的脚本的顺序。 2. 导入数据的时候,也存在这个问题。而且数据量大的时候,很话费时间。 希望老师能在git给出一个“数据库版本管理”清单的具体例子,想学习一下。

    作者回复: 你的问题提到2个知识点 1. 数据库的版本管理 2. 测试环境的仿真生产环境 这2个知识点是独立的,先说版本管理,你可以参照martin fowler的文章 https://www.martinfowler.com/articles/evodb.html 测试环境仿真生产环境,这个也有不少方法,可以采用export,import像你提到的这种方式,也可以采用定期同步的方式,复杂点,也可以采用ETL方式。

    2022-07-31归属地:日本
  • sqnv_geek
    增量sql如何patch到prod?apply git diff吗?

    作者回复: 你说的增量sql,是指的是数据的增量么?抱歉我不太清楚这个提法。对于数据库的版本化管理,“All database changes are migrations” 这是martin fowler在它的网站https://www.martinfowler.com/articles/evodb.html里提到的观点。值得一读

    2022-05-29
  • swordman
    这段时间正在做C++产品的集成测试,需要开发mock,整理调用链,找Happy path,最关键的正如老师所说 —— 和开发一起梳理代码,提升软件的可测试性。

    作者回复: 是的!这才是高效的自动化测试!

    2022-05-17
  • 太匆匆
    先去了解一下这些工具,带着工具去试试TDD

    作者回复: 具体工具实践,可以参考我在专栏里建立的github repository,https://github.com/sheng-geek-zhuanlan/awesome-test-automation

    2022-04-19
  • ifelse
    学习打卡
    2024-02-17归属地:浙江
  • 鑫宝
    曾经使用过docker 来构建测试环境。当时的场景是被测的系统,姑且称之为S 。 S 依赖A系统的,同时也依赖mysql 和redis 。 本地调试时 和真正端到端的测试环境有网络壁垒。 故将S A 和2个数据库都进行了mock,整体打包。 这样的好处是 每次的变量只有S 。 坏处是 由于S 依赖的比较多, 在真正的正式环境遇到的问题比在mock 环境多很多。
    2023-07-10归属地:上海
  • lerame
    个人觉得测试还是得懂docker如何部署运行,代码里调用部署没有那么灵活,而且出问题了也不懂排查。
    2022-12-19归属地:广东
  • 干货满满,测试领域的导师
    2022-10-19归属地:广东
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部