《从执行到赋能、从封闭到开放--DevOps下测试能力的构建与应用-王哲.pdf》由会员分享,可在线阅读,更多相关《从执行到赋能、从封闭到开放--DevOps下测试能力的构建与应用-王哲.pdf(21页珍藏版)》请在三个皮匠报告上搜索。
1、从执行到赋能、从封闭到开放-DevOps下测试能力的构建与应用百度资深测试工程师王哲承办方:主办方:个人介绍2016:加入百度TPG QA团队2016-2020:先后负责百度基础架构、AI 产品等核心业务的质量保障工作2020-今:负责TPG测试环境治理等工作,支持业务以云原生的思路进行测试环境治理2022-今:负责TPG测试能力开放工作,将QA积累的测试能力前置到研发开发阶段使用主要内容QA工作在DevOps下的转变从执行到赋能:测试能力服务化从封闭到开放:开发阶段灵活使用测试能力QA工作在DevOps下的转变开发测试发布运维设计传统QA工作模式:黑盒的测试过程与割裂的研发流程提测准入,QA
2、确认接测QA测试(线下操作,测试过程不透明,严重依赖QA人力)测试通过,QA确认准出发现问题开发测试发布运维设计DevOps下对QA工作的要求:更快反馈、更高质量测试用例编写测试流水线自动化、标准化、在线化从执行到赋能:测试能力服务化测试能力服务化:流水线是我们的主战场编译单元测试环境部署接口功能测试DIFF测试性能测试异常测试环境释放发布流水线就是我们面向研发提供的服务。我们要保证流水线的全面性和稳定性。通过流水线如果能实现自主测试&发布就好啦效率杠杠的!测试资源&环境通用基础设施专项测试平台测试能力服务化:分层技术平台是我们的弹药库这么多测试能力我们要怎么建设呢?难道要从零开始嘛?别担心!
3、我们已经积累了不同领域、不同层次的平台基础啦,借助它们就能快速建立起我们的流水线啦GitCaseTestlifeCOVMonitorEasyENVDelinkIAT易水DumeterDufault冰夷快客EAP测试能力服务化下的环境挑战:测试环境不够用!传统模式DevOps模式取消环境占用部署并测试占用环境等待环境空闲内部沟通系统排队QA确认接测参与人数少,整体可控取消环境占用部署并测试占用环境等待环境空闲内部沟通系统排队(太慢)RD触发流水线随着参与人数、频次变多、测试环境的可用性最先成瓶颈测试环境演进之路:按需动态搭建测试环境环境释放测试环境动态搭建&部署RD触发流水线PaaS资源池Pod
4、Pod环境治理服务配置派生Pod创建Pod删除创建环境释放环境环境信息动态环境可以有效提升测试环境满足度,降低测试环境排队时间。测试环境演进之路:微服务架构下测试环境复用挑战应对思路环境1应用A应用B应用C应用D环境2应用A应用B应用C应用D基准环境应用A应用B应用C应用D特性环境1应用A针对无变更的模块,尽可能直接复用基准环境测试环境演进之路:基于流量路由的测试环境复用模块A10.197.11.10模块B10.197.11.11模块C10.197.11.13模块D10.197.11.14模块E10.197.11.15模块F10.197.11.16模块G10.197.11.17模块B10.19
5、7.21.11核心思路特征透传:如果模块的入口流量被染色,那么它的出口流量也应该被同样染色。流量路由:请求发送给实例时,应该优先发送给颜色匹配的实例。环境治理服务配置派生资源申请&部署路由策略变更路由管理服务if request_env_name=feature1:pod_id=10.197.21.11else:10.197.11.11路由管理服务取决于各自业务的服务发现机制,例如云原生下的ServiceMesh和RPC调用中的注册中心等。有流水线就够了吗?不,好像还不够编译单元测试环境部署接口功能测试DIFF测试性能测试异常测试环境释放发布做了一个性能调优的改造,怎么能快速验证一下性能是否有
6、改善呢?流水线执行起来看起来有点儿慢了流水线是站在传统QA的视角,将从QA接测到准出的过程自动化、服务化的结果。但是流水线也存在着一系列局限性:1.执行模式固定,不够灵活,无法高效支持研发自测调试的需求;2.接入的能力都是标准能力,针对测试过程的非标能力支持不够。从封闭到开放开发阶段灵活使用测试能力测试能力开放:开发阶段也能把测试能力用起来Cool!开发阶段的性能调优也能快速验证啦开放能力:动态流水线让测试能力更加灵活编译单元测试环境部署接口功能测试DIFF测试性能测试异常测