bug是怎么诞生的?
一、概念
Bug,指软件中的缺陷,它可能会引发软件失效。
二、bug由来
Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。
来自百科的说法
Bug的创始人格蕾丝·赫柏(GraceMurrayHopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug”这名字,正是由赫柏所取的。
年9月9日,下午三点。哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。
突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布贴到“事件记录本”中,并注明“第一个发现虫子的实例。”
从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)。
三、bug分类
1、代码错误
2、设计缺陷
3、界面优化
4、性能问题
5、配置相关
6、安装部署
7、安全相关
8、标准规范
9、测试脚本
10、其他划分:功能类、界面类、性能类、易用性类、兼容性类、其他
估计大多数java小伙伴每个版本迭代都会有或多或少的bug,特别在代码错误容易出错吧。
四、bug的等级
1级bug
致命错误:
一般来说你的某个功能点或者某个错误造成了测试伙伴的流程阻塞,这种情况很容易另一个致命bug在你的头上,测试会反馈给研发leader并催促当事人抓紧修复,包括但不限于以下几种
1、常规操作引起的系统崩溃、死机、死循环
2、造成数据泄漏的安全性问题,比如恶意攻击造成的账户私密信息泄露
3、涉及金钱,如支付类软件,金钱计算错误
2级bug
严重错误:
这种bug基本上就是我们没有理解需求文档或者错理解需求而实现或未实现或遗漏的重要功能,比如:
1、重要功能不能实现
2、错误的波及面广,影响到其他重要功能正常实现
3、非常规操作导致的程序崩溃、死机、死循环(非常规操作:用户使用软件时不会进行的操作)
4、外观难以接受的缺陷
3级bug
一般错误:
不影响产品的运行、不会成为故障的起因、但对产品外观和下道工序影响较大的缺陷
1、次要功能不能正常实现
2、操作界面错误(包括数据窗口内列名的定义,含义不一致)
例如:列名与列名下的内容不一致
3、查询错误、数据错误显示
4、简单的输入限制未放在前端进行控制;(格式显示,如登录和注册中的格式判断可由前端判断)
5、删除操作未给出提示
4级bug
程序在一些显示上不美观,不符合用户习惯,或者是一些文字的错误
1、界面不规范
2、辅助说明描述不清楚
3、提示窗口文字未采用行业术语
4、界面存在文字错误
5、改进意见:可以提高产品质量的建议,包括新需求和对需求的改进
相信大家都很重视bug,大多数公司对绩效的考核都有规定说某某等级的bug超过多少绩效打C等等,这个直接关系到个人利益和前途,另外测试的存在也是为了让程序没有bug,作为开发的我们更应该和测试配合打造更好的产品。
五、bug的解决
处理方式
确认bug
重复的bug
不是bug
无法重现
不予解决
设计如此
延期修改
bug能更好的让程序运行,一般处理bug的方式是和测试沟通确认,是bug就尽快修复,其他原因和测试协商沟通,有些bug需要找产品或需求确认的要及时沟通。
总结
通过本文相信你对bug有了系统的认识和处理方式,也希望我们写的代码能少出bug,多做自测,单元测试,集成测试,总能避免一些低级bug和不阻塞测试流程。