如果我们拥抱模拟驱动的开发会怎样?

主要观点:作为软件工程师,在值班时常遇奇特问题,如网络分区致 70 多节点 Hadoop 集群混乱,重启后因状态故障出现NullPointerException,需回溯修复;软件开发与生产环境差异大,生产环境复杂多变,标准电商 API 测试需考虑多种变量,实际世界比测试案例更混沌,SRE 与 SWE 视角有差距;提出确定性模拟测试(DST)策略,需满足快速可调试测试、一次测试整个系统、抵御未知问题等要求,可通过模拟用户(随机输入和基于属性测试)和模拟世界(注入混沌)来实现,虽使用 DST 的公司不多,但已在一些公司应用并取得成效,如 Clever Cloud,DST 不仅帮助找 bug 还助开发者成长,增强对软件的信任。
关键信息:网络分区对 Hadoop 集群的影响及解决办法;软件开发与生产环境的差异对比;标准电商 API 测试的复杂性;确定性模拟测试的三个关键要求及实现方式;Clever Cloud 应用 DST 的情况及效果。
重要细节:列举多种编程语言用于模拟测试的库;介绍 Clever Cloud 利用 FoundationDB 内置模拟开发服务器less 产品;提及 DST 对开发者教育的益处及对软件信任的建立。

阅读 8
0 条评论