来自知乎:
一般在服务器返回的数据上我们会做数据合法性检测,所以在api文档上需要注明字段的取值范围,然后客户端根据这个去做数据检测,缺段就直接走数据错误的流程,这个很大程度上避免了不少nullpointer。
合理使用 @NotNull以及@Nullable注解,不要过度依赖,因为经常会不对,需要分清模块的边界,对于暴露的API严格检查参数,对模块内部借助注解进行推断,减少不必要的参数检测。
对于测试开发来说,可以进行自动化测试;在发版前几天使用自动化测试工具运行APP,及时复现崩溃。
对于QA来说,可以进行灰度发布;在发布之前,选取一些比较小的渠道先进行发布;在崩溃率过关之后逐步放量;若有问题修复之后继续灰度发布,有效控制崩溃率。(终极大法)
对于QC(质量控制)来说,可以采取静态代码检测工具辅助检测;比如FindBugs,PMD等。