- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
精品资料网()
25 万份精华管理资料,2 万多集管理视频讲座
(建筑工程管理)软件工程
思想—测试与改错
精品资料网() 专业提供企管培训资料
测试和改错
编程大师说:“任何壹个程序,无论它多么小,总存于着错误。”
初学者不相信大师的话,他问:“如果壹个程序小得只执行壹个简单的功能,那会怎样?”
“这样的壹个程序没有意义,”大师说,“但如果这样的程序存于的话,操作系统最后将失效,产
生壹个错误。”
但初学者不满足,他问:“如果操作系统不失效,那么会怎样?”
“没有不失效的操作系统,”大师说,“但如果这样的操作系统存于的话,硬件最后将失效,产生
壹个错误。”
初学者仍不满足,再问:“如果硬件不失效,那么会怎样?”
大师长叹壹声道:“没有不失效的硬件。但如果这样的硬件存于的话,用户就会想让那个程序
做壹件不同的事,这件事也是壹个错误。”
没有错误的程序世间难求。[James1999]
错误是壹种严重的程序缺陷。测试的目的是为了发现尽可能多的缺陷,且期望通过改错来把
缺陷统统消灭,以期提高软件的质量。但关于测试和改错实于没有什么高明的方法值得大书
特书,也不能表现出程序员的聪明才智。相反地,它们带来了更多的牢骚和痛苦。因此于教
学和开发实践中,测试和改错总是被当作万般无奈的工作踢到角落里。
医生能够把他的错误埋葬于地下了事,但程序员不能。我们必须要学会测试和改错,且且把
测试和改错工作做好。
7.1 对测试的理解
测试的道理且不深奥,计算机专业人员均应该明白。但就是这么简单的事,计算机专业的博
士们也未必均已经理解。
有壹天,壹位比我聪明,编程比我快,学习能力比我强的计算机专业博士生恭恭敬敬地请我
坐好,且且史无前例地削了苹果请我吃,为的是向我请教“软件工程”问题。你必定以为这位
仁兄好学之极。非也,我和他同事三年来从未探讨过“软件工程”问题。只因为他明天要去应
聘,参加面试,生怕被人问倒,就央我当晚为他恶补壹把“软件工程”。他仍特地问我“什么是
白盒测试和黑盒测试?应该由谁来执行?”(有公司曾经这样面试应聘者)当我解释完测试的
道理时,他叹了壹口气说:“这些玩意儿我读大学十年来均没搞过,怎么能讲得出道理来。唉,
就去碰碰运气吧。”我有“兔死狐悲”的感觉。我们这壹群博士生三年来尽干些自欺欺人的事,
到毕业时学问既不深也不博。个个意志消沉,老气横秋。长此以往,总有壹天招聘会的大门
前将贴出标语“博士和狗不得入内”。
以下是关于测试的几个重要观念。
7.1.1 测试的目的
测试的目的是为了发现尽可能多的缺陷。
这里缺陷是壹种泛称,它能够指功能的错误,也能够指性能低下,易用性差等等。测试总是
先假设程序中存于缺陷,再通过执行程序来发现且最终改正缺陷。理解测试的目的是个很重
要的意识问题。如果说测试的目的是为了说明程序中没有缺陷,那么测试人员就会向这个目
标靠拢,因而下意识地选用壹些不易暴露错误的测试示例。这样的测试是虚假的。
目前高校的科技成果鉴定会普遍存于类似的虚假现象。我于读硕士时就亲身经历过这样的事。
我们的项目是研究集成电路制造过程中的成品率问题。当时国内大多数工厂的集成电路成品
率只有百分之几,我编写的示例程序能够将集成电路的成品率优化到 98%。示例效果是如此
的好,以致壹位评委(某厂的总工程师)不无讽刺地说:“采用你们的成果,我们可要发大财
了。”这个项目就轻易地通过了鉴定,且且不久后获得了电子工业部科技进步二等奖。这就象
于考试时通过作弊取得了好成绩而被表扬。我那时尚且纯真,羞愧之余,不禁对高校科研成
果的水平和真实性大失所望(当下我已不再失望,因为很少抱希望)。
壹个成功的测试示例于于发现了至今尚未发现的缺陷。
测试且不仅是个技术问题,更是个职业道德问题。
7.1.2 测试的心理要求
测试主要是由人而不是由机器执行,这就不免和心理因素关联。为了测试的真实性,对测试
的心理要求是“无情”。这似乎太残酷了。开发人员不能很好地测试自己的程序是因为做不到
无情。而测试人员如果做到了无情却会引起开发人员的愤怒,遭人白眼。
尽管已经明白了测试的目的是为了发现尽可能多的缺陷,但当测试人员真的发现了壹堆缺陷
时,却不可乐颠颠地跑去恭喜那个倒霉的开发者,否则会打架的。
7.1.3 测试的真理
测试只能证明缺陷存于,而不能证明缺陷不存于。
这个真理告诉我们,对于壹个复杂的系统而言,无论采取什么样的测试手段均不能证明缺陷
已经不复存于。“彻底地测试”只是壹种理想。于实践中,测试要考虑时间、费用等限制,不允
许无休止地测试。
7.1.4 测试
文档评论(0)