极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:56
登录|注册

工程效能团队如何赋能开发者进行高效能测试?

讲述:初明明大小:4.51M时长:04:56
在上一篇文章中,极客时间《软件测试 52 讲》专栏作者茹炳晟分析了开发人员自己做测试会遇到的 6 个问题,并表示通过工程效能团队赋能开发人员,可以在一定程度上缓解这些问题。那么,工程效能团队如何赋能开发人员进行高效率、高质量的测试呢?以下为茹炳晟的观点。
赋能的基本思路是能够让开发人员更专注于测试本身,而从那些辅助测试的工作(比如搭建测试执行环境、CI/CD 集成等)上解放出来,这些辅助测试的工作由“工程效能”服务或者相关支持工具链来统一解决。
这个思想和目前非常流行的 Service Mesh 的设计思想不谋而合,Service Mesh 也是可以让服务的开发人员可以把所有的精力集中在业务功能的实现上,而不需要去关心服务间通信的基础设施,像类似于服务的注册与发现、熔断机制等都会统一由 Service Mesh 以对业务应用透明的方式来实现。这些“工程效能”服务或者相关支持工具链通常都会由原本从测试开发转型过来的工程效能团队来设计和开发。
接下来看一下可以提供哪些“工程效能”服务或者相关支持工具链,并且能以什么样的方式来解决或缓解上篇文章中提到的开发自己测试带来的问题。

1. 测试执行服务(Test Execution Service)

CI/CD 各个阶段所有的测试执行发起都通过 TES,即测试执行服务,TES 通过统一的 Web Service 接口与 CI/CD 以解耦的方式进行集成。无论是 CI/CD 流水线,还是开发人员执行测试,都通过 TES 来发起,唯一的区别是开发人员一般使用 TES 的 UI 界面发起测试,而 CI/CD 是直接在流水线脚本里面调用 TES 的 Restful API 发起测试。测试执行服务的输入参数也很简单直观,通常只包括测试框架名字、测试用例集版本号、测试用例路径、 测试报告获取方式、同步 / 异步执行开关等。
一旦调用 TES 发起测试,后续如何调用 Jenkins job、如何打包下载 test jar、如何找到适合的测试执行环境、如何发起测试以及如何收集测试报告等都对使用者完全透明。可以想象,现在,开发人员在和 CI/CD 集成以及执行测试的时候,已经可以完全不需要去关心执行测试的命令行、发起测试的 Jenkins job 以及配置、测试的具体执行环境、测试报告获取等信息。这将大大提高开发人员自己执行测试的效率和便利程度。

2. 测试数据服务(Test Data Service)

跨模块,跨系统的测试数据准备对于开发自己做测试是个挑战,尤其是现在大量采用微服务架构,这个问题就会更突出。测试数据服务,简称 TDS,将会以 Web Service 接口的形式为所有类型的测试提供一致的测试数据准备入口。无论开发是要做 API 测试,还是 GUI 测试,或者是性能测试,都可以通过调用 TDS 的 Web Service 或者 UI 来准备各种组合类型和量级的测试数据。
TDS 本身还是个开发平台,任何开发人员都可以通过脚手架代码来贡献新的数据类型支持,并且 TDS 平台本身借助自己的 Core Service 和内建数据库具有元数据管理能力,能够提供诸如测试数据数量以及质量的管理。

3. 测试执行环境服务(Test Bed Service)

测试执行环境对于大型企业来说是很庞大复杂的,为了方便开发人员使用测试执行环境,或者说为了使测试执行环境对于开发人员透明,就需要引入测试执行环境服务,即 TBS。TBS 的主要职责是负责管理、创建,扩容 / 收缩测试执行集群。

4. 构建工程效率工具链仓库(Engineering Productivity Tools Store)

类似于 App Store 的概念,可以把各种测试小工具以及提高效率的工具集统一在 Engineering Productivity Tools Store 里面集中版本化管理。比如开发人员在做测试的时候存在思维盲区,对于像 String 这样的参数可能遗漏 Null 值的用例,这时就可以开发一个小工具对被测函数的输入参数类型基于边界值自动生成边界测试用例。比如 String 类型的参数一定会生成 Null,SQL 注入攻击字符串,非英文字符,超长的字符串等,这样就可以系统性地避免开发的盲区。
以上就是今天的内容,此外,其实还有诸如测试报告服务(Test Report Service)、全局测试配置服务(Global Registry Service)和用于 API 测试解耦的 Mock 服务(Unified Mock Service),由于篇幅无法一一展开。需要强调的是,这里谈到的很多服务已经在某些企业内部有了落地实践,并取得了很好地效果。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
1. 测试执行服务(Test Execution Service)
2. 测试数据服务(Test Data Service)
3. 测试执行环境服务(Test Bed Service)
4. 构建工程效率工具链仓库(Engineering Productivity Tools Store)
显示
设置
留言
收藏
60
沉浸
阅读
分享
手机端
快捷键
回顶部