两者都有,大部分是程序员自身的水准,小部分是系统复杂和外部原因。
程序员造成的BUG又分成两种,一种是自测不严谨,一种是实现不合理。
自测不严谨包括如下部分(不分前后端,放一起了):
1 没做过端到端的测试,从数据输入到数据展示,没走完整的流程。
2 忽视边界条件的判断
3 未做数据异常处理
4 未做错误操作逻辑处理,让正确的事情给正确的结果,让错误的事情给错误的提示
5 未考虑兼容性
6 不检查错别字
7 测试数据准备不充分
8 未考虑翻页,空数据的情景
9 不做防连点击控制
10 未做安全校验
11 和UI设计不符
12 hover,跳转,手势等特别容易忽视的细节
13 不懂业务知识,判断不出来是否有BUG。
实现不合理包括但不限:
1,耦合度高,改这个错那个
2,版本管理差,bug经常在这个版本修复,下个版本重现
3,硬编码
4,用复杂方案实现了一个简单问题
5,实现方案不统一
6,数据冗余后更新不同步
7,状态处理不对,总有遗漏
8,业务理解偏差
系统本身复杂和2外部原因包括但不限:
1 产品经理傻
2 业务经理傻
3 用户多
4 用户傻
5 运维傻
6 系统傻
7 服务器傻
8 编程语言傻
9 设计傻
10 测试傻
11 运营商傻
12 第三方服务傻,包括但不限短信,支付,登录,分享,统计,地图,im。
13 同事傻
14 领导傻
15 客户傻
16 下属傻
17 公司傻
18 IDE傻
19 键盘傻
20 显示器傻
21 耳机傻
22 鼠标傻
23 女朋友。。。。女朋友不傻,但我写出来BUG难道不正是因为公司不发女朋友?
程序员造成的BUG又分成两种,一种是自测不严谨,一种是实现不合理。
自测不严谨包括如下部分(不分前后端,放一起了):
1 没做过端到端的测试,从数据输入到数据展示,没走完整的流程。
2 忽视边界条件的判断
3 未做数据异常处理
4 未做错误操作逻辑处理,让正确的事情给正确的结果,让错误的事情给错误的提示
5 未考虑兼容性
6 不检查错别字
7 测试数据准备不充分
8 未考虑翻页,空数据的情景
9 不做防连点击控制
10 未做安全校验
11 和UI设计不符
12 hover,跳转,手势等特别容易忽视的细节
13 不懂业务知识,判断不出来是否有BUG。
实现不合理包括但不限:
1,耦合度高,改这个错那个
2,版本管理差,bug经常在这个版本修复,下个版本重现
3,硬编码
4,用复杂方案实现了一个简单问题
5,实现方案不统一
6,数据冗余后更新不同步
7,状态处理不对,总有遗漏
8,业务理解偏差
系统本身复杂和2外部原因包括但不限:
1 产品经理傻
2 业务经理傻
3 用户多
4 用户傻
5 运维傻
6 系统傻
7 服务器傻
8 编程语言傻
9 设计傻
10 测试傻
11 运营商傻
12 第三方服务傻,包括但不限短信,支付,登录,分享,统计,地图,im。
13 同事傻
14 领导傻
15 客户傻
16 下属傻
17 公司傻
18 IDE傻
19 键盘傻
20 显示器傻
21 耳机傻
22 鼠标傻
23 女朋友。。。。女朋友不傻,但我写出来BUG难道不正是因为公司不发女朋友?