» 您尚未 登录   注册 | 社区服务 | FTP中心 | 帮助 | 社区 | 无图版 | 测试百科  | 测试Blog 
软件测试基地论坛 -> 英语天天看 -> What Is a Bug?
 XML   RSS 2.0   WAP 

--> 本页主题: What Is a Bug? 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
Fastpoint


该用户目前不在线
级别: 总版主
精华: 44
发帖: 5033
基地声望: 390 点
基地币: 1689 Bug
基地贡献: 0 点
好评度: 15 点
在线时间:818(小时)
注册时间:2005-10-08
最后登录:2008-07-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

What Is a Bug?

You've just read examples of what happens when software fails. It can be inconvenient, as when a computer game doesn't work properly, or it can be catastrophic, resulting in the loss of life. It can cost only pennies to fix but millions of dollars to distribute a solution. In the examples, above, it was obvious that the software didn't operate as intended. As a software tester you'll discover that most failures are hardly ever this obvious. Most are simple, subtle failures, with many being so small that it's not always clear which ones are true failures, and which ones aren't.

Terms for Software Failures

Depending on where you're employed as a software tester, you will use different terms to describe what happens when software fails. Here are a few:

Defect

Variance

Fault

Failure

Problem

Inconsistency

Error

Feature

Incident

Bug

Anomaly

 


(There's also a list of unmentionable terms, but they're most often used privately among programmers.)

You might be amazed that so many names could be used to describe a software failure. Why so many? It's all really based on the company's culture and the process the company uses to develop its software. If you look up these words in the dictionary, you'll find that they all have slightly different meanings. They also have inferred meanings by how they're used in day-to-day conversation.

For example, fault, failure, and defect tend to imply a condition that's really severe, maybe even dangerous. It doesn't sound right to call an incorrectly colored icon a fault. These words also tend to imply blame: "It's his fault that the software failed."

Anomaly, incident, and variance don't sound quite so negative and are often used to infer unintended operation rather than all-out failure. "The president stated that it was a software anomaly that caused the missile to go off course."

Problem, error, and bug are probably the most generic terms used.

JUST CALL IT WHAT IT IS AND GET ON WITH IT

It's interesting that some companies and product teams will spend hours and hours of precious development time arguing and debating which term to use. A well-known computer company spent weeks in discussion with its engineers before deciding to rename Product Anomaly Reports (PARs) to Product Incident Reports (PIRs). Countless dollars were spent in the process of deciding which term was better. Once the decision was made, all the paperwork, software, forms, and so on had to be updated to reflect the new term. It's unknown if it made any difference to the programmer's or tester's productivity.


So, why bring this topic up? It's important as a software tester to understand the personality behind the product development team you're working with. How they refer to their software problems is a tell-tale sign of how they approach their overall development process. Are they cautious, careful, direct, or just plain blunt?

Although your team may choose a different name, in this book, all software problems will be called bugs. It doesn't matter if it's big, small, intended, unintended, or someone's feelings will be hurt because they create one. There's no reason to dice words. A bug's a bug's a bug.

Software Bug: A Formal Definition

Calling any and all software problems bugs may sound simple enough, but doing so hasn't really addressed the issue. Now the word problem needs to be defined. To keep from running in circular definitions, there needs to be a definitive description of what a bug is.

First, you need a supporting term: product specification. A product specification, sometimes referred to as simply a spec or product spec, is an agreement among the software development team. It defines the product they are creating, detailing what it will be, how it will act, what it will do, and what it won't do. This agreement can range in form from a simple verbal understanding, an email, or a scribble on a napkin, to a highly detailed, formalized written document. In Chapter 2, "The Software Development Process," you will learn more about software specifications and the development process, but for now, this definition is sufficient.

For the purposes of this book and much of the software industry, a software bug occurs when one or more of the following five rules is true:

  1. The software doesn't do something that the product specification says it should do.

  2. The software does something that the product specification says it shouldn't do.

  3. The software does something that the product specification doesn't mention.

  4. The software doesn't do something that the product specification doesn't mention but should.

  5. The software is difficult to understand, hard to use, slow, orin the software tester's eyeswill be viewed by the end user as just plain not right.

To better understand each rule, try the following example of applying them to a calculator.

The specification for a calculator probably states that it will perform correct addition, subtraction, multiplication, and division. If you, as the tester, receive the calculator, press the + key, and nothing happens, that's a bug because of Rule #1. If you get the wrong answer, that's also a bug because of Rule #1.

The product spec might state that the calculator should never crash, lock up, or freeze. If you pound on the keys and get the calculator to stop responding to your input, that's a bug because of Rule #2.

Suppose that you receive the calculator for testing and find that besides addition, subtraction, multiplication, and division, it also performs square roots. Nowhere was this ever specified. An ambitious programmer just threw it in because he felt it would be a great feature. This isn't a featureit's really a bug because of Rule #3. The software is doing something that the product specification didn't mention. This unintended operation, although maybe nice to have, will add to the test effort and will likely introduce even more bugs.

