学过编程的人都听说过bug这个词,可是bug到底指什么呢?系统缺陷?错误?还是漏洞?可是知道点英语的就会说,bug是昆虫的意思,然而昆虫和怎么会和计算机扯上关系的呢?
事情是这样的。从电脑诞生之日起,就有了电脑BUG。第一个有记载的bug是美国海军的编程员,编译器的发明者格蕾斯·哈珀(Grace Hopper)发现的。哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发。
1945年9月9日,下午三点。哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。
突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”
从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)。
以上是bug的由来,由此我们也知道了bug就是一个电脑程序里的错误,而现在更是将其延生为漏洞,或者是一个程序不完善的地方。
虽然知道了什么是bug,可是什么情况算是bug,bug分为哪几类呢
不同的分类标准,可以将bug分为不同的类别,在此,介绍两种以bug的严重程度来分类的方法
Urgent:致命错误
致命错误通常有如下情况:
(1)需求书中的重要功能未实现;
(2)造成系统崩溃、死机,并且不能通过其它方法实现功能;
(3)常规操作造成程序非法退出、死循环、通讯中断或异常,数据破坏丢失或数据库异常、且不能通过其它方法实现功能的。
Very High:严重错误
严重错误通常使系统不稳定、不安全、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的主要问题,
(1)重要功能基本能实现,但系统不稳定、一些边界条件下操作会导致run-time error、文件操作异常、通讯异常、数据丢失或破坏等错误;
(2)重要功能不能按正常操作实现,但可通过其它方法可实现;
(3)错误的波及面广,影响到其它重要功能正常实现;
(4)密码明文显示;
(5)C/S、B/S模式下,利用客户端某些操作可造成服务端不能继续正常工作的。
High:一般错误
程序的功能运行基本正常,但是存在一些需求、设计或实现上的缺陷;次要功能运行不正常,
(1)次要功能不能正常实现;操作界面错误(包括数据窗口内列名定义、含义不一致);查询错误,数据错误显示;打印内容、格式错误;删除操作未给出提示;因错误操作迫使程序中断;简单的输入限制未放在前台进行控制;
(2)性能问题,找不到规律的时好时坏;经过一段时间运行后,系统性能或响应时间会变慢;硬件或通讯异常发生恢复后,系统不能自动正常继续工作(需要过多的人工干预才行);
(3)数据库表中有过多的空字段;数据库的表、业务规则、缺省值未加完整性等约束条件;
(4)系统兼容性差,与其它支持系统一起工作时容易出错,而没有充分理由说明是由支持系统引起的;或者由于使用了非常规技术或第三方组件造成不能使用自动化测试工具进行测试的。
(5) 安全性差,重要资料,如密码未加密存放(包括配置文件中的密码),或其它存在安全性隐患的;
Medium:细微错误
程序在一些显示上不美观,不符合用户习惯,或者是一些文字的错误,
(1)界面不规范;界面存在文字错误;可输入区域和只读区域没有明显的区分标志;
(2)辅助说明描述不清楚;提示窗口文字未采用行业术语;输入输出不规范;
(3)长操作未给用户提示(或长操作结束后提示没有消失);
(4)在功能实现方式上如果需求中没有明确定义,而没有按常规实现,并且不比常规方式实现优越的;( 如用户名第一位用数字或特殊字符)
Low:改进建议
可以提高产品质量的建议,包括新需求和对需求的改进。
包括:功能点缺失,客户端爆页。
Major级别——较严重缺陷
包括:功能点没有满足需求。
Normal级别――普通缺陷
包括:数值计算错误、JavaScript错误。
Minor级别—一次要缺陷,
包括:界面错误与UI需求不符、打印内容、格式错误、程序不健壮,操作未给出明确提示。
Trivial级别——轻微缺陷,
包括:辅助说明描述不清楚、显示格式不规范,数字,日期等格式、长时间操作未给用户进度提示、 提示窗口文字未采用行业术语、可输入区域和只读区域没有明显的区分标志、必输项无提示,或者提示不规范。
Enhancement级别——测试建议、其他(非缺陷)
包括:以客户角度的易用性测试建议、通过测试挖掘出来的潜在需求。
小编寄语:在此,小编仅仅是介绍了什么是bug,以及bug的一些分类,至于bug如何被管理,如何通过bug来分析软件的质量等,还需要我们在以后的测试过程中继续学习,这里只是希望通过本篇文章的学习,简单的了解一些bug的知识,主要还是希望增加大家对软件测试的兴趣,管理好自己的bug,让我们的软件做的更好。
原文地址:http://blog.csdn.net/u010168160/article/details/43056049