入职轮盘:每天删除我们的员工账户

主要观点:

  • 坚信自动化测试,虽难以完全做到,但很重要,如 Michael Feathers 所说“没有测试的代码就是遗留代码”。
  • 有些功能易测试,如服务器端点等,有些难测,如调用第三方 API 的端点等。
  • 有时没时间写测试,需权衡利弊,可先创建功能后补测,但要注意债务管理。
  • 没自动化测试不意味着没测试,可利用生产流量、金丝雀发布、测试版队列、内部使用等方式。
  • 产品上线流程是难测的盲点,Graphite 采用随机删除工程师账户的“轮盘赌”脚本进行测试。
  • 该方法虽有局限性,如员工重设账户仍跳过某些环节,但能发现很多问题,很多产品可借鉴。
  • 持续删除账户虽非完美替代自动化测试,但能增加用户同理心,应持续进行。

关键信息:

  • 自动化测试能保证功能不退化,测试复杂功能能促进良好架构。
  • 有时因时间和资源限制会先创建功能后补测。
  • 生产流量、金丝雀发布等可替代部分测试。
  • Graphite 的“轮盘赌”脚本及效果和局限性。

重要细节:

  • Airbnb 测试密码重置邮件因外包邮件发送困难。
  • 测试 React 待办事项应用的 swipe-to-delete 耗时久。
  • 生产流量替代测试效果弱,需快速回滚等。
  • 金丝雀发布和测试版队列在测试中的作用及局限性。
  • Graphite 产品上线流程的复杂及难以测试之处。
  • 删除员工账户能在关键盲点发现问题等。
阅读 12
0 条评论