The fourth rule may read a bit strange with its double negatives, but its purpose is to catch things that were forgotten in the specification. You start testing the calculator and discover when the battery gets weak that you no longer receive correct answers to your calculations. No one ever considered how the calculator should react in this mode. A bad assumption was made that the batteries would always be fully charged. You expected it to keep working until the batteries were completely dead, or at least notify you in some way that they were weak. Correct calculations didn't happen with weak batteries, and it wasn't specified what should happen. Rule #4 makes this a bug.

Rule #5 is the catch-all. As a tester you are the first person to really use the software. If you weren't there, it would be the customer using the product for the first time. If you find something that you don't feel is right, for whatever reason, it's a bug. In the case of the calculator, maybe you found that the buttons were too small. Maybe the placement of the = key made it hard to use. Maybe the display was difficult to read under bright lights. All of these are bugs because of Rule #5.

NOTE

Every person who uses a piece of software will have different expectations and opinions as to how it should work. It would be impossible to write software that every user thought was perfect. As a software tester, you should keep this in mind when you apply Rule #5 to your testing. Be thorough, use your best judgment, and, most importantly, be reasonable. Your opinion counts, but, as you'll learn in later chapters, not all the bugs you find can or will be fixed.


These are greatly simplified examples, so think about how the rules apply to software that you use every day. What is expected, what is unexpected? What do you think was specified and what was forgotten? And, what do you just plain dislike about the software?

This definition of a bug covers a lot of ground but using all five of its rules will help you identify the different types of problems in the software you're testing.



可不可不要这么样徘徊在目光内
你会察觉到我根本寂寞难耐
即使千多百个深夜曾在梦境内
我有吻过你这毕竟并没存在

人声车声开始消和逝
无声挣扎有个情感奴隶
是我多么的想她
但我偏偏只得无尽叹谓

其实每次见你我也着迷
无奈你我各有角色范围
就算在寂寞梦内超出好友关系
唯在暗里爱你暗里着迷
无谓要你惹上各种问题
共我道别吧别让空虚使我越轨
[楼 主] | Posted: 2006-11-02 15:53 顶端
syy


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 36
基地声望: 3 点
基地币: 6259 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:8(小时)
注册时间:2007-01-05
最后登录:2007-09-03
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子





我的世界,我做主!哈哈哈
[1 楼] | Posted: 2007-01-21 00:07 顶端
bluebaby0821




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 3
基地声望: 1 点
基地币: 6226 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:2(小时)
注册时间:2007-01-18
最后登录:2007-01-23
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



so difficult.!

希望能进入测试行业的新手!!!!!!!!!
[2 楼] | Posted: 2007-01-22 15:38 顶端
mackeal




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 23
基地声望: 2 点
基地币: 6242 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2007-02-07
最后登录:2007-05-18
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



just so so!~~~~~~~~
[3 楼] | Posted: 2007-05-17 17:00 顶端
yq1929




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 4
基地声望: 1 点
基地币: 2112 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2007-07-21
最后登录:2007-07-21
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



thanks
[4 楼] | Posted: 2007-07-21 16:42 顶端
patrick




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 10
基地声望: 1 点
基地币: 2108 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2007-08-22
最后登录:2007-08-22
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



defining bug testing..
[5 楼] | Posted: 2007-08-22 13:34 顶端
hearace




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 4
基地声望: 1 点
基地币: 2112 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2007-09-03
最后登录:2007-09-03
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



i found a bug
[6 楼] | Posted: 2007-09-03 21:06 顶端
小鲍


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 27
基地声望: 2 点
基地币: 2135 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:4(小时)
注册时间:2007-09-18
最后登录:2008-02-18
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



defined yourself or referenced from other materials?

恐惧结婚,尚待测试中
[7 楼] | Posted: 2007-09-18 15:06 顶端
py31


该用户目前不在线
级别: 测试新手
精华: 0
发帖: 10
基地声望: 1 点
基地币: 6603 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:2(小时)
注册时间:2005-12-01
最后登录:2008-09-03
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



I am a bug
[8 楼] | Posted: 2008-09-03 10:37 顶端
obey39




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 13
基地声望: 1 点
基地币: 3 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2008-09-04
最后登录:2008-09-05
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



thnx
[9 楼] | Posted: 2008-09-04 17:11 顶端
ljbessie




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 4
基地声望: 1 点
基地币: 2 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:3(小时)
注册时间:2008-11-03
最后登录:2008-12-01
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



好久不看这么多英文
[10 楼] | Posted: 2008-11-03 18:16 顶端
cymandhxl




该用户目前不在线
级别: 测试新手
精华: 0
发帖: 7
基地声望: 1 点
基地币: 4 Bug
基地贡献: 0 点
好评度: 0 点
在线时间:0(小时)
注册时间:2008-11-01
最后登录:2008-11-12
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



很好,
[11 楼] | Posted: 2008-11-03 20:53 顶端

软件测试基地论坛 -> 英语天天看




软件测试基地上海测仕信息技术有限公司旗下网站
Copyright © 2005-2007 Cntesting.com, All Rights Reserved
沪ICP备06057721号

Powered by PHPWind Code © 2003-06 PHPWind
Total 0.153111(s) query 5, Time now is:12-05 07:52, Gzip disabled
You can contact us


每日一句:Loading...