聊聊DevOps下的测试技术(1) 聊聊DevOps测试

柳哥说 发表于 2020/11/03 15:49:22 2020/11/03
【摘要】 本文介绍了DevOps模式下对测试人员的活动的变化和常用的测试技术。 部分观点带有个人主观色彩,请勿全部照搬。

1、为什么会有DevOps

     项目的软件开发模式主要经历了以下几个阶段:

     瀑布模型解决了分工协作困难的问题,但是一年1~2次的发布流程太慢,且无法满足日益变化的需求变更。

敏捷开发解决了需求频繁变更、上线慢的问题。但是未解决开发和运维的鸿沟,甚至给开发和维护之间增加了非常多困难和争议。

DevOps在敏捷的基础上,从E2E的角度来考量。主要解决开发和运维、运营之间的隔阂,更强调自需求设计至生产部署的端到端协同运作,更强调精益、高效;更强调想尽办法剔除每个环节的浪费,极致追求每个环节的高生产率,达到快速、高质量上线的目的:

2DevOps模式给软件测试带来了哪些变化:

       一个DevOps活动的流程如上图所示,可以看到测试已经融入到DevOps流程中的一环,DevOps模式下的测试流程也会发生变化。以我们团队为例,看下在DevOps模式下常用的测试方法和活动:

流程 DEV OPS
开发测试 服务测试 解决方案测试 外部beta/公测测试 在线/现网测试
目的     1、提升代码覆盖率和分支覆盖
    2、完成接口级和微服务级基本功能可用
    1、完成服务需求测试
    2、完成上下游服务交互测试
    1、完成解决方案场景测试
    2、完成客户场景模拟测试
完成友好客户测试和反馈 现网问题主动挖掘
测试方法     1、静态代码扫描
    2、UT
    3、冒烟用例&自动化
    4、接口自动化测试
    5、契约测试、Mock测试
    1、功能测试及自动化
    2、性能测试及工具自动化
    3、故障注入测试及自动化
    4、GUI测试及自动化
    5、兼容性测试
    1、解决方案场景测试
    2、E2E性能摸底测试
    3、AZ级和Region级可靠性测试
    4、客户组网测试
    1、功能测试及自动化
    2、接口自动化测试
    3、契约测试
    4、灰度发布测试
    5、监控和告警测试
    1、A/B测试
    2、竞品对标测试
    3、拨测
    4、监控和告警测试
环境 Alpha环境 小 Beta环境 类生产环境 生产环境 生产环境
人员 开发人员 服务测试人员 解决方案测试人员 解决方案测试人员 SRE

可以看出,   

1、  全流程测试:测试活动已经贯穿到DevOps全环节,DevOps模式下测试并未消失,而是嵌入到全流程的阈值评估点中。

2、  测试向左移动:开发团队也要承担起测试的任务,测试团队也会接入到开发阶段的测试及测试指导活动

3、  自动化权重增加:接口自动化、契约自动化测试、功能自动化被大量使用,用来提高上线测试进度

4、  UT弱化,API和契约测试更被愿意接受:UT自动化依旧存在,由于UT维护工作量巨大,且需求变化快,导致UT的投入产出不成比例,UT自动化权重下降,使用API和契约、Mock等测试替代。

5、  测试菱形模型:有专家指出,DevOps模式下,测试的倒三角模型依旧存在,但是测试层依旧很重要,甚至要做厚测试层,呈现菱形模型,个人认可这种菱形模型。

6、  部署自动化,灰度发布越来越受欢迎:服务的部署已经完全被自动化工具替换,测试基于部署的环境进行自助测试。同时,灰度发布和A/B测试很好的解决了流程过快导致的全局性风险,升级和回退成为常规活动。

7、  测试人员依旧必要:服务测试和解决方案测试依旧很重要,同时也是DevOPS流程中发现问题最多的环节,是DevOps环节中不可或缺的一环。

8、  在线测试和度量兴起:OPS阶段的测试和在线监控越来越被接受,权重增加,比如在线拨测、在线测试、在线度量。

9、  平台工具的重要性:DevOps流程环节打通后,更加依赖平台工具的能力做支撑,比如华为的DevOps平台DevCloud软件开发云、ServiceStage等都提供了很好的流程打通能力,使整个流程得心应手,降低准入门槛

 

     下一期,我们将介绍下具体的DevOps测试技术和测试实践,敬请关注~


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。