Bug的概念
我们通常的Bug概念是指正确的输入得到不正确的结果。但实际上,现代程序的Bug概念远比这多得多。在正确的输入下得到正确的结果,而在不正确的输入下也要能得到正确的结果!另外,程序应该完成用户期望的工作,而且程序不应该完成用户不期望的工作(这就是通常所说的彩蛋)。现在开始,本人想把学习Debugging Microsoft .Net 2.0 Applications 那本书的一些心得体会写在这个博客中。
什么是Bugs?
John Robbins的定义是“导致用户受伤害[当然是精神或物理上的]的所有软件相关的都称为Bug”。它有如下五种类别:
Crashes and hangs
-
程序的中止或挂起(Crashes and hangs)。指程序没有响应,客户不知道程序在做什么。
-
差的性能和扩展性:软件不容易修改也称为Bug之一,这对于大部分软件开发者来说是一个提醒啊!
-
不正确的结果:不管在正确或下正确的输入下。
-
安全漏洞:它应该交给安全专家,但我们程序员自己要有足够的重视。
-
不一致的用户界面:在界面设计的任务不恰当的元素也都是Bug!
-
出现用户不想要的结果(原文是unment expertactions),这指的是彩蛋的行为。