测试与改错.PDFVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测试与改错

测试与改错 试与改错 编程大师说:“任何一个程序,无论它多么小,总存在着错误。” 初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?” “这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统最后将失 效,产生一个错误。” 但初学者不满足,他问:“如果操作系统不失效,那么会怎样?” “没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,硬件最后将失效, 产生一个错误。” 初学者仍不满足,再问:“如果硬件不失效,那么会怎样?” 大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序 做一件不同的事,这件事也是一个错误。” 没有错误的程序世间难 。[James 1999] 错误是一种严重的程序缺陷。测试的目的是为了发现尽可能多的缺陷,并期望通过改错来把缺 陷统统消灭,以期提高软件的质量。但关于测试与改错实在没有什么高明的方法值得大书特书, 也不能表现出程序员的聪明才智。相反地,它们带来了更多的牢骚与痛苦。因此在教学和开发实 践中,测试与改错总是被当作万般无奈的工作踢到角落里。 医生可以把他的错误埋葬在地下了事,但程序员不能。我们必须要学会测试与改错,并且把 试与改错工作做好。 7.1 对测试的理解 试的道理并不深奥,计算机专业人员都应该明白。但就是这么简单的事,计算机专业的 博士们也未必都已经理解。 有一天,一位比我聪明,编程比我快,学习能力比我强的计算机专业博士生恭恭敬敬地请我坐 好,并且史无前例地削了苹果请我吃,为的是向我请教 “软件工程”问题。你必定以为这位仁兄 好学之极。非也,我和他同事三年来从未探讨过 “软件工程”问题。只因为他明天要去应聘,参 加面试,生怕被人问倒,就央我当晚为他恶补一把 “软件工程”。他还特地问我 “什么是白盒 试和黑盒测试?应该由谁来执行?” (有公司曾经这样面试应聘者)当我解释完 试的道理时, 他叹了一口气说: “这些玩意儿我读大学十年来都没搞过,怎么能讲得出道理来。唉,就去碰碰 运气吧。”我有“兔死狐悲”的感觉。我们这一群博士生三年来尽干些自欺欺人的事,到毕业时 学问既不深也不 。个个意志消沉,老气横秋。长此以往,总有一天招聘会的大门前将贴出标语 “博士与 不得入内”。 以下是关于测试的几个重要观念。 7.1.1 试的目的 测试的目的是为了发现尽可能多的缺陷。 这里缺陷是一种泛称,它可以指功能的错误,也可以指性能低下,易用性差等等。测试总是先 假设程序中存在缺陷,再通过执行程序来发现并最终改正缺陷。理解 试的目的是个很重要的意 识问题。如果说 试的目的是为了说明程序中没有缺陷,那么测试人员就会向这个目标靠拢,因 而下意识地选用一些不易暴露错误的测试示例。这样的测试是虚假的。 目前高校的科技成果鉴定会普遍存在类似的虚假现象。我在读硕士时就亲身经历过这样的事。 我们的项目是研究集成电路制造过程中的成品率问题。当时国内大多数工厂的集成电路成品率只 有百分之几,我编写的示例程序可以将集成电路的成品率优化到98% 。示例效果是如此的好,以 致一位评委 (某厂的总工程师)不无讽刺地说:“采用你们的成果,我们可要发大财了。”这个 项目就轻易地通过了鉴定,并且不久后获得了电子工业部科技进步二等奖。这就象在考试时通过 作弊取得了好成绩而被表扬。我那时尚且纯真,羞愧之余,不禁对高校科研成果的水平和真实性 大失所望 (现在我已不再失望,因为很少抱希望)。 一个成功的测试示例在于发现了至今尚未发现的缺陷。 测试并不仅是个技术问题,更是个职业道德问题。 7.1.2 试的心理要求 为峰软件制作 BWF SOFTWARE 测试与改错 测试主要是由人而不是由机器执行,这就不免与心理因素相关。为了 试的真实性,对测试的 心理要 是 “无情”。这似乎太残酷了。开发人员不能很好地测试自己的程序是因为做不到无 情。而测试人员如果做到了无情却会引起开发人员的愤怒,遭人白眼。

文档评论(0)

ldj215323 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档