持续交付 36 讲
王潇俊
携程系统研发部总监
39682 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
开篇词 (1讲)
结束语 (1讲)
持续交付 36 讲
15
15
1.0x
00:00/00:00
登录|注册

26 | 越来越重要的破坏性测试

是否考虑引入Chaos Monkey,准备工作
混沌工程解决了这个问题,使破坏性测试的威力能够在持续交付过程中被真正发挥出来
破坏性测试能够测试分布式系统的健壮性,但在持续交付中无法显示真正的威力
持续执行Chaos Monkey可以提高系统的健壮性
创造了Chaos Monkey,用于制造混乱以检验系统的稳定性
高级原则包括使用改变现实世界的事件、在生产环境运行、自动化连续实现、最小爆破半径
实验方法遵循科学实验的4个步骤
建立对系统承受混乱冲击能力的信心
大部分破坏性测试在单元测试、功能测试阶段执行,往往在局部的测试子环境
需要考虑执行策略,避免不可挽回的局面
测试用例设计考虑破坏点的具体测试和整个系统的破坏性测试
区别在于破坏性测试可能无法恢复到待测状态,需要严密设计和预判
流程与普通软件测试流程基本一致
需要权衡破坏的量和度,考虑破坏的影响
测试手段必须是有效的,需要严格设计和执行
通过有效的测试手段使软件应用程序出现奔溃或失败的情况,然后测试结果是否符合预期
破坏性测试可以解决分布式系统测试的难题,帮助解决更多问题
随着SOA、微服务等架构的演进,分布式系统对测试的要求越来越高
思考题
总结
Netflix公司的先驱实践
混沌工程
破坏性测试的执行策略
破坏性测试的流程与用例设计
什么是破坏性测试
为什么破坏性测试变得重要
CI/CD中的破坏性测试

该思维导图由 AI 生成,仅供参考

你好,我是王潇俊。今天我和你分享的主题是:越来越重要的破坏性测试。
其实,持续交付中涉及到的与测试相关的内容,包括了单元测试、自动化测试、冒烟测试等测试方法和理念,我为什么我把破坏性测试拿出来,和你详细讨论呢?
原因无非包括两个方面:
其一,单元测试等传统测试方法,已经非常成熟了,而且你肯定也非常熟悉了;
其二,破坏性测试,变得越来越重要了。
那么,破坏性测试到底是因为什么原因变得原来越重要呢?
随着 SOA、微服务等架构的演进,分布式系统对测试的要求越来越高,不再像传统的单体应用测试一样,可以很容易地无缝嵌入到持续交付体系中。因为分布式系统的测试不仅需要大量的前提准备,还存在着非常严重的服务依赖问题。
这就使得分布式系统的测试工作,除了要关注运行的应用本身外,还要考虑测试环境的因素。
很快,我们就发现,破坏性测试可以解决分布式系统测试的这些难题,而且还可以帮助我们解决更多的问题。它可以弥补传统持续交付体系只关注代码或应用本身,而忽略其他外部因素影响运行中代码的问题。而且,破坏性测试还能很好地证明整个分布式系统的健壮性。
所以,与其老生长谈一些传统的测试方法,不如我们一起看看更新鲜、更好用的破坏性测试。

什么是破坏性测试?

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

混沌工程:持续交付中的破坏性测试利器 Netflix公司的Chaos Monkey系统是混沌工程的典型实践,通过在工作日期间随机杀死服务,制造混乱来检验系统的稳定性。这种混沌工程的实践为持续交付中的破坏性测试提供了很好的借鉴。破坏性测试在持续交付中变得越来越重要,尤其是在分布式系统的发展下,传统测试方法已不再适用。破坏性测试通过有效手段使软件应用程序出现奔溃或失败的情况,然后测试其结果是否符合预期。然而,破坏性测试的破坏特点使得它在持续交付中无法显示真正的威力。混沌工程的提出很好地解决了这个问题,使破坏性测试的威力能够在持续交付过程中被真正发挥出来。混沌工程通过受控实验观察系统弱点,建立在真实场景中进行实验、自动化连续实现、最小爆破半径等高级原则,更符合持续交付的需求和胃口。因此,混沌工程成为持续交付中的破坏性测试利器,为系统的健壮性提供了重要保障。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《持续交付 36 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 九脉一谷
    之前还没有考虑到破坏性测试,对于客户端类的产品进行破坏性测试,老师有什么好的建议?

    作者回复: 客户端类的破坏性做的不多,主要也是网络,内存等可控又便于模拟的部分,针对软件设计的行为;硬件方面的破坏测试通过由硬件厂商来处理吧,哈哈。不过之前也有听一些大厂用专门设备来模拟的。

    2018-09-03
    1
  • 春来草自青
    携程是否使用了混沌猴或者功能相似的工具?能不能详解一下携程的破坏测试是怎么做的?

    作者回复: 携程这方面也还起步,由于很多老系统监控和恢复能力都不行,所以破坏面现在都比较小,对新系统会经常采用计划好的演练,随时的破坏还不敢做:)

    2018-09-02
    1
  • yiluo
    磁盘损坏如何测试?用系统设置来模拟吗?

    作者回复: 是的,绝大部分是依靠模拟

    2018-09-04
  • 怀揣梦想的学渣
    提到混沌工程,就提到Netflix,在其他博客也有看到。
    2023-05-06归属地:山东
  • 戴斌
    我们实际上未完全解决单点故障,这种破坏性测试应该很有效果。各个应用之间的耦合性也很高,不敢轻易做类似测试。
    2020-03-24
  • 皮卡熊
    对于性能测试有没有一些最佳实践分享?
    2019-05-07
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部